VirtualBox

Changeset 44751 in vbox


Ignore:
Timestamp:
Feb 19, 2013 1:03:01 PM (12 years ago)
Author:
vboxsync
Message:

update alternative system BIOS sources

Location:
trunk/src/VBox/Devices
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp

    r43630 r44751  
    987987                     && pb[5] == 0x01
    988988                    )
     989                 || (   pb[0] == 0x98   /* bytes after apm_out_str_ */
     990                     && pb[1] == 0x8a
     991                     && pb[2] == 0x67
     992                     && pb[3] == 0x8b)
    989993                 || 0
    990994                 )
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm

    r43630 r44751  
    88;
    99
    10 ;  Copyright (C) 2006-2011 Oracle Corporation
     10;  Copyright (C) 2006-2012 Oracle Corporation
    1111
    1212;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    9292;
    9393
    94 ;  Copyright (C) 2006-2011 Oracle Corporation
     94;  Copyright (C) 2006-2012 Oracle Corporation
    9595
    9696;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    134134;
    135135
    136 ;  Copyright (C) 2006-2011 Oracle Corporation
     136;  Copyright (C) 2006-2012 Oracle Corporation
    137137
    138138;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    176176;
    177177
    178 ;  Copyright (C) 2006-2011 Oracle Corporation
     178;  Copyright (C) 2006-2013 Oracle Corporation
    179179
    180180;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    218218;
    219219
    220 ;  Copyright (C) 2006-2011 Oracle Corporation
     220;  Copyright (C) 2006-2012 Oracle Corporation
    221221
    222222;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    260260;
    261261
    262 ;  Copyright (C) 2006-2011 Oracle Corporation
     262;  Copyright (C) 2006-2012 Oracle Corporation
    263263
    264264;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    302302;
    303303
    304 ;  Copyright (C) 2006-2011 Oracle Corporation
     304;  Copyright (C) 2006-2012 Oracle Corporation
    305305
    306306;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    344344;
    345345
    346 ;  Copyright (C) 2006-2011 Oracle Corporation
     346;  Copyright (C) 2006-2012 Oracle Corporation
    347347
    348348;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    386386;
    387387
    388 ;  Copyright (C) 2006-2011 Oracle Corporation
     388;  Copyright (C) 2006-2013 Oracle Corporation
    389389
    390390;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    428428;
    429429
    430 ;  Copyright (C) 2006-2011 Oracle Corporation
     430;  Copyright (C) 2006-2012 Oracle Corporation
    431431
    432432;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    512512;
    513513
    514 ;  Copyright (C) 2006-2011 Oracle Corporation
     514;  Copyright (C) 2006-2012 Oracle Corporation
    515515
    516516;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    558558
    559559
    560 ;  Copyright (C) 2004-2011 Oracle Corporation
     560;  Copyright (C) 2004-2012 Oracle Corporation
    561561
    562562;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    576576
    577577
    578 ;  Copyright (C) 2004-2011 Oracle Corporation
     578;  Copyright (C) 2004-2012 Oracle Corporation
    579579
    580580;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    594594
    595595
    596 ;  Copyright (C) 2011 Oracle Corporation
     596;  Copyright (C) 2011-2012 Oracle Corporation
    597597
    598598;  This file is part of VirtualBox Open Source Edition (OSE), as
     
    792792
    793793
    794 section _DATA progbits vstart=0x0 align=1 ; size=0x30 class=DATA group=DGROUP
    795 _dskacc:                                     ; 0xf0000 LB 0x30
     794section _DATA progbits vstart=0x0 align=1 ; size=0x40 class=DATA group=DGROUP
     795_pktacc:                                     ; 0xf0000 LB 0xc
     796    db  000h, 000h, 000h, 000h, 000h, 000h, 0eah, 027h, 08dh, 075h, 0adh, 082h
     797_softrst:                                    ; 0xf000c LB 0xc
     798    db  000h, 000h, 000h, 000h, 000h, 000h, 0cdh, 02ah, 000h, 000h, 000h, 000h
     799_dskacc:                                     ; 0xf0018 LB 0x28
    796800    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 039h, 027h, 0b0h, 027h, 000h, 000h, 000h, 000h
    797     db  0c4h, 074h, 075h, 075h, 0c4h, 081h, 055h, 082h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    798     db  05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
     801    db  02bh, 074h, 0dch, 074h, 0afh, 081h, 040h, 082h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h
     802    db  000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    799803
    800 section CONST progbits vstart=0x30 align=1 ; size=0xcaa class=DATA group=DGROUP
     804section CONST progbits vstart=0x40 align=1 ; size=0xce0 class=DATA group=DGROUP
    801805    db   'NMI Handler called', 00ah, 000h
    802806    db   'INT18: BOOT FAILURE', 00ah, 000h
     
    821825    db   '%s: drive>1 || head>1 ...', 00ah, 000h
    822826    db   '%s: ctrl not ready', 00ah, 000h
    823     db   '%s: read error', 00ah, 000h
    824827    db   '%s: write error', 00ah, 000h
    825828    db   '%s: bad floppy type', 00ah, 000h
    826829    db   '%s: unsupported AH=%02x', 00ah, 000h, 000h
    827830    db   'int13_eltorito', 000h
    828     db   '%s: call with AX=%04x. Please report', 00ah, 000h
     831    db   '%s: call with AX=%04x not implemented.', 00ah, 000h
    829832    db   '%s: unsupported AH=%02x', 00ah, 000h
    830833    db   'int13_cdemu', 000h
     
    900903    db   '%s: SCSI_INQUIRY failed', 00ah, 000h
    901904    db   '%s: SCSI_READ_CAPACITY failed', 00ah, 000h
    902     db   'Disk %d has an unsupported sector size of %u', 00ah, 000h, 000h
     905    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
     906    db   'SCSI %d-ID#%d: LCHS=%u/%u/%u %ld sectors', 00ah, 000h
     907    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h
    903908    db   'ahci_read_sectors', 000h
    904909    db   '%s: device_id out of range %d', 00ah, 000h
     
    913918    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    914919
    915 section CONST2 progbits vstart=0xcda align=1 ; size=0x3fa class=DATA group=DGROUP
    916 _bios_cvs_version_string:                    ; 0xf0cda LB 0x12
     920section CONST2 progbits vstart=0xd20 align=1 ; size=0x3fa class=DATA group=DGROUP
     921_bios_cvs_version_string:                    ; 0xf0d20 LB 0x12
    917922    db  'VirtualBox 4.2.51', 000h
    918 _bios_prefix_string:                         ; 0xf0cec LB 0x8
     923_bios_prefix_string:                         ; 0xf0d32 LB 0x8
    919924    db  'BIOS: ', 000h, 000h
    920 _isotag:                                     ; 0xf0cf4 LB 0x6
     925_isotag:                                     ; 0xf0d3a LB 0x6
    921926    db  'CD001', 000h
    922 _eltorito:                                   ; 0xf0cfa LB 0x18
     927_eltorito:                                   ; 0xf0d40 LB 0x18
    923928    db  'EL TORITO SPECIFICATION', 000h
    924 _drivetypes:                                 ; 0xf0d12 LB 0x28
     929_drivetypes:                                 ; 0xf0d58 LB 0x28
    925930    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    926931    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    927932    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    928 _scan_to_scanascii:                          ; 0xf0d3a LB 0x37a
     933_scan_to_scanascii:                          ; 0xf0d80 LB 0x37a
    929934    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    930935    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    983988    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    984989    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    985 _panic_msg_keyb_buffer_full:                 ; 0xf10b4 LB 0x20
     990_panic_msg_keyb_buffer_full:                 ; 0xf10fa LB 0x20
    986991    db  '%s: keyboard input buffer full', 00ah, 000h
    987992
    988   ; Padding 0x52c bytes at 0xf10d4
    989   times 1324 db 0
     993  ; Padding 0x4e6 bytes at 0xf111a
     994  times 1254 db 0
    990995
    991 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7ab5 class=CODE group=AUTO
     996section _TEXT progbits vstart=0x1600 align=1 ; size=0x7aa5 class=CODE group=AUTO
    992997read_byte_:                                  ; 0xf1600 LB 0xe
    993998    push bx                                   ; 53
     
    11331138    push bp                                   ; 55
    11341139    mov bp, sp                                ; 89 e5
    1135     push strict word 00030h                   ; 68 30 00
     1140    push strict word 00040h                   ; 68 40 00
    11361141    push strict byte 00007h                   ; 6a 07
    11371142    call 018e9h                               ; e8 f7 01
     
    11421147    push bp                                   ; 55
    11431148    mov bp, sp                                ; 89 e5
    1144     push strict word 00044h                   ; 68 44 00
     1149    push strict word 00054h                   ; 68 54 00
    11451150    push strict byte 00007h                   ; 6a 07
    11461151    call 018e9h                               ; e8 e7 01
     
    11511156    push bp                                   ; 55
    11521157    mov bp, sp                                ; 89 e5
    1153     mov bx, 00cech                            ; bb ec 0c
     1158    mov bx, 00d32h                            ; bb 32 0d
    11541159    mov cx, ds                                ; 8c d9
    11551160    mov ax, strict word 00004h                ; b8 04 00
    11561161    call 018aeh                               ; e8 99 01
    1157     push 00cdah                               ; 68 da 0c
    1158     push strict word 00059h                   ; 68 59 00
     1162    push 00d20h                               ; 68 20 0d
     1163    push strict word 00069h                   ; 68 69 00
    11591164    push strict byte 00004h                   ; 6a 04
    11601165    call 018e9h                               ; e8 c9 01
     
    11801185    pop bp                                    ; 5d
    11811186    retn                                      ; c3
    1182     call 07130h                               ; e8 e1 59
     1187    call 07097h                               ; e8 48 59
    11831188    pop bp                                    ; 5d
    11841189    retn                                      ; c3
     
    13131318    mov bx, strict word 0000ah                ; bb 0a 00
    13141319    xor cx, cx                                ; 31 c9
    1315     call 08fc0h                               ; e8 67 77
     1320    call 08fb0h                               ; e8 57 77
    13161321    mov word [bp-004h], ax                    ; 89 46 fc
    13171322    mov cx, dx                                ; 89 d1
     
    14081413    mov dx, 00401h                            ; ba 01 04
    14091414    out DX, AL                                ; ee
    1410     push strict word 0005eh                   ; 68 5e 00
     1415    push strict word 0006eh                   ; 68 6e 00
    14111416    push strict byte 00002h                   ; 6a 02
    14121417    call 018e9h                               ; e8 d1 ff
     
    15911596    call 01751h                               ; e8 64 fc
    15921597    jmp short 01afah                          ; eb 0b
    1593     push strict word 00066h                   ; 68 66 00
     1598    push strict word 00076h                   ; 68 76 00
    15941599    push strict byte 00007h                   ; 6a 07
    15951600    call 018e9h                               ; e8 f2 fd
     
    21842189    test ax, ax                               ; 85 c0
    21852190    je short 020c4h                           ; 74 0b
    2186     push 00084h                               ; 68 84 00
     2191    push 00094h                               ; 68 94 00
    21872192    push strict byte 00007h                   ; 6a 07
    21882193    call 018e9h                               ; e8 28 f8
     
    22632268    mov dx, ss                                ; 8c d2
    22642269    lea ax, [bp-032h]                         ; 8d 46 ce
    2265     call 0533dh                               ; e8 b7 31
    2266     mov bx, 00cech                            ; bb ec 0c
     2270    call 052a4h                               ; e8 1e 31
     2271    mov bx, 00d32h                            ; bb 32 0d
    22672272    mov cx, ds                                ; 8c d9
    22682273    mov ax, strict word 00004h                ; b8 04 00
     
    22812286    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    22822287    push ax                                   ; 50
    2283     push 000adh                               ; 68 ad 00
     2288    push 000bdh                               ; 68 bd 00
    22842289    push strict byte 00004h                   ; 6a 04
    22852290    call 018e9h                               ; e8 31 f7
     
    23792384    test ax, ax                               ; 85 c0
    23802385    je short 022dbh                           ; 74 0b
    2381     push 000d4h                               ; 68 d4 00
     2386    push 000e4h                               ; 68 e4 00
    23822387    push strict byte 00007h                   ; 6a 07
    23832388    call 018e9h                               ; e8 11 f6
     
    24712476    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    24722477    je short 023dfh                           ; 74 05
    2473     mov ax, 000ffh                            ; b8 ff 00
     2478    mov ax, 0010fh                            ; b8 0f 01
    24742479    jmp short 023e2h                          ; eb 03
    2475     mov ax, 00106h                            ; b8 06 01
     2480    mov ax, 00116h                            ; b8 16 01
    24762481    push ax                                   ; 50
    24772482    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    24782483    push ax                                   ; 50
    2479     push 0010dh                               ; 68 0d 01
     2484    push 0011dh                               ; 68 1d 01
    24802485    push strict byte 00002h                   ; 6a 02
    24812486    call 018e9h                               ; e8 f9 f4
     
    24872492    je short 0240ch                           ; 74 0e
    24882493    push ax                                   ; 50
    2489     push 00118h                               ; 68 18 01
     2494    push 00128h                               ; 68 28 01
    24902495    push strict byte 00002h                   ; 6a 02
    24912496    call 018e9h                               ; e8 e2 f4
     
    24952500    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    24962501    push ax                                   ; 50
    2497     push 0011bh                               ; 68 1b 01
     2502    push 0012bh                               ; 68 2b 01
    24982503    push strict byte 00002h                   ; 6a 02
    24992504    call 018e9h                               ; e8 cc f4
     
    25022507    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    25032508    je short 0242eh                           ; 74 05
    2504     mov ax, 000ffh                            ; b8 ff 00
     2509    mov ax, 0010fh                            ; b8 0f 01
    25052510    jmp short 02431h                          ; eb 03
    2506     mov ax, 00106h                            ; b8 06 01
     2511    mov ax, 00116h                            ; b8 16 01
    25072512    push ax                                   ; 50
    25082513    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    25092514    push ax                                   ; 50
    2510     push 0010dh                               ; 68 0d 01
     2515    push 0011dh                               ; 68 1d 01
    25112516    push strict byte 00002h                   ; 6a 02
    25122517    call 018e9h                               ; e8 aa f4
     
    25182523    je short 0245bh                           ; 74 0e
    25192524    push ax                                   ; 50
    2520     push 00118h                               ; 68 18 01
     2525    push 00128h                               ; 68 28 01
    25212526    push strict byte 00002h                   ; 6a 02
    25222527    call 018e9h                               ; e8 93 f4
     
    25312536    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    25322537    push ax                                   ; 50
    2533     push 0013bh                               ; 68 3b 01
     2538    push 0014bh                               ; 68 4b 01
    25342539    jmp short 02480h                          ; eb 08
    25352540    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    25362541    push ax                                   ; 50
    2537     push 00155h                               ; 68 55 01
     2542    push 00165h                               ; 68 65 01
    25382543    push strict byte 00002h                   ; 6a 02
    25392544    call 018e9h                               ; e8 64 f4
     
    25422547    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    25432548    je short 02495h                           ; 74 05
    2544     mov ax, 000ffh                            ; b8 ff 00
     2549    mov ax, 0010fh                            ; b8 0f 01
    25452550    jmp short 02498h                          ; eb 03
    2546     mov ax, 00106h                            ; b8 06 01
     2551    mov ax, 00116h                            ; b8 16 01
    25472552    push ax                                   ; 50
    25482553    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
    25492554    push ax                                   ; 50
    2550     push 00167h                               ; 68 67 01
     2555    push 00177h                               ; 68 77 01
    25512556    push strict byte 00002h                   ; 6a 02
    25522557    call 018e9h                               ; e8 43 f4
     
    29022907    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    29032908    jne short 0283ah                          ; 75 1f
    2904     mov bx, 00cech                            ; bb ec 0c
     2909    mov bx, 00d32h                            ; bb 32 0d
    29052910    mov cx, ds                                ; 8c d9
    29062911    mov ax, strict word 00004h                ; b8 04 00
    29072912    call 018aeh                               ; e8 88 f0
    2908     push 00181h                               ; 68 81 01
    2909     push 00190h                               ; 68 90 01
     2913    push 00191h                               ; 68 91 01
     2914    push 001a0h                               ; 68 a0 01
    29102915    push strict byte 00004h                   ; 6a 04
    29112916    call 018e9h                               ; e8 b8 f0
     
    31843189    pop si                                    ; 5e
    31853190    retn 0000ch                               ; c2 0c 00
    3186 set_diskette_ret_status_:                    ; 0xf2acd LB 0x15
     3191ata_soft_reset_:                             ; 0xf2acd LB 0x7d
     3192    push bx                                   ; 53
     3193    push cx                                   ; 51
     3194    push dx                                   ; 52
     3195    enter 00002h, 000h                        ; c8 02 00 00
     3196    mov bx, ax                                ; 89 c3
     3197    mov dx, strict word 0000eh                ; ba 0e 00
     3198    mov ax, strict word 00040h                ; b8 40 00
     3199    call 0161ch                               ; e8 3d eb
     3200    mov dx, bx                                ; 89 da
     3201    shr dx, 1                                 ; d1 ea
     3202    and bl, 001h                              ; 80 e3 01
     3203    mov byte [bp-002h], bl                    ; 88 5e fe
     3204    xor dh, dh                                ; 30 f6
     3205    imul bx, dx, strict byte 00006h           ; 6b da 06
     3206    mov es, ax                                ; 8e c0
     3207    add bx, 00122h                            ; 81 c3 22 01
     3208    mov cx, word [es:bx+001c2h]               ; 26 8b 8f c2 01
     3209    mov bx, word [es:bx+001c4h]               ; 26 8b 9f c4 01
     3210    lea dx, [bx+006h]                         ; 8d 57 06
     3211    mov AL, strict byte 00ah                  ; b0 0a
     3212    out DX, AL                                ; ee
     3213    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     3214    je short 02b0fh                           ; 74 05
     3215    mov ax, 000b0h                            ; b8 b0 00
     3216    jmp short 02b12h                          ; eb 03
     3217    mov ax, 000a0h                            ; b8 a0 00
     3218    mov dx, cx                                ; 89 ca
     3219    add dx, strict byte 00006h                ; 83 c2 06
     3220    out DX, AL                                ; ee
     3221    mov dx, cx                                ; 89 ca
     3222    add dx, strict byte 00007h                ; 83 c2 07
     3223    mov AL, strict byte 008h                  ; b0 08
     3224    out DX, AL                                ; ee
     3225    mov dx, cx                                ; 89 ca
     3226    add dx, strict byte 00007h                ; 83 c2 07
     3227    in AL, DX                                 ; ec
     3228    db  02ah, 0e4h
     3229    ; sub ah, ah                                ; 2a e4
     3230    test AL, strict byte 080h                 ; a8 80
     3231    jne short 02b20h                          ; 75 f4
     3232    and AL, strict byte 0e9h                  ; 24 e9
     3233    cmp AL, strict byte 040h                  ; 3c 40
     3234    je short 02b3dh                           ; 74 0b
     3235    lea dx, [bx+006h]                         ; 8d 57 06
     3236    mov AL, strict byte 008h                  ; b0 08
     3237    out DX, AL                                ; ee
     3238    mov ax, strict word 00001h                ; b8 01 00
     3239    jmp short 02b45h                          ; eb 08
     3240    lea dx, [bx+006h]                         ; 8d 57 06
     3241    mov AL, strict byte 008h                  ; b0 08
     3242    out DX, AL                                ; ee
     3243    xor ax, ax                                ; 31 c0
     3244    leave                                     ; c9
     3245    pop dx                                    ; 5a
     3246    pop cx                                    ; 59
     3247    pop bx                                    ; 5b
     3248    retn                                      ; c3
     3249set_diskette_ret_status_:                    ; 0xf2b4a LB 0x15
    31873250    push bx                                   ; 53
    31883251    push dx                                   ; 52
     
    31923255    mov dx, strict word 00041h                ; ba 41 00
    31933256    mov ax, strict word 00040h                ; b8 40 00
    3194     call 0160eh                               ; e8 30 eb
     3257    call 0160eh                               ; e8 b3 ea
    31953258    pop bp                                    ; 5d
    31963259    pop dx                                    ; 5a
    31973260    pop bx                                    ; 5b
    31983261    retn                                      ; c3
    3199 set_diskette_current_cyl_:                   ; 0xf2ae2 LB 0x2a
     3262set_diskette_current_cyl_:                   ; 0xf2b5f LB 0x2a
    32003263    push bx                                   ; 53
    32013264    push bp                                   ; 55
     
    32033266    mov bl, al                                ; 88 c3
    32043267    cmp AL, strict byte 001h                  ; 3c 01
    3205     jbe short 02af7h                          ; 76 0b
    3206     push 001b0h                               ; 68 b0 01
     3268    jbe short 02b74h                          ; 76 0b
     3269    push 001c0h                               ; 68 c0 01
    32073270    push strict byte 00007h                   ; 6a 07
    3208     call 018e9h                               ; e8 f5 ed
     3271    call 018e9h                               ; e8 78 ed
    32093272    add sp, strict byte 00004h                ; 83 c4 04
    32103273    movzx ax, dl                              ; 0f b6 c2
     
    32133276    mov bx, ax                                ; 89 c3
    32143277    mov ax, strict word 00040h                ; b8 40 00
    3215     call 0160eh                               ; e8 05 eb
     3278    call 0160eh                               ; e8 88 ea
    32163279    pop bp                                    ; 5d
    32173280    pop bx                                    ; 5b
    32183281    retn                                      ; c3
    3219 floppy_reset_controller_:                    ; 0xf2b0c LB 0x28
     3282floppy_reset_controller_:                    ; 0xf2b89 LB 0x28
    32203283    push bx                                   ; 53
    32213284    push dx                                   ; 52
     
    32393302    and AL, strict byte 0c0h                  ; 24 c0
    32403303    cmp AL, strict byte 080h                  ; 3c 80
    3241     jne short 02b24h                          ; 75 f4
     3304    jne short 02ba1h                          ; 75 f4
    32423305    pop bp                                    ; 5d
    32433306    pop dx                                    ; 5a
    32443307    pop bx                                    ; 5b
    32453308    retn                                      ; c3
    3246 floppy_prepare_controller_:                  ; 0xf2b34 LB 0x8c
     3309floppy_prepare_controller_:                  ; 0xf2bb1 LB 0x8c
    32473310    push bx                                   ; 53
    32483311    push cx                                   ; 51
     
    32523315    mov dx, strict word 0003eh                ; ba 3e 00
    32533316    mov ax, strict word 00040h                ; b8 40 00
    3254     call 01600h                               ; e8 ba ea
     3317    call 01600h                               ; e8 3d ea
    32553318    and AL, strict byte 07fh                  ; 24 7f
    32563319    movzx bx, al                              ; 0f b6 d8
    32573320    mov dx, strict word 0003eh                ; ba 3e 00
    32583321    mov ax, strict word 00040h                ; b8 40 00
    3259     call 0160eh                               ; e8 ba ea
     3322    call 0160eh                               ; e8 3d ea
    32603323    mov dx, 003f2h                            ; ba f2 03
    32613324    in AL, DX                                 ; ec
     
    32653328    mov byte [bp-002h], al                    ; 88 46 fe
    32663329    test cx, cx                               ; 85 c9
    3267     je short 02b67h                           ; 74 04
     3330    je short 02be4h                           ; 74 04
    32683331    mov AL, strict byte 020h                  ; b0 20
    3269     jmp short 02b69h                          ; eb 02
     3332    jmp short 02be6h                          ; eb 02
    32703333    mov AL, strict byte 010h                  ; b0 10
    32713334    or AL, strict byte 00ch                   ; 0c 0c
     
    32763339    mov dx, strict word 00040h                ; ba 40 00
    32773340    mov ax, dx                                ; 89 d0
    3278     call 0160eh                               ; e8 92 ea
     3341    call 0160eh                               ; e8 15 ea
    32793342    mov dx, 0008bh                            ; ba 8b 00
    32803343    mov ax, strict word 00040h                ; b8 40 00
    3281     call 01600h                               ; e8 7b ea
     3344    call 01600h                               ; e8 fe e9
    32823345    shr al, 006h                              ; c0 e8 06
    32833346    mov dx, 003f7h                            ; ba f7 03
     
    32893352    and AL, strict byte 0c0h                  ; 24 c0
    32903353    cmp AL, strict byte 080h                  ; 3c 80
    3291     jne short 02b8ch                          ; 75 f4
     3354    jne short 02c09h                          ; 75 f4
    32923355    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3293     jne short 02bbbh                          ; 75 1d
     3356    jne short 02c38h                          ; 75 1d
    32943357    sti                                       ; fb
    32953358    mov dx, strict word 0003eh                ; ba 3e 00
    32963359    mov ax, strict word 00040h                ; b8 40 00
    3297     call 01600h                               ; e8 58 ea
     3360    call 01600h                               ; e8 db e9
    32983361    test AL, strict byte 080h                 ; a8 80
    3299     je short 02b9fh                           ; 74 f3
     3362    je short 02c1ch                           ; 74 f3
    33003363    and AL, strict byte 07fh                  ; 24 7f
    33013364    cli                                       ; fa
     
    33033366    mov dx, strict word 0003eh                ; ba 3e 00
    33043367    mov ax, strict word 00040h                ; b8 40 00
    3305     call 0160eh                               ; e8 53 ea
     3368    call 0160eh                               ; e8 d6 e9
    33063369    leave                                     ; c9
    33073370    pop dx                                    ; 5a
     
    33093372    pop bx                                    ; 5b
    33103373    retn                                      ; c3
    3311 floppy_media_known_:                         ; 0xf2bc0 LB 0x40
     3374floppy_media_known_:                         ; 0xf2c3d LB 0x40
    33123375    push bx                                   ; 53
    33133376    push dx                                   ; 52
     
    33173380    mov dx, strict word 0003eh                ; ba 3e 00
    33183381    mov ax, strict word 00040h                ; b8 40 00
    3319     call 01600h                               ; e8 30 ea
     3382    call 01600h                               ; e8 b3 e9
    33203383    mov ah, al                                ; 88 c4
    33213384    test bx, bx                               ; 85 db
    3322     je short 02bd8h                           ; 74 02
     3385    je short 02c55h                           ; 74 02
    33233386    shr al, 1                                 ; d0 e8
    33243387    and AL, strict byte 001h                  ; 24 01
    3325     jne short 02be0h                          ; 75 04
     3388    jne short 02c5dh                          ; 75 04
    33263389    xor ah, ah                                ; 30 e4
    3327     jmp short 02bfch                          ; eb 1c
     3390    jmp short 02c79h                          ; eb 1c
    33283391    mov dx, 00090h                            ; ba 90 00
    33293392    test bx, bx                               ; 85 db
    3330     je short 02beah                           ; 74 03
     3393    je short 02c67h                           ; 74 03
    33313394    mov dx, 00091h                            ; ba 91 00
    33323395    mov ax, strict word 00040h                ; b8 40 00
    3333     call 01600h                               ; e8 10 ea
     3396    call 01600h                               ; e8 93 e9
    33343397    xor ah, ah                                ; 30 e4
    33353398    sar ax, 004h                              ; c1 f8 04
    33363399    and AL, strict byte 001h                  ; 24 01
    3337     je short 02bdch                           ; 74 e3
     3400    je short 02c59h                           ; 74 e3
    33383401    mov ax, strict word 00001h                ; b8 01 00
    33393402    pop bp                                    ; 5d
     
    33413404    pop bx                                    ; 5b
    33423405    retn                                      ; c3
    3343 floppy_read_id_:                             ; 0xf2c00 LB 0x49
     3406floppy_read_id_:                             ; 0xf2c7d LB 0x49
    33443407    push bx                                   ; 53
    33453408    push dx                                   ; 52
     
    33473410    enter 00008h, 000h                        ; c8 08 00 00
    33483411    mov bx, ax                                ; 89 c3
    3349     call 02b34h                               ; e8 28 ff
     3412    call 02bb1h                               ; e8 28 ff
    33503413    mov AL, strict byte 04ah                  ; b0 4a
    33513414    mov dx, 003f5h                            ; ba f5 03
     
    33563419    mov dx, strict word 0003eh                ; ba 3e 00
    33573420    mov ax, strict word 00040h                ; b8 40 00
    3358     call 01600h                               ; e8 e1 e9
     3421    call 01600h                               ; e8 64 e9
    33593422    and AL, strict byte 080h                  ; 24 80
    33603423    test al, al                               ; 84 c0
    3361     je short 02c16h                           ; 74 f1
     3424    je short 02c93h                           ; 74 f1
    33623425    cli                                       ; fa
    33633426    xor si, si                                ; 31 f6
    3364     jmp short 02c2fh                          ; eb 05
     3427    jmp short 02cach                          ; eb 05
    33653428    cmp si, strict byte 00007h                ; 83 fe 07
    3366     jnl short 02c3bh                          ; 7d 0c
     3429    jnl short 02cb8h                          ; 7d 0c
    33673430    mov dx, 003f5h                            ; ba f5 03
    33683431    in AL, DX                                 ; ec
     
    33713434    mov byte [bp+si-008h], al                 ; 88 42 f8
    33723435    inc si                                    ; 46
    3373     jmp short 02c2ah                          ; eb ef
     3436    jmp short 02ca7h                          ; eb ef
    33743437    test byte [bp-008h], 0c0h                 ; f6 46 f8 c0
    33753438    db  00fh, 094h, 0c0h
     
    33813444    pop bx                                    ; 5b
    33823445    retn                                      ; c3
    3383 floppy_drive_recal_:                         ; 0xf2c49 LB 0x5e
     3446floppy_drive_recal_:                         ; 0xf2cc6 LB 0x5e
    33843447    push bx                                   ; 53
    33853448    push cx                                   ; 51
     
    33883451    mov bp, sp                                ; 89 e5
    33893452    mov bx, ax                                ; 89 c3
    3390     call 02b34h                               ; e8 e0 fe
     3453    call 02bb1h                               ; e8 e0 fe
    33913454    mov AL, strict byte 007h                  ; b0 07
    33923455    mov dx, 003f5h                            ; ba f5 03
     
    33973460    mov dx, strict word 0003eh                ; ba 3e 00
    33983461    mov ax, strict word 00040h                ; b8 40 00
    3399     call 01600h                               ; e8 99 e9
     3462    call 01600h                               ; e8 1c e9
    34003463    and AL, strict byte 080h                  ; 24 80
    34013464    test al, al                               ; 84 c0
    3402     je short 02c5eh                           ; 74 f1
     3465    je short 02cdbh                           ; 74 f1
    34033466    cli                                       ; fa
    34043467    mov dx, strict word 0003eh                ; ba 3e 00
    34053468    mov ax, strict word 00040h                ; b8 40 00
    3406     call 01600h                               ; e8 89 e9
     3469    call 01600h                               ; e8 0c e9
    34073470    and AL, strict byte 07fh                  ; 24 7f
    34083471    test bx, bx                               ; 85 db
    3409     je short 02c84h                           ; 74 07
     3472    je short 02d01h                           ; 74 07
    34103473    or AL, strict byte 002h                   ; 0c 02
    34113474    mov cx, 00095h                            ; b9 95 00
    3412     jmp short 02c89h                          ; eb 05
     3475    jmp short 02d06h                          ; eb 05
    34133476    or AL, strict byte 001h                   ; 0c 01
    34143477    mov cx, 00094h                            ; b9 94 00
     
    34163479    mov dx, strict word 0003eh                ; ba 3e 00
    34173480    mov ax, strict word 00040h                ; b8 40 00
    3418     call 0160eh                               ; e8 79 e9
     3481    call 0160eh                               ; e8 fc e8
    34193482    xor bx, bx                                ; 31 db
    34203483    mov dx, cx                                ; 89 ca
    34213484    mov ax, strict word 00040h                ; b8 40 00
    3422     call 0160eh                               ; e8 6f e9
     3485    call 0160eh                               ; e8 f2 e8
    34233486    mov ax, strict word 00001h                ; b8 01 00
    34243487    pop bp                                    ; 5d
     
    34273490    pop bx                                    ; 5b
    34283491    retn                                      ; c3
    3429 floppy_media_sense_:                         ; 0xf2ca7 LB 0xfa
     3492floppy_media_sense_:                         ; 0xf2d24 LB 0xfa
    34303493    push bx                                   ; 53
    34313494    push cx                                   ; 51
     
    34363499    mov bp, sp                                ; 89 e5
    34373500    mov di, ax                                ; 89 c7
    3438     call 02c49h                               ; e8 95 ff
     3501    call 02cc6h                               ; e8 95 ff
    34393502    test ax, ax                               ; 85 c0
    3440     jne short 02cbdh                          ; 75 05
     3503    jne short 02d3ah                          ; 75 05
    34413504    xor cx, cx                                ; 31 c9
    3442     jmp near 02d98h                           ; e9 db 00
     3505    jmp near 02e15h                           ; e9 db 00
    34433506    mov ax, strict word 00010h                ; b8 10 00
    3444     call 0165ch                               ; e8 99 e9
     3507    call 0165ch                               ; e8 1c e9
    34453508    test di, di                               ; 85 ff
    3446     jne short 02cceh                          ; 75 07
     3509    jne short 02d4bh                          ; 75 07
    34473510    mov cl, al                                ; 88 c1
    34483511    shr cl, 004h                              ; c0 e9 04
    3449     jmp short 02cd3h                          ; eb 05
     3512    jmp short 02d50h                          ; eb 05
    34503513    mov cl, al                                ; 88 c1
    34513514    and cl, 00fh                              ; 80 e1 0f
    34523515    cmp cl, 001h                              ; 80 f9 01
    3453     jne short 02ce1h                          ; 75 09
     3516    jne short 02d5eh                          ; 75 09
    34543517    xor cl, cl                                ; 30 c9
    34553518    mov CH, strict byte 015h                  ; b5 15
    34563519    mov si, strict word 00001h                ; be 01 00
    3457     jmp short 02d2ch                          ; eb 4b
     3520    jmp short 02da9h                          ; eb 4b
    34583521    cmp cl, 002h                              ; 80 f9 02
    3459     jne short 02cech                          ; 75 06
     3522    jne short 02d69h                          ; 75 06
    34603523    xor cl, cl                                ; 30 c9
    34613524    mov CH, strict byte 035h                  ; b5 35
    3462     jmp short 02cdch                          ; eb f0
     3525    jmp short 02d59h                          ; eb f0
    34633526    cmp cl, 003h                              ; 80 f9 03
    3464     jne short 02cf7h                          ; 75 06
     3527    jne short 02d74h                          ; 75 06
    34653528    xor cl, cl                                ; 30 c9
    34663529    mov CH, strict byte 017h                  ; b5 17
    3467     jmp short 02cdch                          ; eb e5
     3530    jmp short 02d59h                          ; eb e5
    34683531    cmp cl, 004h                              ; 80 f9 04
    3469     jne short 02d02h                          ; 75 06
     3532    jne short 02d7fh                          ; 75 06
    34703533    xor cl, cl                                ; 30 c9
    34713534    mov CH, strict byte 017h                  ; b5 17
    3472     jmp short 02cdch                          ; eb da
     3535    jmp short 02d59h                          ; eb da
    34733536    cmp cl, 005h                              ; 80 f9 05
    3474     jne short 02d0dh                          ; 75 06
     3537    jne short 02d8ah                          ; 75 06
    34753538    mov CL, strict byte 0cch                  ; b1 cc
    34763539    mov CH, strict byte 0d7h                  ; b5 d7
    3477     jmp short 02cdch                          ; eb cf
     3540    jmp short 02d59h                          ; eb cf
    34783541    cmp cl, 006h                              ; 80 f9 06
    3479     jne short 02d18h                          ; 75 06
     3542    jne short 02d95h                          ; 75 06
    34803543    xor cl, cl                                ; 30 c9
    34813544    mov CH, strict byte 027h                  ; b5 27
    3482     jmp short 02cdch                          ; eb c4
     3545    jmp short 02d59h                          ; eb c4
    34833546    cmp cl, 007h                              ; 80 f9 07
    3484     jne short 02d1fh                          ; 75 02
    3485     jmp short 02d12h                          ; eb f3
     3547    jne short 02d9ch                          ; 75 02
     3548    jmp short 02d8fh                          ; eb f3
    34863549    cmp cl, 008h                              ; 80 f9 08
    3487     jne short 02d26h                          ; 75 02
    3488     jmp short 02d12h                          ; eb ec
     3550    jne short 02da3h                          ; 75 02
     3551    jmp short 02d8fh                          ; eb ec
    34893552    xor cl, cl                                ; 30 c9
    34903553    xor ch, ch                                ; 30 ed
     
    34933556    mov dx, 0008bh                            ; ba 8b 00
    34943557    mov ax, strict word 00040h                ; b8 40 00
    3495     call 0160eh                               ; e8 d6 e8
     3558    call 0160eh                               ; e8 59 e8
    34963559    mov ax, di                                ; 89 f8
    3497     call 02c00h                               ; e8 c3 fe
     3560    call 02c7dh                               ; e8 c3 fe
    34983561    test ax, ax                               ; 85 c0
    3499     jne short 02d73h                          ; 75 32
     3562    jne short 02df0h                          ; 75 32
    35003563    mov al, cl                                ; 88 c8
    35013564    and AL, strict byte 0c0h                  ; 24 c0
    35023565    cmp AL, strict byte 080h                  ; 3c 80
    3503     je short 02d73h                           ; 74 2a
     3566    je short 02df0h                           ; 74 2a
    35043567    mov al, cl                                ; 88 c8
    35053568    and AL, strict byte 0c0h                  ; 24 c0
    35063569    cmp AL, strict byte 0c0h                  ; 3c c0
    3507     je short 02d60h                           ; 74 0f
     3570    je short 02dddh                           ; 74 0f
    35083571    mov ah, cl                                ; 88 cc
    35093572    and ah, 03fh                              ; 80 e4 3f
    35103573    cmp AL, strict byte 040h                  ; 3c 40
    3511     je short 02d6ch                           ; 74 12
     3574    je short 02de9h                           ; 74 12
    35123575    test al, al                               ; 84 c0
    3513     je short 02d65h                           ; 74 07
    3514     jmp short 02d2ch                          ; eb cc
     3576    je short 02de2h                           ; 74 07
     3577    jmp short 02da9h                          ; eb cc
    35153578    and cl, 03fh                              ; 80 e1 3f
    3516     jmp short 02d2ch                          ; eb c7
     3579    jmp short 02da9h                          ; eb c7
    35173580    mov cl, ah                                ; 88 e1
    35183581    or cl, 040h                               ; 80 c9 40
    3519     jmp short 02d2ch                          ; eb c0
     3582    jmp short 02da9h                          ; eb c0
    35203583    mov cl, ah                                ; 88 e1
    35213584    or cl, 080h                               ; 80 c9 80
    3522     jmp short 02d2ch                          ; eb b9
     3585    jmp short 02da9h                          ; eb b9
    35233586    test di, di                               ; 85 ff
    35243587    db  00fh, 095h, 0c0h
     
    35293592    mov dx, 0008bh                            ; ba 8b 00
    35303593    mov ax, strict word 00040h                ; b8 40 00
    3531     call 0160eh                               ; e8 83 e8
     3594    call 0160eh                               ; e8 06 e8
    35323595    movzx bx, ch                              ; 0f b6 dd
    35333596    mov dx, di                                ; 89 fa
    35343597    mov ax, strict word 00040h                ; b8 40 00
    3535     call 0160eh                               ; e8 78 e8
     3598    call 0160eh                               ; e8 fb e7
    35363599    mov cx, si                                ; 89 f1
    35373600    mov ax, cx                                ; 89 c8
     
    35433606    pop bx                                    ; 5b
    35443607    retn                                      ; c3
    3545 floppy_drive_exists_:                        ; 0xf2da1 LB 0x33
     3608floppy_drive_exists_:                        ; 0xf2e1e LB 0x33
    35463609    push dx                                   ; 52
    35473610    push bp                                   ; 55
     
    35493612    mov dx, ax                                ; 89 c2
    35503613    mov ax, strict word 00010h                ; b8 10 00
    3551     call 0165ch                               ; e8 af e8
     3614    call 0165ch                               ; e8 32 e8
    35523615    test dx, dx                               ; 85 d2
    3553     jne short 02db6h                          ; 75 05
     3616    jne short 02e33h                          ; 75 05
    35543617    shr al, 004h                              ; c0 e8 04
    3555     jmp short 02db8h                          ; eb 02
     3618    jmp short 02e35h                          ; eb 02
    35563619    and AL, strict byte 00fh                  ; 24 0f
    35573620    test al, al                               ; 84 c0
     
    35623625    pop dx                                    ; 5a
    35633626    retn                                      ; c3
    3564     mov byte [si], dh                         ; 88 34
    3565     xchg bx, ax                               ; 93
    3566     xor AL, strict byte 09dh                  ; 34 9d
    3567     xor AL, strict byte 0a4h                  ; 34 a4
    3568     xor AL, strict byte 0abh                  ; 34 ab
    3569     xor AL, strict byte 0b2h                  ; 34 b2
    3570     xor AL, strict byte 0b9h                  ; 34 b9
    3571     xor AL, strict byte 0c3h                  ; 34 c3
    3572     xor AL, strict byte 0cah                  ; 34 ca
    3573     db  034h
    3574 _int13_diskette_function:                    ; 0xf2dd4 LB 0x799
     3627    sti                                       ; fb
     3628    xor AL, strict byte 006h                  ; 34 06
     3629    xor ax, 03510h                            ; 35 10 35
     3630    pop SS                                    ; 17
     3631    xor ax, 0351eh                            ; 35 1e 35
     3632    and ax, 02c35h                            ; 25 35 2c
     3633    xor ax, 03536h                            ; 35 36 35
     3634    db  03dh
     3635    db  035h
     3636_int13_diskette_function:                    ; 0xf2e51 LB 0x78f
    35753637    push si                                   ; 56
    35763638    push di                                   ; 57
     
    35833645    mov ah, byte [bp+012h]                    ; 8a 66 12
    35843646    cmp bl, 008h                              ; 80 fb 08
    3585     jc short 02e2bh                           ; 72 3a
     3647    jc short 02ea8h                           ; 72 3a
    35863648    mov dx, word [bp+020h]                    ; 8b 56 20
    35873649    or dl, 001h                               ; 80 ca 01
    35883650    cmp bl, 008h                              ; 80 fb 08
    3589     jbe near 03409h                           ; 0f 86 0b 06
     3651    jbe near 0347ch                           ; 0f 86 01 06
    35903652    cmp bl, 016h                              ; 80 fb 16
    3591     jc short 02e21h                           ; 72 1e
     3653    jc short 02e9eh                           ; 72 1e
    35923654    or si, 00100h                             ; 81 ce 00 01
    35933655    mov cx, si                                ; 89 f1
    35943656    cmp bl, 016h                              ; 80 fb 16
    3595     jbe near 03528h                           ; 0f 86 18 07
     3657    jbe near 0359bh                           ; 0f 86 0e 07
    35963658    cmp bl, 018h                              ; 80 fb 18
    3597     je near 0352dh                            ; 0f 84 16 07
     3659    je near 035a0h                            ; 0f 84 0c 07
    35983660    cmp bl, 017h                              ; 80 fb 17
    3599     je near 0352dh                            ; 0f 84 0f 07
    3600     jmp near 0354ah                           ; e9 29 07
     3661    je near 035a0h                            ; 0f 84 05 07
     3662    jmp near 035bdh                           ; e9 1f 07
    36013663    cmp bl, 015h                              ; 80 fb 15
    3602     je near 034ech                            ; 0f 84 c4 06
    3603     jmp near 0354ah                           ; e9 1f 07
     3664    je near 0355fh                            ; 0f 84 ba 06
     3665    jmp near 035bdh                           ; e9 15 07
    36043666    cmp bl, 001h                              ; 80 fb 01
    3605     jc short 02e45h                           ; 72 15
    3606     jbe near 02ebbh                           ; 0f 86 87 00
     3667    jc short 02ec2h                           ; 72 15
     3668    jbe near 02f38h                           ; 0f 86 87 00
    36073669    cmp bl, 005h                              ; 80 fb 05
    3608     je near 03262h                            ; 0f 84 27 04
     3670    je near 032d5h                            ; 0f 84 1d 04
    36093671    cmp bl, 004h                              ; 80 fb 04
    3610     jbe near 02ed9h                           ; 0f 86 97 00
    3611     jmp near 0354ah                           ; e9 05 07
     3672    jbe near 02f56h                           ; 0f 86 97 00
     3673    jmp near 035bdh                           ; e9 fb 06
    36123674    test bl, bl                               ; 84 db
    3613     jne near 0354ah                           ; 0f 85 ff 06
     3675    jne near 035bdh                           ; 0f 85 f5 06
    36143676    mov al, byte [bp+012h]                    ; 8a 46 12
    36153677    mov byte [bp-00ah], al                    ; 88 46 f6
    36163678    cmp AL, strict byte 001h                  ; 3c 01
    3617     jbe short 02e69h                          ; 76 14
     3679    jbe short 02ee6h                          ; 76 14
    36183680    mov ax, word [bp+01ah]                    ; 8b 46 1a
    36193681    xor ah, ah                                ; 30 e4
     
    36213683    mov word [bp+01ah], ax                    ; 89 46 1a
    36223684    mov ax, strict word 00001h                ; b8 01 00
    3623     call 02acdh                               ; e8 67 fc
    3624     jmp near 03234h                           ; e9 cb 03
     3685    call 02b4ah                               ; e8 67 fc
     3686    jmp near 032b1h                           ; e9 cb 03
    36253687    mov ax, strict word 00010h                ; b8 10 00
    3626     call 0165ch                               ; e8 ed e7
     3688    call 0165ch                               ; e8 70 e7
    36273689    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3628     jne short 02e7ch                          ; 75 07
     3690    jne short 02ef9h                          ; 75 07
    36293691    mov bl, al                                ; 88 c3
    36303692    shr bl, 004h                              ; c0 eb 04
    3631     jmp short 02e81h                          ; eb 05
     3693    jmp short 02efeh                          ; eb 05
    36323694    mov bl, al                                ; 88 c3
    36333695    and bl, 00fh                              ; 80 e3 0f
    36343696    test bl, bl                               ; 84 db
    3635     jne short 02e95h                          ; 75 10
     3697    jne short 02f12h                          ; 75 10
    36363698    mov ax, word [bp+01ah]                    ; 8b 46 1a
    36373699    xor ah, ah                                ; 30 e4
     
    36393701    mov word [bp+01ah], ax                    ; 89 46 1a
    36403702    mov ax, 00080h                            ; b8 80 00
    3641     jmp short 02e63h                          ; eb ce
     3703    jmp short 02ee0h                          ; eb ce
    36423704    xor bx, bx                                ; 31 db
    36433705    mov dx, strict word 0003eh                ; ba 3e 00
    36443706    mov ax, strict word 00040h                ; b8 40 00
    3645     call 0160eh                               ; e8 6e e7
     3707    call 0160eh                               ; e8 f1 e6
    36463708    xor al, al                                ; 30 c0
    36473709    mov byte [bp+01bh], al                    ; 88 46 1b
    36483710    xor ah, ah                                ; 30 e4
    3649     call 02acdh                               ; e8 23 fc
     3711    call 02b4ah                               ; e8 23 fc
    36503712    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    36513713    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    36523714    xor dx, dx                                ; 31 d2
    3653     call 02ae2h                               ; e8 2b fc
     3715    call 02b5fh                               ; e8 2b fc
    36543716    leave                                     ; c9
    36553717    pop di                                    ; 5f
     
    36593721    mov dx, 00441h                            ; ba 41 04
    36603722    xor ax, ax                                ; 31 c0
    3661     call 01600h                               ; e8 39 e7
     3723    call 01600h                               ; e8 bc e6
    36623724    movzx dx, al                              ; 0f b6 d0
    36633725    sal dx, 008h                              ; c1 e2 08
     
    36653727    mov word [bp+01ah], si                    ; 89 76 1a
    36663728    test al, al                               ; 84 c0
    3667     je short 02eb7h                           ; 74 e1
    3668     jmp near 03234h                           ; e9 5b 03
     3729    je short 02f34h                           ; 74 e1
     3730    jmp near 032b1h                           ; e9 5b 03
    36693731    mov al, byte [bp+01ah]                    ; 8a 46 1a
    36703732    mov byte [bp-008h], al                    ; 88 46 f8
     
    36793741    mov byte [bp-00ah], ah                    ; 88 66 f6
    36803742    cmp ah, 001h                              ; 80 fc 01
    3681     jnbe short 02f0fh                         ; 77 10
     3743    jnbe short 02f8ch                         ; 77 10
    36823744    cmp dl, 001h                              ; 80 fa 01
    3683     jnbe short 02f0fh                         ; 77 0b
     3745    jnbe short 02f8ch                         ; 77 0b
    36843746    mov al, byte [bp-008h]                    ; 8a 46 f8
    36853747    test al, al                               ; 84 c0
    3686     je short 02f0fh                           ; 74 04
     3748    je short 02f8ch                           ; 74 04
    36873749    cmp AL, strict byte 048h                  ; 3c 48
    3688     jbe short 02f38h                          ; 76 29
    3689     mov bx, 00cech                            ; bb ec 0c
     3750    jbe short 02fb5h                          ; 76 29
     3751    mov bx, 00d32h                            ; bb 32 0d
    36903752    mov cx, ds                                ; 8c d9
    36913753    mov ax, strict word 00004h                ; b8 04 00
    3692     call 018aeh                               ; e8 94 e9
    3693     push 001d5h                               ; 68 d5 01
    3694     push 001edh                               ; 68 ed 01
     3754    call 018aeh                               ; e8 17 e9
     3755    push 001e5h                               ; 68 e5 01
     3756    push 001fdh                               ; 68 fd 01
    36953757    push strict byte 00004h                   ; 6a 04
    3696     call 018e9h                               ; e8 c4 e9
     3758    call 018e9h                               ; e8 47 e9
    36973759    add sp, strict byte 00006h                ; 83 c4 06
    36983760    mov ax, word [bp+01ah]                    ; 8b 46 1a
     
    37013763    mov word [bp+01ah], ax                    ; 89 46 1a
    37023764    mov ax, strict word 00001h                ; b8 01 00
    3703     jmp short 02fa9h                          ; eb 71
     3765    jmp short 03026h                          ; eb 71
    37043766    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3705     call 02da1h                               ; e8 62 fe
     3767    call 02e1eh                               ; e8 62 fe
    37063768    test ax, ax                               ; 85 c0
    3707     je near 03042h                            ; 0f 84 fd 00
     3769    je near 030bfh                            ; 0f 84 fd 00
    37083770    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    37093771    mov ax, dx                                ; 89 d0
    3710     call 02bc0h                               ; e8 72 fc
     3772    call 02c3dh                               ; e8 72 fc
    37113773    test ax, ax                               ; 85 c0
    3712     jne short 02f6bh                          ; 75 19
     3774    jne short 02fe8h                          ; 75 19
    37133775    mov ax, dx                                ; 89 d0
    3714     call 02ca7h                               ; e8 50 fd
     3776    call 02d24h                               ; e8 50 fd
    37153777    test ax, ax                               ; 85 c0
    3716     jne short 02f6bh                          ; 75 10
     3778    jne short 02fe8h                          ; 75 10
    37173779    mov ax, word [bp+01ah]                    ; 8b 46 1a
    37183780    xor ah, ah                                ; 30 e4
     
    37203782    mov word [bp+01ah], ax                    ; 89 46 1a
    37213783    mov ax, strict word 0000ch                ; b8 0c 00
    3722     jmp short 02fa9h                          ; eb 3e
     3784    jmp short 03026h                          ; eb 3e
    37233785    cmp ch, 002h                              ; 80 fd 02
    3724     jne near 03100h                           ; 0f 85 8e 01
     3786    jne near 0317dh                           ; 0f 85 8e 01
    37253787    mov dx, word [bp+00ah]                    ; 8b 56 0a
    37263788    shr dx, 00ch                              ; c1 ea 0c
     
    37313793    add bx, cx                                ; 01 cb
    37323794    cmp bx, cx                                ; 39 cb
    3733     jnc short 02f8bh                          ; 73 02
     3795    jnc short 03008h                          ; 73 02
    37343796    db  0feh, 0c4h
    37353797    ; inc ah                                    ; fe c4
     
    37403802    add dx, cx                                ; 01 ca
    37413803    cmp dx, bx                                ; 39 da
    3742     jnc short 02fb3h                          ; 73 18
     3804    jnc short 03030h                          ; 73 18
    37433805    mov ax, word [bp+01ah]                    ; 8b 46 1a
    37443806    xor ah, ah                                ; 30 e4
     
    37463808    mov word [bp+01ah], ax                    ; 89 46 1a
    37473809    mov ax, strict word 00009h                ; b8 09 00
    3748     call 02acdh                               ; e8 21 fb
     3810    call 02b4ah                               ; e8 21 fb
    37493811    mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    3750     jmp near 03234h                           ; e9 81 02
     3812    jmp near 032b1h                           ; e9 81 02
    37513813    mov AL, strict byte 006h                  ; b0 06
    37523814    mov dx, strict word 0000ah                ; ba 0a 00
     
    37813843    out DX, AL                                ; ee
    37823844    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3783     call 02b34h                               ; e8 3d fb
     3845    call 02bb1h                               ; e8 3d fb
    37843846    mov AL, strict byte 0e6h                  ; b0 e6
    37853847    mov dx, 003f5h                            ; ba f5 03
     
    38123874    mov dx, strict word 00040h                ; ba 40 00
    38133875    mov ax, dx                                ; 89 d0
    3814     call 01600h                               ; e8 c5 e5
     3876    call 01600h                               ; e8 48 e5
    38153877    test al, al                               ; 84 c0
    3816     jne short 03053h                          ; 75 14
    3817     call 02b0ch                               ; e8 ca fa
     3878    jne short 030d0h                          ; 75 14
     3879    call 02b89h                               ; e8 ca fa
    38183880    mov ax, word [bp+01ah]                    ; 8b 46 1a
    38193881    xor ah, ah                                ; 30 e4
     
    38213883    mov word [bp+01ah], ax                    ; 89 46 1a
    38223884    mov ax, 00080h                            ; b8 80 00
    3823     jmp near 02fa9h                           ; e9 56 ff
     3885    jmp near 03026h                           ; e9 56 ff
    38243886    mov dx, strict word 0003eh                ; ba 3e 00
    38253887    mov ax, strict word 00040h                ; b8 40 00
    3826     call 01600h                               ; e8 a4 e5
     3888    call 01600h                               ; e8 27 e5
    38273889    and AL, strict byte 080h                  ; 24 80
    38283890    test al, al                               ; 84 c0
    3829     je short 03033h                           ; 74 d1
     3891    je short 030b0h                           ; 74 d1
    38303892    cli                                       ; fa
    38313893    mov dx, strict word 0003eh                ; ba 3e 00
    38323894    mov ax, strict word 00040h                ; b8 40 00
    3833     call 01600h                               ; e8 94 e5
     3895    call 01600h                               ; e8 17 e5
    38343896    and AL, strict byte 07fh                  ; 24 7f
    38353897    movzx bx, al                              ; 0f b6 d8
    38363898    mov dx, strict word 0003eh                ; ba 3e 00
    38373899    mov ax, strict word 00040h                ; b8 40 00
    3838     call 0160eh                               ; e8 94 e5
     3900    call 0160eh                               ; e8 17 e5
    38393901    mov dx, 003f4h                            ; ba f4 03
    38403902    in AL, DX                                 ; ec
     
    38433905    and AL, strict byte 0c0h                  ; 24 c0
    38443906    cmp AL, strict byte 0c0h                  ; 3c c0
    3845     je short 03094h                           ; 74 0e
    3846     push 001d5h                               ; 68 d5 01
    3847     push 00208h                               ; 68 08 02
     3907    je short 03111h                           ; 74 0e
     3908    push 001e5h                               ; 68 e5 01
     3909    push 00218h                               ; 68 18 02
    38483910    push strict byte 00007h                   ; 6a 07
    3849     call 018e9h                               ; e8 58 e8
     3911    call 018e9h                               ; e8 db e7
    38503912    add sp, strict byte 00006h                ; 83 c4 06
    38513913    xor si, si                                ; 31 f6
    3852     jmp short 0309dh                          ; eb 05
     3914    jmp short 0311ah                          ; eb 05
    38533915    cmp si, strict byte 00007h                ; 83 fe 07
    3854     jnl short 030b5h                          ; 7d 18
     3916    jnl short 03132h                          ; 7d 18
    38553917    mov dx, 003f5h                            ; ba f5 03
    38563918    in AL, DX                                 ; ec
     
    38613923    lea dx, [si+042h]                         ; 8d 54 42
    38623924    mov ax, strict word 00040h                ; b8 40 00
    3863     call 0160eh                               ; e8 5c e5
     3925    call 0160eh                               ; e8 df e4
    38643926    inc si                                    ; 46
    3865     jmp short 03098h                          ; eb e3
     3927    jmp short 03115h                          ; eb e3
    38663928    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    3867     je short 030cch                           ; 74 11
     3929    je short 03149h                           ; 74 11
    38683930    mov ax, word [bp+01ah]                    ; 8b 46 1a
    38693931    xor ah, ah                                ; 30 e4
     
    38713933    mov word [bp+01ah], ax                    ; 89 46 1a
    38723934    mov ax, strict word 00020h                ; b8 20 00
    3873     jmp near 02fa9h                           ; e9 dd fe
     3935    jmp near 03026h                           ; e9 dd fe
    38743936    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    38753937    sal ax, 009h                              ; c1 e0 09
     
    38893951    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    38903952    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3891     call 02ae2h                               ; e8 ed f9
     3953    call 02b5fh                               ; e8 ed f9
    38923954    mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    38933955    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    3894     jmp near 02eb7h                           ; e9 b7 fd
     3956    jmp near 02f34h                           ; e9 b7 fd
    38953957    cmp ch, 003h                              ; 80 fd 03
    3896     jne near 0324ch                           ; 0f 85 45 01
     3958    jne near 032bfh                           ; 0f 85 3b 01
    38973959    mov dx, word [bp+00ah]                    ; 8b 56 0a
    38983960    shr dx, 00ch                              ; c1 ea 0c
     
    39033965    add bx, cx                                ; 01 cb
    39043966    cmp bx, cx                                ; 39 cb
    3905     jnc short 03120h                          ; 73 02
     3967    jnc short 0319dh                          ; 73 02
    39063968    db  0feh, 0c4h
    39073969    ; inc ah                                    ; fe c4
     
    39123974    add dx, cx                                ; 01 ca
    39133975    cmp dx, bx                                ; 39 da
    3914     jc near 02f9bh                            ; 0f 82 69 fe
     3976    jc near 03018h                            ; 0f 82 69 fe
    39153977    mov AL, strict byte 006h                  ; b0 06
    39163978    mov dx, strict word 0000ah                ; ba 0a 00
     
    39444006    out DX, AL                                ; ee
    39454007    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3946     call 02b34h                               ; e8 bf f9
     4008    call 02bb1h                               ; e8 bf f9
    39474009    mov AL, strict byte 0c5h                  ; b0 c5
    39484010    mov dx, 003f5h                            ; ba f5 03
     
    39754037    mov dx, strict word 00040h                ; ba 40 00
    39764038    mov ax, dx                                ; 89 d0
    3977     call 01600h                               ; e8 47 e4
     4039    call 01600h                               ; e8 ca e3
    39784040    test al, al                               ; 84 c0
    3979     je near 0303fh                            ; 0f 84 80 fe
     4041    je near 030bch                            ; 0f 84 80 fe
    39804042    mov dx, strict word 0003eh                ; ba 3e 00
    39814043    mov ax, strict word 00040h                ; b8 40 00
    3982     call 01600h                               ; e8 38 e4
     4044    call 01600h                               ; e8 bb e3
    39834045    and AL, strict byte 080h                  ; 24 80
    39844046    test al, al                               ; 84 c0
    3985     je short 031b1h                           ; 74 e3
     4047    je short 0322eh                           ; 74 e3
    39864048    cli                                       ; fa
    39874049    mov dx, strict word 0003eh                ; ba 3e 00
    39884050    mov ax, strict word 00040h                ; b8 40 00
    3989     call 01600h                               ; e8 28 e4
     4051    call 01600h                               ; e8 ab e3
    39904052    and AL, strict byte 07fh                  ; 24 7f
    39914053    movzx bx, al                              ; 0f b6 d8
    39924054    mov dx, strict word 0003eh                ; ba 3e 00
    39934055    mov ax, strict word 00040h                ; b8 40 00
    3994     call 0160eh                               ; e8 28 e4
     4056    call 0160eh                               ; e8 ab e3
    39954057    mov dx, 003f4h                            ; ba f4 03
    39964058    in AL, DX                                 ; ec
     
    39994061    and AL, strict byte 0c0h                  ; 24 c0
    40004062    cmp AL, strict byte 0c0h                  ; 3c c0
    4001     je short 03200h                           ; 74 0e
    4002     push 001d5h                               ; 68 d5 01
    4003     push 00208h                               ; 68 08 02
     4063    je short 0327dh                           ; 74 0e
     4064    push 001e5h                               ; 68 e5 01
     4065    push 00218h                               ; 68 18 02
    40044066    push strict byte 00007h                   ; 6a 07
    4005     call 018e9h                               ; e8 ec e6
     4067    call 018e9h                               ; e8 6f e6
    40064068    add sp, strict byte 00006h                ; 83 c4 06
    40074069    xor si, si                                ; 31 f6
    4008     jmp short 03209h                          ; eb 05
     4070    jmp short 03286h                          ; eb 05
    40094071    cmp si, strict byte 00007h                ; 83 fe 07
    4010     jnl short 03221h                          ; 7d 18
     4072    jnl short 0329eh                          ; 7d 18
    40114073    mov dx, 003f5h                            ; ba f5 03
    40124074    in AL, DX                                 ; ec
     
    40174079    lea dx, [si+042h]                         ; 8d 54 42
    40184080    mov ax, strict word 00040h                ; b8 40 00
    4019     call 0160eh                               ; e8 f0 e3
     4081    call 0160eh                               ; e8 73 e3
    40204082    inc si                                    ; 46
    4021     jmp short 03204h                          ; eb e3
     4083    jmp short 03281h                          ; eb e3
    40224084    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    4023     je near 030eah                            ; 0f 84 c1 fe
     4085    je near 03167h                            ; 0f 84 c1 fe
    40244086    test byte [bp-011h], 002h                 ; f6 46 ef 02
    4025     je short 0323bh                           ; 74 0c
     4087    je short 032b8h                           ; 74 0c
    40264088    mov word [bp+01ah], 00300h                ; c7 46 1a 00 03
    40274089    or byte [bp+020h], 001h                   ; 80 4e 20 01
    4028     jmp near 02eb7h                           ; e9 7c fc
    4029     push 001d5h                               ; 68 d5 01
    4030     push 0021ch                               ; 68 1c 02
    4031     push strict byte 00007h                   ; 6a 07
    4032     call 018e9h                               ; e8 a3 e6
    4033     add sp, strict byte 00006h                ; 83 c4 06
    4034     jmp near 030eah                           ; e9 9e fe
     4090    jmp near 02f34h                           ; e9 7c fc
     4091    mov word [bp+01ah], 00100h                ; c7 46 1a 00 01
     4092    jmp short 032b1h                          ; eb f2
    40354093    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    40364094    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4037     call 02ae2h                               ; e8 8b f8
     4095    call 02b5fh                               ; e8 95 f8
    40384096    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    40394097    mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    4040     jmp near 02eb7h                           ; e9 55 fc
     4098    jmp near 02f34h                           ; e9 5f fc
    40414099    mov al, byte [bp+01ah]                    ; 8a 46 1a
    40424100    mov byte [bp-008h], al                    ; 88 46 f8
     
    40494107    mov byte [bp-00ah], bl                    ; 88 5e f6
    40504108    cmp bl, 001h                              ; 80 fb 01
    4051     jnbe short 03296h                         ; 77 14
     4109    jnbe short 03309h                         ; 77 14
    40524110    cmp AL, strict byte 001h                  ; 3c 01
    4053     jnbe short 03296h                         ; 77 10
     4111    jnbe short 03309h                         ; 77 10
    40544112    cmp dl, 04fh                              ; 80 fa 4f
    4055     jnbe short 03296h                         ; 77 0b
     4113    jnbe short 03309h                         ; 77 0b
    40564114    mov al, byte [bp-008h]                    ; 8a 46 f8
    40574115    test al, al                               ; 84 c0
    4058     je short 03296h                           ; 74 04
     4116    je short 03309h                           ; 74 04
    40594117    cmp AL, strict byte 012h                  ; 3c 12
    4060     jbe short 032abh                          ; 76 15
     4118    jbe short 0331eh                          ; 76 15
    40614119    mov ax, word [bp+01ah]                    ; 8b 46 1a
    40624120    xor ah, ah                                ; 30 e4
     
    40644122    mov word [bp+01ah], ax                    ; 89 46 1a
    40654123    mov ax, strict word 00001h                ; b8 01 00
    4066     call 02acdh                               ; e8 26 f8
     4124    call 02b4ah                               ; e8 30 f8
    40674125    or byte [bp+020h], 001h                   ; 80 4e 20 01
    40684126    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4069     call 02da1h                               ; e8 ef fa
     4127    call 02e1eh                               ; e8 f9 fa
    40704128    test ax, ax                               ; 85 c0
    4071     je near 02e85h                            ; 0f 84 cd fb
     4129    je near 02f02h                            ; 0f 84 d7 fb
    40724130    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    40734131    mov ax, dx                                ; 89 d0
    4074     call 02bc0h                               ; e8 ff f8
     4132    call 02c3dh                               ; e8 09 f9
    40754133    test ax, ax                               ; 85 c0
    4076     jne short 032d0h                          ; 75 0b
     4134    jne short 03343h                          ; 75 0b
    40774135    mov ax, dx                                ; 89 d0
    4078     call 02ca7h                               ; e8 dd f9
     4136    call 02d24h                               ; e8 e7 f9
    40794137    test ax, ax                               ; 85 c0
    4080     je near 02f5bh                            ; 0f 84 8b fc
     4138    je near 02fd8h                            ; 0f 84 95 fc
    40814139    mov dx, word [bp+00ah]                    ; 8b 56 0a
    40824140    shr dx, 00ch                              ; c1 ea 0c
     
    40874145    add bx, cx                                ; 01 cb
    40884146    cmp bx, cx                                ; 39 cb
    4089     jnc short 032e9h                          ; 73 02
     4147    jnc short 0335ch                          ; 73 02
    40904148    db  0feh, 0c4h
    40914149    ; inc ah                                    ; fe c4
     
    40964154    add dx, cx                                ; 01 ca
    40974155    cmp dx, bx                                ; 39 da
    4098     jc near 02f9bh                            ; 0f 82 a0 fc
     4156    jc near 03018h                            ; 0f 82 aa fc
    40994157    mov AL, strict byte 006h                  ; b0 06
    41004158    mov dx, strict word 0000ah                ; ba 0a 00
     
    41284186    out DX, AL                                ; ee
    41294187    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4130     call 02b34h                               ; e8 f6 f7
     4188    call 02bb1h                               ; e8 00 f8
    41314189    mov AL, strict byte 04dh                  ; b0 4d
    41324190    mov dx, 003f5h                            ; ba f5 03
     
    41494207    mov dx, strict word 00040h                ; ba 40 00
    41504208    mov ax, dx                                ; 89 d0
    4151     call 01600h                               ; e8 95 e2
     4209    call 01600h                               ; e8 22 e2
    41524210    test al, al                               ; 84 c0
    4153     jne short 03375h                          ; 75 06
    4154     call 02b0ch                               ; e8 9a f7
    4155     jmp near 02e85h                           ; e9 10 fb
     4211    jne short 033e8h                          ; 75 06
     4212    call 02b89h                               ; e8 a4 f7
     4213    jmp near 02f02h                           ; e9 1a fb
    41564214    mov dx, strict word 0003eh                ; ba 3e 00
    41574215    mov ax, strict word 00040h                ; b8 40 00
    4158     call 01600h                               ; e8 82 e2
     4216    call 01600h                               ; e8 0f e2
    41594217    and AL, strict byte 080h                  ; 24 80
    41604218    test al, al                               ; 84 c0
    4161     je short 03363h                           ; 74 df
     4219    je short 033d6h                           ; 74 df
    41624220    cli                                       ; fa
    41634221    mov dx, strict word 0003eh                ; ba 3e 00
    41644222    mov ax, strict word 00040h                ; b8 40 00
    4165     call 01600h                               ; e8 72 e2
     4223    call 01600h                               ; e8 ff e1
    41664224    and AL, strict byte 07fh                  ; 24 7f
    41674225    movzx bx, al                              ; 0f b6 d8
    41684226    mov dx, strict word 0003eh                ; ba 3e 00
    41694227    mov ax, strict word 00040h                ; b8 40 00
    4170     call 0160eh                               ; e8 72 e2
     4228    call 0160eh                               ; e8 ff e1
    41714229    mov dx, 003f4h                            ; ba f4 03
    41724230    in AL, DX                                 ; ec
     
    41754233    and AL, strict byte 0c0h                  ; 24 c0
    41764234    cmp AL, strict byte 0c0h                  ; 3c c0
    4177     je short 033b6h                           ; 74 0e
    4178     push 001d5h                               ; 68 d5 01
    4179     push 00208h                               ; 68 08 02
     4235    je short 03429h                           ; 74 0e
     4236    push 001e5h                               ; 68 e5 01
     4237    push 00218h                               ; 68 18 02
    41804238    push strict byte 00007h                   ; 6a 07
    4181     call 018e9h                               ; e8 36 e5
     4239    call 018e9h                               ; e8 c3 e4
    41824240    add sp, strict byte 00006h                ; 83 c4 06
    41834241    xor si, si                                ; 31 f6
    4184     jmp short 033bfh                          ; eb 05
     4242    jmp short 03432h                          ; eb 05
    41854243    cmp si, strict byte 00007h                ; 83 fe 07
    4186     jnl short 033d7h                          ; 7d 18
     4244    jnl short 0344ah                          ; 7d 18
    41874245    mov dx, 003f5h                            ; ba f5 03
    41884246    in AL, DX                                 ; ec
     
    41934251    lea dx, [si+042h]                         ; 8d 54 42
    41944252    mov ax, strict word 00040h                ; b8 40 00
    4195     call 0160eh                               ; e8 3a e2
     4253    call 0160eh                               ; e8 c7 e1
    41964254    inc si                                    ; 46
    4197     jmp short 033bah                          ; eb e3
     4255    jmp short 0342dh                          ; eb e3
    41984256    test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    4199     je short 033f3h                           ; 74 16
     4257    je short 03466h                           ; 74 16
    42004258    test byte [bp-011h], 002h                 ; f6 46 ef 02
    4201     jne near 0322fh                           ; 0f 85 4a fe
    4202     push 001d5h                               ; 68 d5 01
     4259    jne near 032ach                           ; 0f 85 54 fe
     4260    push 001e5h                               ; 68 e5 01
    42034261    push 0022ch                               ; 68 2c 02
    42044262    push strict byte 00007h                   ; 6a 07
    4205     call 018e9h                               ; e8 f9 e4
     4263    call 018e9h                               ; e8 86 e4
    42064264    add sp, strict byte 00006h                ; 83 c4 06
    42074265    xor al, al                                ; 30 c0
    42084266    mov byte [bp+01bh], al                    ; 88 46 1b
    42094267    xor ah, ah                                ; 30 e4
    4210     call 02acdh                               ; e8 d0 f6
     4268    call 02b4ah                               ; e8 da f6
    42114269    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    42124270    xor dx, dx                                ; 31 d2
    4213     call 02ae2h                               ; e8 dc f6
    4214     jmp near 030f9h                           ; e9 f0 fc
     4271    call 02b5fh                               ; e8 e6 f6
     4272    jmp near 03176h                           ; e9 fa fc
    42154273    mov byte [bp-00ah], ah                    ; 88 66 f6
    42164274    cmp ah, 001h                              ; 80 fc 01
    4217     jbe short 03431h                          ; 76 20
     4275    jbe short 034a4h                          ; 76 20
    42184276    xor ax, ax                                ; 31 c0
    42194277    mov word [bp+01ah], ax                    ; 89 46 1a
     
    42264284    mov word [bp+016h], ax                    ; 89 46 16
    42274285    mov word [bp+020h], dx                    ; 89 56 20
    4228     jmp near 02eb7h                           ; e9 86 fa
     4286    jmp near 02f34h                           ; e9 90 fa
    42294287    mov ax, strict word 00010h                ; b8 10 00
    4230     call 0165ch                               ; e8 25 e2
     4288    call 0165ch                               ; e8 b2 e1
    42314289    mov bl, al                                ; 88 c3
    42324290    xor cl, cl                                ; 30 c9
    42334291    test AL, strict byte 0f0h                 ; a8 f0
    4234     je short 03441h                           ; 74 02
     4292    je short 034b4h                           ; 74 02
    42354293    mov CL, strict byte 001h                  ; b1 01
    42364294    test bl, 00fh                             ; f6 c3 0f
    4237     je short 03448h                           ; 74 02
     4295    je short 034bbh                           ; 74 02
    42384296    db  0feh, 0c1h
    42394297    ; inc cl                                    ; fe c1
    42404298    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    4241     jne short 03453h                          ; 75 05
     4299    jne short 034c6h                          ; 75 05
    42424300    shr bl, 004h                              ; c0 eb 04
    4243     jmp short 03456h                          ; eb 03
     4301    jmp short 034c9h                          ; eb 03
    42444302    and bl, 00fh                              ; 80 e3 0f
    42454303    xor al, al                                ; 30 c0
     
    42554313    mov word [bp+016h], dx                    ; 89 56 16
    42564314    cmp bl, 008h                              ; 80 fb 08
    4257     jnbe short 034d1h                         ; 77 59
     4315    jnbe short 03544h                         ; 77 59
    42584316    add si, si                                ; 01 f6
    42594317    mov ax, dx                                ; 89 d0
     
    42614319    mov bx, ax                                ; 89 c3
    42624320    or bh, 001h                               ; 80 cf 01
    4263     jmp word [cs:si+02dc2h]                   ; 2e ff a4 c2 2d
     4321    jmp word [cs:si+02e3fh]                   ; 2e ff a4 3f 2e
    42644322    mov word [bp+018h], strict word 00000h    ; c7 46 18 00 00
    42654323    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4266     jmp short 034dfh                          ; eb 4c
     4324    jmp short 03552h                          ; eb 4c
    42674325    mov word [bp+018h], 02709h                ; c7 46 18 09 27
    42684326    mov word [bp+016h], bx                    ; 89 5e 16
    4269     jmp short 034dfh                          ; eb 42
     4327    jmp short 03552h                          ; eb 42
    42704328    mov word [bp+018h], 04f0fh                ; c7 46 18 0f 4f
    4271     jmp short 03498h                          ; eb f4
     4329    jmp short 0350bh                          ; eb f4
    42724330    mov word [bp+018h], 04f09h                ; c7 46 18 09 4f
    4273     jmp short 03498h                          ; eb ed
     4331    jmp short 0350bh                          ; eb ed
    42744332    mov word [bp+018h], 04f12h                ; c7 46 18 12 4f
    4275     jmp short 03498h                          ; eb e6
     4333    jmp short 0350bh                          ; eb e6
    42764334    mov word [bp+018h], 04f24h                ; c7 46 18 24 4f
    4277     jmp short 03498h                          ; eb df
     4335    jmp short 0350bh                          ; eb df
    42784336    mov word [bp+018h], 02708h                ; c7 46 18 08 27
    42794337    mov word [bp+016h], ax                    ; 89 46 16
    4280     jmp short 034dfh                          ; eb 1c
     4338    jmp short 03552h                          ; eb 1c
    42814339    mov word [bp+018h], 02709h                ; c7 46 18 09 27
    4282     jmp short 034beh                          ; eb f4
     4340    jmp short 03531h                          ; eb f4
    42834341    mov word [bp+018h], 02708h                ; c7 46 18 08 27
    4284     jmp short 03498h                          ; eb c7
    4285     push 001d5h                               ; 68 d5 01
     4342    jmp short 0350bh                          ; eb c7
     4343    push 001e5h                               ; 68 e5 01
    42864344    push 0023dh                               ; 68 3d 02
    42874345    push strict byte 00007h                   ; 6a 07
    4288     call 018e9h                               ; e8 0d e4
     4346    call 018e9h                               ; e8 9a e3
    42894347    add sp, strict byte 00006h                ; 83 c4 06
    42904348    mov word [bp+00ah], 0f000h                ; c7 46 0a 00 f0
    42914349    mov word [bp+00ch], 0efc7h                ; c7 46 0c c7 ef
    4292     jmp near 030f9h                           ; e9 0d fc
     4350    jmp near 03176h                           ; e9 17 fc
    42934351    mov byte [bp-00ah], ah                    ; 88 66 f6
    42944352    cmp ah, 001h                              ; 80 fc 01
    4295     jbe short 034fah                          ; 76 06
     4353    jbe short 0356dh                          ; 76 06
    42964354    mov word [bp+01ah], si                    ; 89 76 1a
    4297     jmp near 0342bh                           ; e9 31 ff
     4355    jmp near 0349eh                           ; e9 31 ff
    42984356    mov ax, strict word 00010h                ; b8 10 00
    4299     call 0165ch                               ; e8 5c e1
     4357    call 0165ch                               ; e8 e9 e0
    43004358    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    4301     jne short 0350dh                          ; 75 07
     4359    jne short 03580h                          ; 75 07
    43024360    mov bl, al                                ; 88 c3
    43034361    shr bl, 004h                              ; c0 eb 04
    4304     jmp short 03512h                          ; eb 05
     4362    jmp short 03585h                          ; eb 05
    43054363    mov bl, al                                ; 88 c3
    43064364    and bl, 00fh                              ; 80 e3 0f
     
    43094367    xor ah, ah                                ; 30 e4
    43104368    test bl, bl                               ; 84 db
    4311     je short 03522h                           ; 74 03
     4369    je short 03595h                           ; 74 03
    43124370    or ah, 001h                               ; 80 cc 01
    43134371    mov word [bp+01ah], ax                    ; 89 46 1a
    4314     jmp near 02eb7h                           ; e9 8f f9
     4372    jmp near 02f34h                           ; e9 99 f9
    43154373    cmp ah, 001h                              ; 80 fc 01
    4316     jbe short 03539h                          ; 76 0c
     4374    jbe short 035ach                          ; 76 0c
    43174375    mov word [bp+01ah], si                    ; 89 76 1a
    43184376    mov ax, strict word 00001h                ; b8 01 00
    4319     call 02acdh                               ; e8 97 f5
    4320     jmp near 0342bh                           ; e9 f2 fe
     4377    call 02b4ah                               ; e8 a1 f5
     4378    jmp near 0349eh                           ; e9 f2 fe
    43214379    mov ax, word [bp+01ah]                    ; 8b 46 1a
    43224380    xor ah, ah                                ; 30 e4
     
    43244382    mov word [bp+01ah], ax                    ; 89 46 1a
    43254383    mov ax, strict word 00006h                ; b8 06 00
    4326     jmp near 02e63h                           ; e9 19 f9
    4327     mov bx, 00cech                            ; bb ec 0c
     4384    jmp near 02ee0h                           ; e9 23 f9
     4385    mov bx, 00d32h                            ; bb 32 0d
    43284386    mov cx, ds                                ; 8c d9
    43294387    mov ax, strict word 00004h                ; b8 04 00
    4330     call 018aeh                               ; e8 59 e3
     4388    call 018aeh                               ; e8 e6 e2
    43314389    mov ax, word [bp+01ah]                    ; 8b 46 1a
    43324390    shr ax, 008h                              ; c1 e8 08
    43334391    push ax                                   ; 50
    4334     push 001d5h                               ; 68 d5 01
     4392    push 001e5h                               ; 68 e5 01
    43354393    push 00252h                               ; 68 52 02
    43364394    push strict byte 00004h                   ; 6a 04
    4337     call 018e9h                               ; e8 82 e3
     4395    call 018e9h                               ; e8 0f e3
    43384396    add sp, strict byte 00008h                ; 83 c4 08
    4339     jmp near 02e55h                           ; e9 e8 f8
    4340 _cdemu_init:                                 ; 0xf356d LB 0x16
     4397    jmp near 02ed2h                           ; e9 f2 f8
     4398_cdemu_init:                                 ; 0xf35e0 LB 0x16
    43414399    push bp                                   ; 55
    43424400    mov bp, sp                                ; 89 e5
    43434401    mov dx, strict word 0000eh                ; ba 0e 00
    43444402    mov ax, strict word 00040h                ; b8 40 00
    4345     call 0161ch                               ; e8 a3 e0
     4403    call 0161ch                               ; e8 30 e0
    43464404    xor bx, bx                                ; 31 db
    43474405    mov dx, 00322h                            ; ba 22 03
    4348     call 0160eh                               ; e8 8d e0
     4406    call 0160eh                               ; e8 1a e0
    43494407    pop bp                                    ; 5d
    43504408    retn                                      ; c3
    4351 _cdemu_isactive:                             ; 0xf3583 LB 0x14
     4409_cdemu_isactive:                             ; 0xf35f6 LB 0x14
    43524410    push bp                                   ; 55
    43534411    mov bp, sp                                ; 89 e5
    43544412    mov dx, strict word 0000eh                ; ba 0e 00
    43554413    mov ax, strict word 00040h                ; b8 40 00
    4356     call 0161ch                               ; e8 8d e0
     4414    call 0161ch                               ; e8 1a e0
    43574415    mov dx, 00322h                            ; ba 22 03
    4358     call 01600h                               ; e8 6b e0
     4416    call 01600h                               ; e8 f8 df
    43594417    pop bp                                    ; 5d
    43604418    retn                                      ; c3
    4361 _cdemu_emulated_drive:                       ; 0xf3597 LB 0x14
     4419_cdemu_emulated_drive:                       ; 0xf360a LB 0x14
    43624420    push bp                                   ; 55
    43634421    mov bp, sp                                ; 89 e5
    43644422    mov dx, strict word 0000eh                ; ba 0e 00
    43654423    mov ax, strict word 00040h                ; b8 40 00
    4366     call 0161ch                               ; e8 79 e0
     4424    call 0161ch                               ; e8 06 e0
    43674425    mov dx, 00324h                            ; ba 24 03
    4368     call 01600h                               ; e8 57 e0
     4426    call 01600h                               ; e8 e4 df
    43694427    pop bp                                    ; 5d
    43704428    retn                                      ; c3
    4371 _int13_eltorito:                             ; 0xf35ab LB 0x17d
     4429_int13_eltorito:                             ; 0xf361e LB 0x186
    43724430    push si                                   ; 56
    43734431    push di                                   ; 57
     
    43764434    mov dx, strict word 0000eh                ; ba 0e 00
    43774435    mov ax, strict word 00040h                ; b8 40 00
    4378     call 0161ch                               ; e8 63 e0
     4436    call 0161ch                               ; e8 f0 df
    43794437    mov si, 00322h                            ; be 22 03
    43804438    mov di, ax                                ; 89 c7
     
    43824440    shr ax, 008h                              ; c1 e8 08
    43834441    cmp ax, strict word 0004bh                ; 3d 4b 00
    4384     jc short 035d3h                           ; 72 0a
    4385     jbe short 035eeh                          ; 76 23
     4442    jc short 03646h                           ; 72 0a
     4443    jbe short 0366ch                          ; 76 2e
    43864444    cmp ax, strict word 0004dh                ; 3d 4d 00
    4387     jbe short 035dah                          ; 76 0a
    4388     jmp near 036eah                           ; e9 17 01
     4445    jbe short 0364dh                          ; 76 0a
     4446    jmp near 03768h                           ; e9 22 01
    43894447    cmp ax, strict word 0004ah                ; 3d 4a 00
    4390     jne near 036eah                           ; 0f 85 10 01
     4448    jne near 03768h                           ; 0f 85 1b 01
     4449    mov bx, 00d32h                            ; bb 32 0d
     4450    mov cx, ds                                ; 8c d9
     4451    mov ax, strict word 00004h                ; b8 04 00
     4452    call 018aeh                               ; e8 56 e2
    43914453    push word [bp+01ah]                       ; ff 76 1a
    43924454    push 0026ch                               ; 68 6c 02
    43934455    push 0027bh                               ; 68 7b 02
    4394     push strict byte 00007h                   ; 6a 07
    4395     call 018e9h                               ; e8 01 e3
     4456    push strict byte 00004h                   ; 6a 04
     4457    call 018e9h                               ; e8 83 e2
    43964458    add sp, strict byte 00008h                ; 83 c4 08
    4397     jmp near 03707h                           ; e9 19 01
     4459    jmp near 03783h                           ; e9 17 01
    43984460    mov dx, word [bp+00eh]                    ; 8b 56 0e
    43994461    mov ax, word [bp+008h]                    ; 8b 46 08
    44004462    mov bx, strict word 00013h                ; bb 13 00
    4401     call 0160eh                               ; e8 14 e0
     4463    call 0160eh                               ; e8 96 df
    44024464    mov es, di                                ; 8e c7
    44034465    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    44054467    inc dx                                    ; 42
    44064468    mov ax, word [bp+008h]                    ; 8b 46 08
    4407     call 0160eh                               ; e8 03 e0
     4469    call 0160eh                               ; e8 85 df
    44084470    mov es, di                                ; 8e c7
    44094471    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    44124474    inc dx                                    ; 42
    44134475    mov ax, word [bp+008h]                    ; 8b 46 08
    4414     call 0160eh                               ; e8 f1 df
     4476    call 0160eh                               ; e8 73 df
    44154477    mov es, di                                ; 8e c7
    44164478    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    44184480    add dx, strict byte 00003h                ; 83 c2 03
    44194481    mov ax, word [bp+008h]                    ; 8b 46 08
    4420     call 0160eh                               ; e8 de df
     4482    call 0160eh                               ; e8 60 df
    44214483    mov es, di                                ; 8e c7
    44224484    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    44254487    add dx, strict byte 00004h                ; 83 c2 04
    44264488    mov ax, word [bp+008h]                    ; 8b 46 08
    4427     call 0164ah                               ; e8 04 e0
     4489    call 0164ah                               ; e8 86 df
    44284490    mov es, di                                ; 8e c7
    44294491    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    44314493    add dx, strict byte 00008h                ; 83 c2 08
    44324494    mov ax, word [bp+008h]                    ; 8b 46 08
    4433     call 0162ah                               ; e8 d2 df
     4495    call 0162ah                               ; e8 54 df
    44344496    mov es, di                                ; 8e c7
    44354497    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    44374499    add dx, strict byte 0000ah                ; 83 c2 0a
    44384500    mov ax, word [bp+008h]                    ; 8b 46 08
    4439     call 0162ah                               ; e8 c0 df
     4501    call 0162ah                               ; e8 42 df
    44404502    mov es, di                                ; 8e c7
    44414503    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    44434505    add dx, strict byte 0000ch                ; 83 c2 0c
    44444506    mov ax, word [bp+008h]                    ; 8b 46 08
    4445     call 0162ah                               ; e8 ae df
     4507    call 0162ah                               ; e8 30 df
    44464508    mov es, di                                ; 8e c7
    44474509    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    44494511    add dx, strict byte 0000eh                ; 83 c2 0e
    44504512    mov ax, word [bp+008h]                    ; 8b 46 08
    4451     call 0162ah                               ; e8 9c df
     4513    call 0162ah                               ; e8 1e df
    44524514    mov es, di                                ; 8e c7
    44534515    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    44554517    add dx, strict byte 00010h                ; 83 c2 10
    44564518    mov ax, word [bp+008h]                    ; 8b 46 08
    4457     call 0160eh                               ; e8 6d df
     4519    call 0160eh                               ; e8 ef de
    44584520    mov es, di                                ; 8e c7
    44594521    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    44614523    add dx, strict byte 00011h                ; 83 c2 11
    44624524    mov ax, word [bp+008h]                    ; 8b 46 08
    4463     call 0160eh                               ; e8 5a df
     4525    call 0160eh                               ; e8 dc de
    44644526    mov es, di                                ; 8e c7
    44654527    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    44674529    add dx, strict byte 00012h                ; 83 c2 12
    44684530    mov ax, word [bp+008h]                    ; 8b 46 08
    4469     call 0160eh                               ; e8 47 df
     4531    call 0160eh                               ; e8 c9 de
    44704532    test byte [bp+01ah], 0ffh                 ; f6 46 1a ff
    4471     jne short 036d3h                          ; 75 06
     4533    jne short 03751h                          ; 75 06
    44724534    mov es, di                                ; 8e c7
    44734535    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    44764538    mov dx, strict word 00074h                ; ba 74 00
    44774539    mov ax, strict word 00040h                ; b8 40 00
    4478     call 0160eh                               ; e8 2c df
     4540    call 0160eh                               ; e8 ae de
    44794541    and byte [bp+020h], 0feh                  ; 80 66 20 fe
    44804542    pop bp                                    ; 5d
     
    44824544    pop si                                    ; 5e
    44834545    retn                                      ; c3
    4484     mov bx, 00cech                            ; bb ec 0c
     4546    mov bx, 00d32h                            ; bb 32 0d
    44854547    mov cx, ds                                ; 8c d9
    44864548    mov ax, strict word 00004h                ; b8 04 00
    4487     call 018aeh                               ; e8 b9 e1
     4549    call 018aeh                               ; e8 3b e1
    44884550    mov ax, word [bp+01ah]                    ; 8b 46 1a
    44894551    shr ax, 008h                              ; c1 e8 08
    44904552    push ax                                   ; 50
    44914553    push 0026ch                               ; 68 6c 02
    4492     push 002a1h                               ; 68 a1 02
    4493     push strict byte 00004h                   ; 6a 04
    4494     jmp near 035e5h                           ; e9 de fe
     4554    push 002a3h                               ; 68 a3 02
     4555    jmp near 03661h                           ; e9 de fe
    44954556    mov ax, word [bp+01ah]                    ; 8b 46 1a
    44964557    xor ah, ah                                ; 30 e4
     
    45024563    mov dx, strict word 00074h                ; ba 74 00
    45034564    mov ax, strict word 00040h                ; b8 40 00
    4504     call 0160eh                               ; e8 ec de
     4565    call 0160eh                               ; e8 70 de
    45054566    or byte [bp+020h], 001h                   ; 80 4e 20 01
    4506     jmp short 036e6h                          ; eb be
    4507 device_is_cdrom_:                            ; 0xf3728 LB 0x32
     4567    jmp short 03764h                          ; eb c0
     4568device_is_cdrom_:                            ; 0xf37a4 LB 0x32
    45084569    push bx                                   ; 53
    45094570    push dx                                   ; 52
     
    45134574    mov dx, strict word 0000eh                ; ba 0e 00
    45144575    mov ax, strict word 00040h                ; b8 40 00
    4515     call 0161ch                               ; e8 e4 de
     4576    call 0161ch                               ; e8 68 de
    45164577    cmp bl, 010h                              ; 80 fb 10
    4517     jc short 03741h                           ; 72 04
     4578    jc short 037bdh                           ; 72 04
    45184579    xor ax, ax                                ; 31 c0
    4519     jmp short 03756h                          ; eb 15
     4580    jmp short 037d2h                          ; eb 15
    45204581    xor bh, bh                                ; 30 ff
    45214582    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    45234584    add bx, 00122h                            ; 81 c3 22 01
    45244585    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    4525     jne short 0373dh                          ; 75 ea
     4586    jne short 037b9h                          ; 75 ea
    45264587    mov ax, strict word 00001h                ; b8 01 00
    45274588    pop bp                                    ; 5d
     
    45294590    pop bx                                    ; 5b
    45304591    retn                                      ; c3
    4531 cdrom_boot_:                                 ; 0xf375a LB 0x4ac
     4592cdrom_boot_:                                 ; 0xf37d6 LB 0x410
    45324593    push bx                                   ; 53
    45334594    push cx                                   ; 51
     
    45354596    push si                                   ; 56
    45364597    push di                                   ; 57
    4537     enter 0081ah, 000h                        ; c8 1a 08 00
     4598    enter 0081ch, 000h                        ; c8 1c 08 00
    45384599    mov dx, strict word 0000eh                ; ba 0e 00
    45394600    mov ax, strict word 00040h                ; b8 40 00
    4540     call 0161ch                               ; e8 b0 de
     4601    call 0161ch                               ; e8 34 de
    45414602    mov word [bp-00eh], ax                    ; 89 46 f2
    45424603    mov si, 00322h                            ; be 22 03
    45434604    mov word [bp-006h], ax                    ; 89 46 fa
    4544     mov word [bp-00ch], 00122h                ; c7 46 f4 22 01
     4605    mov word [bp-00ah], 00122h                ; c7 46 f6 22 01
    45454606    mov word [bp-008h], ax                    ; 89 46 f8
    4546     mov byte [bp-004h], 000h                  ; c6 46 fc 00
    4547     jmp short 0378ch                          ; eb 09
    4548     inc byte [bp-004h]                        ; fe 46 fc
    4549     cmp byte [bp-004h], 010h                  ; 80 7e fc 10
    4550     jnc short 03797h                          ; 73 0b
    4551     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4552     call 03728h                               ; e8 95 ff
     4607    mov byte [bp-002h], 000h                  ; c6 46 fe 00
     4608    jmp short 03808h                          ; eb 09
     4609    inc byte [bp-002h]                        ; fe 46 fe
     4610    cmp byte [bp-002h], 010h                  ; 80 7e fe 10
     4611    jnc short 03813h                          ; 73 0b
     4612    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     4613    call 037a4h                               ; e8 95 ff
    45534614    test ax, ax                               ; 85 c0
    4554     je short 03783h                           ; 74 ec
    4555     cmp byte [bp-004h], 010h                  ; 80 7e fc 10
    4556     jc short 037a3h                           ; 72 06
     4615    je short 037ffh                           ; 74 ec
     4616    cmp byte [bp-002h], 010h                  ; 80 7e fe 10
     4617    jc short 0381fh                           ; 72 06
    45574618    mov ax, strict word 00002h                ; b8 02 00
    4558     jmp near 03ba6h                           ; e9 03 04
     4619    jmp near 03b86h                           ; e9 67 03
    45594620    mov cx, strict word 0000ch                ; b9 0c 00
    45604621    xor bx, bx                                ; 31 db
    45614622    mov dx, ss                                ; 8c d2
    4562     lea ax, [bp-01ah]                         ; 8d 46 e6
    4563     call 0902ah                               ; e8 7a 58
    4564     mov word [bp-01ah], strict word 00028h    ; c7 46 e6 28 00
     4623    lea ax, [bp-01ch]                         ; 8d 46 e4
     4624    call 0901ah                               ; e8 ee 57
     4625    mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
    45654626    mov ax, strict word 00011h                ; b8 11 00
    45664627    xor dx, dx                                ; 31 d2
     
    45684629    xchg dh, dl                               ; 86 d6
    45694630    xchg dx, ax                               ; 92
    4570     mov word [bp-018h], ax                    ; 89 46 e8
    4571     mov word [bp-016h], dx                    ; 89 56 ea
     4631    mov word [bp-01ah], ax                    ; 89 46 e6
     4632    mov word [bp-018h], dx                    ; 89 56 e8
    45724633    mov ax, strict word 00001h                ; b8 01 00
    45734634    xchg ah, al                               ; 86 c4
    4574     mov word [bp-013h], ax                    ; 89 46 ed
    4575     mov es, [bp-008h]                         ; 8e 46 f8
    4576     mov bx, word [bp-00ch]                    ; 8b 5e f4
     4635    mov word [bp-015h], ax                    ; 89 46 eb
     4636    les bx, [bp-00ah]                         ; c4 5e f6
    45774637    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 008h
    45784638    ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08
    4579     mov byte [bp-002h], 000h                  ; c6 46 fe 00
    4580     jmp short 03831h                          ; eb 4f
    4581     cmp AL, strict byte 008h                  ; 3c 08
    4582     jc short 03806h                           ; 72 20
    4583     lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
     4639    mov byte [bp-004h], 000h                  ; c6 46 fc 00
     4640    jmp short 03864h                          ; eb 09
     4641    inc byte [bp-004h]                        ; fe 46 fc
     4642    cmp byte [bp-004h], 004h                  ; 80 7e fc 04
     4643    jnbe short 0389bh                         ; 77 37
     4644    movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     4645    imul di, di, strict byte 00018h           ; 6b ff 18
     4646    mov es, [bp-008h]                         ; 8e 46 f8
     4647    add di, word [bp-00ah]                    ; 03 7e f6
     4648    movzx di, byte [es:di+01eh]               ; 26 0f b6 7d 1e
     4649    add di, di                                ; 01 ff
     4650    lea dx, [bp-0081ch]                       ; 8d 96 e4 f7
    45844651    push SS                                   ; 16
    45854652    push dx                                   ; 52
     
    45884655    push 00800h                               ; 68 00 08
    45894656    push strict byte 00000h                   ; 6a 00
    4590     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     4657    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    45914658    mov cx, ss                                ; 8c d1
    4592     lea bx, [bp-01ah]                         ; 8d 5e e6
     4659    lea bx, [bp-01ch]                         ; 8d 5e e4
    45934660    mov dx, strict word 0000ch                ; ba 0c 00
    4594     call 07626h                               ; e8 22 3e
    4595     jmp short 03824h                          ; eb 1e
    4596     lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
     4661    call word [word di+00000h]                ; ff 95 00 00
     4662    test ax, ax                               ; 85 c0
     4663    jne short 0385bh                          ; 75 c0
     4664    test ax, ax                               ; 85 c0
     4665    je short 038a5h                           ; 74 06
     4666    mov ax, strict word 00003h                ; b8 03 00
     4667    jmp near 03b86h                           ; e9 e1 02
     4668    cmp byte [bp-0081ch], 000h                ; 80 be e4 f7 00
     4669    je short 038b2h                           ; 74 06
     4670    mov ax, strict word 00004h                ; b8 04 00
     4671    jmp near 03b86h                           ; e9 d4 02
     4672    xor di, di                                ; 31 ff
     4673    jmp short 038bch                          ; eb 06
     4674    inc di                                    ; 47
     4675    cmp di, strict byte 00005h                ; 83 ff 05
     4676    jnc short 038cch                          ; 73 10
     4677    mov al, byte [bp+di-0081bh]               ; 8a 83 e5 f7
     4678    cmp al, byte [di+00d3ah]                  ; 3a 85 3a 0d
     4679    je short 038b6h                           ; 74 f0
     4680    mov ax, strict word 00005h                ; b8 05 00
     4681    jmp near 03b86h                           ; e9 ba 02
     4682    xor di, di                                ; 31 ff
     4683    jmp short 038d6h                          ; eb 06
     4684    inc di                                    ; 47
     4685    cmp di, strict byte 00017h                ; 83 ff 17
     4686    jnc short 038e6h                          ; 73 10
     4687    mov al, byte [bp+di-00815h]               ; 8a 83 eb f7
     4688    cmp al, byte [di+00d40h]                  ; 3a 85 40 0d
     4689    je short 038d0h                           ; 74 f0
     4690    mov ax, strict word 00006h                ; b8 06 00
     4691    jmp near 03b86h                           ; e9 a0 02
     4692    mov ax, word [bp-007d5h]                  ; 8b 86 2b f8
     4693    mov dx, word [bp-007d3h]                  ; 8b 96 2d f8
     4694    mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
     4695    xchg ah, al                               ; 86 c4
     4696    xchg dh, dl                               ; 86 d6
     4697    xchg dx, ax                               ; 92
     4698    mov word [bp-01ah], ax                    ; 89 46 e6
     4699    mov word [bp-018h], dx                    ; 89 56 e8
     4700    mov ax, strict word 00001h                ; b8 01 00
     4701    xchg ah, al                               ; 86 c4
     4702    mov word [bp-015h], ax                    ; 89 46 eb
     4703    movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     4704    imul di, di, strict byte 00018h           ; 6b ff 18
     4705    mov es, [bp-008h]                         ; 8e 46 f8
     4706    add di, word [bp-00ah]                    ; 03 7e f6
     4707    movzx di, byte [es:di+01eh]               ; 26 0f b6 7d 1e
     4708    add di, di                                ; 01 ff
     4709    lea dx, [bp-0081ch]                       ; 8d 96 e4 f7
    45974710    push SS                                   ; 16
    45984711    push dx                                   ; 52
     
    46014714    push 00800h                               ; 68 00 08
    46024715    push strict byte 00000h                   ; 6a 00
    4603     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     4716    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    46044717    mov cx, ss                                ; 8c d1
    4605     lea bx, [bp-01ah]                         ; 8d 5e e6
     4718    lea bx, [bp-01ch]                         ; 8d 5e e4
    46064719    mov dx, strict word 0000ch                ; ba 0c 00
    4607     call 027eah                               ; e8 c6 ef
     4720    call word [word di+00000h]                ; ff 95 00 00
    46084721    test ax, ax                               ; 85 c0
    4609     je short 03858h                           ; 74 30
    4610     inc byte [bp-002h]                        ; fe 46 fe
    4611     cmp byte [bp-002h], 004h                  ; 80 7e fe 04
    4612     jnbe short 03858h                         ; 77 27
    4613     mov al, byte [bp-004h]                    ; 8a 46 fc
    4614     cmp AL, strict byte 00ch                  ; 3c 0c
    4615     jc short 037e2h                           ; 72 aa
    4616     lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
    4617     push SS                                   ; 16
    4618     push dx                                   ; 52
    4619     push strict byte 00001h                   ; 6a 01
    4620     push strict byte 00000h                   ; 6a 00
    4621     push 00800h                               ; 68 00 08
    4622     push strict byte 00000h                   ; 6a 00
    4623     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4624     mov cx, ss                                ; 8c d1
    4625     lea bx, [bp-01ah]                         ; 8d 5e e6
    4626     mov dx, strict word 0000ch                ; ba 0c 00
    4627     call 082c2h                               ; e8 6c 4a
    4628     jmp short 03824h                          ; eb cc
    4629     test ax, ax                               ; 85 c0
    4630     je short 03862h                           ; 74 06
    4631     mov ax, strict word 00003h                ; b8 03 00
    4632     jmp near 03ba6h                           ; e9 44 03
    4633     cmp byte [bp-0081ah], 000h                ; 80 be e6 f7 00
    4634     je short 0386fh                           ; 74 06
    4635     mov ax, strict word 00004h                ; b8 04 00
    4636     jmp near 03ba6h                           ; e9 37 03
    4637     xor di, di                                ; 31 ff
    4638     jmp short 03879h                          ; eb 06
    4639     inc di                                    ; 47
    4640     cmp di, strict byte 00005h                ; 83 ff 05
    4641     jnc short 03889h                          ; 73 10
    4642     mov al, byte [bp+di-00819h]               ; 8a 83 e7 f7
    4643     cmp al, byte [di+00cf4h]                  ; 3a 85 f4 0c
    4644     je short 03873h                           ; 74 f0
    4645     mov ax, strict word 00005h                ; b8 05 00
    4646     jmp near 03ba6h                           ; e9 1d 03
    4647     xor di, di                                ; 31 ff
    4648     jmp short 03893h                          ; eb 06
    4649     inc di                                    ; 47
    4650     cmp di, strict byte 00017h                ; 83 ff 17
    4651     jnc short 038a3h                          ; 73 10
    4652     mov al, byte [bp+di-00813h]               ; 8a 83 ed f7
    4653     cmp al, byte [di+00cfah]                  ; 3a 85 fa 0c
    4654     je short 0388dh                           ; 74 f0
    4655     mov ax, strict word 00006h                ; b8 06 00
    4656     jmp near 03ba6h                           ; e9 03 03
    4657     mov ax, word [bp-007d3h]                  ; 8b 86 2d f8
    4658     mov dx, word [bp-007d1h]                  ; 8b 96 2f f8
    4659     mov word [bp-01ah], strict word 00028h    ; c7 46 e6 28 00
    4660     xchg ah, al                               ; 86 c4
    4661     xchg dh, dl                               ; 86 d6
    4662     xchg dx, ax                               ; 92
    4663     mov word [bp-018h], ax                    ; 89 46 e8
    4664     mov word [bp-016h], dx                    ; 89 56 ea
    4665     mov ax, strict word 00001h                ; b8 01 00
    4666     xchg ah, al                               ; 86 c4
    4667     mov word [bp-013h], ax                    ; 89 46 ed
    4668     mov al, byte [bp-004h]                    ; 8a 46 fc
    4669     cmp AL, strict byte 00ch                  ; 3c 0c
    4670     jc short 038eah                           ; 72 20
    4671     lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
    4672     push SS                                   ; 16
    4673     push dx                                   ; 52
    4674     push strict byte 00001h                   ; 6a 01
    4675     push strict byte 00000h                   ; 6a 00
    4676     push 00800h                               ; 68 00 08
    4677     push strict byte 00000h                   ; 6a 00
    4678     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4679     mov cx, ss                                ; 8c d1
    4680     lea bx, [bp-01ah]                         ; 8d 5e e6
    4681     mov dx, strict word 0000ch                ; ba 0c 00
    4682     call 082c2h                               ; e8 da 49
    4683     jmp short 0392ch                          ; eb 42
    4684     cmp AL, strict byte 008h                  ; 3c 08
    4685     jc short 0390eh                           ; 72 20
    4686     lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
    4687     push SS                                   ; 16
    4688     push dx                                   ; 52
    4689     push strict byte 00001h                   ; 6a 01
    4690     push strict byte 00000h                   ; 6a 00
    4691     push 00800h                               ; 68 00 08
    4692     push strict byte 00000h                   ; 6a 00
    4693     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4694     mov cx, ss                                ; 8c d1
    4695     lea bx, [bp-01ah]                         ; 8d 5e e6
    4696     mov dx, strict word 0000ch                ; ba 0c 00
    4697     call 07626h                               ; e8 1a 3d
    4698     jmp short 0392ch                          ; eb 1e
    4699     lea dx, [bp-0081ah]                       ; 8d 96 e6 f7
    4700     push SS                                   ; 16
    4701     push dx                                   ; 52
    4702     push strict byte 00001h                   ; 6a 01
    4703     push strict byte 00000h                   ; 6a 00
    4704     push 00800h                               ; 68 00 08
    4705     push strict byte 00000h                   ; 6a 00
    4706     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4707     mov cx, ss                                ; 8c d1
    4708     lea bx, [bp-01ah]                         ; 8d 5e e6
    4709     mov dx, strict word 0000ch                ; ba 0c 00
    4710     call 027eah                               ; e8 be ee
    4711     test ax, ax                               ; 85 c0
    4712     je short 03936h                           ; 74 06
     4722    je short 03943h                           ; 74 06
    47134723    mov ax, strict word 00007h                ; b8 07 00
    4714     jmp near 03ba6h                           ; e9 70 02
    4715     cmp byte [bp-0081ah], 001h                ; 80 be e6 f7 01
    4716     je short 03943h                           ; 74 06
     4724    jmp near 03b86h                           ; e9 43 02
     4725    cmp byte [bp-0081ch], 001h                ; 80 be e4 f7 01
     4726    je short 03950h                           ; 74 06
    47174727    mov ax, strict word 00008h                ; b8 08 00
    4718     jmp near 03ba6h                           ; e9 63 02
    4719     cmp byte [bp-00819h], 000h                ; 80 be e7 f7 00
    4720     je short 03950h                           ; 74 06
     4728    jmp near 03b86h                           ; e9 36 02
     4729    cmp byte [bp-0081bh], 000h                ; 80 be e5 f7 00
     4730    je short 0395dh                           ; 74 06
    47214731    mov ax, strict word 00009h                ; b8 09 00
    4722     jmp near 03ba6h                           ; e9 56 02
    4723     cmp byte [bp-007fch], 055h                ; 80 be 04 f8 55
    4724     je short 0395dh                           ; 74 06
     4732    jmp near 03b86h                           ; e9 29 02
     4733    cmp byte [bp-007feh], 055h                ; 80 be 02 f8 55
     4734    je short 0396ah                           ; 74 06
    47254735    mov ax, strict word 0000ah                ; b8 0a 00
    4726     jmp near 03ba6h                           ; e9 49 02
    4727     cmp byte [bp-007fbh], 0aah                ; 80 be 05 f8 aa
    4728     jne short 03957h                          ; 75 f3
    4729     cmp byte [bp-007fah], 088h                ; 80 be 06 f8 88
    4730     je short 03971h                           ; 74 06
     4736    jmp near 03b86h                           ; e9 1c 02
     4737    cmp byte [bp-007fdh], 0aah                ; 80 be 03 f8 aa
     4738    jne short 03964h                          ; 75 f3
     4739    cmp byte [bp-007fch], 088h                ; 80 be 04 f8 88
     4740    je short 0397eh                           ; 74 06
    47314741    mov ax, strict word 0000bh                ; b8 0b 00
    4732     jmp near 03ba6h                           ; e9 35 02
    4733     mov al, byte [bp-007f9h]                  ; 8a 86 07 f8
     4742    jmp near 03b86h                           ; e9 08 02
     4743    mov al, byte [bp-007fbh]                  ; 8a 86 05 f8
    47344744    mov es, [bp-006h]                         ; 8e 46 fa
    47354745    mov byte [es:si+001h], al                 ; 26 88 44 01
    4736     cmp byte [bp-007f9h], 000h                ; 80 be 07 f8 00
    4737     jne short 0398ah                          ; 75 07
     4746    cmp byte [bp-007fbh], 000h                ; 80 be 05 f8 00
     4747    jne short 03997h                          ; 75 07
    47384748    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    4739     jmp short 0399dh                          ; eb 13
    4740     cmp byte [bp-007f9h], 004h                ; 80 be 07 f8 04
    4741     jnc short 03998h                          ; 73 07
     4749    jmp short 039aah                          ; eb 13
     4750    cmp byte [bp-007fbh], 004h                ; 80 be 05 f8 04
     4751    jnc short 039a5h                          ; 73 07
    47424752    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    4743     jmp short 0399dh                          ; eb 05
     4753    jmp short 039aah                          ; eb 05
    47444754    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    4745     movzx di, byte [bp-004h]                  ; 0f b6 7e fc
     4755    movzx di, byte [bp-002h]                  ; 0f b6 7e fe
    47464756    mov ax, di                                ; 89 f8
    47474757    cwd                                       ; 99
     
    47564766    idiv bx                                   ; f7 fb
    47574767    mov word [es:si+004h], dx                 ; 26 89 54 04
    4758     mov di, word [bp-007f8h]                  ; 8b be 08 f8
     4768    mov ax, word [bp-007fah]                  ; 8b 86 06 f8
     4769    mov word [bp-00ch], ax                    ; 89 46 f4
     4770    test ax, ax                               ; 85 c0
     4771    jne short 039d8h                          ; 75 05
     4772    mov word [bp-00ch], 007c0h                ; c7 46 f4 c0 07
     4773    mov ax, word [bp-00ch]                    ; 8b 46 f4
     4774    mov es, [bp-006h]                         ; 8e 46 fa
     4775    mov word [es:si+00ch], ax                 ; 26 89 44 0c
     4776    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
     4777    mov di, word [bp-007f6h]                  ; 8b be 0a f8
     4778    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    47594779    test di, di                               ; 85 ff
    4760     jne short 039c6h                          ; 75 03
    4761     mov di, 007c0h                            ; bf c0 07
    4762     mov es, [bp-006h]                         ; 8e 46 fa
    4763     mov word [es:si+00ch], di                 ; 26 89 7c 0c
    4764     mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
     4780    je short 039fah                           ; 74 06
     4781    cmp di, 00400h                            ; 81 ff 00 04
     4782    jbe short 03a00h                          ; 76 06
     4783    mov ax, strict word 0000ch                ; b8 0c 00
     4784    jmp near 03b86h                           ; e9 86 01
    47654785    mov ax, word [bp-007f4h]                  ; 8b 86 0c f8
    4766     mov word [bp-00ah], ax                    ; 89 46 f6
    4767     mov word [es:si+00eh], ax                 ; 26 89 44 0e
    4768     mov ax, word [bp-007f2h]                  ; 8b 86 0e f8
    4769     mov dx, word [bp-007f0h]                  ; 8b 96 10 f8
     4786    mov dx, word [bp-007f2h]                  ; 8b 96 0e f8
    47704787    mov word [es:si+008h], ax                 ; 26 89 44 08
    47714788    mov word [es:si+00ah], dx                 ; 26 89 54 0a
    4772     mov word [bp-01ah], strict word 00028h    ; c7 46 e6 28 00
     4789    mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
    47734790    xchg ah, al                               ; 86 c4
    47744791    xchg dh, dl                               ; 86 d6
    47754792    xchg dx, ax                               ; 92
    4776     mov word [bp-018h], ax                    ; 89 46 e8
    4777     mov word [bp-016h], dx                    ; 89 56 ea
    4778     mov dx, word [bp-00ah]                    ; 8b 56 f6
    4779     dec dx                                    ; 4a
     4793    mov word [bp-01ah], ax                    ; 89 46 e6
     4794    mov word [bp-018h], dx                    ; 89 56 e8
     4795    lea dx, [di-001h]                         ; 8d 55 ff
    47804796    shr dx, 002h                              ; c1 ea 02
    47814797    inc dx                                    ; 42
    47824798    mov ax, dx                                ; 89 d0
    47834799    xchg ah, al                               ; 86 c4
    4784     mov word [bp-013h], ax                    ; 89 46 ed
    4785     mov es, [bp-008h]                         ; 8e 46 f8
    4786     mov bx, word [bp-00ch]                    ; 8b 5e f4
     4800    mov word [bp-015h], ax                    ; 89 46 eb
     4801    les bx, [bp-00ah]                         ; c4 5e f6
    47874802    mov word [es:bx+00ah], dx                 ; 26 89 57 0a
    47884803    mov word [es:bx+00ch], 00200h             ; 26 c7 47 0c 00 02
    4789     mov ax, word [bp-00ah]                    ; 8b 46 f6
     4804    mov ax, di                                ; 89 f8
    47904805    sal ax, 009h                              ; c1 e0 09
    4791     and ah, 007h                              ; 80 e4 07
    47924806    mov dx, 00800h                            ; ba 00 08
    47934807    sub dx, ax                                ; 29 c2
    4794     mov word [es:bx+01ch], dx                 ; 26 89 57 1c
    4795     mov al, byte [bp-004h]                    ; 8a 46 fc
    4796     cmp AL, strict byte 00ch                  ; 3c 0c
    4797     jc short 03a5dh                           ; 72 27
    4798     push di                                   ; 57
     4808    mov ax, dx                                ; 89 d0
     4809    and ah, 007h                              ; 80 e4 07
     4810    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
     4811    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     4812    imul ax, ax, strict byte 00018h           ; 6b c0 18
     4813    add bx, ax                                ; 01 c3
     4814    movzx ax, byte [es:bx+01eh]               ; 26 0f b6 47 1e
     4815    add ax, ax                                ; 01 c0
     4816    mov word [bp-010h], ax                    ; 89 46 f0
     4817    push word [bp-00ch]                       ; ff 76 f4
    47994818    push dword 000000001h                     ; 66 6a 01
    4800     mov ax, word [bp-00ah]                    ; 8b 46 f6
    4801     xor dx, dx                                ; 31 d2
     4819    mov ax, di                                ; 89 f8
     4820    xor di, di                                ; 31 ff
    48024821    mov cx, strict word 00009h                ; b9 09 00
    48034822    sal ax, 1                                 ; d1 e0
    4804     rcl dx, 1                                 ; d1 d2
    4805     loop 03a42h                               ; e2 fa
    4806     push dx                                   ; 52
     4823    rcl di, 1                                 ; d1 d7
     4824    loop 03a6eh                               ; e2 fa
     4825    push di                                   ; 57
    48074826    push ax                                   ; 50
    48084827    push strict byte 00000h                   ; 6a 00
    4809     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     4828    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    48104829    mov cx, ss                                ; 8c d1
    4811     lea bx, [bp-01ah]                         ; 8d 5e e6
     4830    lea bx, [bp-01ch]                         ; 8d 5e e4
    48124831    mov dx, strict word 0000ch                ; ba 0c 00
    4813     call 082c2h                               ; e8 67 48
    4814     jmp short 03aadh                          ; eb 50
    4815     cmp AL, strict byte 008h                  ; 3c 08
    4816     jc short 03a88h                           ; 72 27
    4817     push di                                   ; 57
    4818     push dword 000000001h                     ; 66 6a 01
    4819     mov ax, word [bp-00ah]                    ; 8b 46 f6
    4820     xor dx, dx                                ; 31 d2
    4821     mov cx, strict word 00009h                ; b9 09 00
    4822     sal ax, 1                                 ; d1 e0
    4823     rcl dx, 1                                 ; d1 d2
    4824     loop 03a6dh                               ; e2 fa
    4825     push dx                                   ; 52
    4826     push ax                                   ; 50
    4827     push strict byte 00000h                   ; 6a 00
    4828     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4829     mov cx, ss                                ; 8c d1
    4830     lea bx, [bp-01ah]                         ; 8d 5e e6
    4831     mov dx, strict word 0000ch                ; ba 0c 00
    4832     call 07626h                               ; e8 a0 3b
    4833     jmp short 03aadh                          ; eb 25
    4834     push di                                   ; 57
    4835     push dword 000000001h                     ; 66 6a 01
    4836     mov ax, word [bp-00ah]                    ; 8b 46 f6
    4837     xor dx, dx                                ; 31 d2
    4838     mov cx, strict word 00009h                ; b9 09 00
    4839     sal ax, 1                                 ; d1 e0
    4840     rcl dx, 1                                 ; d1 d2
    4841     loop 03a94h                               ; e2 fa
    4842     push dx                                   ; 52
    4843     push ax                                   ; 50
    4844     push strict byte 00000h                   ; 6a 00
    4845     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4846     mov cx, ss                                ; 8c d1
    4847     lea bx, [bp-01ah]                         ; 8d 5e e6
    4848     mov dx, strict word 0000ch                ; ba 0c 00
    4849     call 027eah                               ; e8 3d ed
    4850     mov es, [bp-008h]                         ; 8e 46 f8
    4851     mov bx, word [bp-00ch]                    ; 8b 5e f4
     4832    mov di, word [bp-010h]                    ; 8b 7e f0
     4833    call word [word di+00000h]                ; ff 95 00 00
     4834    les bx, [bp-00ah]                         ; c4 5e f6
    48524835    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
    48534836    test ax, ax                               ; 85 c0
    4854     je short 03ac3h                           ; 74 06
    4855     mov ax, strict word 0000ch                ; b8 0c 00
    4856     jmp near 03ba6h                           ; e9 e3 00
     4837    je short 03a9eh                           ; 74 06
     4838    mov ax, strict word 0000dh                ; b8 0d 00
     4839    jmp near 03b86h                           ; e9 e8 00
    48574840    mov es, [bp-006h]                         ; 8e 46 fa
    48584841    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    48594842    cmp AL, strict byte 002h                  ; 3c 02
    4860     jc short 03adah                           ; 72 0c
    4861     jbe short 03af2h                          ; 76 22
     4843    jc short 03ab6h                           ; 72 0d
     4844    jbe short 03aceh                          ; 76 23
    48624845    cmp AL, strict byte 004h                  ; 3c 04
    4863     je short 03b08h                           ; 74 34
     4846    je short 03ae4h                           ; 74 35
    48644847    cmp AL, strict byte 003h                  ; 3c 03
    4865     je short 03afdh                           ; 74 25
    4866     jmp short 03b4fh                          ; eb 75
     4848    je short 03ad9h                           ; 74 26
     4849    jmp near 03b2fh                           ; e9 79 00
    48674850    cmp AL, strict byte 001h                  ; 3c 01
    4868     jne short 03b4fh                          ; 75 71
     4851    jne short 03b2fh                          ; 75 75
    48694852    mov es, [bp-006h]                         ; 8e 46 fa
    48704853    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    48714854    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    48724855    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    4873     jmp short 03b4fh                          ; eb 5d
     4856    jmp short 03b2fh                          ; eb 61
    48744857    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    48754858    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    4876     jmp short 03aeah                          ; eb ed
     4859    jmp short 03ac6h                          ; eb ed
    48774860    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    48784861    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    4879     jmp short 03aeah                          ; eb e2
     4862    jmp short 03ac6h                          ; eb e2
    48804863    mov dx, 001c4h                            ; ba c4 01
    4881     mov ax, di                                ; 89 f8
    4882     call 01600h                               ; e8 f0 da
     4864    mov ax, word [bp-00ch]                    ; 8b 46 f4
     4865    call 01600h                               ; e8 13 db
    48834866    and AL, strict byte 03fh                  ; 24 3f
    48844867    xor ah, ah                                ; 30 e4
     
    48864869    mov word [es:si+014h], ax                 ; 26 89 44 14
    48874870    mov dx, 001c4h                            ; ba c4 01
    4888     mov ax, di                                ; 89 f8
    4889     call 01600h                               ; e8 dd da
     4871    mov ax, word [bp-00ch]                    ; 8b 46 f4
     4872    call 01600h                               ; e8 ff da
    48904873    movzx bx, al                              ; 0f b6 d8
    48914874    sal bx, 002h                              ; c1 e3 02
    48924875    mov dx, 001c5h                            ; ba c5 01
    4893     mov ax, di                                ; 89 f8
    4894     call 01600h                               ; e8 cf da
     4876    mov ax, word [bp-00ch]                    ; 8b 46 f4
     4877    call 01600h                               ; e8 f0 da
    48954878    xor ah, ah                                ; 30 e4
    48964879    add ax, bx                                ; 01 d8
     
    48994882    mov word [es:si+012h], ax                 ; 26 89 44 12
    49004883    mov dx, 001c3h                            ; ba c3 01
    4901     mov ax, di                                ; 89 f8
    4902     call 01600h                               ; e8 bb da
     4884    mov ax, word [bp-00ch]                    ; 8b 46 f4
     4885    call 01600h                               ; e8 db da
    49034886    xor ah, ah                                ; 30 e4
    49044887    inc ax                                    ; 40
     
    49074890    mov es, [bp-006h]                         ; 8e 46 fa
    49084891    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4909     je short 03b8dh                           ; 74 34
     4892    je short 03b6dh                           ; 74 34
    49104893    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    4911     jne short 03b76h                          ; 75 16
     4894    jne short 03b56h                          ; 75 16
    49124895    mov dx, strict word 00010h                ; ba 10 00
    49134896    mov ax, strict word 00040h                ; b8 40 00
    4914     call 01600h                               ; e8 97 da
     4897    call 01600h                               ; e8 b7 da
    49154898    or AL, strict byte 041h                   ; 0c 41
    49164899    movzx bx, al                              ; 0f b6 d8
    49174900    mov dx, strict word 00010h                ; ba 10 00
    49184901    mov ax, strict word 00040h                ; b8 40 00
    4919     jmp short 03b8ah                          ; eb 14
     4902    jmp short 03b6ah                          ; eb 14
    49204903    mov dx, 002c0h                            ; ba c0 02
    49214904    mov ax, word [bp-00eh]                    ; 8b 46 f2
    4922     call 01600h                               ; e8 81 da
     4905    call 01600h                               ; e8 a1 da
    49234906    db  0feh, 0c0h
    49244907    ; inc al                                    ; fe c0
     
    49264909    mov dx, 002c0h                            ; ba c0 02
    49274910    mov ax, word [bp-00eh]                    ; 8b 46 f2
    4928     call 0160eh                               ; e8 81 da
     4911    call 0160eh                               ; e8 a1 da
    49294912    mov es, [bp-006h]                         ; 8e 46 fa
    49304913    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4931     je short 03b9bh                           ; 74 04
     4914    je short 03b7bh                           ; 74 04
    49324915    mov byte [es:si], 001h                    ; 26 c6 04 01
    49334916    mov es, [bp-006h]                         ; 8e 46 fa
     
    49594942    add AL, strict byte 003h                  ; 04 03
    49604943    add al, byte [bx+di]                      ; 02 01
    4961     add byte [bx+si-067c1h], bh               ; 00 b8 3f 98
     4944    add byte [bx+di+03fh], bh                 ; 00 79 3f
     4945    mov bh, byte [si]                         ; 8a 3c
     4946    sar word [si], 1                          ; d1 3c
     4947    stc                                       ; f9
     4948    cmp AL, strict byte 0c6h                  ; 3c c6
     4949    cmp AL, strict byte 0f9h                  ; 3c f9
     4950    cmp AL, strict byte 0c6h                  ; 3c c6
     4951    cmp AL, strict byte 0cfh                  ; 3c cf
     4952    db  03eh, 0afh
     4953    ; ds scasw                                  ; 3e af
     4954    cmp AL, strict byte 079h                  ; 3c 79
    49624955    aas                                       ; 3f
    4963     mov BH, strict byte 03ch                  ; b7 3c
    4964     loope 03c0eh                              ; e1 3c
    4965     lodsb                                     ; ac
    4966     cmp AL, strict byte 0e1h                  ; 3c e1
    4967     cmp AL, strict byte 0ach                  ; 3c ac
    4968     cmp AL, strict byte 002h                  ; 3c 02
    4969     aas                                       ; 3f
    4970     cbw                                       ; 98
    4971     aas                                       ; 3f
    4972     mov ax, 0b83fh                            ; b8 3f b8
    4973     aas                                       ; 3f
    4974     cbw                                       ; 98
    4975     aas                                       ; 3f
    4976     cbw                                       ; 98
    4977     aas                                       ; 3f
    4978     cbw                                       ; 98
    4979     aas                                       ; 3f
    4980     cbw                                       ; 98
    4981     aas                                       ; 3f
    4982     cbw                                       ; 98
     4956    jns short 03bffh                          ; 79 3f
     4957    scasw                                     ; af
     4958    cmp AL, strict byte 0afh                  ; 3c af
     4959    cmp AL, strict byte 0afh                  ; 3c af
     4960    cmp AL, strict byte 0afh                  ; 3c af
     4961    cmp AL, strict byte 0afh                  ; 3c af
     4962    cmp AL, strict byte 070h                  ; 3c 70
    49834963    aas                                       ; 3f
    49844964    scasw                                     ; af
     4965    cmp AL, strict byte 079h                  ; 3c 79
    49854966    aas                                       ; 3f
    4986     cbw                                       ; 98
    4987     aas                                       ; 3f
    4988     mov ax, 0b83fh                            ; b8 3f b8
    4989     aas                                       ; 3f
    4990     mov ax, 0b83fh                            ; b8 3f b8
    4991     aas                                       ; 3f
    4992     mov ax, 0b83fh                            ; b8 3f b8
    4993     aas                                       ; 3f
    4994     mov ax, 0b83fh                            ; b8 3f b8
    4995     aas                                       ; 3f
    4996     mov ax, 0b83fh                            ; b8 3f b8
    4997     aas                                       ; 3f
    4998     mov ax, 0b83fh                            ; b8 3f b8
    4999     aas                                       ; 3f
    5000 _int13_cdemu:                                ; 0xf3c06 LB 0x44d
     4967    jns short 03c11h                          ; 79 3f
     4968    jns short 03c13h                          ; 79 3f
     4969    jns short 03c15h                          ; 79 3f
     4970    jns short 03c17h                          ; 79 3f
     4971    jns short 03c19h                          ; 79 3f
     4972    jns short 03c1bh                          ; 79 3f
     4973    jns short 03c1dh                          ; 79 3f
     4974    jns short 03c1fh                          ; 79 3f
     4975    jns short 03c21h                          ; 79 3f
     4976    jns short 03c23h                          ; 79 3f
     4977    jns short 03c25h                          ; 79 3f
     4978_int13_cdemu:                                ; 0xf3be6 LB 0x42f
    50014979    push si                                   ; 56
    50024980    push di                                   ; 57
     
    50044982    mov dx, strict word 0000eh                ; ba 0e 00
    50054983    mov ax, strict word 00040h                ; b8 40 00
    5006     call 0161ch                               ; e8 07 da
     4984    call 0161ch                               ; e8 27 da
    50074985    mov di, 00322h                            ; bf 22 03
    50084986    mov cx, ax                                ; 89 c1
     
    50204998    mov dx, strict word 00074h                ; ba 74 00
    50214999    mov ax, strict word 00040h                ; b8 40 00
    5022     call 0160eh                               ; e8 ca d9
     5000    call 0160eh                               ; e8 ea d9
    50235001    mov es, cx                                ; 8e c1
    50245002    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5025     je short 03c5ah                           ; 74 0e
     5003    je short 03c3ah                           ; 74 0e
    50265004    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    50275005    mov ax, word [bp+016h]                    ; 8b 46 16
    50285006    xor ah, ah                                ; 30 e4
    50295007    cmp dx, ax                                ; 39 c2
    5030     je short 03c83h                           ; 74 29
    5031     mov bx, 00cech                            ; bb ec 0c
     5008    je short 03c63h                           ; 74 29
     5009    mov bx, 00d32h                            ; bb 32 0d
    50325010    mov cx, ds                                ; 8c d9
    50335011    mov ax, strict word 00004h                ; b8 04 00
    5034     call 018aeh                               ; e8 49 dc
     5012    call 018aeh                               ; e8 69 dc
    50355013    mov ax, word [bp+016h]                    ; 8b 46 16
    50365014    xor ah, ah                                ; 30 e4
     
    50395017    shr ax, 008h                              ; c1 e8 08
    50405018    push ax                                   ; 50
    5041     push 002bah                               ; 68 ba 02
    5042     push 002c6h                               ; 68 c6 02
     5019    push 002bch                               ; 68 bc 02
     5020    push 002c8h                               ; 68 c8 02
    50435021    push strict byte 00004h                   ; 6a 04
    5044     call 018e9h                               ; e8 6c dc
     5022    call 018e9h                               ; e8 8c dc
    50455023    add sp, strict byte 0000ah                ; 83 c4 0a
    5046     jmp near 03fd8h                           ; e9 55 03
     5024    jmp near 03f99h                           ; e9 36 03
    50475025    mov ax, word [bp+01ah]                    ; 8b 46 1a
    50485026    shr ax, 008h                              ; c1 e8 08
    50495027    cmp ax, strict word 00050h                ; 3d 50 00
    5050     jnbe near 03fb8h                          ; 0f 87 28 03
     5028    jnbe near 03f79h                          ; 0f 87 09 03
    50515029    push CS                                   ; 0e
    50525030    pop ES                                    ; 07
    50535031    mov cx, strict word 0001eh                ; b9 1e 00
    5054     mov di, 03badh                            ; bf ad 3b
     5032    mov di, 03b8dh                            ; bf 8d 3b
    50555033    repne scasb                               ; f2 ae
    50565034    sal cx, 1                                 ; d1 e1
    50575035    mov di, cx                                ; 89 cf
    5058     mov ax, word [cs:di+03bcah]               ; 2e 8b 85 ca 3b
    5059     mov di, word [bp+01ah]                    ; 8b 7e 1a
    5060     and di, 000ffh                            ; 81 e7 ff 00
     5036    mov ax, word [cs:di+03baah]               ; 2e 8b 85 aa 3b
     5037    mov bx, word [bp+01ah]                    ; 8b 5e 1a
     5038    xor bh, bh                                ; 30 ff
    50615039    jmp ax                                    ; ff e0
     5040    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     5041    imul bx, bx, strict byte 00018h           ; 6b db 18
     5042    mov es, [bp-008h]                         ; 8e 46 f8
     5043    add bx, word [bp-00ah]                    ; 03 5e f6
     5044    movzx bx, byte [es:bx+01eh]               ; 26 0f b6 5f 1e
     5045    add bx, bx                                ; 01 db
     5046    cmp word [word bx+00000h], strict byte 00000h ; 83 bf 00 00 00
     5047    je near 03cafh                            ; 0f 84 08 00
     5048    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5049    call word [word bx+0000ch]                ; ff 97 0c 00
     5050    mov byte [bp+01bh], 000h                  ; c6 46 1b 00
     5051    xor bx, bx                                ; 31 db
     5052    mov dx, strict word 00074h                ; ba 74 00
     5053    mov ax, strict word 00040h                ; b8 40 00
     5054    call 0160eh                               ; e8 50 d9
     5055    and byte [bp+020h], 0feh                  ; 80 66 20 fe
     5056    leave                                     ; c9
     5057    pop di                                    ; 5f
     5058    pop si                                    ; 5e
     5059    retn                                      ; c3
    50625060    mov ax, word [bp+01ah]                    ; 8b 46 1a
    50635061    xor ah, ah                                ; 30 e4
    50645062    or ah, 003h                               ; 80 cc 03
    5065     jmp near 03fe0h                           ; e9 29 03
     5063    jmp near 03fa1h                           ; e9 d0 02
    50665064    mov dx, strict word 00074h                ; ba 74 00
    50675065    mov ax, strict word 00040h                ; b8 40 00
    5068     call 01600h                               ; e8 40 d9
     5066    call 01600h                               ; e8 26 d9
    50695067    mov cl, al                                ; 88 c1
    50705068    movzx ax, cl                              ; 0f b6 c1
    50715069    sal ax, 008h                              ; c1 e0 08
    5072     or di, ax                                 ; 09 c7
    5073     mov word [bp+01ah], di                    ; 89 7e 1a
     5070    or bx, ax                                 ; 09 c3
     5071    mov word [bp+01ah], bx                    ; 89 5e 1a
    50745072    xor bx, bx                                ; 31 db
    50755073    mov dx, strict word 00074h                ; ba 74 00
    50765074    mov ax, strict word 00040h                ; b8 40 00
    5077     call 0160eh                               ; e8 36 d9
     5075    call 0160eh                               ; e8 1c d9
    50785076    test cl, cl                               ; 84 c9
    5079     je near 03f9ch                            ; 0f 84 be 02
    5080     jmp near 03ff4h                           ; e9 13 03
     5077    je short 03cb3h                           ; 74 bd
     5078    jmp near 03fb5h                           ; e9 bc 02
    50815079    mov es, [bp-004h]                         ; 8e 46 fc
    5082     mov ax, word [es:si+014h]                 ; 26 8b 44 14
    5083     mov word [bp-00ch], ax                    ; 89 46 f4
     5080    mov di, word [es:si+014h]                 ; 26 8b 7c 14
    50845081    mov dx, word [es:si+012h]                 ; 26 8b 54 12
    5085     mov di, word [es:si+010h]                 ; 26 8b 7c 10
     5082    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
    50865083    mov ax, word [es:si+008h]                 ; 26 8b 44 08
    5087     mov word [bp-018h], ax                    ; 89 46 e8
     5084    mov word [bp-010h], ax                    ; 89 46 f0
    50885085    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
    5089     mov word [bp-016h], ax                    ; 89 46 ea
     5086    mov word [bp-00eh], ax                    ; 89 46 f2
    50905087    mov ax, word [bp+018h]                    ; 8b 46 18
    50915088    and ax, strict word 0003fh                ; 25 3f 00
    5092     mov word [bp-012h], ax                    ; 89 46 ee
     5089    mov word [bp-00ch], ax                    ; 89 46 f4
     5090    mov cx, word [bp+018h]                    ; 8b 4e 18
     5091    and cx, 000c0h                            ; 81 e1 c0 00
     5092    sal cx, 002h                              ; c1 e1 02
    50935093    mov ax, word [bp+018h]                    ; 8b 46 18
    5094     xor ah, ah                                ; 30 e4
    5095     and AL, strict byte 0c0h                  ; 24 c0
    5096     sal ax, 002h                              ; c1 e0 02
    5097     mov bx, word [bp+018h]                    ; 8b 5e 18
    5098     shr bx, 008h                              ; c1 eb 08
    5099     or ax, bx                                 ; 09 d8
     5094    shr ax, 008h                              ; c1 e8 08
     5095    or ax, cx                                 ; 09 c8
    51005096    mov si, word [bp+016h]                    ; 8b 76 16
    51015097    shr si, 008h                              ; c1 ee 08
    5102     mov bx, word [bp+01ah]                    ; 8b 5e 1a
    5103     xor bh, bh                                ; 30 ff
    5104     mov word [bp-006h], bx                    ; 89 5e fa
    5105     test bx, bx                               ; 85 db
    5106     je near 03f98h                            ; 0f 84 68 02
    5107     mov bx, word [bp-012h]                    ; 8b 5e ee
    5108     cmp bx, word [bp-00ch]                    ; 3b 5e f4
    5109     jnbe near 03fd8h                          ; 0f 87 9e 02
     5098    mov cx, word [bp+01ah]                    ; 8b 4e 1a
     5099    xor ch, ch                                ; 30 ed
     5100    mov word [bp-006h], cx                    ; 89 4e fa
     5101    test cx, cx                               ; 85 c9
     5102    jne short 03d46h                          ; 75 03
     5103    jmp near 03cafh                           ; e9 69 ff
     5104    cmp di, word [bp-00ch]                    ; 3b 7e f4
     5105    jc near 03f99h                            ; 0f 82 4c 02
    51105106    cmp ax, dx                                ; 39 d0
    5111     jnc near 03fd8h                           ; 0f 83 98 02
    5112     cmp si, di                                ; 39 fe
    5113     jnc near 03fd8h                           ; 0f 83 92 02
     5107    jnc near 03f99h                           ; 0f 83 46 02
     5108    cmp si, bx                                ; 39 de
     5109    jnc near 03f99h                           ; 0f 83 40 02
    51145110    mov dx, word [bp+01ah]                    ; 8b 56 1a
    51155111    shr dx, 008h                              ; c1 ea 08
    51165112    cmp dx, strict byte 00004h                ; 83 fa 04
    5117     je near 03f98h                            ; 0f 84 45 02
     5113    jne short 03d67h                          ; 75 03
     5114    jmp near 03cafh                           ; e9 48 ff
    51185115    mov dx, word [bp+014h]                    ; 8b 56 14
    51195116    shr dx, 004h                              ; c1 ea 04
    5120     mov bx, word [bp+00ah]                    ; 8b 5e 0a
    5121     add bx, dx                                ; 01 d3
    5122     mov word [bp-00eh], bx                    ; 89 5e f2
     5117    mov cx, word [bp+00ah]                    ; 8b 4e 0a
     5118    add cx, dx                                ; 01 d1
     5119    mov word [bp-012h], cx                    ; 89 4e ee
    51235120    mov dx, word [bp+014h]                    ; 8b 56 14
    51245121    and dx, strict byte 0000fh                ; 83 e2 0f
    5125     mov word [bp-010h], dx                    ; 89 56 f0
     5122    mov word [bp-018h], dx                    ; 89 56 e8
    51265123    xor dl, dl                                ; 30 d2
    5127     mov bx, di                                ; 89 fb
    51285124    xor cx, cx                                ; 31 c9
    5129     call 08ff9h                               ; e8 86 52
     5125    call 08fe9h                               ; e8 64 52
    51305126    xor bx, bx                                ; 31 db
    51315127    add ax, si                                ; 01 f0
    51325128    adc dx, bx                                ; 11 da
    5133     mov bx, word [bp-00ch]                    ; 8b 5e f4
     5129    mov bx, di                                ; 89 fb
    51345130    xor cx, cx                                ; 31 c9
    5135     call 08ff9h                               ; e8 78 52
    5136     mov bx, word [bp-012h]                    ; 8b 5e ee
    5137     dec bx                                    ; 4b
     5131    call 08fe9h                               ; e8 57 52
     5132    mov bx, ax                                ; 89 c3
     5133    mov ax, word [bp-00ch]                    ; 8b 46 f4
     5134    dec ax                                    ; 48
    51385135    xor cx, cx                                ; 31 c9
    51395136    add ax, bx                                ; 01 d8
     
    51505147    shr di, 1                                 ; d1 ef
    51515148    rcr si, 1                                 ; d1 de
    5152     mov bx, ax                                ; 89 c3
    5153     xor bh, ah                                ; 30 e7
    5154     and bl, 003h                              ; 80 e3 03
    5155     mov word [bp-014h], bx                    ; 89 5e ec
    5156     xor bx, bx                                ; 31 db
     5149    mov word [bp-01ah], di                    ; 89 7e e6
     5150    mov di, ax                                ; 89 c7
     5151    and di, strict byte 00003h                ; 83 e7 03
     5152    xor bh, bh                                ; 30 ff
    51575153    add ax, word [bp-006h]                    ; 03 46 fa
    51585154    adc dx, bx                                ; 11 da
     
    51685164    mov dx, ss                                ; 8c d2
    51695165    lea ax, [bp-02ah]                         ; 8d 46 d6
    5170     call 0902ah                               ; e8 52 52
     5166    call 0901ah                               ; e8 31 52
    51715167    mov word [bp-02ah], strict word 00028h    ; c7 46 d6 28 00
    5172     mov ax, word [bp-018h]                    ; 8b 46 e8
     5168    mov ax, word [bp-010h]                    ; 8b 46 f0
    51735169    add ax, si                                ; 01 f0
    5174     mov dx, word [bp-016h]                    ; 8b 56 ea
    5175     adc dx, di                                ; 11 fa
     5170    mov dx, word [bp-00eh]                    ; 8b 56 f2
     5171    adc dx, word [bp-01ah]                    ; 13 56 e6
    51765172    xchg ah, al                               ; 86 c4
    51775173    xchg dh, dl                               ; 86 d6
     
    51795175    mov word [bp-028h], ax                    ; 89 46 d8
    51805176    mov word [bp-026h], dx                    ; 89 56 da
    5181     mov dx, word [bp-01eh]                    ; 8b 56 e2
    5182     sub dx, si                                ; 29 f2
    5183     inc dx                                    ; 42
    5184     mov ax, dx                                ; 89 d0
     5177    mov ax, word [bp-01eh]                    ; 8b 46 e2
     5178    sub ax, si                                ; 29 f0
     5179    inc ax                                    ; 40
    51855180    xchg ah, al                               ; 86 c4
    51865181    mov word [bp-023h], ax                    ; 89 46 dd
     5182    mov ax, word [bp-006h]                    ; 8b 46 fa
    51875183    les bx, [bp-00ah]                         ; c4 5e f6
    5188     mov word [es:bx+00ah], dx                 ; 26 89 57 0a
     5184    mov word [es:bx+00ah], ax                 ; 26 89 47 0a
    51895185    mov word [es:bx+00ch], 00200h             ; 26 c7 47 0c 00 02
    5190     mov ax, word [bp-014h]                    ; 8b 46 ec
     5186    mov ax, di                                ; 89 f8
    51915187    sal ax, 009h                              ; c1 e0 09
    51925188    mov word [es:bx+01ah], ax                 ; 26 89 47 1a
    51935189    mov dx, word [bp-006h]                    ; 8b 56 fa
     5190    xor dh, dh                                ; 30 f6
     5191    and dl, 003h                              ; 80 e2 03
     5192    mov bx, strict word 00004h                ; bb 04 00
     5193    sub bx, dx                                ; 29 d3
     5194    mov dx, bx                                ; 89 da
     5195    sub dx, di                                ; 29 fa
    51945196    sal dx, 009h                              ; c1 e2 09
    51955197    and dh, 007h                              ; 80 e6 07
    5196     mov bx, 00800h                            ; bb 00 08
    5197     sub bx, dx                                ; 29 d3
    5198     mov dx, bx                                ; 89 da
    5199     mov bx, word [bp-00ah]                    ; 8b 5e f6
    5200     mov bx, word [es:bx+01ah]                 ; 26 8b 5f 1a
    5201     sub dx, bx                                ; 29 da
    52025198    mov bx, word [bp-00ah]                    ; 8b 5e f6
    52035199    mov word [es:bx+01ch], dx                 ; 26 89 57 1c
    5204     cmp byte [bp-002h], 00ch                  ; 80 7e fe 0c
    5205     jc short 03e64h                           ; 72 28
    5206     push dword [bp-010h]                      ; 66 ff 76 f0
     5200    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     5201    imul dx, dx, strict byte 00018h           ; 6b d2 18
     5202    add bx, dx                                ; 01 d3
     5203    movzx dx, byte [es:bx+01eh]               ; 26 0f b6 57 1e
     5204    add dx, dx                                ; 01 d2
     5205    mov word [bp-016h], dx                    ; 89 56 ea
     5206    push word [bp-012h]                       ; ff 76 ee
     5207    push word [bp-018h]                       ; ff 76 e8
    52075208    push strict byte 00001h                   ; 6a 01
    52085209    mov si, word [bp-006h]                    ; 8b 76 fa
     
    52115212    sal si, 1                                 ; d1 e6
    52125213    rcl di, 1                                 ; d1 d7
    5213     loop 03e4ah                               ; e2 fa
     5214    loop 03e69h                               ; e2 fa
    52145215    push di                                   ; 57
    52155216    push si                                   ; 56
     
    52195220    lea bx, [bp-02ah]                         ; 8d 5e d6
    52205221    mov dx, strict word 0000ch                ; ba 0c 00
    5221     call 082c2h                               ; e8 60 44
    5222     jmp short 03eb8h                          ; eb 54
    5223     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    5224     jc short 03e92h                           ; 72 28
    5225     push dword [bp-010h]                      ; 66 ff 76 f0
    5226     push strict byte 00001h                   ; 6a 01
    5227     mov si, word [bp-006h]                    ; 8b 76 fa
    5228     xor di, di                                ; 31 ff
    5229     mov cx, strict word 00009h                ; b9 09 00
    5230     sal si, 1                                 ; d1 e6
    5231     rcl di, 1                                 ; d1 d7
    5232     loop 03e78h                               ; e2 fa
    5233     push di                                   ; 57
    5234     push si                                   ; 56
    5235     push ax                                   ; 50
    5236     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    5237     mov cx, ss                                ; 8c d1
    5238     lea bx, [bp-02ah]                         ; 8d 5e d6
    5239     mov dx, strict word 0000ch                ; ba 0c 00
    5240     call 07626h                               ; e8 96 37
    5241     jmp short 03eb8h                          ; eb 26
    5242     push dword [bp-010h]                      ; 66 ff 76 f0
    5243     push strict byte 00001h                   ; 6a 01
    5244     mov si, word [bp-006h]                    ; 8b 76 fa
    5245     xor di, di                                ; 31 ff
    5246     mov cx, strict word 00009h                ; b9 09 00
    5247     sal si, 1                                 ; d1 e6
    5248     rcl di, 1                                 ; d1 d7
    5249     loop 03ea0h                               ; e2 fa
    5250     push di                                   ; 57
    5251     push si                                   ; 56
    5252     push ax                                   ; 50
    5253     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    5254     mov cx, ss                                ; 8c d1
    5255     lea bx, [bp-02ah]                         ; 8d 5e d6
    5256     mov dx, strict word 0000ch                ; ba 0c 00
    5257     call 027eah                               ; e8 32 e9
    5258     mov dl, al                                ; 88 c2
     5222    mov si, word [bp-016h]                    ; 8b 76 ea
     5223    call word [word si+00000h]                ; ff 94 00 00
     5224    mov dx, ax                                ; 89 c2
    52595225    les bx, [bp-00ah]                         ; c4 5e f6
    52605226    db  066h, 026h, 0c7h, 047h, 01ah, 000h, 000h, 000h, 000h
    52615227    ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00
    5262     test dl, dl                               ; 84 d2
    5263     je near 03f98h                            ; 0f 84 cc 00
    5264     mov bx, 00cech                            ; bb ec 0c
     5228    test al, al                               ; 84 c0
     5229    je near 03cafh                            ; 0f 84 16 fe
     5230    mov bx, 00d32h                            ; bb 32 0d
    52655231    mov cx, ds                                ; 8c d9
    52665232    mov ax, strict word 00004h                ; b8 04 00
    5267     call 018aeh                               ; e8 d7 d9
     5233    call 018aeh                               ; e8 0a da
    52685234    movzx ax, dl                              ; 0f b6 c2
    52695235    push ax                                   ; 50
     
    52715237    shr ax, 008h                              ; c1 e8 08
    52725238    push ax                                   ; 50
    5273     push 002bah                               ; 68 ba 02
    5274     push 002fch                               ; 68 fc 02
     5239    push 002bch                               ; 68 bc 02
     5240    push 002feh                               ; 68 fe 02
    52755241    push strict byte 00004h                   ; 6a 04
    5276     call 018e9h                               ; e8 fc d9
     5242    call 018e9h                               ; e8 2f da
    52775243    add sp, strict byte 0000ah                ; 83 c4 0a
    52785244    mov ax, word [bp+01ah]                    ; 8b 46 1a
     
    52815247    mov word [bp+01ah], ax                    ; 89 46 1a
    52825248    mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    5283     jmp near 03fe3h                           ; e9 e1 00
     5249    jmp near 03fa4h                           ; e9 d5 00
    52845250    mov es, [bp-004h]                         ; 8e 46 fc
    5285     mov ax, word [es:si+014h]                 ; 26 8b 44 14
    5286     mov word [bp-00ch], ax                    ; 89 46 f4
     5251    mov di, word [es:si+014h]                 ; 26 8b 7c 14
    52875252    mov dx, word [es:si+012h]                 ; 26 8b 54 12
    52885253    dec dx                                    ; 4a
    5289     mov di, word [es:si+010h]                 ; 26 8b 7c 10
    5290     dec di                                    ; 4f
     5254    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
     5255    dec bx                                    ; 4b
    52915256    mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    5292     mov cx, word [bp+014h]                    ; 8b 4e 14
    5293     xor cl, cl                                ; 30 c9
    5294     mov ax, word [bp+018h]                    ; 8b 46 18
    5295     xor ah, ah                                ; 30 e4
    5296     mov word [bp-01ah], ax                    ; 89 46 e6
    5297     mov ax, dx                                ; 89 d0
    5298     xor ah, dh                                ; 30 f4
    5299     sal ax, 008h                              ; c1 e0 08
    5300     mov bx, word [bp-01ah]                    ; 8b 5e e6
    5301     or bx, ax                                 ; 09 c3
    5302     mov word [bp+018h], bx                    ; 89 5e 18
     5257    mov ax, word [bp+014h]                    ; 8b 46 14
     5258    xor al, al                                ; 30 c0
     5259    mov cx, word [bp+018h]                    ; 8b 4e 18
     5260    xor ch, ch                                ; 30 ed
     5261    mov word [bp-016h], cx                    ; 89 4e ea
     5262    mov cx, dx                                ; 89 d1
     5263    xor ch, dh                                ; 30 f5
     5264    sal cx, 008h                              ; c1 e1 08
     5265    mov word [bp-014h], cx                    ; 89 4e ec
     5266    mov cx, word [bp-016h]                    ; 8b 4e ea
     5267    or cx, word [bp-014h]                     ; 0b 4e ec
     5268    mov word [bp+018h], cx                    ; 89 4e 18
    53035269    shr dx, 002h                              ; c1 ea 02
    53045270    xor dh, dh                                ; 30 f6
    53055271    and dl, 0c0h                              ; 80 e2 c0
    5306     mov ax, word [bp-00ch]                    ; 8b 46 f4
    5307     and AL, strict byte 03fh                  ; 24 3f
    5308     or dl, al                                 ; 08 c2
    5309     mov ax, bx                                ; 89 d8
    5310     xor al, bl                                ; 30 d8
    5311     or ax, dx                                 ; 09 d0
    5312     mov word [bp+018h], ax                    ; 89 46 18
    5313     mov ax, word [bp+016h]                    ; 8b 46 16
    5314     xor ah, ah                                ; 30 e4
    5315     sal di, 008h                              ; c1 e7 08
    5316     or ax, di                                 ; 09 f8
    5317     mov word [bp+016h], ax                    ; 89 46 16
    5318     xor al, al                                ; 30 c0
    5319     or AL, strict byte 002h                   ; 0c 02
    5320     mov word [bp+016h], ax                    ; 89 46 16
    5321     mov al, byte [es:si+001h]                 ; 26 8a 44 01
    5322     mov word [bp+014h], cx                    ; 89 4e 14
    5323     cmp AL, strict byte 003h                  ; 3c 03
    5324     je short 03f89h                           ; 74 1c
    5325     cmp AL, strict byte 002h                  ; 3c 02
    5326     je short 03f81h                           ; 74 10
    5327     cmp AL, strict byte 001h                  ; 3c 01
    5328     jne short 03f8eh                          ; 75 19
     5272    and di, strict byte 0003fh                ; 83 e7 3f
     5273    or dx, di                                 ; 09 fa
     5274    xor cl, cl                                ; 30 c9
     5275    or cx, dx                                 ; 09 d1
     5276    mov word [bp+018h], cx                    ; 89 4e 18
     5277    mov dx, word [bp+016h]                    ; 8b 56 16
     5278    xor dh, dh                                ; 30 f6
     5279    sal bx, 008h                              ; c1 e3 08
     5280    or dx, bx                                 ; 09 da
     5281    mov word [bp+016h], dx                    ; 89 56 16
     5282    xor dl, dl                                ; 30 d2
     5283    or dl, 002h                               ; 80 ca 02
     5284    mov word [bp+016h], dx                    ; 89 56 16
     5285    mov dl, byte [es:si+001h]                 ; 26 8a 54 01
     5286    mov word [bp+014h], ax                    ; 89 46 14
     5287    cmp dl, 003h                              ; 80 fa 03
     5288    je short 03f53h                           ; 74 1a
     5289    cmp dl, 002h                              ; 80 fa 02
     5290    je short 03f4fh                           ; 74 11
     5291    cmp dl, 001h                              ; 80 fa 01
     5292    jne short 03f57h                          ; 75 14
    53295293    mov ax, word [bp+014h]                    ; 8b 46 14
    53305294    xor al, al                                ; 30 c0
    53315295    or AL, strict byte 002h                   ; 0c 02
    53325296    mov word [bp+014h], ax                    ; 89 46 14
    5333     jmp short 03f8eh                          ; eb 0d
    5334     or cl, 004h                               ; 80 c9 04
    5335     mov word [bp+014h], cx                    ; 89 4e 14
    5336     jmp short 03f8eh                          ; eb 05
    5337     or cl, 006h                               ; 80 c9 06
    5338     jmp short 03f84h                          ; eb f6
     5297    jmp short 03f57h                          ; eb 08
     5298    or AL, strict byte 004h                   ; 0c 04
     5299    jmp short 03f4ah                          ; eb f7
     5300    or AL, strict byte 005h                   ; 0c 05
     5301    jmp short 03f4ah                          ; eb f3
     5302    mov es, [bp-004h]                         ; 8e 46 fc
     5303    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
     5304    jnc near 03cafh                           ; 0f 83 4c fd
    53395305    mov word [bp+00ch], 0efc7h                ; c7 46 0c c7 ef
    53405306    mov word [bp+00ah], 0f000h                ; c7 46 0a 00 f0
    5341     mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    5342     xor bx, bx                                ; 31 db
    5343     mov dx, strict word 00074h                ; ba 74 00
    5344     mov ax, strict word 00040h                ; b8 40 00
    5345     call 0160eh                               ; e8 67 d6
    5346     and byte [bp+020h], 0feh                  ; 80 66 20 fe
    5347     leave                                     ; c9
    5348     pop di                                    ; 5f
    5349     pop si                                    ; 5e
    5350     retn                                      ; c3
    5351     or di, 00300h                             ; 81 cf 00 03
    5352     mov word [bp+01ah], di                    ; 89 7e 1a
    5353     jmp short 03f9ch                          ; eb e4
    5354     mov bx, 00cech                            ; bb ec 0c
     5307    jmp near 03cafh                           ; e9 3f fd
     5308    or bh, 003h                               ; 80 cf 03
     5309    mov word [bp+01ah], bx                    ; 89 5e 1a
     5310    jmp near 03cb3h                           ; e9 3a fd
     5311    mov bx, 00d32h                            ; bb 32 0d
    53555312    mov cx, ds                                ; 8c d9
    53565313    mov ax, strict word 00004h                ; b8 04 00
    5357     call 018aeh                               ; e8 eb d8
     5314    call 018aeh                               ; e8 2a d9
    53585315    mov ax, word [bp+01ah]                    ; 8b 46 1a
    53595316    shr ax, 008h                              ; c1 e8 08
    53605317    push ax                                   ; 50
    5361     push 002bah                               ; 68 ba 02
    5362     push 0031dh                               ; 68 1d 03
     5318    push 002bch                               ; 68 bc 02
     5319    push 0031fh                               ; 68 1f 03
    53635320    push strict byte 00004h                   ; 6a 04
    5364     call 018e9h                               ; e8 14 d9
     5321    call 018e9h                               ; e8 53 d9
    53655322    add sp, strict byte 00008h                ; 83 c4 08
    53665323    mov ax, word [bp+01ah]                    ; 8b 46 1a
     
    53735330    mov dx, strict word 00074h                ; ba 74 00
    53745331    mov ax, strict word 00040h                ; b8 40 00
    5375     call 0160eh                               ; e8 1a d6
     5332    call 0160eh                               ; e8 59 d6
    53765333    or byte [bp+020h], 001h                   ; 80 4e 20 01
    5377     jmp short 03fabh                          ; eb b1
     5334    jmp near 03cc2h                           ; e9 06 fd
    53785335    push ax                                   ; 50
    53795336    dec si                                    ; 4e
     
    53945351    add AL, strict byte 003h                  ; 04 03
    53955352    add al, byte [bx+di]                      ; 02 01
    5396     add dh, ch                                ; 00 ee
     5353    add byte [di+045h], dl                    ; 00 55 45
     5354    aam 042h                                  ; d4 42
     5355    rol byte [bx+si+055h], 045h               ; c0 40 55 45
     5356    mov CH, strict byte 040h                  ; b5 40
     5357    push bp                                   ; 55
    53975358    inc bp                                    ; 45
    5398     xchg di, ax                               ; 97
     5359    mov CH, strict byte 040h                  ; b5 40
     5360    push bp                                   ; 55
    53995361    inc bp                                    ; 45
    5400     inc byte [bx+si-012h]                     ; fe 40 ee
     5362    aam 042h                                  ; d4 42
     5363    push bp                                   ; 55
     5364    inc bp                                    ; 45
     5365    push bp                                   ; 55
     5366    inc bp                                    ; 45
     5367    aam 042h                                  ; d4 42
     5368    aam 042h                                  ; d4 42
     5369    aam 042h                                  ; d4 42
     5370    aam 042h                                  ; d4 42
     5371    aam 042h                                  ; d4 42
     5372    jmp far 05542h:0d440h                     ; ea 40 d4 42 55
    54015373    inc bp                                    ; 45
    54025374    rep inc ax                                ; f3 40
    5403     out DX, AL                                ; ee
     5375    push ES                                   ; 06
     5376    inc cx                                    ; 41
     5377    mov CH, strict byte 040h                  ; b5 40
     5378    push ES                                   ; 06
     5379    inc cx                                    ; 41
     5380    xor AL, strict byte 042h                  ; 34 42
     5381    jmp short 0404dh                          ; eb 42
     5382    push ES                                   ; 06
     5383    inc cx                                    ; 41
     5384    adc al, byte [bp+di+00eh]                 ; 12 43 0e
    54045385    inc bp                                    ; 45
    5405     rep inc ax                                ; f3 40
    5406     out DX, AL                                ; ee
     5386    push SS                                   ; 16
    54075387    inc bp                                    ; 45
    5408     xchg di, ax                               ; 97
     5388    push bp                                   ; 55
    54095389    inc bp                                    ; 45
    5410     out DX, AL                                ; ee
    5411     inc bp                                    ; 45
    5412     out DX, AL                                ; ee
    5413     inc bp                                    ; 45
    5414     xchg di, ax                               ; 97
    5415     inc bp                                    ; 45
    5416     xchg di, ax                               ; 97
    5417     inc bp                                    ; 45
    5418     xchg di, ax                               ; 97
    5419     inc bp                                    ; 45
    5420     xchg di, ax                               ; 97
    5421     inc bp                                    ; 45
    5422     xchg di, ax                               ; 97
    5423     inc bp                                    ; 45
    5424     sub byte [bx+di-069h], al                 ; 28 41 97
    5425     inc bp                                    ; 45
    5426     out DX, AL                                ; ee
    5427     inc bp                                    ; 45
    5428     xor word [bx+di+044h], ax                 ; 31 41 44
    5429     inc cx                                    ; 41
    5430     rep inc ax                                ; f3 40
    5431     inc sp                                    ; 44
    5432     inc cx                                    ; 41
    5433     iret                                      ; cf
    5434     inc dx                                    ; 42
    5435     jc short 0408ch                           ; 72 43
    5436     inc sp                                    ; 44
    5437     inc cx                                    ; 41
    5438     lahf                                      ; 9f
    5439     inc bx                                    ; 43
    5440     scasb                                     ; ae
    5441     inc bp                                    ; 45
    5442     mov DH, strict byte 045h                  ; b6 45
    5443     out DX, AL                                ; ee
    5444     inc bp                                    ; 45
    5445 _int13_cdrom:                                ; 0xf4053 LB 0x5b8
     5390_int13_cdrom:                                ; 0xf4015 LB 0x55d
    54465391    push si                                   ; 56
    54475392    push di                                   ; 57
     
    54495394    mov dx, strict word 0000eh                ; ba 0e 00
    54505395    mov ax, strict word 00040h                ; b8 40 00
    5451     call 0161ch                               ; e8 ba d5
    5452     mov word [bp-018h], ax                    ; 89 46 e8
     5396    call 0161ch                               ; e8 f8 d5
     5397    mov word [bp-016h], ax                    ; 89 46 ea
    54535398    mov si, 00122h                            ; be 22 01
    5454     mov word [bp-00ah], ax                    ; 89 46 f6
     5399    mov word [bp-008h], ax                    ; 89 46 f8
    54555400    xor bx, bx                                ; 31 db
    54565401    mov dx, strict word 00074h                ; ba 74 00
    54575402    mov ax, strict word 00040h                ; b8 40 00
    5458     call 0160eh                               ; e8 98 d5
     5403    call 0160eh                               ; e8 d6 d5
    54595404    mov ax, word [bp+014h]                    ; 8b 46 14
    54605405    xor ah, ah                                ; 30 e4
    54615406    cmp ax, 000e0h                            ; 3d e0 00
    5462     jc short 04085h                           ; 72 05
     5407    jc short 04047h                           ; 72 05
    54635408    cmp ax, 000f0h                            ; 3d f0 00
    5464     jc short 040a3h                           ; 72 1e
     5409    jc short 04065h                           ; 72 1e
    54655410    mov ax, word [bp+014h]                    ; 8b 46 14
    54665411    xor ah, ah                                ; 30 e4
     
    54695414    shr ax, 008h                              ; c1 e8 08
    54705415    push ax                                   ; 50
    5471     push 0034dh                               ; 68 4d 03
    5472     push 00359h                               ; 68 59 03
     5416    push 0034fh                               ; 68 4f 03
     5417    push 0035bh                               ; 68 5b 03
    54735418    push strict byte 00004h                   ; 6a 04
    5474     call 018e9h                               ; e8 4c d8
     5419    call 018e9h                               ; e8 8a d8
    54755420    add sp, strict byte 0000ah                ; 83 c4 0a
    5476     jmp near 045cch                           ; e9 29 05
     5421    jmp near 04532h                           ; e9 cd 04
    54775422    mov ax, word [bp+014h]                    ; 8b 46 14
    54785423    xor ah, ah                                ; 30 e4
    5479     mov es, [bp-00ah]                         ; 8e 46 f6
     5424    mov es, [bp-008h]                         ; 8e 46 f8
    54805425    mov bx, si                                ; 89 f3
    54815426    add bx, ax                                ; 01 c3
    54825427    mov dl, byte [es:bx+000d0h]               ; 26 8a 97 d0 00
    5483     mov byte [bp-002h], dl                    ; 88 56 fe
     5428    mov byte [bp-004h], dl                    ; 88 56 fc
    54845429    cmp dl, 010h                              ; 80 fa 10
    5485     jc short 040cch                           ; 72 10
     5430    jc short 0408eh                           ; 72 10
    54865431    push ax                                   ; 50
    54875432    mov ax, word [bp+01ch]                    ; 8b 46 1c
    54885433    shr ax, 008h                              ; c1 e8 08
    54895434    push ax                                   ; 50
    5490     push 0034dh                               ; 68 4d 03
    5491     push 00384h                               ; 68 84 03
    5492     jmp short 04098h                          ; eb cc
     5435    push 0034fh                               ; 68 4f 03
     5436    push 00386h                               ; 68 86 03
     5437    jmp short 0405ah                          ; eb cc
    54935438    mov ax, word [bp+01ch]                    ; 8b 46 1c
    54945439    shr ax, 008h                              ; c1 e8 08
    54955440    cmp ax, strict word 00050h                ; 3d 50 00
    5496     jnbe near 045eeh                          ; 0f 87 15 05
     5441    jnbe near 04555h                          ; 0f 87 ba 04
    54975442    push CS                                   ; 0e
    54985443    pop ES                                    ; 07
    54995444    mov cx, strict word 0001eh                ; b9 1e 00
    5500     mov di, 03ffah                            ; bf fa 3f
     5445    mov di, 03fbch                            ; bf bc 3f
    55015446    repne scasb                               ; f2 ae
    55025447    sal cx, 1                                 ; d1 e1
    55035448    mov di, cx                                ; 89 cf
    5504     mov ax, word [cs:di+04017h]               ; 2e 8b 85 17 40
     5449    mov ax, word [cs:di+03fd9h]               ; 2e 8b 85 d9 3f
    55055450    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    55065451    xor bh, bh                                ; 30 ff
     
    55095454    xor ah, ah                                ; 30 e4
    55105455    or ah, 003h                               ; 80 cc 03
    5511     jmp near 045d4h                           ; e9 d6 04
     5456    jmp near 0453ah                           ; e9 7a 04
    55125457    mov dx, strict word 00074h                ; ba 74 00
    55135458    mov ax, strict word 00040h                ; b8 40 00
    5514     call 01600h                               ; e8 f9 d4
     5459    call 01600h                               ; e8 37 d5
    55155460    mov cl, al                                ; 88 c1
    55165461    movzx ax, cl                              ; 0f b6 c1
     
    55215466    mov dx, strict word 00074h                ; ba 74 00
    55225467    mov ax, strict word 00040h                ; b8 40 00
    5523     call 0160eh                               ; e8 ef d4
     5468    call 0160eh                               ; e8 2d d5
    55245469    test cl, cl                               ; 84 c9
    5525     je near 0459bh                            ; 0f 84 76 04
    5526     jmp near 045e8h                           ; e9 c0 04
     5470    je near 042d8h                            ; 0f 84 f1 01
     5471    jmp near 0454eh                           ; e9 64 04
    55275472    or bh, 002h                               ; 80 cf 02
    55285473    mov word [bp+01ch], bx                    ; 89 5e 1c
    5529     jmp near 045d7h                           ; e9 a6 04
     5474    jmp near 0453dh                           ; e9 4a 04
    55305475    mov word [bp+016h], 0aa55h                ; c7 46 16 55 aa
    55315476    or bh, 030h                               ; 80 cf 30
    55325477    mov word [bp+01ch], bx                    ; 89 5e 1c
    55335478    mov word [bp+01ah], strict word 00007h    ; c7 46 1a 07 00
    5534     jmp near 0459bh                           ; e9 57 04
     5479    jmp near 042d8h                           ; e9 d2 01
    55355480    mov bx, word [bp+010h]                    ; 8b 5e 10
    55365481    mov es, [bp+00ah]                         ; 8e 46 0a
    5537     mov di, bx                                ; 89 df
    5538     mov [bp-016h], es                         ; 8c 46 ea
     5482    mov word [bp-010h], bx                    ; 89 5e f0
     5483    mov [bp-00eh], es                         ; 8c 46 f2
    55395484    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
     5485    mov word [bp-00ch], ax                    ; 89 46 f4
     5486    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     5487    mov word [bp-018h], ax                    ; 89 46 e8
     5488    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    55405489    mov word [bp-01ch], ax                    ; 89 46 e4
    5541     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    5542     mov word [bp-012h], ax                    ; 89 46 ee
    5543     mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    5544     mov word [bp-010h], ax                    ; 89 46 f0
    55455490    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
    55465491    mov word [bp-014h], ax                    ; 89 46 ec
    5547     mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    5548     mov word [bp-00eh], ax                    ; 89 46 f2
    5549     or ax, word [bp-014h]                     ; 0b 46 ec
    5550     je short 0418fh                           ; 74 18
     5492    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
     5493    or di, ax                                 ; 09 c7
     5494    je short 0414eh                           ; 74 18
    55515495    mov ax, word [bp+01ch]                    ; 8b 46 1c
    55525496    shr ax, 008h                              ; c1 e8 08
    55535497    push ax                                   ; 50
    5554     push 0034dh                               ; 68 4d 03
    5555     push 003b6h                               ; 68 b6 03
     5498    push 0034fh                               ; 68 4f 03
     5499    push 003b8h                               ; 68 b8 03
    55565500    push strict byte 00007h                   ; 6a 07
    5557     call 018e9h                               ; e8 60 d7
     5501    call 018e9h                               ; e8 a1 d7
    55585502    add sp, strict byte 00008h                ; 83 c4 08
    5559     jmp near 045cch                           ; e9 3d 04
    5560     mov es, [bp-016h]                         ; 8e 46 ea
    5561     mov ax, word [es:di+008h]                 ; 26 8b 45 08
     5503    jmp near 04532h                           ; e9 e4 03
     5504    les bx, [bp-010h]                         ; c4 5e f0
     5505    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
    55625506    mov word [bp-014h], ax                    ; 89 46 ec
    5563     mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    5564     mov word [bp-00eh], ax                    ; 89 46 f2
     5507    mov di, bx                                ; 89 df
     5508    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
    55655509    mov ax, word [bp+01ch]                    ; 8b 46 1c
    55665510    shr ax, 008h                              ; c1 e8 08
     5511    mov word [bp-012h], ax                    ; 89 46 ee
    55675512    cmp ax, strict word 00044h                ; 3d 44 00
    5568     je near 04597h                            ; 0f 84 ea 03
     5513    je near 042d4h                            ; 0f 84 66 01
    55695514    cmp ax, strict word 00047h                ; 3d 47 00
    5570     je near 04597h                            ; 0f 84 e3 03
     5515    je near 042d4h                            ; 0f 84 5f 01
    55715516    mov cx, strict word 0000ch                ; b9 0c 00
    55725517    xor bx, bx                                ; 31 db
    55735518    mov dx, ss                                ; 8c d2
    55745519    lea ax, [bp-028h]                         ; 8d 46 d8
    5575     call 0902ah                               ; e8 69 4e
     5520    call 0901ah                               ; e8 98 4e
    55765521    mov word [bp-028h], strict word 00028h    ; c7 46 d8 28 00
    55775522    mov ax, word [bp-014h]                    ; 8b 46 ec
    5578     mov dx, word [bp-00eh]                    ; 8b 56 f2
     5523    mov dx, di                                ; 89 fa
    55795524    xchg ah, al                               ; 86 c4
    55805525    xchg dh, dl                               ; 86 d6
     
    55825527    mov word [bp-026h], ax                    ; 89 46 da
    55835528    mov word [bp-024h], dx                    ; 89 56 dc
    5584     mov ax, word [bp-01ch]                    ; 8b 46 e4
     5529    mov ax, word [bp-00ch]                    ; 8b 46 f4
    55855530    xchg ah, al                               ; 86 c4
    55865531    mov word [bp-021h], ax                    ; 89 46 df
    5587     mov ax, word [bp-01ch]                    ; 8b 46 e4
    5588     mov es, [bp-00ah]                         ; 8e 46 f6
     5532    mov ax, word [bp-00ch]                    ; 8b 46 f4
     5533    mov es, [bp-008h]                         ; 8e 46 f8
    55895534    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    55905535    mov word [es:si+00ch], 00800h             ; 26 c7 44 0c 00 08
    5591     mov al, byte [bp-002h]                    ; 8a 46 fe
    5592     cmp AL, strict byte 00ch                  ; 3c 0c
    5593     jc short 04221h                           ; 72 2b
    5594     push word [bp-012h]                       ; ff 76 ee
    5595     push word [bp-010h]                       ; ff 76 f0
     5536    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     5537    imul bx, bx, strict byte 00018h           ; 6b db 18
     5538    add bx, si                                ; 01 f3
     5539    movzx di, byte [es:bx+01eh]               ; 26 0f b6 7f 1e
     5540    add di, di                                ; 01 ff
     5541    push word [bp-018h]                       ; ff 76 e8
     5542    push word [bp-01ch]                       ; ff 76 e4
    55965543    push strict byte 00001h                   ; 6a 01
    5597     mov ax, word [bp-01ch]                    ; 8b 46 e4
    55985544    xor bx, bx                                ; 31 db
    55995545    mov cx, strict word 0000bh                ; b9 0b 00
    56005546    sal ax, 1                                 ; d1 e0
    56015547    rcl bx, 1                                 ; d1 d3
    5602     loop 04206h                               ; e2 fa
     5548    loop 041cch                               ; e2 fa
    56035549    push bx                                   ; 53
    56045550    push ax                                   ; 50
    56055551    push strict byte 00000h                   ; 6a 00
    5606     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5552    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    56075553    mov cx, ss                                ; 8c d1
    56085554    lea bx, [bp-028h]                         ; 8d 5e d8
    56095555    mov dx, strict word 0000ch                ; ba 0c 00
    5610     call 082c2h                               ; e8 a3 40
    5611     jmp short 04279h                          ; eb 58
    5612     cmp AL, strict byte 008h                  ; 3c 08
    5613     jc short 04250h                           ; 72 2b
    5614     push word [bp-012h]                       ; ff 76 ee
    5615     push word [bp-010h]                       ; ff 76 f0
    5616     push strict byte 00001h                   ; 6a 01
    5617     mov ax, word [bp-01ch]                    ; 8b 46 e4
    5618     xor bx, bx                                ; 31 db
     5556    call word [word di+00000h]                ; ff 95 00 00
     5557    mov dx, ax                                ; 89 c2
     5558    mov es, [bp-008h]                         ; 8e 46 f8
     5559    mov ax, word [es:si+016h]                 ; 26 8b 44 16
     5560    mov di, word [es:si+018h]                 ; 26 8b 7c 18
    56195561    mov cx, strict word 0000bh                ; b9 0b 00
    5620     sal ax, 1                                 ; d1 e0
    5621     rcl bx, 1                                 ; d1 d3
    5622     loop 04235h                               ; e2 fa
    5623     push bx                                   ; 53
    5624     push ax                                   ; 50
    5625     push strict byte 00000h                   ; 6a 00
    5626     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    5627     mov cx, ss                                ; 8c d1
    5628     lea bx, [bp-028h]                         ; 8d 5e d8
    5629     mov dx, strict word 0000ch                ; ba 0c 00
    5630     call 07626h                               ; e8 d8 33
    5631     jmp short 04279h                          ; eb 29
    5632     push word [bp-012h]                       ; ff 76 ee
    5633     push word [bp-010h]                       ; ff 76 f0
    5634     push strict byte 00001h                   ; 6a 01
    5635     mov ax, word [bp-01ch]                    ; 8b 46 e4
    5636     xor bx, bx                                ; 31 db
    5637     mov cx, strict word 0000bh                ; b9 0b 00
    5638     sal ax, 1                                 ; d1 e0
    5639     rcl bx, 1                                 ; d1 d3
    5640     loop 04260h                               ; e2 fa
    5641     push bx                                   ; 53
    5642     push ax                                   ; 50
    5643     push strict byte 00000h                   ; 6a 00
    5644     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    5645     mov cx, ss                                ; 8c d1
    5646     lea bx, [bp-028h]                         ; 8d 5e d8
    5647     mov dx, strict word 0000ch                ; ba 0c 00
    5648     call 027eah                               ; e8 71 e5
    5649     mov byte [bp-006h], al                    ; 88 46 fa
    5650     mov es, [bp-00ah]                         ; 8e 46 f6
    5651     mov ax, word [es:si+016h]                 ; 26 8b 44 16
    5652     mov bx, word [es:si+018h]                 ; 26 8b 5c 18
    5653     mov cx, strict word 0000bh                ; b9 0b 00
    5654     shr bx, 1                                 ; d1 eb
     5562    shr di, 1                                 ; d1 ef
    56555563    rcr ax, 1                                 ; d1 d8
    5656     loop 0428ah                               ; e2 fa
    5657     mov es, [bp-016h]                         ; 8e 46 ea
    5658     mov word [es:di+002h], ax                 ; 26 89 45 02
    5659     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5660     je near 04597h                            ; 0f 84 f8 02
    5661     mov bx, 00cech                            ; bb ec 0c
     5564    loop 041f6h                               ; e2 fa
     5565    les bx, [bp-010h]                         ; c4 5e f0
     5566    mov word [es:bx+002h], ax                 ; 26 89 47 02
     5567    test dl, dl                               ; 84 d2
     5568    je near 042d4h                            ; 0f 84 cb 00
     5569    mov bx, 00d32h                            ; bb 32 0d
    56625570    mov cx, ds                                ; 8c d9
    56635571    mov ax, strict word 00004h                ; b8 04 00
    5664     call 018aeh                               ; e8 04 d6
    5665     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     5572    call 018aeh                               ; e8 9a d6
     5573    movzx ax, dl                              ; 0f b6 c2
    56665574    push ax                                   ; 50
    5667     mov ax, word [bp+01ch]                    ; 8b 46 1c
    5668     shr ax, 008h                              ; c1 e8 08
    5669     push ax                                   ; 50
    5670     push 0034dh                               ; 68 4d 03
    5671     push 003dfh                               ; 68 df 03
     5575    push word [bp-012h]                       ; ff 76 ee
     5576    push 0034fh                               ; 68 4f 03
     5577    push 003e1h                               ; 68 e1 03
    56725578    push strict byte 00004h                   ; 6a 04
    5673     call 018e9h                               ; e8 28 d6
     5579    call 018e9h                               ; e8 c3 d6
    56745580    add sp, strict byte 0000ah                ; 83 c4 0a
    56755581    mov ax, word [bp+01ch]                    ; 8b 46 1c
    56765582    xor ah, ah                                ; 30 e4
    56775583    or ah, 00ch                               ; 80 cc 0c
    5678     jmp near 045d4h                           ; e9 05 03
     5584    jmp near 0453ah                           ; e9 06 03
    56795585    cmp bx, strict byte 00002h                ; 83 fb 02
    5680     jnbe near 045cch                          ; 0f 87 f6 02
    5681     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5586    jnbe near 04532h                          ; 0f 87 f7 02
     5587    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    56825588    imul ax, ax, strict byte 00018h           ; 6b c0 18
    5683     mov es, [bp-00ah]                         ; 8e 46 f6
     5589    mov es, [bp-008h]                         ; 8e 46 f8
    56845590    mov di, si                                ; 89 f7
    56855591    add di, ax                                ; 01 c7
    56865592    mov al, byte [es:di+021h]                 ; 26 8a 45 21
    56875593    cmp bx, strict byte 00002h                ; 83 fb 02
    5688     je short 04361h                           ; 74 74
     5594    je short 042c5h                           ; 74 73
    56895595    cmp bx, strict byte 00001h                ; 83 fb 01
    5690     je short 0432dh                           ; 74 3b
     5596    je short 04292h                           ; 74 3b
    56915597    test bx, bx                               ; 85 db
    5692     jne near 04597h                           ; 0f 85 9f 02
     5598    jne near 042d4h                           ; 0f 85 77 00
    56935599    cmp AL, strict byte 0ffh                  ; 3c ff
    5694     jne short 0430eh                          ; 75 12
     5600    jne short 04273h                          ; 75 12
    56955601    mov ax, word [bp+01ch]                    ; 8b 46 1c
    56965602    xor ah, ah                                ; 30 e4
     
    56995605    xor al, al                                ; 30 c0
    57005606    or AL, strict byte 001h                   ; 0c 01
    5701     jmp near 045d4h                           ; e9 c6 02
    5702     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     5607    jmp near 0453ah                           ; e9 c7 02
     5608    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    57035609    imul dx, dx, strict byte 00018h           ; 6b d2 18
    57045610    db  0feh, 0c0h
    57055611    ; inc al                                    ; fe c0
    5706     mov es, [bp-00ah]                         ; 8e 46 f6
     5612    mov es, [bp-008h]                         ; 8e 46 f8
    57075613    add si, dx                                ; 01 d6
    57085614    mov byte [es:si+021h], al                 ; 26 88 44 21
     
    57115617    or AL, strict byte 001h                   ; 0c 01
    57125618    mov word [bp+01ch], ax                    ; 89 46 1c
    5713     jmp near 04597h                           ; e9 6a 02
     5619    jmp near 042d4h                           ; e9 42 00
    57145620    test al, al                               ; 84 c0
    5715     jne short 0433dh                          ; 75 0c
     5621    jne short 042a2h                          ; 75 0c
    57165622    or bh, 0b0h                               ; 80 cf b0
    57175623    mov word [bp+01ch], bx                    ; 89 5e 1c
    57185624    mov byte [bp+01ch], al                    ; 88 46 1c
    5719     jmp near 045d7h                           ; e9 9a 02
    5720     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     5625    jmp near 0453dh                           ; e9 9b 02
     5626    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    57215627    imul dx, dx, strict byte 00018h           ; 6b d2 18
    57225628    db  0feh, 0c8h
    57235629    ; dec al                                    ; fe c8
    5724     mov es, [bp-00ah]                         ; 8e 46 f6
     5630    mov es, [bp-008h]                         ; 8e 46 f8
    57255631    add si, dx                                ; 01 d6
    57265632    mov byte [es:si+021h], al                 ; 26 88 44 21
     5633    test al, al                               ; 84 c0
     5634    db  00fh, 095h, 0c0h
     5635    ; setne al                                  ; 0f 95 c0
     5636    movzx dx, al                              ; 0f b6 d0
     5637    mov ax, word [bp+01ch]                    ; 8b 46 1c
     5638    xor al, al                                ; 30 c0
     5639    or ax, dx                                 ; 09 d0
     5640    jmp short 0428ch                          ; eb c7
    57275641    test al, al                               ; 84 c0
    57285642    db  00fh, 095h, 0c0h
     
    57325646    mov dl, al                                ; 88 c2
    57335647    mov word [bp+01ch], dx                    ; 89 56 1c
    5734     jmp near 04597h                           ; e9 36 02
    5735     test al, al                               ; 84 c0
    5736     db  00fh, 095h, 0c0h
    5737     ; setne al                                  ; 0f 95 c0
    5738     movzx dx, al                              ; 0f b6 d0
    5739     mov ax, word [bp+01ch]                    ; 8b 46 1c
    5740     xor al, al                                ; 30 c0
    5741     or ax, dx                                 ; 09 d0
    5742     jmp short 04327h                          ; eb b5
    5743     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5648    mov byte [bp+01dh], 000h                  ; c6 46 1d 00
     5649    xor bx, bx                                ; 31 db
     5650    mov dx, strict word 00074h                ; ba 74 00
     5651    mov ax, strict word 00040h                ; b8 40 00
     5652    call 0160eh                               ; e8 2b d3
     5653    and byte [bp+022h], 0feh                  ; 80 66 22 fe
     5654    leave                                     ; c9
     5655    pop di                                    ; 5f
     5656    pop si                                    ; 5e
     5657    retn                                      ; c3
     5658    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    57445659    imul ax, ax, strict byte 00018h           ; 6b c0 18
    5745     mov es, [bp-00ah]                         ; 8e 46 f6
     5660    mov es, [bp-008h]                         ; 8e 46 f8
    57465661    add si, ax                                ; 01 c6
    57475662    mov al, byte [es:si+021h]                 ; 26 8a 44 21
    57485663    test al, al                               ; 84 c0
    5749     je short 0438ch                           ; 74 06
     5664    je short 04305h                           ; 74 06
    57505665    or bh, 0b1h                               ; 80 cf b1
    5751     jmp near 0412bh                           ; e9 9f fd
    5752     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5753     je near 04597h                            ; 0f 84 03 02
     5666    jmp near 040edh                           ; e9 e8 fd
     5667    je short 042d4h                           ; 74 cd
    57545668    mov ax, word [bp+01ch]                    ; 8b 46 1c
    57555669    xor ah, ah                                ; 30 e4
    57565670    or ah, 0b1h                               ; 80 cc b1
    5757     jmp near 045d4h                           ; e9 35 02
     5671    jmp near 0453ah                           ; e9 28 02
    57585672    mov dx, word [bp+010h]                    ; 8b 56 10
    57595673    mov cx, word [bp+00ah]                    ; 8b 4e 0a
    57605674    mov bx, dx                                ; 89 d3
    5761     mov word [bp-008h], cx                    ; 89 4e f8
     5675    mov word [bp-006h], cx                    ; 89 4e fa
    57625676    mov es, cx                                ; 8e c1
    57635677    mov di, dx                                ; 89 d7
    57645678    mov ax, word [es:di]                      ; 26 8b 05
    5765     mov word [bp-00ch], ax                    ; 89 46 f4
     5679    mov word [bp-00ah], ax                    ; 89 46 f6
    57665680    cmp ax, strict word 0001ah                ; 3d 1a 00
    5767     jc near 045cch                            ; 0f 82 11 02
    5768     jc short 0440ah                           ; 72 4d
    5769     movzx di, byte [bp-002h]                  ; 0f b6 7e fe
    5770     imul di, di, strict byte 00018h           ; 6b ff 18
    5771     mov es, [bp-00ah]                         ; 8e 46 f6
    5772     add di, si                                ; 01 f7
     5681    jc near 04532h                            ; 0f 82 04 02
     5682    jc short 0437fh                           ; 72 4f
     5683    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     5684    imul ax, ax, strict byte 00018h           ; 6b c0 18
     5685    mov es, [bp-008h]                         ; 8e 46 f8
     5686    mov di, si                                ; 89 f7
     5687    add di, ax                                ; 01 c7
    57735688    mov ax, word [es:di+024h]                 ; 26 8b 45 24
    57745689    mov es, cx                                ; 8e c1
     
    57875702    db  066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh
    57885703    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    5789     cmp word [bp-00ch], strict byte 0001eh    ; 83 7e f4 1e
    5790     jc near 044e2h                            ; 0f 82 d0 00
    5791     mov es, [bp-008h]                         ; 8e 46 f8
     5704    cmp word [bp-00ah], strict byte 0001eh    ; 83 7e f6 1e
     5705    jc near 04456h                            ; 0f 82 cf 00
     5706    mov es, [bp-006h]                         ; 8e 46 fa
    57925707    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
    5793     mov ax, word [bp-018h]                    ; 8b 46 e8
     5708    mov ax, word [bp-016h]                    ; 8b 46 ea
    57945709    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    57955710    mov word [es:bx+01ah], 00312h             ; 26 c7 47 1a 12 03
    5796     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
     5711    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
    57975712    mov ax, cx                                ; 89 c8
    57985713    cwd                                       ; 99
     
    58005715    ; sub ax, dx                                ; 2b c2
    58015716    sar ax, 1                                 ; d1 f8
    5802     xor ah, ah                                ; 30 e4
    5803     imul ax, ax, strict byte 00006h           ; 6b c0 06
    5804     mov es, [bp-00ah]                         ; 8e 46 f6
    5805     mov di, si                                ; 89 f7
    5806     add di, ax                                ; 01 c7
     5717    movzx di, al                              ; 0f b6 f8
     5718    imul di, di, strict byte 00006h           ; 6b ff 06
     5719    mov es, [bp-008h]                         ; 8e 46 f8
     5720    add di, si                                ; 01 f7
    58075721    mov ax, word [es:di+001c2h]               ; 26 8b 85 c2 01
    58085722    mov word [bp-01ah], ax                    ; 89 46 e6
    58095723    mov dx, word [es:di+001c4h]               ; 26 8b 95 c4 01
    58105724    mov al, byte [es:di+001c1h]               ; 26 8a 85 c1 01
    5811     mov byte [bp-004h], al                    ; 88 46 fc
     5725    mov byte [bp-002h], al                    ; 88 46 fe
    58125726    imul cx, cx, strict byte 00018h           ; 6b c9 18
    58135727    mov di, si                                ; 89 f7
     
    58175731    db  00fh, 094h, 0c0h
    58185732    ; sete al                                   ; 0f 94 c0
    5819     movzx cx, al                              ; 0f b6 c8
    5820     or cl, 070h                               ; 80 c9 70
     5733    xor ah, ah                                ; 30 e4
     5734    or AL, strict byte 070h                   ; 0c 70
     5735    mov di, ax                                ; 89 c7
    58215736    mov ax, word [bp-01ah]                    ; 8b 46 e6
    58225737    mov word [es:si+001f0h], ax               ; 26 89 84 f0 01
    58235738    mov word [es:si+001f2h], dx               ; 26 89 94 f2 01
    5824     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5739    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    58255740    cwd                                       ; 99
    5826     mov di, strict word 00002h                ; bf 02 00
    5827     idiv di                                   ; f7 ff
     5741    mov cx, strict word 00002h                ; b9 02 00
     5742    idiv cx                                   ; f7 f9
    58285743    or dl, 00eh                               ; 80 ca 0e
    58295744    mov ax, dx                                ; 89 d0
     
    58315746    mov byte [es:si+001f4h], al               ; 26 88 84 f4 01
    58325747    mov byte [es:si+001f5h], 0cbh             ; 26 c6 84 f5 01 cb
    5833     mov al, byte [bp-004h]                    ; 8a 46 fc
     5748    mov al, byte [bp-002h]                    ; 8a 46 fe
    58345749    mov byte [es:si+001f6h], al               ; 26 88 84 f6 01
    58355750    mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00
    58365751    mov byte [es:si+001f9h], 000h             ; 26 c6 84 f9 01 00
    5837     mov word [es:si+001fah], cx               ; 26 89 8c fa 01
     5752    mov word [es:si+001fah], di               ; 26 89 bc fa 01
    58385753    mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00
    58395754    mov byte [es:si+001feh], 011h             ; 26 c6 84 fe 01 11
    58405755    xor cl, cl                                ; 30 c9
    58415756    xor ch, ch                                ; 30 ed
    5842     jmp short 044c5h                          ; eb 05
     5757    jmp short 04439h                          ; eb 05
    58435758    cmp ch, 00fh                              ; 80 fd 0f
    5844     jnc short 044d8h                          ; 73 13
     5759    jnc short 0444ch                          ; 73 13
    58455760    movzx dx, ch                              ; 0f b6 d5
    58465761    add dx, 00312h                            ; 81 c2 12 03
    5847     mov ax, word [bp-018h]                    ; 8b 46 e8
    5848     call 01600h                               ; e8 2e d1
     5762    mov ax, word [bp-016h]                    ; 8b 46 ea
     5763    call 01600h                               ; e8 ba d1
    58495764    add cl, al                                ; 00 c1
    58505765    db  0feh, 0c5h
    58515766    ; inc ch                                    ; fe c5
    5852     jmp short 044c0h                          ; eb e8
     5767    jmp short 04434h                          ; eb e8
    58535768    neg cl                                    ; f6 d9
    5854     mov es, [bp-00ah]                         ; 8e 46 f6
     5769    mov es, [bp-008h]                         ; 8e 46 f8
    58555770    mov byte [es:si+001ffh], cl               ; 26 88 8c ff 01
    5856     cmp word [bp-00ch], strict byte 00042h    ; 83 7e f4 42
    5857     jc near 04597h                            ; 0f 82 ad 00
    5858     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5771    cmp word [bp-00ah], strict byte 00042h    ; 83 7e f6 42
     5772    jc near 042d4h                            ; 0f 82 76 fe
     5773    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    58595774    cwd                                       ; 99
    58605775    db  02bh, 0c2h
     
    58635778    xor ah, ah                                ; 30 e4
    58645779    imul ax, ax, strict byte 00006h           ; 6b c0 06
    5865     mov es, [bp-00ah]                         ; 8e 46 f6
     5780    mov es, [bp-008h]                         ; 8e 46 f8
    58665781    add si, ax                                ; 01 c6
    58675782    mov al, byte [es:si+001c0h]               ; 26 8a 84 c0 01
    58685783    mov dx, word [es:si+001c2h]               ; 26 8b 94 c2 01
    5869     mov es, [bp-008h]                         ; 8e 46 f8
     5784    mov es, [bp-006h]                         ; 8e 46 fa
    58705785    mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
    58715786    db  066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h
     
    58735788    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    58745789    test al, al                               ; 84 c0
    5875     jne short 0452bh                          ; 75 09
     5790    jne short 0449fh                          ; 75 09
    58765791    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    58775792    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
    5878     mov es, [bp-008h]                         ; 8e 46 f8
     5793    mov es, [bp-006h]                         ; 8e 46 fa
    58795794    db  066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h
    58805795    ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20
     
    58825797    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    58835798    test al, al                               ; 84 c0
    5884     jne short 04557h                          ; 75 13
     5799    jne short 044cbh                          ; 75 13
    58855800    mov word [es:bx+030h], dx                 ; 26 89 57 30
    58865801    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
    58875802    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
    58885803    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
    5889     mov al, byte [bp-002h]                    ; 8a 46 fe
     5804    mov al, byte [bp-004h]                    ; 8a 46 fc
    58905805    and AL, strict byte 001h                  ; 24 01
    58915806    xor ah, ah                                ; 30 e4
    5892     mov es, [bp-008h]                         ; 8e 46 f8
     5807    mov es, [bp-006h]                         ; 8e 46 fa
    58935808    mov word [es:bx+038h], ax                 ; 26 89 47 38
    58945809    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
     
    58975812    xor al, al                                ; 30 c0
    58985813    mov AH, strict byte 01eh                  ; b4 1e
    5899     jmp short 0457fh                          ; eb 05
     5814    jmp short 044f3h                          ; eb 05
    59005815    cmp ah, 040h                              ; 80 fc 40
    5901     jnc short 0458eh                          ; 73 0f
     5816    jnc short 04502h                          ; 73 0f
    59025817    movzx si, ah                              ; 0f b6 f4
    5903     mov es, [bp-008h]                         ; 8e 46 f8
     5818    mov es, [bp-006h]                         ; 8e 46 fa
    59045819    add si, bx                                ; 01 de
    59055820    add al, byte [es:si]                      ; 26 02 04
    59065821    db  0feh, 0c4h
    59075822    ; inc ah                                    ; fe c4
    5908     jmp short 0457ah                          ; eb ec
     5823    jmp short 044eeh                          ; eb ec
    59095824    neg al                                    ; f6 d8
    5910     mov es, [bp-008h]                         ; 8e 46 f8
     5825    mov es, [bp-006h]                         ; 8e 46 fa
    59115826    mov byte [es:bx+041h], al                 ; 26 88 47 41
    5912     mov byte [bp+01dh], 000h                  ; c6 46 1d 00
    5913     xor bx, bx                                ; 31 db
    5914     mov dx, strict word 00074h                ; ba 74 00
    5915     mov ax, strict word 00040h                ; b8 40 00
    5916     call 0160eh                               ; e8 68 d0
    5917     and byte [bp+022h], 0feh                  ; 80 66 22 fe
    5918     leave                                     ; c9
    5919     pop di                                    ; 5f
    5920     pop si                                    ; 5e
    5921     retn                                      ; c3
     5827    jmp near 042d4h                           ; e9 c6 fd
    59225828    or bh, 006h                               ; 80 cf 06
    59235829    mov word [bp+01ch], bx                    ; 89 5e 1c
    5924     jmp short 045e8h                          ; eb 32
     5830    jmp short 0454eh                          ; eb 38
    59255831    cmp bx, strict byte 00006h                ; 83 fb 06
    5926     je short 04597h                           ; 74 dc
     5832    je near 042d4h                            ; 0f 84 b7 fd
    59275833    cmp bx, strict byte 00001h                ; 83 fb 01
    5928     jc short 045cch                           ; 72 0c
    5929     jbe short 04597h                          ; 76 d5
     5834    jc short 04532h                           ; 72 10
     5835    jbe near 042d4h                           ; 0f 86 ae fd
    59305836    cmp bx, strict byte 00003h                ; 83 fb 03
    5931     jc short 045cch                           ; 72 05
     5837    jc short 04532h                           ; 72 07
    59325838    cmp bx, strict byte 00004h                ; 83 fb 04
    5933     jbe short 04597h                          ; 76 cb
     5839    jbe near 042d4h                           ; 0f 86 a2 fd
    59345840    mov ax, word [bp+01ch]                    ; 8b 46 1c
    59355841    xor ah, ah                                ; 30 e4
     
    59415847    mov dx, strict word 00074h                ; ba 74 00
    59425848    mov ax, strict word 00040h                ; b8 40 00
    5943     call 0160eh                               ; e8 26 d0
     5849    call 0160eh                               ; e8 c0 d0
    59445850    or byte [bp+022h], 001h                   ; 80 4e 22 01
    5945     jmp short 045aah                          ; eb bc
    5946     mov bx, 00cech                            ; bb ec 0c
     5851    jmp near 042e7h                           ; e9 92 fd
     5852    mov bx, 00d32h                            ; bb 32 0d
    59475853    mov cx, ds                                ; 8c d9
    59485854    mov ax, strict word 00004h                ; b8 04 00
    5949     call 018aeh                               ; e8 b5 d2
     5855    call 018aeh                               ; e8 4e d3
    59505856    mov ax, word [bp+01ch]                    ; 8b 46 1c
    59515857    shr ax, 008h                              ; c1 e8 08
    59525858    push ax                                   ; 50
    5953     push 0034dh                               ; 68 4d 03
    5954     push 002a1h                               ; 68 a1 02
     5859    push 0034fh                               ; 68 4f 03
     5860    push 002a3h                               ; 68 a3 02
    59555861    push strict byte 00004h                   ; 6a 04
    5956     jmp near 04186h                           ; e9 7b fb
    5957 print_boot_device_:                          ; 0xf460b LB 0x48
     5862    jmp near 04145h                           ; e9 d3 fb
     5863print_boot_device_:                          ; 0xf4572 LB 0x48
    59585864    push cx                                   ; 51
    59595865    push bp                                   ; 55
    59605866    mov bp, sp                                ; 89 e5
    59615867    test al, al                               ; 84 c0
    5962     je short 04618h                           ; 74 05
     5868    je short 0457fh                           ; 74 05
    59635869    mov dx, strict word 00002h                ; ba 02 00
    5964     jmp short 04632h                          ; eb 1a
     5870    jmp short 04599h                          ; eb 1a
    59655871    test dl, dl                               ; 84 d2
    5966     je short 04621h                           ; 74 05
     5872    je short 04588h                           ; 74 05
    59675873    mov dx, strict word 00003h                ; ba 03 00
    5968     jmp short 04632h                          ; eb 11
     5874    jmp short 04599h                          ; eb 11
    59695875    test bl, 080h                             ; f6 c3 80
    5970     jne short 0462ah                          ; 75 04
     5876    jne short 04591h                          ; 75 04
    59715877    xor dh, dh                                ; 30 f6
    5972     jmp short 04632h                          ; eb 08
     5878    jmp short 04599h                          ; eb 08
    59735879    test bl, 080h                             ; f6 c3 80
    5974     je short 04650h                           ; 74 21
     5880    je short 045b7h                           ; 74 21
    59755881    mov dx, strict word 00001h                ; ba 01 00
    5976     mov bx, 00cech                            ; bb ec 0c
     5882    mov bx, 00d32h                            ; bb 32 0d
    59775883    mov cx, ds                                ; 8c d9
    59785884    mov ax, strict word 00004h                ; b8 04 00
    5979     call 018aeh                               ; e8 71 d2
     5885    call 018aeh                               ; e8 0a d3
    59805886    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    5981     add dx, 00d12h                            ; 81 c2 12 0d
     5887    add dx, 00d58h                            ; 81 c2 58 0d
    59825888    push dx                                   ; 52
    5983     push 00402h                               ; 68 02 04
     5889    push 00404h                               ; 68 04 04
    59845890    push strict byte 00004h                   ; 6a 04
    5985     call 018e9h                               ; e8 9c d2
     5891    call 018e9h                               ; e8 35 d3
    59865892    add sp, strict byte 00006h                ; 83 c4 06
    59875893    pop bp                                    ; 5d
    59885894    pop cx                                    ; 59
    59895895    retn                                      ; c3
    5990 print_boot_failure_:                         ; 0xf4653 LB 0x90
     5896print_boot_failure_:                         ; 0xf45ba LB 0x90
    59915897    push si                                   ; 56
    59925898    push bp                                   ; 55
     
    59975903    movzx si, ah                              ; 0f b6 f4
    59985904    test al, al                               ; 84 c0
    5999     je short 04680h                           ; 74 1b
    6000     mov bx, 00cech                            ; bb ec 0c
     5905    je short 045e7h                           ; 74 1b
     5906    mov bx, 00d32h                            ; bb 32 0d
    60015907    mov cx, ds                                ; 8c d9
    60025908    mov ax, strict word 00004h                ; b8 04 00
    6003     call 018aeh                               ; e8 3e d2
    6004     push 00d26h                               ; 68 26 0d
    6005     push 00416h                               ; 68 16 04
     5909    call 018aeh                               ; e8 d7 d2
     5910    push 00d6ch                               ; 68 6c 0d
     5911    push 00418h                               ; 68 18 04
    60065912    push strict byte 00004h                   ; 6a 04
    6007     call 018e9h                               ; e8 6e d2
     5913    call 018e9h                               ; e8 07 d3
    60085914    add sp, strict byte 00006h                ; 83 c4 06
    6009     jmp short 046c4h                          ; eb 44
     5915    jmp short 0462bh                          ; eb 44
    60105916    test dl, dl                               ; 84 d2
    6011     je short 04694h                           ; 74 10
    6012     mov bx, 00cech                            ; bb ec 0c
     5917    je short 045fbh                           ; 74 10
     5918    mov bx, 00d32h                            ; bb 32 0d
    60135919    mov cx, ds                                ; 8c d9
    60145920    mov ax, strict word 00004h                ; b8 04 00
    6015     call 018aeh                               ; e8 1f d2
    6016     push 00d30h                               ; 68 30 0d
    6017     jmp short 04673h                          ; eb df
     5921    call 018aeh                               ; e8 b8 d2
     5922    push 00d76h                               ; 68 76 0d
     5923    jmp short 045dah                          ; eb df
    60185924    test bl, 080h                             ; f6 c3 80
    6019     je short 046aah                           ; 74 11
    6020     mov bx, 00cech                            ; bb ec 0c
     5925    je short 04611h                           ; 74 11
     5926    mov bx, 00d32h                            ; bb 32 0d
    60215927    mov cx, ds                                ; 8c d9
    60225928    mov ax, strict word 00004h                ; b8 04 00
    6023     call 018aeh                               ; e8 0a d2
     5929    call 018aeh                               ; e8 a3 d2
    60245930    push si                                   ; 56
    6025     push 00d1ch                               ; 68 1c 0d
    6026     jmp short 046b9h                          ; eb 0f
    6027     mov bx, 00cech                            ; bb ec 0c
     5931    push 00d62h                               ; 68 62 0d
     5932    jmp short 04620h                          ; eb 0f
     5933    mov bx, 00d32h                            ; bb 32 0d
    60285934    mov cx, ds                                ; 8c d9
    60295935    mov ax, strict word 00004h                ; b8 04 00
    6030     call 018aeh                               ; e8 f9 d1
     5936    call 018aeh                               ; e8 92 d2
    60315937    push si                                   ; 56
    6032     push 00d12h                               ; 68 12 0d
    6033     push 0042bh                               ; 68 2b 04
     5938    push 00d58h                               ; 68 58 0d
     5939    push 0042dh                               ; 68 2d 04
    60345940    push strict byte 00004h                   ; 6a 04
    6035     call 018e9h                               ; e8 28 d2
     5941    call 018e9h                               ; e8 c1 d2
    60365942    add sp, strict byte 00008h                ; 83 c4 08
    60375943    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
    6038     jne short 046deh                          ; 75 14
     5944    jne short 04645h                          ; 75 14
    60395945    test dh, dh                               ; 84 f6
    6040     jne short 046d3h                          ; 75 05
    6041     push 00443h                               ; 68 43 04
    6042     jmp short 046d6h                          ; eb 03
    6043     push 0046dh                               ; 68 6d 04
     5946    jne short 0463ah                          ; 75 05
     5947    push 00445h                               ; 68 45 04
     5948    jmp short 0463dh                          ; eb 03
     5949    push 0046fh                               ; 68 6f 04
    60445950    push strict byte 00007h                   ; 6a 07
    6045     call 018e9h                               ; e8 0e d2
     5951    call 018e9h                               ; e8 a7 d2
    60465952    add sp, strict byte 00004h                ; 83 c4 04
    60475953    pop bp                                    ; 5d
    60485954    pop si                                    ; 5e
    60495955    retn 00002h                               ; c2 02 00
    6050 print_cdromboot_failure_:                    ; 0xf46e3 LB 0x24
     5956print_cdromboot_failure_:                    ; 0xf464a LB 0x24
    60515957    push bx                                   ; 53
    60525958    push cx                                   ; 51
     
    60555961    mov bp, sp                                ; 89 e5
    60565962    mov dx, ax                                ; 89 c2
    6057     mov bx, 00cech                            ; bb ec 0c
     5963    mov bx, 00d32h                            ; bb 32 0d
    60585964    mov cx, ds                                ; 8c d9
    60595965    mov ax, strict word 00004h                ; b8 04 00
    6060     call 018aeh                               ; e8 b8 d1
     5966    call 018aeh                               ; e8 51 d2
    60615967    push dx                                   ; 52
    6062     push 004a2h                               ; 68 a2 04
     5968    push 004a4h                               ; 68 a4 04
    60635969    push strict byte 00004h                   ; 6a 04
    6064     call 018e9h                               ; e8 ea d1
     5970    call 018e9h                               ; e8 83 d2
    60655971    add sp, strict byte 00006h                ; 83 c4 06
    60665972    pop bp                                    ; 5d
     
    60695975    pop bx                                    ; 5b
    60705976    retn                                      ; c3
    6071 _int19_function:                             ; 0xf4707 LB 0x251
     5977_int19_function:                             ; 0xf466e LB 0x251
    60725978    push si                                   ; 56
    60735979    push di                                   ; 57
     
    60755981    mov dx, strict word 0000eh                ; ba 0e 00
    60765982    mov ax, strict word 00040h                ; b8 40 00
    6077     call 0161ch                               ; e8 06 cf
     5983    call 0161ch                               ; e8 9f cf
    60785984    mov bx, ax                                ; 89 c3
    60795985    mov word [bp-00ah], ax                    ; 89 46 f6
    60805986    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    60815987    mov ax, strict word 0003dh                ; b8 3d 00
    6082     call 0165ch                               ; e8 37 cf
     5988    call 0165ch                               ; e8 d0 cf
    60835989    movzx si, al                              ; 0f b6 f0
    60845990    mov ax, strict word 00038h                ; b8 38 00
    6085     call 0165ch                               ; e8 2e cf
     5991    call 0165ch                               ; e8 c7 cf
    60865992    and AL, strict byte 0f0h                  ; 24 f0
    60875993    xor ah, ah                                ; 30 e4
     
    60895995    or si, ax                                 ; 09 c6
    60905996    mov ax, strict word 0003ch                ; b8 3c 00
    6091     call 0165ch                               ; e8 1f cf
     5997    call 0165ch                               ; e8 b8 cf
    60925998    and AL, strict byte 00fh                  ; 24 0f
    60935999    xor ah, ah                                ; 30 e4
     
    60966002    mov dx, 00339h                            ; ba 39 03
    60976003    mov ax, bx                                ; 89 d8
    6098     call 01600h                               ; e8 b2 ce
     6004    call 01600h                               ; e8 4b cf
    60996005    test al, al                               ; 84 c0
    6100     je short 0475dh                           ; 74 0b
     6006    je short 046c4h                           ; 74 0b
    61016007    mov dx, 00339h                            ; ba 39 03
    61026008    mov ax, bx                                ; 89 d8
    6103     call 01600h                               ; e8 a6 ce
     6009    call 01600h                               ; e8 3f cf
    61046010    movzx si, al                              ; 0f b6 f0
    61056011    cmp byte [bp+008h], 001h                  ; 80 7e 08 01
    6106     jne short 04773h                          ; 75 10
     6012    jne short 046dah                          ; 75 10
    61076013    mov ax, strict word 0003ch                ; b8 3c 00
    6108     call 0165ch                               ; e8 f3 ce
     6014    call 0165ch                               ; e8 8c cf
    61096015    and AL, strict byte 0f0h                  ; 24 f0
    61106016    xor ah, ah                                ; 30 e4
    61116017    sar ax, 004h                              ; c1 f8 04
    6112     call 0734fh                               ; e8 dc 2b
     6018    call 072b6h                               ; e8 dc 2b
    61136019    cmp byte [bp+008h], 002h                  ; 80 7e 08 02
    6114     jne short 0477ch                          ; 75 03
     6020    jne short 046e3h                          ; 75 03
    61156021    shr si, 004h                              ; c1 ee 04
    61166022    cmp byte [bp+008h], 003h                  ; 80 7e 08 03
    6117     jne short 04785h                          ; 75 03
     6023    jne short 046ech                          ; 75 03
    61186024    shr si, 008h                              ; c1 ee 08
    61196025    cmp byte [bp+008h], 004h                  ; 80 7e 08 04
    6120     jne short 0478eh                          ; 75 03
     6026    jne short 046f5h                          ; 75 03
    61216027    shr si, 00ch                              ; c1 ee 0c
    61226028    cmp si, strict byte 00010h                ; 83 fe 10
    6123     jnc short 04797h                          ; 73 04
     6029    jnc short 046feh                          ; 73 04
    61246030    mov byte [bp-004h], 001h                  ; c6 46 fc 01
    61256031    xor al, al                                ; 30 c0
     
    61276033    mov byte [bp-006h], al                    ; 88 46 fa
    61286034    mov byte [bp-008h], al                    ; 88 46 f8
    6129     mov bx, 00cech                            ; bb ec 0c
     6035    mov bx, 00d32h                            ; bb 32 0d
    61306036    mov cx, ds                                ; 8c d9
    61316037    mov ax, strict word 00004h                ; b8 04 00
    6132     call 018aeh                               ; e8 01 d1
     6038    call 018aeh                               ; e8 9a d1
    61336039    push si                                   ; 56
    61346040    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    61356041    push ax                                   ; 50
    6136     push 004c2h                               ; 68 c2 04
     6042    push 004c4h                               ; 68 c4 04
    61376043    push strict byte 00004h                   ; 6a 04
    6138     call 018e9h                               ; e8 2e d1
     6044    call 018e9h                               ; e8 c7 d1
    61396045    add sp, strict byte 00008h                ; 83 c4 08
    61406046    and si, strict byte 0000fh                ; 83 e6 0f
    61416047    cmp si, strict byte 00002h                ; 83 fe 02
    6142     jc short 047d4h                           ; 72 0e
    6143     jbe short 047e3h                          ; 76 1b
     6048    jc short 0473bh                           ; 72 0e
     6049    jbe short 0474ah                          ; 76 1b
    61446050    cmp si, strict byte 00004h                ; 83 fe 04
    6145     je short 04801h                           ; 74 34
     6051    je short 04768h                           ; 74 34
    61466052    cmp si, strict byte 00003h                ; 83 fe 03
    6147     je short 047f7h                           ; 74 25
    6148     jmp short 0482eh                          ; eb 5a
     6053    je short 0475eh                           ; 74 25
     6054    jmp short 04795h                          ; eb 5a
    61496055    cmp si, strict byte 00001h                ; 83 fe 01
    6150     jne short 0482eh                          ; 75 55
     6056    jne short 04795h                          ; 75 55
    61516057    xor al, al                                ; 30 c0
    61526058    mov byte [bp-002h], al                    ; 88 46 fe
    61536059    mov byte [bp-006h], al                    ; 88 46 fa
    6154     jmp short 04846h                          ; eb 63
     6060    jmp short 047adh                          ; eb 63
    61556061    mov dx, 00338h                            ; ba 38 03
    61566062    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6157     call 01600h                               ; e8 14 ce
     6063    call 01600h                               ; e8 ad ce
    61586064    add AL, strict byte 080h                  ; 04 80
    61596065    mov byte [bp-002h], al                    ; 88 46 fe
    61606066    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    6161     jmp short 04846h                          ; eb 4f
     6067    jmp short 047adh                          ; eb 4f
    61626068    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    61636069    mov byte [bp-006h], 001h                  ; c6 46 fa 01
    6164     jmp short 0480bh                          ; eb 0a
     6070    jmp short 04772h                          ; eb 0a
    61656071    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    61666072    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6167     je short 04846h                           ; 74 3b
    6168     call 0375ah                               ; e8 4c ef
     6073    je short 047adh                           ; 74 3b
     6074    call 037d6h                               ; e8 61 f0
    61696075    mov bx, ax                                ; 89 c3
    61706076    test AL, strict byte 0ffh                 ; a8 ff
    6171     je short 04835h                           ; 74 21
    6172     call 046e3h                               ; e8 cc fe
     6077    je short 0479ch                           ; 74 21
     6078    call 0464ah                               ; e8 cc fe
    61736079    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    61746080    push ax                                   ; 50
     
    61776083    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    61786084    mov cx, strict word 00001h                ; b9 01 00
    6179     call 04653h                               ; e8 25 fe
     6085    call 045bah                               ; e8 25 fe
    61806086    xor ax, ax                                ; 31 c0
    61816087    xor dx, dx                                ; 31 d2
    6182     jmp near 04954h                           ; e9 1f 01
     6088    jmp near 048bbh                           ; e9 1f 01
    61836089    mov dx, 0032eh                            ; ba 2e 03
    61846090    mov ax, word [bp-00ah]                    ; 8b 46 f6
    6185     call 0161ch                               ; e8 de cd
     6091    call 0161ch                               ; e8 77 ce
    61866092    mov di, ax                                ; 89 c7
    61876093    shr bx, 008h                              ; c1 eb 08
    61886094    mov byte [bp-002h], bl                    ; 88 5e fe
    61896095    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    6190     jne near 048c2h                           ; 0f 85 74 00
     6096    jne near 04829h                           ; 0f 85 74 00
    61916097    xor si, si                                ; 31 f6
    61926098    mov ax, 0e200h                            ; b8 00 e2
    61936099    mov es, ax                                ; 8e c0
    61946100    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6195     jne short 04817h                          ; 75 bb
     6101    jne short 0477eh                          ; 75 bb
    61966102    mov cx, ax                                ; 89 c1
    61976103    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    61986104    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6199     jne short 04817h                          ; 75 ad
     6105    jne short 0477eh                          ; 75 ad
    62006106    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6201     jne short 04817h                          ; 75 a6
     6107    jne short 0477eh                          ; 75 a6
    62026108    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    62036109    mov dx, word [es:di]                      ; 26 8b 15
    62046110    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    62056111    cmp ax, 06568h                            ; 3d 68 65
    6206     jne short 048a0h                          ; 75 1f
     6112    jne short 04807h                          ; 75 1f
    62076113    cmp dx, 07445h                            ; 81 fa 45 74
    6208     jne short 048a0h                          ; 75 19
     6114    jne short 04807h                          ; 75 19
    62096115    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    62106116    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    62116117    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6212     call 0460bh                               ; e8 75 fd
     6118    call 04572h                               ; e8 75 fd
    62136119    mov word [bp-00eh], strict word 00006h    ; c7 46 f2 06 00
    62146120    mov word [bp-00ch], cx                    ; 89 4e f4
    6215     jmp short 048bch                          ; eb 1c
     6121    jmp short 04823h                          ; eb 1c
    62166122    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    62176123    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    62186124    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6219     call 0460bh                               ; e8 5c fd
     6125    call 04572h                               ; e8 5c fd
    62206126    sti                                       ; fb
    62216127    mov word [bp-00ch], cx                    ; 89 4e f4
     
    62246130    mov word [bp-00eh], ax                    ; 89 46 f2
    62256131    call far [bp-00eh]                        ; ff 5e f2
    6226     jmp near 04817h                           ; e9 55 ff
     6132    jmp near 0477eh                           ; e9 55 ff
    62276133    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6228     jne short 048eeh                          ; 75 26
     6134    jne short 04855h                          ; 75 26
    62296135    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6230     jne short 048eeh                          ; 75 20
     6136    jne short 04855h                          ; 75 20
    62316137    mov di, 007c0h                            ; bf c0 07
    62326138    mov es, di                                ; 8e c7
     
    62416147    sbb ax, strict byte 00000h                ; 83 d8 00
    62426148    test ax, ax                               ; 85 c0
    6243     jne near 04817h                           ; 0f 85 29 ff
     6149    jne near 0477eh                           ; 0f 85 29 ff
    62446150    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    62456151    db  00fh, 094h, 0c1h
    62466152    ; sete cl                                   ; 0f 94 c1
    62476153    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6248     je short 048fdh                           ; 74 02
     6154    je short 04864h                           ; 74 02
    62496155    mov CL, strict byte 001h                  ; b1 01
    62506156    xor dx, dx                                ; 31 d2
    62516157    mov ax, di                                ; 89 f8
    6252     call 0161ch                               ; e8 18 cd
     6158    call 0161ch                               ; e8 b1 cd
    62536159    mov bx, ax                                ; 89 c3
    62546160    mov dx, strict word 00002h                ; ba 02 00
    62556161    mov ax, di                                ; 89 f8
    6256     call 0161ch                               ; e8 0e cd
     6162    call 0161ch                               ; e8 a7 cd
    62576163    cmp bx, ax                                ; 39 c3
    6258     je short 04923h                           ; 74 11
     6164    je short 0488ah                           ; 74 11
    62596165    test cl, cl                               ; 84 c9
    6260     jne short 04939h                          ; 75 23
     6166    jne short 048a0h                          ; 75 23
    62616167    mov dx, 001feh                            ; ba fe 01
    62626168    mov ax, di                                ; 89 f8
    6263     call 0161ch                               ; e8 fe cc
     6169    call 0161ch                               ; e8 97 cd
    62646170    cmp ax, 0aa55h                            ; 3d 55 aa
    6265     je short 04939h                           ; 74 16
     6171    je short 048a0h                           ; 74 16
    62666172    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    62676173    push ax                                   ; 50
     
    62706176    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    62716177    xor cx, cx                                ; 31 c9
    6272     jmp near 0482bh                           ; e9 f2 fe
     6178    jmp near 04792h                           ; e9 f2 fe
    62736179    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    62746180    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    62756181    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6276     call 0460bh                               ; e8 c3 fc
     6182    call 04572h                               ; e8 c3 fc
    62776183    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    62786184    xor dx, dx                                ; 31 d2
     
    62846190    pop si                                    ; 5e
    62856191    retn                                      ; c3
    6286 keyboard_panic_:                             ; 0xf4958 LB 0x11
     6192keyboard_panic_:                             ; 0xf48bf LB 0x11
    62876193    push bp                                   ; 55
    62886194    mov bp, sp                                ; 89 e5
    62896195    push ax                                   ; 50
    6290     push 004e2h                               ; 68 e2 04
     6196    push 004e4h                               ; 68 e4 04
    62916197    push strict byte 00007h                   ; 6a 07
    6292     call 018e9h                               ; e8 85 cf
     6198    call 018e9h                               ; e8 1e d0
    62936199    add sp, strict byte 00006h                ; 83 c4 06
    62946200    pop bp                                    ; 5d
    62956201    retn                                      ; c3
    6296 _keyboard_init:                              ; 0xf4969 LB 0x27a
     6202_keyboard_init:                              ; 0xf48d0 LB 0x27a
    62976203    push bp                                   ; 55
    62986204    mov bp, sp                                ; 89 e5
     
    63066212    ; sub ah, ah                                ; 2a e4
    63076213    test AL, strict byte 002h                 ; a8 02
    6308     je short 0498ch                           ; 74 0d
     6214    je short 048f3h                           ; 74 0d
    63096215    dec bx                                    ; 4b
    63106216    test bx, bx                               ; 85 db
    6311     jbe short 0498ch                          ; 76 08
     6217    jbe short 048f3h                          ; 76 08
    63126218    xor al, al                                ; 30 c0
    63136219    mov dx, 00080h                            ; ba 80 00
    63146220    out DX, AL                                ; ee
    6315     jmp short 04975h                          ; eb e9
     6221    jmp short 048dch                          ; eb e9
    63166222    test bx, bx                               ; 85 db
    6317     jne short 04995h                          ; 75 05
     6223    jne short 048fch                          ; 75 05
    63186224    xor ax, ax                                ; 31 c0
    6319     call 04958h                               ; e8 c3 ff
     6225    call 048bfh                               ; e8 c3 ff
    63206226    mov bx, strict word 0ffffh                ; bb ff ff
    63216227    mov dx, strict word 00064h                ; ba 64 00
     
    63246230    ; sub ah, ah                                ; 2a e4
    63256231    test AL, strict byte 001h                 ; a8 01
    6326     jne short 049afh                          ; 75 0d
     6232    jne short 04916h                          ; 75 0d
    63276233    dec bx                                    ; 4b
    63286234    test bx, bx                               ; 85 db
    6329     jbe short 049afh                          ; 76 08
     6235    jbe short 04916h                          ; 76 08
    63306236    mov AL, strict byte 001h                  ; b0 01
    63316237    mov dx, 00080h                            ; ba 80 00
    63326238    out DX, AL                                ; ee
    6333     jmp short 04998h                          ; eb e9
     6239    jmp short 048ffh                          ; eb e9
    63346240    test bx, bx                               ; 85 db
    6335     jne short 049b9h                          ; 75 06
     6241    jne short 04920h                          ; 75 06
    63366242    mov ax, strict word 00001h                ; b8 01 00
    6337     call 04958h                               ; e8 9f ff
     6243    call 048bfh                               ; e8 9f ff
    63386244    mov dx, strict word 00060h                ; ba 60 00
    63396245    in AL, DX                                 ; ec
     
    63416247    ; sub ah, ah                                ; 2a e4
    63426248    cmp ax, strict word 00055h                ; 3d 55 00
    6343     je short 049cah                           ; 74 06
     6249    je short 04931h                           ; 74 06
    63446250    mov ax, 003dfh                            ; b8 df 03
    6345     call 04958h                               ; e8 8e ff
     6251    call 048bfh                               ; e8 8e ff
    63466252    mov AL, strict byte 0abh                  ; b0 ab
    63476253    mov dx, strict word 00064h                ; ba 64 00
     
    63536259    ; sub ah, ah                                ; 2a e4
    63546260    test AL, strict byte 002h                 ; a8 02
    6355     je short 049eah                           ; 74 0d
     6261    je short 04951h                           ; 74 0d
    63566262    dec bx                                    ; 4b
    63576263    test bx, bx                               ; 85 db
    6358     jbe short 049eah                          ; 76 08
     6264    jbe short 04951h                          ; 76 08
    63596265    mov AL, strict byte 010h                  ; b0 10
    63606266    mov dx, 00080h                            ; ba 80 00
    63616267    out DX, AL                                ; ee
    6362     jmp short 049d3h                          ; eb e9
     6268    jmp short 0493ah                          ; eb e9
    63636269    test bx, bx                               ; 85 db
    6364     jne short 049f4h                          ; 75 06
     6270    jne short 0495bh                          ; 75 06
    63656271    mov ax, strict word 0000ah                ; b8 0a 00
    6366     call 04958h                               ; e8 64 ff
     6272    call 048bfh                               ; e8 64 ff
    63676273    mov bx, strict word 0ffffh                ; bb ff ff
    63686274    mov dx, strict word 00064h                ; ba 64 00
     
    63716277    ; sub ah, ah                                ; 2a e4
    63726278    test AL, strict byte 001h                 ; a8 01
    6373     jne short 04a0eh                          ; 75 0d
     6279    jne short 04975h                          ; 75 0d
    63746280    dec bx                                    ; 4b
    63756281    test bx, bx                               ; 85 db
    6376     jbe short 04a0eh                          ; 76 08
     6282    jbe short 04975h                          ; 76 08
    63776283    mov AL, strict byte 011h                  ; b0 11
    63786284    mov dx, 00080h                            ; ba 80 00
    63796285    out DX, AL                                ; ee
    6380     jmp short 049f7h                          ; eb e9
     6286    jmp short 0495eh                          ; eb e9
    63816287    test bx, bx                               ; 85 db
    6382     jne short 04a18h                          ; 75 06
     6288    jne short 0497fh                          ; 75 06
    63836289    mov ax, strict word 0000bh                ; b8 0b 00
    6384     call 04958h                               ; e8 40 ff
     6290    call 048bfh                               ; e8 40 ff
    63856291    mov dx, strict word 00060h                ; ba 60 00
    63866292    in AL, DX                                 ; ec
     
    63886294    ; sub ah, ah                                ; 2a e4
    63896295    test ax, ax                               ; 85 c0
    6390     je short 04a28h                           ; 74 06
     6296    je short 0498fh                           ; 74 06
    63916297    mov ax, 003e0h                            ; b8 e0 03
    6392     call 04958h                               ; e8 30 ff
     6298    call 048bfh                               ; e8 30 ff
    63936299    mov AL, strict byte 0ffh                  ; b0 ff
    63946300    mov dx, strict word 00060h                ; ba 60 00
     
    64006306    ; sub ah, ah                                ; 2a e4
    64016307    test AL, strict byte 002h                 ; a8 02
    6402     je short 04a48h                           ; 74 0d
     6308    je short 049afh                           ; 74 0d
    64036309    dec bx                                    ; 4b
    64046310    test bx, bx                               ; 85 db
    6405     jbe short 04a48h                          ; 76 08
     6311    jbe short 049afh                          ; 76 08
    64066312    mov AL, strict byte 020h                  ; b0 20
    64076313    mov dx, 00080h                            ; ba 80 00
    64086314    out DX, AL                                ; ee
    6409     jmp short 04a31h                          ; eb e9
     6315    jmp short 04998h                          ; eb e9
    64106316    test bx, bx                               ; 85 db
    6411     jne short 04a52h                          ; 75 06
     6317    jne short 049b9h                          ; 75 06
    64126318    mov ax, strict word 00014h                ; b8 14 00
    6413     call 04958h                               ; e8 06 ff
     6319    call 048bfh                               ; e8 06 ff
    64146320    mov bx, strict word 0ffffh                ; bb ff ff
    64156321    mov dx, strict word 00064h                ; ba 64 00
     
    64186324    ; sub ah, ah                                ; 2a e4
    64196325    test AL, strict byte 001h                 ; a8 01
    6420     jne short 04a6ch                          ; 75 0d
     6326    jne short 049d3h                          ; 75 0d
    64216327    dec bx                                    ; 4b
    64226328    test bx, bx                               ; 85 db
    6423     jbe short 04a6ch                          ; 76 08
     6329    jbe short 049d3h                          ; 76 08
    64246330    mov AL, strict byte 021h                  ; b0 21
    64256331    mov dx, 00080h                            ; ba 80 00
    64266332    out DX, AL                                ; ee
    6427     jmp short 04a55h                          ; eb e9
     6333    jmp short 049bch                          ; eb e9
    64286334    test bx, bx                               ; 85 db
    6429     jne short 04a76h                          ; 75 06
     6335    jne short 049ddh                          ; 75 06
    64306336    mov ax, strict word 00015h                ; b8 15 00
    6431     call 04958h                               ; e8 e2 fe
     6337    call 048bfh                               ; e8 e2 fe
    64326338    mov dx, strict word 00060h                ; ba 60 00
    64336339    in AL, DX                                 ; ec
     
    64356341    ; sub ah, ah                                ; 2a e4
    64366342    cmp ax, 000fah                            ; 3d fa 00
    6437     je short 04a87h                           ; 74 06
     6343    je short 049eeh                           ; 74 06
    64386344    mov ax, 003e1h                            ; b8 e1 03
    6439     call 04958h                               ; e8 d1 fe
     6345    call 048bfh                               ; e8 d1 fe
    64406346    mov bx, strict word 0ffffh                ; bb ff ff
    64416347    mov dx, strict word 00064h                ; ba 64 00
     
    64446350    ; sub ah, ah                                ; 2a e4
    64456351    test AL, strict byte 001h                 ; a8 01
    6446     jne short 04aa1h                          ; 75 0d
     6352    jne short 04a08h                          ; 75 0d
    64476353    dec bx                                    ; 4b
    64486354    test bx, bx                               ; 85 db
    6449     jbe short 04aa1h                          ; 76 08
     6355    jbe short 04a08h                          ; 76 08
    64506356    mov AL, strict byte 031h                  ; b0 31
    64516357    mov dx, 00080h                            ; ba 80 00
    64526358    out DX, AL                                ; ee
    6453     jmp short 04a8ah                          ; eb e9
     6359    jmp short 049f1h                          ; eb e9
    64546360    test bx, bx                               ; 85 db
    6455     jne short 04aabh                          ; 75 06
     6361    jne short 04a12h                          ; 75 06
    64566362    mov ax, strict word 0001fh                ; b8 1f 00
    6457     call 04958h                               ; e8 ad fe
     6363    call 048bfh                               ; e8 ad fe
    64586364    mov dx, strict word 00060h                ; ba 60 00
    64596365    in AL, DX                                 ; ec
     
    64616367    ; sub ah, ah                                ; 2a e4
    64626368    cmp ax, 000aah                            ; 3d aa 00
    6463     je short 04ac4h                           ; 74 0e
     6369    je short 04a2bh                           ; 74 0e
    64646370    in AL, DX                                 ; ec
    64656371    db  02ah, 0e4h
    64666372    ; sub ah, ah                                ; 2a e4
    64676373    cmp ax, 000aah                            ; 3d aa 00
    6468     je short 04ac4h                           ; 74 06
     6374    je short 04a2bh                           ; 74 06
    64696375    mov ax, 003e2h                            ; b8 e2 03
    6470     call 04958h                               ; e8 94 fe
     6376    call 048bfh                               ; e8 94 fe
    64716377    mov AL, strict byte 0f5h                  ; b0 f5
    64726378    mov dx, strict word 00060h                ; ba 60 00
     
    64786384    ; sub ah, ah                                ; 2a e4
    64796385    test AL, strict byte 002h                 ; a8 02
    6480     je short 04ae4h                           ; 74 0d
     6386    je short 04a4bh                           ; 74 0d
    64816387    dec bx                                    ; 4b
    64826388    test bx, bx                               ; 85 db
    6483     jbe short 04ae4h                          ; 76 08
     6389    jbe short 04a4bh                          ; 76 08
    64846390    mov AL, strict byte 040h                  ; b0 40
    64856391    mov dx, 00080h                            ; ba 80 00
    64866392    out DX, AL                                ; ee
    6487     jmp short 04acdh                          ; eb e9
     6393    jmp short 04a34h                          ; eb e9
    64886394    test bx, bx                               ; 85 db
    6489     jne short 04aeeh                          ; 75 06
     6395    jne short 04a55h                          ; 75 06
    64906396    mov ax, strict word 00028h                ; b8 28 00
    6491     call 04958h                               ; e8 6a fe
     6397    call 048bfh                               ; e8 6a fe
    64926398    mov bx, strict word 0ffffh                ; bb ff ff
    64936399    mov dx, strict word 00064h                ; ba 64 00
     
    64966402    ; sub ah, ah                                ; 2a e4
    64976403    test AL, strict byte 001h                 ; a8 01
    6498     jne short 04b08h                          ; 75 0d
     6404    jne short 04a6fh                          ; 75 0d
    64996405    dec bx                                    ; 4b
    65006406    test bx, bx                               ; 85 db
    6501     jbe short 04b08h                          ; 76 08
     6407    jbe short 04a6fh                          ; 76 08
    65026408    mov AL, strict byte 041h                  ; b0 41
    65036409    mov dx, 00080h                            ; ba 80 00
    65046410    out DX, AL                                ; ee
    6505     jmp short 04af1h                          ; eb e9
     6411    jmp short 04a58h                          ; eb e9
    65066412    test bx, bx                               ; 85 db
    6507     jne short 04b12h                          ; 75 06
     6413    jne short 04a79h                          ; 75 06
    65086414    mov ax, strict word 00029h                ; b8 29 00
    6509     call 04958h                               ; e8 46 fe
     6415    call 048bfh                               ; e8 46 fe
    65106416    mov dx, strict word 00060h                ; ba 60 00
    65116417    in AL, DX                                 ; ec
     
    65136419    ; sub ah, ah                                ; 2a e4
    65146420    cmp ax, 000fah                            ; 3d fa 00
    6515     je short 04b23h                           ; 74 06
     6421    je short 04a8ah                           ; 74 06
    65166422    mov ax, 003e3h                            ; b8 e3 03
    6517     call 04958h                               ; e8 35 fe
     6423    call 048bfh                               ; e8 35 fe
    65186424    mov AL, strict byte 060h                  ; b0 60
    65196425    mov dx, strict word 00064h                ; ba 64 00
     
    65256431    ; sub ah, ah                                ; 2a e4
    65266432    test AL, strict byte 002h                 ; a8 02
    6527     je short 04b43h                           ; 74 0d
     6433    je short 04aaah                           ; 74 0d
    65286434    dec bx                                    ; 4b
    65296435    test bx, bx                               ; 85 db
    6530     jbe short 04b43h                          ; 76 08
     6436    jbe short 04aaah                          ; 76 08
    65316437    mov AL, strict byte 050h                  ; b0 50
    65326438    mov dx, 00080h                            ; ba 80 00
    65336439    out DX, AL                                ; ee
    6534     jmp short 04b2ch                          ; eb e9
     6440    jmp short 04a93h                          ; eb e9
    65356441    test bx, bx                               ; 85 db
    6536     jne short 04b4dh                          ; 75 06
     6442    jne short 04ab4h                          ; 75 06
    65376443    mov ax, strict word 00032h                ; b8 32 00
    6538     call 04958h                               ; e8 0b fe
     6444    call 048bfh                               ; e8 0b fe
    65396445    mov AL, strict byte 065h                  ; b0 65
    65406446    mov dx, strict word 00060h                ; ba 60 00
     
    65466452    ; sub ah, ah                                ; 2a e4
    65476453    test AL, strict byte 002h                 ; a8 02
    6548     je short 04b6dh                           ; 74 0d
     6454    je short 04ad4h                           ; 74 0d
    65496455    dec bx                                    ; 4b
    65506456    test bx, bx                               ; 85 db
    6551     jbe short 04b6dh                          ; 76 08
     6457    jbe short 04ad4h                          ; 76 08
    65526458    mov AL, strict byte 060h                  ; b0 60
    65536459    mov dx, 00080h                            ; ba 80 00
    65546460    out DX, AL                                ; ee
    6555     jmp short 04b56h                          ; eb e9
     6461    jmp short 04abdh                          ; eb e9
    65566462    test bx, bx                               ; 85 db
    6557     jne short 04b77h                          ; 75 06
     6463    jne short 04adeh                          ; 75 06
    65586464    mov ax, strict word 0003ch                ; b8 3c 00
    6559     call 04958h                               ; e8 e1 fd
     6465    call 048bfh                               ; e8 e1 fd
    65606466    mov AL, strict byte 0f4h                  ; b0 f4
    65616467    mov dx, strict word 00060h                ; ba 60 00
     
    65676473    ; sub ah, ah                                ; 2a e4
    65686474    test AL, strict byte 002h                 ; a8 02
    6569     je short 04b97h                           ; 74 0d
     6475    je short 04afeh                           ; 74 0d
    65706476    dec bx                                    ; 4b
    65716477    test bx, bx                               ; 85 db
    6572     jbe short 04b97h                          ; 76 08
     6478    jbe short 04afeh                          ; 76 08
    65736479    mov AL, strict byte 070h                  ; b0 70
    65746480    mov dx, 00080h                            ; ba 80 00
    65756481    out DX, AL                                ; ee
    6576     jmp short 04b80h                          ; eb e9
     6482    jmp short 04ae7h                          ; eb e9
    65776483    test bx, bx                               ; 85 db
    6578     jne short 04ba1h                          ; 75 06
     6484    jne short 04b08h                          ; 75 06
    65796485    mov ax, strict word 00046h                ; b8 46 00
    6580     call 04958h                               ; e8 b7 fd
     6486    call 048bfh                               ; e8 b7 fd
    65816487    mov bx, strict word 0ffffh                ; bb ff ff
    65826488    mov dx, strict word 00064h                ; ba 64 00
     
    65856491    ; sub ah, ah                                ; 2a e4
    65866492    test AL, strict byte 001h                 ; a8 01
    6587     jne short 04bbbh                          ; 75 0d
     6493    jne short 04b22h                          ; 75 0d
    65886494    dec bx                                    ; 4b
    65896495    test bx, bx                               ; 85 db
    6590     jbe short 04bbbh                          ; 76 08
     6496    jbe short 04b22h                          ; 76 08
    65916497    mov AL, strict byte 071h                  ; b0 71
    65926498    mov dx, 00080h                            ; ba 80 00
    65936499    out DX, AL                                ; ee
    6594     jmp short 04ba4h                          ; eb e9
     6500    jmp short 04b0bh                          ; eb e9
    65956501    test bx, bx                               ; 85 db
    6596     jne short 04bc5h                          ; 75 06
     6502    jne short 04b2ch                          ; 75 06
    65976503    mov ax, strict word 00046h                ; b8 46 00
    6598     call 04958h                               ; e8 93 fd
     6504    call 048bfh                               ; e8 93 fd
    65996505    mov dx, strict word 00060h                ; ba 60 00
    66006506    in AL, DX                                 ; ec
     
    66026508    ; sub ah, ah                                ; 2a e4
    66036509    cmp ax, 000fah                            ; 3d fa 00
    6604     je short 04bd6h                           ; 74 06
     6510    je short 04b3dh                           ; 74 06
    66056511    mov ax, 003e4h                            ; b8 e4 03
    6606     call 04958h                               ; e8 82 fd
     6512    call 048bfh                               ; e8 82 fd
    66076513    mov AL, strict byte 0a8h                  ; b0 a8
    66086514    mov dx, strict word 00064h                ; ba 64 00
    66096515    out DX, AL                                ; ee
    66106516    xor ax, ax                                ; 31 c0
    6611     call 05e33h                               ; e8 52 12
     6517    call 05d9ah                               ; e8 52 12
    66126518    pop bp                                    ; 5d
    66136519    retn                                      ; c3
    6614 enqueue_key_:                                ; 0xf4be3 LB 0x90
     6520enqueue_key_:                                ; 0xf4b4a LB 0x90
    66156521    push bx                                   ; 53
    66166522    push cx                                   ; 51
     
    66226528    mov dx, strict word 0001ah                ; ba 1a 00
    66236529    mov ax, strict word 00040h                ; b8 40 00
    6624     call 0161ch                               ; e8 23 ca
     6530    call 0161ch                               ; e8 bc ca
    66256531    mov di, ax                                ; 89 c7
    66266532    mov dx, strict word 0001ch                ; ba 1c 00
    66276533    mov ax, strict word 00040h                ; b8 40 00
    6628     call 0161ch                               ; e8 18 ca
     6534    call 0161ch                               ; e8 b1 ca
    66296535    mov si, ax                                ; 89 c6
    66306536    lea cx, [si+002h]                         ; 8d 4c 02
    66316537    cmp cx, strict byte 0003eh                ; 83 f9 3e
    6632     jc short 04c11h                           ; 72 03
     6538    jc short 04b78h                           ; 72 03
    66336539    mov cx, strict word 0001eh                ; b9 1e 00
    66346540    cmp cx, di                                ; 39 f9
    6635     jne short 04c19h                          ; 75 04
     6541    jne short 04b80h                          ; 75 04
    66366542    xor ax, ax                                ; 31 c0
    6637     jmp short 04c3eh                          ; eb 25
     6543    jmp short 04ba5h                          ; eb 25
    66386544    xor bh, bh                                ; 30 ff
    66396545    mov dx, si                                ; 89 f2
    66406546    mov ax, strict word 00040h                ; b8 40 00
    6641     call 0160eh                               ; e8 eb c9
     6547    call 0160eh                               ; e8 84 ca
    66426548    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    66436549    lea dx, [si+001h]                         ; 8d 54 01
    66446550    mov ax, strict word 00040h                ; b8 40 00
    6645     call 0160eh                               ; e8 de c9
     6551    call 0160eh                               ; e8 77 ca
    66466552    mov bx, cx                                ; 89 cb
    66476553    mov dx, strict word 0001ch                ; ba 1c 00
    66486554    mov ax, strict word 00040h                ; b8 40 00
    6649     call 0162ah                               ; e8 ef c9
     6555    call 0162ah                               ; e8 88 ca
    66506556    mov ax, strict word 00001h                ; b8 01 00
    66516557    leave                                     ; c9
     
    66646570    cmp bh, byte [bx+si]                      ; 3a 38
    66656571    sub bl, byte [ss:di]                      ; 36 2a 1d
    6666     stosw                                     ; ab
    6667     dec si                                    ; 4e
    6668     cmp byte [di+007h], cl                    ; 38 4d 07
     6572    adc cl, byte [bp-061h]                    ; 12 4e 9f
     6573    dec sp                                    ; 4c
     6574    outsb                                     ; 6e
     6575    dec sp                                    ; 4c
     6576    outsb                                     ; 6e
     6577    dec sp                                    ; 4c
     6578    and word [di+047h], cx                    ; 21 4d 47
     6579    dec sp                                    ; 4c
     6580    xchg bx, ax                               ; 93
    66696581    dec bp                                    ; 4d
    6670     pop ES                                    ; 07
     6582    loop 04c17h                               ; e2 4d
     6583    add ax, 0e04eh                            ; 05 4e e0
     6584    dec sp                                    ; 4c
     6585    outsb                                     ; 6e
     6586    dec sp                                    ; 4c
     6587    outsb                                     ; 6e
     6588    dec sp                                    ; 4c
     6589    pop dx                                    ; 5a
    66716590    dec bp                                    ; 4d
    6672     mov dx, 0e04dh                            ; ba 4d e0
     6591    pushaw                                    ; 60
    66736592    dec sp                                    ; 4c
    6674     sub AL, strict byte 04eh                  ; 2c 4e
    6675     jnp short 04cb1h                          ; 7b 4e
    6676     sahf                                      ; 9e
    6677     dec si                                    ; 4e
    6678     jns short 04cb4h                          ; 79 4d
    6679     pop ES                                    ; 07
     6593    retn                                      ; c3
    66806594    dec bp                                    ; 4d
    6681     pop ES                                    ; 07
     6595    db  0feh
    66826596    dec bp                                    ; 4d
    6683     rep dec bp                                ; f3 4d
    6684     stc                                       ; f9
    6685     dec sp                                    ; 4c
    6686     pop sp                                    ; 5c
    6687     dec si                                    ; 4e
    6688     xchg di, ax                               ; 97
    6689     dec si                                    ; 4e
    6690 _int09_function:                             ; 0xf4c73 LB 0x358
     6597_int09_function:                             ; 0xf4bda LB 0x358
    66916598    push si                                   ; 56
    66926599    push di                                   ; 57
     
    66956602    mov byte [bp-006h], al                    ; 88 46 fa
    66966603    test al, al                               ; 84 c0
    6697     jne short 04c9ch                          ; 75 19
    6698     mov bx, 00cech                            ; bb ec 0c
     6604    jne short 04c03h                          ; 75 19
     6605    mov bx, 00d32h                            ; bb 32 0d
    66996606    mov cx, ds                                ; 8c d9
    67006607    mov ax, strict word 00004h                ; b8 04 00
    6701     call 018aeh                               ; e8 20 cc
    6702     push 004f5h                               ; 68 f5 04
     6608    call 018aeh                               ; e8 b9 cc
     6609    push 004f7h                               ; 68 f7 04
    67036610    push strict byte 00004h                   ; 6a 04
    6704     call 018e9h                               ; e8 53 cc
     6611    call 018e9h                               ; e8 ec cc
    67056612    add sp, strict byte 00004h                ; 83 c4 04
    6706     jmp near 04fc7h                           ; e9 2b 03
     6613    jmp near 04f2eh                           ; e9 2b 03
    67076614    mov dx, strict word 00017h                ; ba 17 00
    67086615    mov ax, strict word 00040h                ; b8 40 00
    6709     call 01600h                               ; e8 5b c9
     6616    call 01600h                               ; e8 f4 c9
    67106617    mov byte [bp-00ah], al                    ; 88 46 f6
    67116618    mov bl, al                                ; 88 c3
    67126619    mov dx, strict word 00018h                ; ba 18 00
    67136620    mov ax, strict word 00040h                ; b8 40 00
    6714     call 01600h                               ; e8 4d c9
     6621    call 01600h                               ; e8 e6 c9
    67156622    mov byte [bp-00ch], al                    ; 88 46 f4
    67166623    mov byte [bp-008h], al                    ; 88 46 f8
    67176624    mov dx, 00096h                            ; ba 96 00
    67186625    mov ax, strict word 00040h                ; b8 40 00
    6719     call 01600h                               ; e8 3e c9
     6626    call 01600h                               ; e8 d7 c9
    67206627    mov byte [bp-004h], al                    ; 88 46 fc
    67216628    mov byte [bp-002h], al                    ; 88 46 fe
     
    67246631    pop ES                                    ; 07
    67256632    mov cx, strict word 00010h                ; b9 10 00
    6726     mov di, 04c44h                            ; bf 44 4c
     6633    mov di, 04babh                            ; bf ab 4b
    67276634    repne scasb                               ; f2 ae
    67286635    sal cx, 1                                 ; d1 e1
    67296636    mov di, cx                                ; 89 cf
    6730     mov ax, word [cs:di+04c53h]               ; 2e 8b 85 53 4c
     6637    mov ax, word [cs:di+04bbah]               ; 2e 8b 85 ba 4b
    67316638    jmp ax                                    ; ff e0
    67326639    xor bl, 040h                              ; 80 f3 40
     
    67346641    mov dx, strict word 00017h                ; ba 17 00
    67356642    mov ax, strict word 00040h                ; b8 40 00
    6736     call 0160eh                               ; e8 20 c9
     6643    call 0160eh                               ; e8 b9 c9
    67376644    or byte [bp-008h], 040h                   ; 80 4e f8 40
    67386645    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    6739     jmp near 04e6fh                           ; e9 76 01
     6646    jmp near 04dd6h                           ; e9 76 01
    67406647    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67416648    and AL, strict byte 0bfh                  ; 24 bf
    67426649    mov byte [bp-008h], al                    ; 88 46 f8
    67436650    movzx bx, al                              ; 0f b6 d8
    6744     jmp near 04e6fh                           ; e9 68 01
     6651    jmp near 04dd6h                           ; e9 68 01
    67456652    test byte [bp-002h], 002h                 ; f6 46 fe 02
    6746     jne near 04fa9h                           ; 0f 85 9a 02
     6653    jne near 04f10h                           ; 0f 85 9a 02
    67476654    mov al, byte [bp-006h]                    ; 8a 46 fa
    67486655    and AL, strict byte 07fh                  ; 24 7f
     
    67536660    inc ax                                    ; 40
    67546661    test byte [bp-006h], 080h                 ; f6 46 fa 80
    6755     je short 04d28h                           ; 74 06
     6662    je short 04c8fh                           ; 74 06
    67566663    not al                                    ; f6 d0
    67576664    and bl, al                                ; 20 c3
    6758     jmp short 04d2ah                          ; eb 02
     6665    jmp short 04c91h                          ; eb 02
    67596666    or bl, al                                 ; 08 c3
    67606667    xor bh, bh                                ; 30 ff
    67616668    mov dx, strict word 00017h                ; ba 17 00
    67626669    mov ax, strict word 00040h                ; b8 40 00
    6763     call 0160eh                               ; e8 d9 c8
    6764     jmp near 04fa9h                           ; e9 71 02
     6670    call 0160eh                               ; e8 72 c9
     6671    jmp near 04f10h                           ; e9 71 02
    67656672    test byte [bp-004h], 001h                 ; f6 46 fc 01
    6766     jne near 04fa9h                           ; 0f 85 69 02
     6673    jne near 04f10h                           ; 0f 85 69 02
    67676674    or bl, 004h                               ; 80 cb 04
    67686675    xor bh, bh                                ; 30 ff
    67696676    mov dx, strict word 00017h                ; ba 17 00
    67706677    mov ax, strict word 00040h                ; b8 40 00
    6771     call 0160eh                               ; e8 c0 c8
     6678    call 0160eh                               ; e8 59 c9
    67726679    mov al, byte [bp-004h]                    ; 8a 46 fc
    67736680    test AL, strict byte 002h                 ; a8 02
    6774     je short 04d62h                           ; 74 0d
     6681    je short 04cc9h                           ; 74 0d
    67756682    or AL, strict byte 004h                   ; 0c 04
    67766683    mov byte [bp-002h], al                    ; 88 46 fe
    67776684    movzx bx, al                              ; 0f b6 d8
    67786685    mov dx, 00096h                            ; ba 96 00
    6779     jmp short 04d70h                          ; eb 0e
     6686    jmp short 04cd7h                          ; eb 0e
    67806687    mov al, byte [bp-00ch]                    ; 8a 46 f4
    67816688    or AL, strict byte 001h                   ; 0c 01
     
    67846691    mov dx, strict word 00018h                ; ba 18 00
    67856692    mov ax, strict word 00040h                ; b8 40 00
    6786     call 0160eh                               ; e8 98 c8
    6787     jmp near 04fa9h                           ; e9 30 02
     6693    call 0160eh                               ; e8 31 c9
     6694    jmp near 04f10h                           ; e9 30 02
    67886695    test byte [bp-004h], 001h                 ; f6 46 fc 01
    6789     jne near 04fa9h                           ; 0f 85 28 02
     6696    jne near 04f10h                           ; 0f 85 28 02
    67906697    and bl, 0fbh                              ; 80 e3 fb
    67916698    xor bh, bh                                ; 30 ff
    67926699    mov dx, strict word 00017h                ; ba 17 00
    67936700    mov ax, strict word 00040h                ; b8 40 00
    6794     call 0160eh                               ; e8 7f c8
     6701    call 0160eh                               ; e8 18 c9
    67956702    mov al, byte [bp-004h]                    ; 8a 46 fc
    67966703    test AL, strict byte 002h                 ; a8 02
    6797     je short 04da3h                           ; 74 0d
     6704    je short 04d0ah                           ; 74 0d
    67986705    and AL, strict byte 0fbh                  ; 24 fb
    67996706    mov byte [bp-002h], al                    ; 88 46 fe
    68006707    movzx bx, al                              ; 0f b6 d8
    68016708    mov dx, 00096h                            ; ba 96 00
    6802     jmp short 04db1h                          ; eb 0e
     6709    jmp short 04d18h                          ; eb 0e
    68036710    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68046711    and AL, strict byte 0feh                  ; 24 fe
     
    68076714    mov dx, strict word 00018h                ; ba 18 00
    68086715    mov ax, strict word 00040h                ; b8 40 00
    6809     call 0160eh                               ; e8 57 c8
    6810     jmp near 04fa9h                           ; e9 ef 01
     6716    call 0160eh                               ; e8 f0 c8
     6717    jmp near 04f10h                           ; e9 ef 01
    68116718    or bl, 008h                               ; 80 cb 08
    68126719    xor bh, bh                                ; 30 ff
    68136720    mov dx, strict word 00017h                ; ba 17 00
    68146721    mov ax, strict word 00040h                ; b8 40 00
    6815     call 0160eh                               ; e8 46 c8
     6722    call 0160eh                               ; e8 df c8
    68166723    mov al, byte [bp-004h]                    ; 8a 46 fc
    68176724    test AL, strict byte 002h                 ; a8 02
    6818     je short 04ddch                           ; 74 0d
     6725    je short 04d43h                           ; 74 0d
    68196726    or AL, strict byte 008h                   ; 0c 08
    68206727    mov byte [bp-002h], al                    ; 88 46 fe
    68216728    movzx bx, al                              ; 0f b6 d8
    68226729    mov dx, 00096h                            ; ba 96 00
    6823     jmp short 04deah                          ; eb 0e
     6730    jmp short 04d51h                          ; eb 0e
    68246731    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68256732    or AL, strict byte 002h                   ; 0c 02
     
    68286735    mov dx, strict word 00018h                ; ba 18 00
    68296736    mov ax, strict word 00040h                ; b8 40 00
    6830     call 0160eh                               ; e8 1e c8
    6831     jmp near 04fa9h                           ; e9 b6 01
     6737    call 0160eh                               ; e8 b7 c8
     6738    jmp near 04f10h                           ; e9 b6 01
    68326739    and bl, 0f7h                              ; 80 e3 f7
    68336740    xor bh, bh                                ; 30 ff
    68346741    mov dx, strict word 00017h                ; ba 17 00
    68356742    mov ax, strict word 00040h                ; b8 40 00
    6836     call 0160eh                               ; e8 0d c8
     6743    call 0160eh                               ; e8 a6 c8
    68376744    mov al, byte [bp-004h]                    ; 8a 46 fc
    68386745    test AL, strict byte 002h                 ; a8 02
    6839     je short 04e15h                           ; 74 0d
     6746    je short 04d7ch                           ; 74 0d
    68406747    and AL, strict byte 0f7h                  ; 24 f7
    68416748    mov byte [bp-002h], al                    ; 88 46 fe
    68426749    movzx bx, al                              ; 0f b6 d8
    68436750    mov dx, 00096h                            ; ba 96 00
    6844     jmp short 04e23h                          ; eb 0e
     6751    jmp short 04d8ah                          ; eb 0e
    68456752    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68466753    and AL, strict byte 0fdh                  ; 24 fd
     
    68496756    mov dx, strict word 00018h                ; ba 18 00
    68506757    mov ax, strict word 00040h                ; b8 40 00
    6851     call 0160eh                               ; e8 e5 c7
    6852     jmp near 04fa9h                           ; e9 7d 01
     6758    call 0160eh                               ; e8 7e c8
     6759    jmp near 04f10h                           ; e9 7d 01
    68536760    test byte [bp-004h], 003h                 ; f6 46 fc 03
    6854     jne near 04fa9h                           ; 0f 85 75 01
     6761    jne near 04f10h                           ; 0f 85 75 01
    68556762    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68566763    or AL, strict byte 020h                   ; 0c 20
     
    68596766    mov dx, strict word 00018h                ; ba 18 00
    68606767    mov ax, strict word 00040h                ; b8 40 00
    6861     call 0160eh                               ; e8 c6 c7
     6768    call 0160eh                               ; e8 5f c8
    68626769    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    68636770    xor bl, 020h                              ; 80 f3 20
     
    68656772    mov dx, strict word 00017h                ; ba 17 00
    68666773    mov ax, strict word 00040h                ; b8 40 00
    6867     call 0160eh                               ; e8 b5 c7
    6868     jmp near 04fa9h                           ; e9 4d 01
     6774    call 0160eh                               ; e8 4e c8
     6775    jmp near 04f10h                           ; e9 4d 01
    68696776    test byte [bp-004h], 003h                 ; f6 46 fc 03
    6870     jne near 04fa9h                           ; 0f 85 45 01
     6777    jne near 04f10h                           ; 0f 85 45 01
    68716778    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68726779    and AL, strict byte 0dfh                  ; 24 df
     
    68756782    mov dx, strict word 00018h                ; ba 18 00
    68766783    mov ax, strict word 00040h                ; b8 40 00
    6877     call 0160eh                               ; e8 96 c7
    6878     jmp near 04fa9h                           ; e9 2e 01
     6784    call 0160eh                               ; e8 2f c8
     6785    jmp near 04f10h                           ; e9 2e 01
    68796786    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68806787    or AL, strict byte 010h                   ; 0c 10
     
    68836790    mov dx, strict word 00018h                ; ba 18 00
    68846791    mov ax, strict word 00040h                ; b8 40 00
    6885     call 0160eh                               ; e8 7f c7
     6792    call 0160eh                               ; e8 18 c8
    68866793    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    68876794    xor bl, 010h                              ; 80 f3 10
    6888     jmp short 04e4eh                          ; eb b7
     6795    jmp short 04db5h                          ; eb b7
    68896796    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68906797    and AL, strict byte 0efh                  ; 24 ef
    6891     jmp short 04e69h                          ; eb cb
     6798    jmp short 04dd0h                          ; eb cb
    68926799    mov al, bl                                ; 88 d8
    68936800    and AL, strict byte 00ch                  ; 24 0c
    68946801    cmp AL, strict byte 00ch                  ; 3c 0c
    6895     jne short 04eabh                          ; 75 05
     6802    jne short 04e12h                          ; 75 05
    68966803    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    68976804    test byte [bp-006h], 080h                 ; f6 46 fa 80
    6898     jne near 04fa9h                           ; 0f 85 f6 00
     6805    jne near 04f10h                           ; 0f 85 f6 00
    68996806    cmp byte [bp-006h], 058h                  ; 80 7e fa 58
    6900     jbe short 04ed7h                          ; 76 1e
    6901     mov bx, 00cech                            ; bb ec 0c
     6807    jbe short 04e3eh                          ; 76 1e
     6808    mov bx, 00d32h                            ; bb 32 0d
    69026809    mov cx, ds                                ; 8c d9
    69036810    mov ax, strict word 00004h                ; b8 04 00
    6904     call 018aeh                               ; e8 ea c9
     6811    call 018aeh                               ; e8 83 ca
    69056812    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    69066813    push ax                                   ; 50
    6907     push 0050fh                               ; 68 0f 05
     6814    push 00511h                               ; 68 11 05
    69086815    push strict byte 00004h                   ; 6a 04
    6909     call 018e9h                               ; e8 18 ca
     6816    call 018e9h                               ; e8 b1 ca
    69106817    add sp, strict byte 00006h                ; 83 c4 06
    6911     jmp near 04fc7h                           ; e9 f0 00
     6818    jmp near 04f2eh                           ; e9 f0 00
    69126819    test bl, 008h                             ; f6 c3 08
    6913     je short 04eeeh                           ; 74 12
     6820    je short 04e55h                           ; 74 12
    69146821    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    69156822    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6916     mov dl, byte [si+00d40h]                  ; 8a 94 40 0d
    6917     mov ax, word [si+00d40h]                  ; 8b 84 40 0d
    6918     jmp near 04f7ah                           ; e9 8c 00
     6823    mov dl, byte [si+00d86h]                  ; 8a 94 86 0d
     6824    mov ax, word [si+00d86h]                  ; 8b 84 86 0d
     6825    jmp near 04ee1h                           ; e9 8c 00
    69196826    test bl, 004h                             ; f6 c3 04
    6920     je short 04f05h                           ; 74 12
     6827    je short 04e6ch                           ; 74 12
    69216828    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    69226829    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6923     mov dl, byte [si+00d3eh]                  ; 8a 94 3e 0d
    6924     mov ax, word [si+00d3eh]                  ; 8b 84 3e 0d
    6925     jmp near 04f7ah                           ; e9 75 00
     6830    mov dl, byte [si+00d84h]                  ; 8a 94 84 0d
     6831    mov ax, word [si+00d84h]                  ; 8b 84 84 0d
     6832    jmp near 04ee1h                           ; e9 75 00
    69266833    mov al, byte [bp-002h]                    ; 8a 46 fe
    69276834    and AL, strict byte 002h                  ; 24 02
    69286835    test al, al                               ; 84 c0
    6929     jbe short 04f23h                          ; 76 15
     6836    jbe short 04e8ah                          ; 76 15
    69306837    mov al, byte [bp-006h]                    ; 8a 46 fa
    69316838    cmp AL, strict byte 047h                  ; 3c 47
    6932     jc short 04f23h                           ; 72 0e
     6839    jc short 04e8ah                           ; 72 0e
    69336840    cmp AL, strict byte 053h                  ; 3c 53
    6934     jnbe short 04f23h                         ; 77 0a
     6841    jnbe short 04e8ah                         ; 77 0a
    69356842    mov DL, strict byte 0e0h                  ; b2 e0
    69366843    movzx si, al                              ; 0f b6 f0
    69376844    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6938     jmp short 04f76h                          ; eb 53
     6845    jmp short 04eddh                          ; eb 53
    69396846    test bl, 003h                             ; f6 c3 03
    6940     je short 04f55h                           ; 74 2d
     6847    je short 04ebch                           ; 74 2d
    69416848    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    69426849    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6943     movzx ax, byte [si+00d42h]                ; 0f b6 84 42 0d
     6850    movzx ax, byte [si+00d88h]                ; 0f b6 84 88 0d
    69446851    movzx dx, bl                              ; 0f b6 d3
    69456852    test dx, ax                               ; 85 c2
    6946     je short 04f45h                           ; 74 0a
    6947     mov dl, byte [si+00d3ah]                  ; 8a 94 3a 0d
    6948     mov ax, word [si+00d3ah]                  ; 8b 84 3a 0d
    6949     jmp short 04f4dh                          ; eb 08
    6950     mov dl, byte [si+00d3ch]                  ; 8a 94 3c 0d
    6951     mov ax, word [si+00d3ch]                  ; 8b 84 3c 0d
     6853    je short 04each                           ; 74 0a
     6854    mov dl, byte [si+00d80h]                  ; 8a 94 80 0d
     6855    mov ax, word [si+00d80h]                  ; 8b 84 80 0d
     6856    jmp short 04eb4h                          ; eb 08
     6857    mov dl, byte [si+00d82h]                  ; 8a 94 82 0d
     6858    mov ax, word [si+00d82h]                  ; 8b 84 82 0d
    69526859    shr ax, 008h                              ; c1 e8 08
    69536860    mov byte [bp-006h], al                    ; 88 46 fa
    6954     jmp short 04f80h                          ; eb 2b
     6861    jmp short 04ee7h                          ; eb 2b
    69556862    movzx si, byte [bp-006h]                  ; 0f b6 76 fa
    69566863    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6957     movzx ax, byte [si+00d42h]                ; 0f b6 84 42 0d
     6864    movzx ax, byte [si+00d88h]                ; 0f b6 84 88 0d
    69586865    movzx dx, bl                              ; 0f b6 d3
    69596866    test dx, ax                               ; 85 c2
    6960     je short 04f72h                           ; 74 0a
    6961     mov dl, byte [si+00d3ch]                  ; 8a 94 3c 0d
    6962     mov ax, word [si+00d3ch]                  ; 8b 84 3c 0d
    6963     jmp short 04f7ah                          ; eb 08
    6964     mov dl, byte [si+00d3ah]                  ; 8a 94 3a 0d
    6965     mov ax, word [si+00d3ah]                  ; 8b 84 3a 0d
     6867    je short 04ed9h                           ; 74 0a
     6868    mov dl, byte [si+00d82h]                  ; 8a 94 82 0d
     6869    mov ax, word [si+00d82h]                  ; 8b 84 82 0d
     6870    jmp short 04ee1h                          ; eb 08
     6871    mov dl, byte [si+00d80h]                  ; 8a 94 80 0d
     6872    mov ax, word [si+00d80h]                  ; 8b 84 80 0d
    69666873    shr ax, 008h                              ; c1 e8 08
    69676874    mov byte [bp-006h], al                    ; 88 46 fa
    69686875    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6969     jne short 04fa0h                          ; 75 1a
     6876    jne short 04f07h                          ; 75 1a
    69706877    test dl, dl                               ; 84 d2
    6971     jne short 04fa0h                          ; 75 16
    6972     mov bx, 00cech                            ; bb ec 0c
     6878    jne short 04f07h                          ; 75 16
     6879    mov bx, 00d32h                            ; bb 32 0d
    69736880    mov cx, ds                                ; 8c d9
    69746881    mov ax, strict word 00004h                ; b8 04 00
    6975     call 018aeh                               ; e8 19 c9
    6976     push 00546h                               ; 68 46 05
     6882    call 018aeh                               ; e8 b2 c9
     6883    push 00548h                               ; 68 48 05
    69776884    push strict byte 00004h                   ; 6a 04
    6978     call 018e9h                               ; e8 4c c9
     6885    call 018e9h                               ; e8 e5 c9
    69796886    add sp, strict byte 00004h                ; 83 c4 04
    69806887    xor dh, dh                                ; 30 f6
    69816888    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6982     call 04be3h                               ; e8 3a fc
     6889    call 04b4ah                               ; e8 3a fc
    69836890    mov al, byte [bp-006h]                    ; 8a 46 fa
    69846891    and AL, strict byte 07fh                  ; 24 7f
    69856892    cmp AL, strict byte 01dh                  ; 3c 1d
    6986     je short 04fb6h                           ; 74 04
     6893    je short 04f1dh                           ; 74 04
    69876894    and byte [bp-002h], 0feh                  ; 80 66 fe fe
    69886895    and byte [bp-002h], 0fdh                  ; 80 66 fe fd
     
    69906897    mov dx, 00096h                            ; ba 96 00
    69916898    mov ax, strict word 00040h                ; b8 40 00
    6992     call 0160eh                               ; e8 47 c6
     6899    call 0160eh                               ; e8 e0 c6
    69936900    leave                                     ; c9
    69946901    pop di                                    ; 5f
    69956902    pop si                                    ; 5e
    69966903    retn                                      ; c3
    6997 dequeue_key_:                                ; 0xf4fcb LB 0x90
     6904dequeue_key_:                                ; 0xf4f32 LB 0x90
    69986905    push si                                   ; 56
    69996906    push di                                   ; 57
     
    70056912    mov dx, strict word 0001ah                ; ba 1a 00
    70066913    mov ax, strict word 00040h                ; b8 40 00
    7007     call 0161ch                               ; e8 38 c6
     6914    call 0161ch                               ; e8 d1 c6
    70086915    mov bx, ax                                ; 89 c3
    70096916    mov dx, strict word 0001ch                ; ba 1c 00
    70106917    mov ax, strict word 00040h                ; b8 40 00
    7011     call 0161ch                               ; e8 2d c6
     6918    call 0161ch                               ; e8 c6 c6
    70126919    cmp bx, ax                                ; 39 c3
    7013     je short 05030h                           ; 74 3d
     6920    je short 04f97h                           ; 74 3d
    70146921    mov dx, bx                                ; 89 da
    70156922    mov ax, strict word 00040h                ; b8 40 00
    7016     call 01600h                               ; e8 05 c6
     6923    call 01600h                               ; e8 9e c6
    70176924    mov cl, al                                ; 88 c1
    70186925    lea dx, [bx+001h]                         ; 8d 57 01
    70196926    mov ax, strict word 00040h                ; b8 40 00
    7020     call 01600h                               ; e8 fa c5
     6927    call 01600h                               ; e8 93 c6
    70216928    mov es, [bp-004h]                         ; 8e 46 fc
    70226929    mov byte [es:si], cl                      ; 26 88 0c
     
    70246931    mov byte [es:di], al                      ; 26 88 05
    70256932    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    7026     je short 0502bh                           ; 74 13
     6933    je short 04f92h                           ; 74 13
    70276934    inc bx                                    ; 43
    70286935    inc bx                                    ; 43
    70296936    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7030     jc short 05022h                           ; 72 03
     6937    jc short 04f89h                           ; 72 03
    70316938    mov bx, strict word 0001eh                ; bb 1e 00
    70326939    mov dx, strict word 0001ah                ; ba 1a 00
    70336940    mov ax, strict word 00040h                ; b8 40 00
    7034     call 0162ah                               ; e8 ff c5
     6941    call 0162ah                               ; e8 98 c6
    70356942    mov ax, strict word 00001h                ; b8 01 00
    7036     jmp short 05032h                          ; eb 02
     6943    jmp short 04f99h                          ; eb 02
    70376944    xor ax, ax                                ; 31 c0
    70386945    leave                                     ; c9
     
    70446951    or cl, byte [bx+di]                       ; 0a 09
    70456952    add ax, 00102h                            ; 05 02 01
    7046     add bh, dh                                ; 00 f7
     6953    add byte [bp+052h], bl                    ; 00 5e 52
     6954    je short 04ffeh                           ; 74 50
     6955    mov bx, 00750h                            ; bb 50 07
     6956    push cx                                   ; 51
     6957    pop SS                                    ; 17
     6958    push cx                                   ; 51
     6959    inc cx                                    ; 41
     6960    push cx                                   ; 51
     6961    dec dx                                    ; 4a
     6962    push cx                                   ; 51
     6963    mov bx, 0ec51h                            ; bb 51 ec
     6964    push cx                                   ; 51
     6965    sbb word [bp+si+053h], dx                 ; 19 52 53
    70476966    push dx                                   ; 52
    7048     or ax, 05451h                             ; 0d 51 54
    7049     push cx                                   ; 51
    7050     mov AL, byte [0b051h]                     ; a0 51 b0
    7051     push cx                                   ; 51
    7052     ficom dword [bx+di-01dh]                  ; da 51 e3
    7053     push cx                                   ; 51
    7054     push sp                                   ; 54
     6967    db  0a1h
    70556968    push dx                                   ; 52
    7056     test word [bp+si-04eh], dx                ; 85 52 b2
    7057     push dx                                   ; 52
    7058     in AL, DX                                 ; ec
    7059     push dx                                   ; 52
    7060     db  03ah
    7061     push bx                                   ; 53
    7062 _int16_function:                             ; 0xf505b LB 0x2e2
     6969_int16_function:                             ; 0xf4fc2 LB 0x2e2
    70636970    push di                                   ; 57
    70646971    enter 00006h, 000h                        ; c8 06 00 00
    70656972    mov dx, strict word 00017h                ; ba 17 00
    70666973    mov ax, strict word 00040h                ; b8 40 00
    7067     call 01600h                               ; e8 97 c5
     6974    call 01600h                               ; e8 30 c6
    70686975    mov cl, al                                ; 88 c1
    70696976    mov bh, al                                ; 88 c7
    70706977    mov dx, 00097h                            ; ba 97 00
    70716978    mov ax, strict word 00040h                ; b8 40 00
    7072     call 01600h                               ; e8 8a c5
     6979    call 01600h                               ; e8 23 c6
    70736980    mov bl, al                                ; 88 c3
    70746981    movzx dx, cl                              ; 0f b6 d1
     
    70796986    xor al, dl                                ; 30 d0
    70806987    test ax, ax                               ; 85 c0
    7081     je short 050ebh                           ; 74 60
     6988    je short 05052h                           ; 74 60
    70826989    cli                                       ; fa
    70836990    mov AL, strict byte 0edh                  ; b0 ed
     
    70896996    ; sub ah, ah                                ; 2a e4
    70906997    test AL, strict byte 001h                 ; a8 01
    7091     jne short 050a4h                          ; 75 08
     6998    jne short 0500bh                          ; 75 08
    70926999    mov AL, strict byte 021h                  ; b0 21
    70937000    mov dx, 00080h                            ; ba 80 00
    70947001    out DX, AL                                ; ee
    7095     jmp short 05092h                          ; eb ee
     7002    jmp short 04ff9h                          ; eb ee
    70967003    mov dx, strict word 00060h                ; ba 60 00
    70977004    in AL, DX                                 ; ec
     
    70997006    ; sub ah, ah                                ; 2a e4
    71007007    cmp ax, 000fah                            ; 3d fa 00
    7101     jne short 050eah                          ; 75 3b
     7008    jne short 05051h                          ; 75 3b
    71027009    and bl, 0f8h                              ; 80 e3 f8
    71037010    movzx ax, bh                              ; 0f b6 c7
     
    71157022    ; sub ah, ah                                ; 2a e4
    71167023    test AL, strict byte 001h                 ; a8 01
    7117     jne short 050d9h                          ; 75 08
     7024    jne short 05040h                          ; 75 08
    71187025    mov AL, strict byte 021h                  ; b0 21
    71197026    mov dx, 00080h                            ; ba 80 00
    71207027    out DX, AL                                ; ee
    7121     jmp short 050c7h                          ; eb ee
     7028    jmp short 0502eh                          ; eb ee
    71227029    mov dx, strict word 00060h                ; ba 60 00
    71237030    in AL, DX                                 ; ec
     
    71277034    mov dx, 00097h                            ; ba 97 00
    71287035    mov ax, strict word 00040h                ; b8 40 00
    7129     call 0160eh                               ; e8 24 c5
     7036    call 0160eh                               ; e8 bd c5
    71307037    sti                                       ; fb
    71317038    mov ax, word [bp+014h]                    ; 8b 46 14
    71327039    shr ax, 008h                              ; c1 e8 08
    71337040    cmp ax, 000a2h                            ; 3d a2 00
    7134     jnbe near 052f7h                          ; 0f 87 ff 01
     7041    jnbe near 0525eh                          ; 0f 87 ff 01
    71357042    push CS                                   ; 0e
    71367043    pop ES                                    ; 07
    71377044    mov cx, strict word 0000ch                ; b9 0c 00
    7138     mov di, 05038h                            ; bf 38 50
     7045    mov di, 04f9fh                            ; bf 9f 4f
    71397046    repne scasb                               ; f2 ae
    71407047    sal cx, 1                                 ; d1 e1
    71417048    mov di, cx                                ; 89 cf
    7142     mov ax, word [cs:di+05043h]               ; 2e 8b 85 43 50
     7049    mov ax, word [cs:di+04faah]               ; 2e 8b 85 aa 4f
    71437050    jmp ax                                    ; ff e0
    71447051    push strict byte 00001h                   ; 6a 01
     
    71477054    mov dx, ss                                ; 8c d2
    71487055    lea ax, [bp-004h]                         ; 8d 46 fc
    7149     call 04fcbh                               ; e8 af fe
     7056    call 04f32h                               ; e8 af fe
    71507057    test ax, ax                               ; 85 c0
    7151     jne short 0512bh                          ; 75 0b
    7152     push 0057dh                               ; 68 7d 05
     7058    jne short 05092h                          ; 75 0b
     7059    push 0057fh                               ; 68 7f 05
    71537060    push strict byte 00007h                   ; 6a 07
    7154     call 018e9h                               ; e8 c1 c7
     7061    call 018e9h                               ; e8 5a c8
    71557062    add sp, strict byte 00004h                ; 83 c4 04
    71567063    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7157     je short 05137h                           ; 74 06
     7064    je short 0509eh                           ; 74 06
    71587065    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7159     je short 0513dh                           ; 74 06
     7066    je short 050a4h                           ; 74 06
    71607067    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    7161     jne short 05141h                          ; 75 04
     7068    jne short 050a8h                          ; 75 04
    71627069    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    71637070    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     
    71757082    mov dx, ss                                ; 8c d2
    71767083    lea ax, [bp-004h]                         ; 8d 46 fc
    7177     call 04fcbh                               ; e8 63 fe
     7084    call 04f32h                               ; e8 63 fe
    71787085    test ax, ax                               ; 85 c0
    7179     jne short 05173h                          ; 75 07
     7086    jne short 050dah                          ; 75 07
    71807087    or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
    71817088    leave                                     ; c9
     
    71837090    retn                                      ; c3
    71847091    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7185     je short 0517fh                           ; 74 06
     7092    je short 050e6h                           ; 74 06
    71867093    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7187     je short 05185h                           ; 74 06
     7094    je short 050ech                           ; 74 06
    71887095    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    7189     jne short 05189h                          ; 75 04
     7096    jne short 050f0h                          ; 75 04
    71907097    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    71917098    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     
    72007107    mov dx, strict word 00017h                ; ba 17 00
    72017108    mov ax, strict word 00040h                ; b8 40 00
    7202     call 01600h                               ; e8 57 c4
     7109    call 01600h                               ; e8 f0 c4
    72037110    mov dx, word [bp+014h]                    ; 8b 56 14
    72047111    mov dl, al                                ; 88 c2
    7205     jmp short 0514eh                          ; eb 9e
     7112    jmp short 050b5h                          ; eb 9e
    72067113    mov al, byte [bp+012h]                    ; 8a 46 12
    72077114    movzx dx, al                              ; 0f b6 d0
     
    72097116    shr ax, 008h                              ; c1 e8 08
    72107117    xor ah, ah                                ; 30 e4
    7211     call 04be3h                               ; e8 22 fa
     7118    call 04b4ah                               ; e8 22 fa
    72127119    test ax, ax                               ; 85 c0
    7213     jne short 051d2h                          ; 75 0d
     7120    jne short 05139h                          ; 75 0d
    72147121    mov ax, word [bp+014h]                    ; 8b 46 14
    72157122    xor al, al                                ; 30 c0
     
    72267133    xor al, al                                ; 30 c0
    72277134    or AL, strict byte 030h                   ; 0c 30
    7228     jmp short 051cch                          ; eb e9
     7135    jmp short 05133h                          ; eb e9
    72297136    mov byte [bp-002h], 002h                  ; c6 46 fe 02
    72307137    xor cx, cx                                ; 31 c9
     
    72397146    ; sub ah, ah                                ; 2a e4
    72407147    test AL, strict byte 001h                 ; a8 01
    7241     jne short 0520ah                          ; 75 0d
     7148    jne short 05171h                          ; 75 0d
    72427149    dec bx                                    ; 4b
    72437150    test bx, bx                               ; 85 db
    7244     jbe short 0520ah                          ; 76 08
     7151    jbe short 05171h                          ; 76 08
    72457152    mov dx, 00080h                            ; ba 80 00
    72467153    in AL, DX                                 ; ec
    72477154    db  02ah, 0e4h
    72487155    ; sub ah, ah                                ; 2a e4
    7249     jmp short 051f3h                          ; eb e9
     7156    jmp short 0515ah                          ; eb e9
    72507157    test bx, bx                               ; 85 db
    7251     jbe short 0524eh                          ; 76 40
     7158    jbe short 051b5h                          ; 76 40
    72527159    mov dx, strict word 00060h                ; ba 60 00
    72537160    in AL, DX                                 ; ec
     
    72557162    ; sub ah, ah                                ; 2a e4
    72567163    cmp ax, 000fah                            ; 3d fa 00
    7257     jne short 0524eh                          ; 75 35
     7164    jne short 051b5h                          ; 75 35
    72587165    mov bx, strict word 0ffffh                ; bb ff ff
    72597166    mov dx, strict word 00064h                ; ba 64 00
     
    72627169    ; sub ah, ah                                ; 2a e4
    72637170    test AL, strict byte 001h                 ; a8 01
    7264     jne short 05233h                          ; 75 0d
     7171    jne short 0519ah                          ; 75 0d
    72657172    dec bx                                    ; 4b
    72667173    test bx, bx                               ; 85 db
    7267     jbe short 05233h                          ; 76 08
     7174    jbe short 0519ah                          ; 76 08
    72687175    mov dx, 00080h                            ; ba 80 00
    72697176    in AL, DX                                 ; ec
    72707177    db  02ah, 0e4h
    72717178    ; sub ah, ah                                ; 2a e4
    7272     jmp short 0521ch                          ; eb e9
     7179    jmp short 05183h                          ; eb e9
    72737180    test bx, bx                               ; 85 db
    7274     jbe short 05245h                          ; 76 0e
     7181    jbe short 051ach                          ; 76 0e
    72757182    shr cx, 008h                              ; c1 e9 08
    72767183    mov dx, strict word 00060h                ; ba 60 00
     
    72827189    dec byte [bp-002h]                        ; fe 4e fe
    72837190    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    7284     jnbe short 05219h                         ; 77 cb
     7191    jnbe short 05180h                         ; 77 cb
    72857192    mov word [bp+00eh], cx                    ; 89 4e 0e
    72867193    leave                                     ; c9
     
    72927199    mov dx, ss                                ; 8c d2
    72937200    lea ax, [bp-004h]                         ; 8d 46 fc
    7294     call 04fcbh                               ; e8 68 fd
     7201    call 04f32h                               ; e8 68 fd
    72957202    test ax, ax                               ; 85 c0
    7296     jne short 05272h                          ; 75 0b
    7297     push 0057dh                               ; 68 7d 05
     7203    jne short 051d9h                          ; 75 0b
     7204    push 0057fh                               ; 68 7f 05
    72987205    push strict byte 00007h                   ; 6a 07
    7299     call 018e9h                               ; e8 7a c6
     7206    call 018e9h                               ; e8 13 c7
    73007207    add sp, strict byte 00004h                ; 83 c4 04
    73017208    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7302     je near 05141h                            ; 0f 84 c7 fe
     7209    je near 050a8h                            ; 0f 84 c7 fe
    73037210    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7304     je near 0513dh                            ; 0f 84 bb fe
    7305     jmp near 05141h                           ; e9 bc fe
     7211    je near 050a4h                            ; 0f 84 bb fe
     7212    jmp near 050a8h                           ; e9 bc fe
    73067213    or word [bp+01eh], 00200h                 ; 81 4e 1e 00 02
    73077214    push strict byte 00000h                   ; 6a 00
     
    73107217    mov dx, ss                                ; 8c d2
    73117218    lea ax, [bp-004h]                         ; 8d 46 fc
    7312     call 04fcbh                               ; e8 32 fd
     7219    call 04f32h                               ; e8 32 fd
    73137220    test ax, ax                               ; 85 c0
    7314     je near 0516ch                            ; 0f 84 cd fe
     7221    je near 050d3h                            ; 0f 84 cd fe
    73157222    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7316     je near 05189h                            ; 0f 84 e2 fe
     7223    je near 050f0h                            ; 0f 84 e2 fe
    73177224    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7318     je near 05185h                            ; 0f 84 d6 fe
    7319     jmp near 05189h                           ; e9 d7 fe
     7225    je near 050ech                            ; 0f 84 d6 fe
     7226    jmp near 050f0h                           ; e9 d7 fe
    73207227    mov dx, strict word 00017h                ; ba 17 00
    73217228    mov ax, strict word 00040h                ; b8 40 00
    7322     call 01600h                               ; e8 45 c3
     7229    call 01600h                               ; e8 de c3
    73237230    mov dx, word [bp+014h]                    ; 8b 56 14
    73247231    mov dl, al                                ; 88 c2
     
    73267233    mov dx, strict word 00018h                ; ba 18 00
    73277234    mov ax, strict word 00040h                ; b8 40 00
    7328     call 01600h                               ; e8 34 c3
     7235    call 01600h                               ; e8 cd c3
    73297236    mov bh, al                                ; 88 c7
    73307237    and bh, 073h                              ; 80 e7 73
    73317238    mov dx, 00096h                            ; ba 96 00
    73327239    mov ax, strict word 00040h                ; b8 40 00
    7333     call 01600h                               ; e8 26 c3
     7240    call 01600h                               ; e8 bf c3
    73347241    and AL, strict byte 00ch                  ; 24 0c
    73357242    or bh, al                                 ; 08 c7
     
    73387245    movzx ax, bh                              ; 0f b6 c7
    73397246    sal ax, 008h                              ; c1 e0 08
    7340     jmp near 0514ch                           ; e9 60 fe
     7247    jmp near 050b3h                           ; e9 60 fe
    73417248    mov ax, word [bp+014h]                    ; 8b 46 14
    73427249    xor ah, ah                                ; 30 e4
    73437250    or ah, 080h                               ; 80 cc 80
    7344     jmp near 051cch                           ; e9 d5 fe
    7345     mov bx, 00cech                            ; bb ec 0c
     7251    jmp near 05133h                           ; e9 d5 fe
     7252    mov bx, 00d32h                            ; bb 32 0d
    73467253    mov cx, ds                                ; 8c d9
    73477254    mov ax, strict word 00004h                ; b8 04 00
    7348     call 018aeh                               ; e8 ac c5
     7255    call 018aeh                               ; e8 45 c6
    73497256    mov ax, word [bp+014h]                    ; 8b 46 14
    73507257    shr ax, 008h                              ; c1 e8 08
    73517258    push ax                                   ; 50
    7352     push 005a1h                               ; 68 a1 05
     7259    push 005a3h                               ; 68 a3 05
    73537260    push strict byte 00004h                   ; 6a 04
    7354     call 018e9h                               ; e8 d8 c5
     7261    call 018e9h                               ; e8 71 c6
    73557262    add sp, strict byte 00006h                ; 83 c4 06
    7356     mov bx, 00cech                            ; bb ec 0c
     7263    mov bx, 00d32h                            ; bb 32 0d
    73577264    mov cx, ds                                ; 8c d9
    73587265    mov ax, strict word 00004h                ; b8 04 00
    7359     call 018aeh                               ; e8 8f c5
     7266    call 018aeh                               ; e8 28 c6
    73607267    mov ax, word [bp+010h]                    ; 8b 46 10
    73617268    push ax                                   ; 50
     
    73667273    mov ax, word [bp+014h]                    ; 8b 46 14
    73677274    push ax                                   ; 50
    7368     push 005c9h                               ; 68 c9 05
     7275    push 005cbh                               ; 68 cb 05
    73697276    push strict byte 00004h                   ; 6a 04
    7370     call 018e9h                               ; e8 b2 c5
     7277    call 018e9h                               ; e8 4b c6
    73717278    add sp, strict byte 0000ch                ; 83 c4 0c
    73727279    leave                                     ; c9
    73737280    pop di                                    ; 5f
    73747281    retn                                      ; c3
    7375 set_geom_lba_:                               ; 0xf533d LB 0x9e
     7282set_geom_lba_:                               ; 0xf52a4 LB 0x9e
    73767283    push si                                   ; 56
    73777284    push di                                   ; 57
     
    73857292    mov di, 000ffh                            ; bf ff 00
    73867293    xor bx, bx                                ; 31 db
    7387     jmp short 0535eh                          ; eb 05
     7294    jmp short 052c5h                          ; eb 05
    73887295    cmp bx, strict byte 00004h                ; 83 fb 04
    7389     jnl short 05374h                          ; 7d 16
     7296    jnl short 052dbh                          ; 7d 16
    73907297    cmp dx, word [bp-002h]                    ; 3b 56 fe
    7391     jnbe short 0536ah                         ; 77 07
    7392     jne short 0536dh                          ; 75 08
     7298    jnbe short 052d1h                         ; 77 07
     7299    jne short 052d4h                          ; 75 08
    73937300    cmp ax, word [bp-004h]                    ; 3b 46 fc
    7394     jc short 0536dh                           ; 72 03
     7301    jc short 052d4h                           ; 72 03
    73957302    inc di                                    ; 47
    73967303    shr di, 1                                 ; d1 ef
     
    73987305    rcr ax, 1                                 ; d1 d8
    73997306    inc bx                                    ; 43
    7400     jmp short 05359h                          ; eb e5
     7307    jmp short 052c0h                          ; eb e5
    74017308    mov ax, di                                ; 89 f8
    74027309    xor dx, dx                                ; 31 d2
    74037310    mov bx, strict word 0003fh                ; bb 3f 00
    74047311    xor cx, cx                                ; 31 c9
    7405     call 08ff9h                               ; e8 79 3c
     7312    call 08fe9h                               ; e8 02 3d
    74067313    mov bx, ax                                ; 89 c3
    74077314    mov cx, dx                                ; 89 d1
    74087315    mov ax, word [bp-004h]                    ; 8b 46 fc
    74097316    mov dx, word [bp-002h]                    ; 8b 56 fe
    7410     call 08fc0h                               ; e8 33 3c
     7317    call 08fb0h                               ; e8 bc 3c
    74117318    mov word [es:si+002h], ax                 ; 26 89 44 02
    74127319    cmp ax, 00400h                            ; 3d 00 04
    7413     jbe short 0539ch                          ; 76 06
     7320    jbe short 05303h                          ; 76 06
    74147321    mov word [es:si+002h], 00400h             ; 26 c7 44 02 00 04
    74157322    mov word [es:si], di                      ; 26 89 3c
     
    74197326    pop si                                    ; 5e
    74207327    retn                                      ; c3
    7421     arpl word [si-079h], dx                   ; 63 54 87
     7328    retf 0ee53h                               ; ca 53 ee
     7329    push bx                                   ; 53
     7330    sbb dx, word [si+01bh]                    ; 1b 54 1b
    74227331    push sp                                   ; 54
    7423     mov AH, strict byte 054h                  ; b4 54
    7424     mov AH, strict byte 054h                  ; b4 54
    7425     mov AH, strict byte 054h                  ; b4 54
    7426     mov [bp-046h], ss                         ; 8c 56 ba
     7332    sbb dx, word [si-00dh]                    ; 1b 54 f3
     7333    push bp                                   ; 55
     7334    and word [bx+021h], dx                    ; 21 57 21
    74277335    push di                                   ; 57
    7428     mov dx, 0a557h                            ; ba 57 a5
     7336    or AL, strict byte 056h                   ; 0c 56
     7337    db  0feh
    74297338    push si                                   ; 56
    7430     xchg di, ax                               ; 97
     7339    and word [bx+021h], dx                    ; 21 57 21
    74317340    push di                                   ; 57
    7432     mov dx, 0ba57h                            ; ba 57 ba
     7341    db  0feh
     7342    push si                                   ; 56
     7343    db  0feh
     7344    push si                                   ; 56
     7345    and word [bx+021h], dx                    ; 21 57 21
    74337346    push di                                   ; 57
    7434     xchg di, ax                               ; 97
     7347    db  082h, 056h, 0feh, 056h
     7348    ; adc byte [bp-002h], 056h                  ; 82 56 fe 56
     7349    and word [bx+021h], dx                    ; 21 57 21
    74357350    push di                                   ; 57
    7436     xchg di, ax                               ; 97
     7351    db  0feh
     7352    push si                                   ; 56
     7353    mov DL, strict byte 056h                  ; b2 56
     7354    and word [bx+021h], dx                    ; 21 57 21
    74377355    push di                                   ; 57
    7438     mov dx, 0ba57h                            ; ba 57 ba
     7356    db  021h
    74397357    push di                                   ; 57
    7440     sbb dx, word [bx-069h]                    ; 1b 57 97
    7441     push di                                   ; 57
    7442     mov dx, 0ba57h                            ; ba 57 ba
    7443     push di                                   ; 57
    7444     xchg di, ax                               ; 97
    7445     push di                                   ; 57
    7446     dec bx                                    ; 4b
    7447     push di                                   ; 57
    7448     mov dx, 0ba57h                            ; ba 57 ba
    7449     push di                                   ; 57
    7450     db  0bah
    7451     push di                                   ; 57
    7452 _int13_harddisk:                             ; 0xf53db LB 0x43c
     7358_int13_harddisk:                             ; 0xf5342 LB 0x43c
    74537359    enter 00010h, 000h                        ; c8 10 00 00
    74547360    mov dx, strict word 0000eh                ; ba 0e 00
    74557361    mov ax, strict word 00040h                ; b8 40 00
    7456     call 0161ch                               ; e8 34 c2
     7362    call 0161ch                               ; e8 cd c2
    74577363    mov si, 00122h                            ; be 22 01
    74587364    mov word [bp-004h], ax                    ; 89 46 fc
     
    74607366    mov dx, 0008eh                            ; ba 8e 00
    74617367    mov ax, strict word 00040h                ; b8 40 00
    7462     call 0160eh                               ; e8 15 c2
     7368    call 0160eh                               ; e8 ae c2
    74637369    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74647370    xor ah, ah                                ; 30 e4
    74657371    cmp ax, 00080h                            ; 3d 80 00
    7466     jc short 05408h                           ; 72 05
     7372    jc short 0536fh                           ; 72 05
    74677373    cmp ax, 00090h                            ; 3d 90 00
    7468     jc short 05426h                           ; 72 1e
     7374    jc short 0538dh                           ; 72 1e
    74697375    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74707376    xor ah, ah                                ; 30 e4
     
    74737379    shr ax, 008h                              ; c1 e8 08
    74747380    push ax                                   ; 50
    7475     push 005ech                               ; 68 ec 05
    7476     push 005fbh                               ; 68 fb 05
     7381    push 005eeh                               ; 68 ee 05
     7382    push 005fdh                               ; 68 fd 05
    74777383    push strict byte 00004h                   ; 6a 04
    7478     call 018e9h                               ; e8 c9 c4
     7384    call 018e9h                               ; e8 62 c5
    74797385    add sp, strict byte 0000ah                ; 83 c4 0a
    7480     jmp near 057d5h                           ; e9 af 03
     7386    jmp near 0573ch                           ; e9 af 03
    74817387    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74827388    xor ah, ah                                ; 30 e4
     
    74877393    mov byte [bp-002h], dl                    ; 88 56 fe
    74887394    cmp dl, 010h                              ; 80 fa 10
    7489     jc short 0544fh                           ; 72 10
     7395    jc short 053b6h                           ; 72 10
    74907396    push ax                                   ; 50
    74917397    mov ax, word [bp+016h]                    ; 8b 46 16
    74927398    shr ax, 008h                              ; c1 e8 08
    74937399    push ax                                   ; 50
    7494     push 005ech                               ; 68 ec 05
    7495     push 00626h                               ; 68 26 06
    7496     jmp short 0541bh                          ; eb cc
     7400    push 005eeh                               ; 68 ee 05
     7401    push 00628h                               ; 68 28 06
     7402    jmp short 05382h                          ; eb cc
    74977403    mov bx, word [bp+016h]                    ; 8b 5e 16
    74987404    shr bx, 008h                              ; c1 eb 08
    74997405    cmp bx, strict byte 00018h                ; 83 fb 18
    7500     jnbe near 057bah                          ; 0f 87 5e 03
     7406    jnbe near 05721h                          ; 0f 87 5e 03
    75017407    add bx, bx                                ; 01 db
    7502     jmp word [cs:bx+053a9h]                   ; 2e ff a7 a9 53
     7408    jmp word [cs:bx+05310h]                   ; 2e ff a7 10 53
    75037409    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7504     jnc near 05472h                           ; 0f 83 07 00
     7410    jnc near 053d9h                           ; 0f 83 07 00
    75057411    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7506     call 01be6h                               ; e8 74 c7
     7412    call 01be6h                               ; e8 0d c8
    75077413    mov byte [bp+017h], 000h                  ; c6 46 17 00
    75087414    xor bx, bx                                ; 31 db
    75097415    mov dx, strict word 00074h                ; ba 74 00
    75107416    mov ax, strict word 00040h                ; b8 40 00
    7511     call 0160eh                               ; e8 8d c1
     7417    call 0160eh                               ; e8 26 c2
    75127418    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    75137419    leave                                     ; c9
     
    75157421    mov dx, strict word 00074h                ; ba 74 00
    75167422    mov ax, strict word 00040h                ; b8 40 00
    7517     call 01600h                               ; e8 70 c1
     7423    call 01600h                               ; e8 09 c2
    75187424    mov cl, al                                ; 88 c1
    75197425    mov dx, word [bp+016h]                    ; 8b 56 16
     
    75267432    mov dx, strict word 00074h                ; ba 74 00
    75277433    mov ax, strict word 00040h                ; b8 40 00
    7528     call 0160eh                               ; e8 61 c1
     7434    call 0160eh                               ; e8 fa c1
    75297435    test cl, cl                               ; 84 c9
    7530     je short 05476h                           ; 74 c5
    7531     jmp near 057f1h                           ; e9 3d 03
     7436    je short 053ddh                           ; 74 c5
     7437    jmp near 05758h                           ; e9 3d 03
    75327438    mov ax, word [bp+016h]                    ; 8b 46 16
    75337439    xor ah, ah                                ; 30 e4
     
    75497455    mov ax, word [bp-00ch]                    ; 8b 46 f4
    75507456    cmp ax, 00080h                            ; 3d 80 00
    7551     jnbe short 054efh                         ; 77 04
     7457    jnbe short 05456h                         ; 77 04
    75527458    test ax, ax                               ; 85 c0
    7553     jne short 05512h                          ; 75 23
    7554     mov bx, 00cech                            ; bb ec 0c
     7459    jne short 05479h                          ; 75 23
     7460    mov bx, 00d32h                            ; bb 32 0d
    75557461    mov cx, ds                                ; 8c d9
    75567462    mov ax, strict word 00004h                ; b8 04 00
    7557     call 018aeh                               ; e8 b4 c3
     7463    call 018aeh                               ; e8 4d c4
    75587464    mov ax, word [bp+016h]                    ; 8b 46 16
    75597465    shr ax, 008h                              ; c1 e8 08
    75607466    push ax                                   ; 50
    7561     push 005ech                               ; 68 ec 05
    7562     push 00658h                               ; 68 58 06
     7467    push 005eeh                               ; 68 ee 05
     7468    push 0065ah                               ; 68 5a 06
    75637469    push strict byte 00004h                   ; 6a 04
    7564     call 018e9h                               ; e8 dd c3
     7470    call 018e9h                               ; e8 76 c4
    75657471    add sp, strict byte 00008h                ; 83 c4 08
    7566     jmp near 057d5h                           ; e9 c3 02
     7472    jmp near 0573ch                           ; e9 c3 02
    75677473    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    75687474    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    75757481    mov word [bp-00ah], dx                    ; 89 56 f6
    75767482    cmp di, ax                                ; 39 c7
    7577     jnc short 0553fh                          ; 73 0c
     7483    jnc short 054a6h                          ; 73 0c
    75787484    cmp cx, word [bp-008h]                    ; 3b 4e f8
    7579     jbe short 0553fh                          ; 76 07
     7485    jbe short 054a6h                          ; 76 07
    75807486    mov ax, word [bp-006h]                    ; 8b 46 fa
    75817487    cmp ax, dx                                ; 39 d0
    7582     jbe short 0556dh                          ; 76 2e
    7583     mov bx, 00cech                            ; bb ec 0c
     7488    jbe short 054d4h                          ; 76 2e
     7489    mov bx, 00d32h                            ; bb 32 0d
    75847490    mov cx, ds                                ; 8c d9
    75857491    mov ax, strict word 00004h                ; b8 04 00
    7586     call 018aeh                               ; e8 64 c3
     7492    call 018aeh                               ; e8 fd c3
    75877493    push dword [bp-008h]                      ; 66 ff 76 f8
    75887494    push di                                   ; 57
     
    75937499    shr ax, 008h                              ; c1 e8 08
    75947500    push ax                                   ; 50
    7595     push 005ech                               ; 68 ec 05
    7596     push 00680h                               ; 68 80 06
     7501    push 005eeh                               ; 68 ee 05
     7502    push 00682h                               ; 68 82 06
    75977503    push strict byte 00004h                   ; 6a 04
    7598     call 018e9h                               ; e8 82 c3
     7504    call 018e9h                               ; e8 1b c4
    75997505    add sp, strict byte 00010h                ; 83 c4 10
    7600     jmp near 057d5h                           ; e9 68 02
     7506    jmp near 0573ch                           ; e9 68 02
    76017507    mov ax, word [bp+016h]                    ; 8b 46 16
    76027508    shr ax, 008h                              ; c1 e8 08
    76037509    cmp ax, strict word 00004h                ; 3d 04 00
    7604     jne short 0557bh                          ; 75 03
    7605     jmp near 05472h                           ; e9 f7 fe
     7510    jne short 054e2h                          ; 75 03
     7511    jmp near 053d9h                           ; e9 f7 fe
    76067512    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    76077513    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    76097515    add bx, si                                ; 01 f3
    76107516    cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    7611     jne short 0559ch                          ; 75 0f
     7517    jne short 05503h                          ; 75 0f
    76127518    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    76137519    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    7614     jne short 0559ch                          ; 75 06
     7520    jne short 05503h                          ; 75 06
    76157521    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7616     jc short 055cch                           ; 72 30
     7522    jc short 05533h                           ; 72 30
    76177523    mov ax, di                                ; 89 f8
    76187524    xor dx, dx                                ; 31 d2
    76197525    mov bx, cx                                ; 89 cb
    76207526    xor cx, cx                                ; 31 c9
    7621     call 08ff9h                               ; e8 52 3a
     7527    call 08fe9h                               ; e8 db 3a
    76227528    xor bx, bx                                ; 31 db
    76237529    add ax, word [bp-008h]                    ; 03 46 f8
     
    76257531    mov bx, word [bp-00ah]                    ; 8b 5e f6
    76267532    xor cx, cx                                ; 31 c9
    7627     call 08ff9h                               ; e8 43 3a
     7533    call 08fe9h                               ; e8 cc 3a
    76287534    xor bx, bx                                ; 31 db
    76297535    add ax, word [bp-006h]                    ; 03 46 fa
     
    76697575    push ES                                   ; 06
    76707576    push si                                   ; 56
    7671     call word [word bx-00004h]                ; ff 97 fc ff
     7577    call word [word bx+00014h]                ; ff 97 14 00
    76727578    mov dx, ax                                ; 89 c2
    76737579    mov ax, word [bp+016h]                    ; 8b 46 16
     
    76787584    mov word [bp+016h], bx                    ; 89 5e 16
    76797585    test dl, dl                               ; 84 d2
    7680     je near 05472h                            ; 0f 84 15 fe
    7681     mov bx, 00cech                            ; bb ec 0c
     7586    je near 053d9h                            ; 0f 84 15 fe
     7587    mov bx, 00d32h                            ; bb 32 0d
    76827588    mov cx, ds                                ; 8c d9
    76837589    mov ax, strict word 00004h                ; b8 04 00
    7684     call 018aeh                               ; e8 46 c2
     7590    call 018aeh                               ; e8 df c2
    76857591    movzx ax, dl                              ; 0f b6 c2
    76867592    push ax                                   ; 50
     
    76887594    shr ax, 008h                              ; c1 e8 08
    76897595    push ax                                   ; 50
    7690     push 005ech                               ; 68 ec 05
    7691     push 006c7h                               ; 68 c7 06
     7596    push 005eeh                               ; 68 ee 05
     7597    push 006c9h                               ; 68 c9 06
    76927598    push strict byte 00004h                   ; 6a 04
    7693     call 018e9h                               ; e8 6b c2
     7599    call 018e9h                               ; e8 04 c3
    76947600    add sp, strict byte 0000ah                ; 83 c4 0a
    76957601    mov ax, word [bp+016h]                    ; 8b 46 16
    76967602    xor ah, ah                                ; 30 e4
    76977603    or ah, 00ch                               ; 80 cc 0c
    7698     jmp near 057ddh                           ; e9 51 01
    7699     mov bx, 00cech                            ; bb ec 0c
     7604    jmp near 05744h                           ; e9 51 01
     7605    mov bx, 00d32h                            ; bb 32 0d
    77007606    mov cx, ds                                ; 8c d9
    77017607    mov ax, strict word 00004h                ; b8 04 00
    7702     call 018aeh                               ; e8 17 c2
    7703     push 006e8h                               ; 68 e8 06
     7608    call 018aeh                               ; e8 b0 c2
     7609    push 006eah                               ; 68 ea 06
    77047610    push strict byte 00004h                   ; 6a 04
    7705     call 018e9h                               ; e8 4a c2
     7611    call 018e9h                               ; e8 e3 c2
    77067612    add sp, strict byte 00004h                ; 83 c4 04
    7707     jmp near 05472h                           ; e9 cd fd
     7613    jmp near 053d9h                           ; e9 cd fd
    77087614    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77097615    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    77487654    or dx, ax                                 ; 09 c2
    77497655    mov word [bp+012h], dx                    ; 89 56 12
    7750     jmp near 05472h                           ; e9 57 fd
     7656    jmp near 053d9h                           ; e9 57 fd
    77517657    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77527658    cwd                                       ; 99
     
    77647670    and AL, strict byte 0c0h                  ; 24 c0
    77657671    cmp AL, strict byte 040h                  ; 3c 40
    7766     jne short 05740h                          ; 75 03
    7767     jmp near 05472h                           ; e9 32 fd
     7672    jne short 056a7h                          ; 75 03
     7673    jmp near 053d9h                           ; e9 32 fd
    77687674    mov ax, word [bp+016h]                    ; 8b 46 16
    77697675    xor ah, ah                                ; 30 e4
    77707676    or ah, 0aah                               ; 80 cc aa
    7771     jmp near 057ddh                           ; e9 92 00
     7677    jmp near 05744h                           ; e9 92 00
    77727678    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77737679    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    77837689    mov bx, word [bp-008h]                    ; 8b 5e f8
    77847690    xor cx, cx                                ; 31 c9
    7785     call 08ff9h                               ; e8 84 38
     7691    call 08fe9h                               ; e8 0d 39
    77867692    mov bx, word [bp-006h]                    ; 8b 5e fa
    77877693    xor cx, cx                                ; 31 c9
    7788     call 08ff9h                               ; e8 7c 38
     7694    call 08fe9h                               ; e8 05 39
    77897695    mov word [bp-010h], ax                    ; 89 46 f0
    77907696    mov word [bp-00eh], dx                    ; 89 56 f2
     
    77957701    or ah, 003h                               ; 80 cc 03
    77967702    mov word [bp+016h], ax                    ; 89 46 16
    7797     jmp near 05476h                           ; e9 df fc
    7798     mov bx, 00cech                            ; bb ec 0c
     7703    jmp near 053ddh                           ; e9 df fc
     7704    mov bx, 00d32h                            ; bb 32 0d
    77997705    mov cx, ds                                ; 8c d9
    78007706    mov ax, strict word 00004h                ; b8 04 00
    7801     call 018aeh                               ; e8 0c c1
     7707    call 018aeh                               ; e8 a5 c1
    78027708    mov ax, word [bp+016h]                    ; 8b 46 16
    78037709    shr ax, 008h                              ; c1 e8 08
    78047710    push ax                                   ; 50
    7805     push 005ech                               ; 68 ec 05
    7806     push 00702h                               ; 68 02 07
     7711    push 005eeh                               ; 68 ee 05
     7712    push 00704h                               ; 68 04 07
    78077713    push strict byte 00004h                   ; 6a 04
    7808     call 018e9h                               ; e8 35 c1
     7714    call 018e9h                               ; e8 ce c1
    78097715    add sp, strict byte 00008h                ; 83 c4 08
    7810     jmp near 05472h                           ; e9 b8 fc
    7811     mov bx, 00cech                            ; bb ec 0c
     7716    jmp near 053d9h                           ; e9 b8 fc
     7717    mov bx, 00d32h                            ; bb 32 0d
    78127718    mov cx, ds                                ; 8c d9
    78137719    mov ax, strict word 00004h                ; b8 04 00
    7814     call 018aeh                               ; e8 e9 c0
     7720    call 018aeh                               ; e8 82 c1
    78157721    mov ax, word [bp+016h]                    ; 8b 46 16
    78167722    shr ax, 008h                              ; c1 e8 08
    78177723    push ax                                   ; 50
    7818     push 005ech                               ; 68 ec 05
    7819     push 00735h                               ; 68 35 07
    7820     jmp near 05507h                           ; e9 32 fd
     7724    push 005eeh                               ; 68 ee 05
     7725    push 00737h                               ; 68 37 07
     7726    jmp near 0546eh                           ; e9 32 fd
    78217727    mov ax, word [bp+016h]                    ; 8b 46 16
    78227728    xor ah, ah                                ; 30 e4
     
    78287734    mov dx, strict word 00074h                ; ba 74 00
    78297735    mov ax, strict word 00040h                ; b8 40 00
    7830     call 0160eh                               ; e8 1d be
     7736    call 0160eh                               ; e8 b6 be
    78317737    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    78327738    leave                                     ; c9
    78337739    retn                                      ; c3
    7834     db  0b0h, 058h, 0c8h, 058h, 0c8h, 058h, 0c8h, 058h, 077h, 05ch, 00bh, 05ah, 0c8h, 058h, 011h, 05ah
    7835     db  077h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 08ch, 05ch, 0c4h, 05ch, 0c4h, 05ch
    7836 _int13_harddisk_ext:                         ; 0xf5817 LB 0x4c8
     7740    pop SS                                    ; 17
     7741    pop ax                                    ; 58
     7742    das                                       ; 2f
     7743    pop ax                                    ; 58
     7744    das                                       ; 2f
     7745    pop ax                                    ; 58
     7746    das                                       ; 2f
     7747    pop ax                                    ; 58
     7748    ficomp word [bp+di+072h]                  ; de 5b 72
     7749    pop cx                                    ; 59
     7750    das                                       ; 2f
     7751    pop ax                                    ; 58
     7752    js short 057c7h                           ; 78 59
     7753    ficomp word [bp+di+02bh]                  ; de 5b 2b
     7754    pop sp                                    ; 5c
     7755    sub bx, word [si+02bh]                    ; 2b 5c 2b
     7756    pop sp                                    ; 5c
     7757    sub bx, word [si-00dh]                    ; 2b 5c f3
     7758    pop bx                                    ; 5b
     7759    sub bx, word [si+02bh]                    ; 2b 5c 2b
     7760    pop sp                                    ; 5c
     7761_int13_harddisk_ext:                         ; 0xf577e LB 0x4c8
    78377762    enter 00028h, 000h                        ; c8 28 00 00
    78387763    mov dx, strict word 0000eh                ; ba 0e 00
    78397764    mov ax, strict word 00040h                ; b8 40 00
    7840     call 0161ch                               ; e8 f8 bd
     7765    call 0161ch                               ; e8 91 be
    78417766    mov word [bp-014h], ax                    ; 89 46 ec
    78427767    mov dx, strict word 0000eh                ; ba 0e 00
    78437768    mov ax, strict word 00040h                ; b8 40 00
    7844     call 0161ch                               ; e8 ec bd
     7769    call 0161ch                               ; e8 85 be
    78457770    mov si, 00122h                            ; be 22 01
    78467771    mov word [bp-026h], ax                    ; 89 46 da
     
    78487773    mov dx, 0008eh                            ; ba 8e 00
    78497774    mov ax, strict word 00040h                ; b8 40 00
    7850     call 0160eh                               ; e8 cd bd
     7775    call 0160eh                               ; e8 66 be
    78517776    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78527777    xor ah, ah                                ; 30 e4
    78537778    cmp ax, 00080h                            ; 3d 80 00
    7854     jc short 05850h                           ; 72 05
     7779    jc short 057b7h                           ; 72 05
    78557780    cmp ax, 00090h                            ; 3d 90 00
    7856     jc short 0586eh                           ; 72 1e
     7781    jc short 057d5h                           ; 72 1e
    78577782    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78587783    xor ah, ah                                ; 30 e4
     
    78617786    shr ax, 008h                              ; c1 e8 08
    78627787    push ax                                   ; 50
    7863     push 00763h                               ; 68 63 07
    7864     push 005fbh                               ; 68 fb 05
     7788    push 00765h                               ; 68 65 07
     7789    push 005fdh                               ; 68 fd 05
    78657790    push strict byte 00004h                   ; 6a 04
    7866     call 018e9h                               ; e8 81 c0
     7791    call 018e9h                               ; e8 1a c1
    78677792    add sp, strict byte 0000ah                ; 83 c4 0a
    7868     jmp near 05ca2h                           ; e9 34 04
     7793    jmp near 05c09h                           ; e9 34 04
    78697794    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78707795    xor ah, ah                                ; 30 e4
     
    78747799    mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
    78757800    cmp cl, 010h                              ; 80 f9 10
    7876     jc short 05894h                           ; 72 10
     7801    jc short 057fbh                           ; 72 10
    78777802    push ax                                   ; 50
    78787803    mov ax, word [bp+016h]                    ; 8b 46 16
    78797804    shr ax, 008h                              ; c1 e8 08
    78807805    push ax                                   ; 50
    7881     push 00763h                               ; 68 63 07
    7882     push 00626h                               ; 68 26 06
    7883     jmp short 05863h                          ; eb cf
     7806    push 00765h                               ; 68 65 07
     7807    push 00628h                               ; 68 28 06
     7808    jmp short 057cah                          ; eb cf
    78847809    mov bx, word [bp+016h]                    ; 8b 5e 16
    78857810    shr bx, 008h                              ; c1 eb 08
    78867811    sub bx, strict byte 00041h                ; 83 eb 41
    78877812    cmp bx, strict byte 0000fh                ; 83 fb 0f
    7888     jnbe near 05cc4h                          ; 0f 87 20 04
     7813    jnbe near 05c2bh                          ; 0f 87 20 04
    78897814    add bx, bx                                ; 01 db
    78907815    mov ax, word [bp+016h]                    ; 8b 46 16
    78917816    xor ah, ah                                ; 30 e4
    7892     jmp word [cs:bx+057f7h]                   ; 2e ff a7 f7 57
     7817    jmp word [cs:bx+0575eh]                   ; 2e ff a7 5e 57
    78937818    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    78947819    mov ax, word [bp+016h]                    ; 8b 46 16
     
    78977822    mov word [bp+016h], ax                    ; 89 46 16
    78987823    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    7899     jmp near 05c7bh                           ; e9 b3 03
     7824    jmp near 05be2h                           ; e9 b3 03
    79007825    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    79017826    mov es, [bp+004h]                         ; 8e 46 04
     
    79127837    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    79137838    or ax, word [bp-00ah]                     ; 0b 46 f6
    7914     je short 05909h                           ; 74 11
     7839    je short 05870h                           ; 74 11
    79157840    mov ax, word [bp+016h]                    ; 8b 46 16
    79167841    shr ax, 008h                              ; c1 e8 08
    79177842    push ax                                   ; 50
    7918     push 00763h                               ; 68 63 07
    7919     push 00776h                               ; 68 76 07
     7843    push 00765h                               ; 68 65 07
     7844    push 00778h                               ; 68 78 07
    79207845    push strict byte 00007h                   ; 6a 07
    7921     jmp short 05953h                          ; eb 4a
     7846    jmp short 058bah                          ; eb 4a
    79227847    mov es, [bp-010h]                         ; 8e 46 f0
    79237848    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    79317856    mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
    79327857    cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
    7933     jnbe short 05939h                         ; 77 0b
    7934     jne short 0595ch                          ; 75 2c
     7858    jnbe short 058a0h                         ; 77 0b
     7859    jne short 058c3h                          ; 75 2c
    79357860    mov dx, word [bp-00ah]                    ; 8b 56 f6
    79367861    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    7937     jc short 0595ch                           ; 72 23
    7938     mov bx, 00cech                            ; bb ec 0c
     7862    jc short 058c3h                           ; 72 23
     7863    mov bx, 00d32h                            ; bb 32 0d
    79397864    mov cx, ds                                ; 8c d9
    79407865    mov ax, strict word 00004h                ; b8 04 00
    7941     call 018aeh                               ; e8 6a bf
     7866    call 018aeh                               ; e8 03 c0
    79427867    mov ax, word [bp+016h]                    ; 8b 46 16
    79437868    shr ax, 008h                              ; c1 e8 08
    79447869    push ax                                   ; 50
    7945     push 00763h                               ; 68 63 07
    7946     push 0079fh                               ; 68 9f 07
     7870    push 00765h                               ; 68 65 07
     7871    push 007a1h                               ; 68 a1 07
    79477872    push strict byte 00004h                   ; 6a 04
    7948     call 018e9h                               ; e8 93 bf
     7873    call 018e9h                               ; e8 2c c0
    79497874    add sp, strict byte 00008h                ; 83 c4 08
    7950     jmp near 05ca2h                           ; e9 46 03
     7875    jmp near 05c09h                           ; e9 46 03
    79517876    mov dx, word [bp+016h]                    ; 8b 56 16
    79527877    shr dx, 008h                              ; c1 ea 08
    79537878    mov word [bp-00ch], dx                    ; 89 56 f4
    79547879    cmp dx, strict byte 00044h                ; 83 fa 44
    7955     je near 05c77h                            ; 0f 84 0b 03
     7880    je near 05bdeh                            ; 0f 84 0b 03
    79567881    cmp dx, strict byte 00047h                ; 83 fa 47
    7957     je near 05c77h                            ; 0f 84 04 03
     7882    je near 05bdeh                            ; 0f 84 04 03
    79587883    mov es, [bp-026h]                         ; 8e 46 da
    79597884    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     
    79797904    push ES                                   ; 06
    79807905    push si                                   ; 56
    7981     call word [bx-00084h]                     ; ff 97 7c ff
     7906    call word [word bx-0006ch]                ; ff 97 94 ff
    79827907    mov dx, ax                                ; 89 c2
    79837908    mov es, [bp-026h]                         ; 8e 46 da
     
    79877912    mov word [es:di+002h], ax                 ; 26 89 45 02
    79887913    test dl, dl                               ; 84 d2
    7989     je near 05c77h                            ; 0f 84 97 02
    7990     mov bx, 00cech                            ; bb ec 0c
     7914    je near 05bdeh                            ; 0f 84 97 02
     7915    mov bx, 00d32h                            ; bb 32 0d
    79917916    mov cx, ds                                ; 8c d9
    79927917    mov ax, strict word 00004h                ; b8 04 00
    7993     call 018aeh                               ; e8 c3 be
     7918    call 018aeh                               ; e8 5c bf
    79947919    movzx ax, dl                              ; 0f b6 c2
    79957920    push ax                                   ; 50
    79967921    push word [bp-00ch]                       ; ff 76 f4
    7997     push 00763h                               ; 68 63 07
    7998     push 006c7h                               ; 68 c7 06
     7922    push 00765h                               ; 68 65 07
     7923    push 006c9h                               ; 68 c9 06
    79997924    push strict byte 00004h                   ; 6a 04
    8000     call 018e9h                               ; e8 ec be
     7925    call 018e9h                               ; e8 85 bf
    80017926    add sp, strict byte 0000ah                ; 83 c4 0a
    80027927    mov ax, word [bp+016h]                    ; 8b 46 16
    80037928    xor ah, ah                                ; 30 e4
    80047929    or ah, 00ch                               ; 80 cc 0c
    8005     jmp near 05caah                           ; e9 9f 02
     7930    jmp near 05c11h                           ; e9 9f 02
    80067931    or ah, 0b2h                               ; 80 cc b2
    8007     jmp near 05caah                           ; e9 99 02
     7932    jmp near 05c11h                           ; e9 99 02
    80087933    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    80097934    mov ax, word [bp+004h]                    ; 8b 46 04
     
    80157940    mov word [bp-00eh], ax                    ; 89 46 f2
    80167941    cmp ax, strict word 0001ah                ; 3d 1a 00
    8017     jc near 05ca2h                            ; 0f 82 74 02
    8018     jc near 05ab5h                            ; 0f 82 83 00
     7942    jc near 05c09h                            ; 0f 82 74 02
     7943    jc near 05a1ch                            ; 0f 82 83 00
    80197944    movzx ax, cl                              ; 0f b6 c1
    80207945    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    80547979    ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
    80557980    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    8056     jc near 05bc1h                            ; 0f 82 04 01
     7981    jc near 05b28h                            ; 0f 82 04 01
    80577982    mov es, [bp-004h]                         ; 8e 46 fc
    80587983    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    80808005    mov al, byte [es:di+023h]                 ; 26 8a 45 23
    80818006    test al, al                               ; 84 c0
    8082     jne short 05b13h                          ; 75 04
     8007    jne short 05a7ah                          ; 75 04
    80838008    xor dx, dx                                ; 31 d2
    8084     jmp short 05b16h                          ; eb 03
     8009    jmp short 05a7dh                          ; eb 03
    80858010    mov dx, strict word 00008h                ; ba 08 00
    80868011    or dl, 010h                               ; 80 ca 10
     
    80978022    or word [bp-008h], dx                     ; 09 56 f8
    80988023    cmp AL, strict byte 003h                  ; 3c 03
    8099     jne short 05b3ch                          ; 75 05
     8024    jne short 05aa3h                          ; 75 05
    81008025    mov ax, strict word 00003h                ; b8 03 00
    8101     jmp short 05b3eh                          ; eb 02
     8026    jmp short 05aa5h                          ; eb 02
    81028027    xor ax, ax                                ; 31 c0
    81038028    or word [bp-008h], ax                     ; 09 46 f8
     
    81248049    xor ch, ch                                ; 30 ed
    81258050    mov byte [bp-002h], ch                    ; 88 6e fe
    8126     jmp short 05ba2h                          ; eb 06
     8051    jmp short 05b09h                          ; eb 06
    81278052    cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
    8128     jnc short 05bb7h                          ; 73 15
     8053    jnc short 05b1eh                          ; 73 15
    81298054    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    81308055    add dx, 00312h                            ; 81 c2 12 03
    81318056    mov ax, word [bp-014h]                    ; 8b 46 ec
    8132     call 01600h                               ; e8 50 ba
     8057    call 01600h                               ; e8 e9 ba
    81338058    add ch, al                                ; 00 c5
    81348059    inc byte [bp-002h]                        ; fe 46 fe
    8135     jmp short 05b9ch                          ; eb e5
     8060    jmp short 05b03h                          ; eb e5
    81368061    neg ch                                    ; f6 dd
    81378062    mov es, [bp-026h]                         ; 8e 46 da
    81388063    mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
    81398064    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    8140     jc near 05c77h                            ; 0f 82 ae 00
     8065    jc near 05bdeh                            ; 0f 82 ae 00
    81418066    movzx ax, cl                              ; 0f b6 c1
    81428067    cwd                                       ; 99
     
    81568081    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    81578082    test al, al                               ; 84 c0
    8158     jne short 05c09h                          ; 75 09
     8083    jne short 05b70h                          ; 75 09
    81598084    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    81608085    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    81658090    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    81668091    test al, al                               ; 84 c0
    8167     jne short 05c35h                          ; 75 13
     8092    jne short 05b9ch                          ; 75 13
    81688093    mov word [es:bx+030h], dx                 ; 26 89 57 30
    81698094    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    81808105    xor cl, cl                                ; 30 c9
    81818106    mov CH, strict byte 01eh                  ; b5 1e
    8182     jmp short 05c5ch                          ; eb 05
     8107    jmp short 05bc3h                          ; eb 05
    81838108    cmp ch, 040h                              ; 80 fd 40
    8184     jnc short 05c6eh                          ; 73 12
     8109    jnc short 05bd5h                          ; 73 12
    81858110    movzx dx, ch                              ; 0f b6 d5
    81868111    add dx, word [bp+00ah]                    ; 03 56 0a
    81878112    mov ax, word [bp+004h]                    ; 8b 46 04
    8188     call 01600h                               ; e8 98 b9
     8113    call 01600h                               ; e8 31 ba
    81898114    add cl, al                                ; 00 c1
    81908115    db  0feh, 0c5h
    81918116    ; inc ch                                    ; fe c5
    8192     jmp short 05c57h                          ; eb e9
     8117    jmp short 05bbeh                          ; eb e9
    81938118    neg cl                                    ; f6 d9
    81948119    mov es, [bp-004h]                         ; 8e 46 fc
     
    81988123    mov dx, strict word 00074h                ; ba 74 00
    81998124    mov ax, strict word 00040h                ; b8 40 00
    8200     call 0160eh                               ; e8 88 b9
     8125    call 0160eh                               ; e8 21 ba
    82018126    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    82028127    leave                                     ; c9
    82038128    retn                                      ; c3
    82048129    cmp ax, strict word 00006h                ; 3d 06 00
    8205     je short 05c77h                           ; 74 e6
     8130    je short 05bdeh                           ; 74 e6
    82068131    cmp ax, strict word 00001h                ; 3d 01 00
    8207     jc short 05ca2h                           ; 72 0c
    8208     jbe short 05c77h                          ; 76 df
     8132    jc short 05c09h                           ; 72 0c
     8133    jbe short 05bdeh                          ; 76 df
    82098134    cmp ax, strict word 00003h                ; 3d 03 00
    8210     jc short 05ca2h                           ; 72 05
     8135    jc short 05c09h                           ; 72 05
    82118136    cmp ax, strict word 00004h                ; 3d 04 00
    8212     jbe short 05c77h                          ; 76 d5
     8137    jbe short 05bdeh                          ; 76 d5
    82138138    mov ax, word [bp+016h]                    ; 8b 46 16
    82148139    xor ah, ah                                ; 30 e4
     
    82208145    mov dx, strict word 00074h                ; ba 74 00
    82218146    mov ax, strict word 00040h                ; b8 40 00
    8222     call 0160eh                               ; e8 50 b9
     8147    call 0160eh                               ; e8 e9 b9
    82238148    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    82248149    leave                                     ; c9
    82258150    retn                                      ; c3
    8226     mov bx, 00cech                            ; bb ec 0c
     8151    mov bx, 00d32h                            ; bb 32 0d
    82278152    mov cx, ds                                ; 8c d9
    82288153    mov ax, strict word 00004h                ; b8 04 00
    8229     call 018aeh                               ; e8 df bb
     8154    call 018aeh                               ; e8 78 bc
    82308155    mov ax, word [bp+016h]                    ; 8b 46 16
    82318156    shr ax, 008h                              ; c1 e8 08
    82328157    push ax                                   ; 50
    8233     push 00763h                               ; 68 63 07
    8234     push 00735h                               ; 68 35 07
    8235     jmp near 05951h                           ; e9 72 fc
    8236 _int14_function:                             ; 0xf5cdf LB 0x154
     8158    push 00765h                               ; 68 65 07
     8159    push 00737h                               ; 68 37 07
     8160    jmp near 058b8h                           ; e9 72 fc
     8161_int14_function:                             ; 0xf5c46 LB 0x154
    82378162    push si                                   ; 56
    82388163    push bp                                   ; 55
     
    82428167    add dx, dx                                ; 01 d2
    82438168    mov ax, strict word 00040h                ; b8 40 00
    8244     call 0161ch                               ; e8 2d b9
     8169    call 0161ch                               ; e8 c6 b9
    82458170    mov si, ax                                ; 89 c6
    82468171    mov bx, ax                                ; 89 c3
     
    82488173    add dx, strict byte 0007ch                ; 83 c2 7c
    82498174    mov ax, strict word 00040h                ; b8 40 00
    8250     call 01600h                               ; e8 01 b9
     8175    call 01600h                               ; e8 9a b9
    82518176    mov cl, al                                ; 88 c1
    82528177    cmp word [bp+010h], strict byte 00004h    ; 83 7e 10 04
    8253     jnc near 05e2ch                           ; 0f 83 23 01
     8178    jnc near 05d93h                           ; 0f 83 23 01
    82548179    test si, si                               ; 85 f6
    8255     jbe near 05e2ch                           ; 0f 86 1d 01
     8180    jbe near 05d93h                           ; 0f 86 1d 01
    82568181    mov al, byte [bp+015h]                    ; 8a 46 15
    82578182    cmp AL, strict byte 001h                  ; 3c 01
    8258     jc short 05d27h                           ; 72 11
    8259     jbe short 05d7bh                          ; 76 63
     8183    jc short 05c8eh                           ; 72 11
     8184    jbe short 05ce2h                          ; 76 63
    82608185    cmp AL, strict byte 003h                  ; 3c 03
    8261     je near 05e14h                            ; 0f 84 f6 00
     8186    je near 05d7bh                            ; 0f 84 f6 00
    82628187    cmp AL, strict byte 002h                  ; 3c 02
    8263     je near 05dc9h                            ; 0f 84 a5 00
    8264     jmp near 05e25h                           ; e9 fe 00
     8188    je near 05d30h                            ; 0f 84 a5 00
     8189    jmp near 05d8ch                           ; e9 fe 00
    82658190    test al, al                               ; 84 c0
    8266     jne near 05e25h                           ; 0f 85 f8 00
     8191    jne near 05d8ch                           ; 0f 85 f8 00
    82678192    lea dx, [bx+003h]                         ; 8d 57 03
    82688193    in AL, DX                                 ; ec
     
    82968221    ; sub ah, ah                                ; 2a e4
    82978222    mov byte [bp+014h], al                    ; 88 46 14
    8298     jmp near 05e05h                           ; e9 97 00
     8223    jmp near 05d6ch                           ; e9 97 00
    82998224    mov AL, strict byte 017h                  ; b0 17
    83008225    mov dx, bx                                ; 89 da
     
    83038228    mov AL, strict byte 004h                  ; b0 04
    83048229    out DX, AL                                ; ee
    8305     jmp short 05d50h                          ; eb d5
     8230    jmp short 05cb7h                          ; eb d5
    83068231    mov dx, strict word 0006ch                ; ba 6c 00
    83078232    mov ax, strict word 00040h                ; b8 40 00
    8308     call 0161ch                               ; e8 98 b8
     8233    call 0161ch                               ; e8 31 b9
    83098234    mov si, ax                                ; 89 c6
    83108235    lea dx, [bx+005h]                         ; 8d 57 05
     
    83148239    and ax, strict word 00060h                ; 25 60 00
    83158240    cmp ax, strict word 00060h                ; 3d 60 00
    8316     je short 05dabh                           ; 74 17
     8241    je short 05d12h                           ; 74 17
    83178242    test cl, cl                               ; 84 c9
    8318     je short 05dabh                           ; 74 13
     8243    je short 05d12h                           ; 74 13
    83198244    mov dx, strict word 0006ch                ; ba 6c 00
    83208245    mov ax, strict word 00040h                ; b8 40 00
    8321     call 0161ch                               ; e8 7b b8
     8246    call 0161ch                               ; e8 14 b9
    83228247    cmp ax, si                                ; 39 f0
    8323     je short 05d86h                           ; 74 e1
     8248    je short 05cedh                           ; 74 e1
    83248249    mov si, ax                                ; 89 c6
    83258250    db  0feh, 0c9h
    83268251    ; dec cl                                    ; fe c9
    8327     jmp short 05d86h                          ; eb db
     8252    jmp short 05cedh                          ; eb db
    83288253    test cl, cl                               ; 84 c9
    8329     je short 05db5h                           ; 74 06
     8254    je short 05d1ch                           ; 74 06
    83308255    mov al, byte [bp+014h]                    ; 8a 46 14
    83318256    mov dx, bx                                ; 89 da
     
    83378262    mov byte [bp+015h], al                    ; 88 46 15
    83388263    test cl, cl                               ; 84 c9
    8339     jne short 05e05h                          ; 75 43
     8264    jne short 05d6ch                          ; 75 43
    83408265    or AL, strict byte 080h                   ; 0c 80
    83418266    mov byte [bp+015h], al                    ; 88 46 15
    8342     jmp short 05e05h                          ; eb 3c
     8267    jmp short 05d6ch                          ; eb 3c
    83438268    mov dx, strict word 0006ch                ; ba 6c 00
    83448269    mov ax, strict word 00040h                ; b8 40 00
    8345     call 0161ch                               ; e8 4a b8
     8270    call 0161ch                               ; e8 e3 b8
    83468271    mov si, ax                                ; 89 c6
    83478272    lea dx, [bx+005h]                         ; 8d 57 05
     
    83508275    ; sub ah, ah                                ; 2a e4
    83518276    test AL, strict byte 001h                 ; a8 01
    8352     jne short 05df5h                          ; 75 17
     8277    jne short 05d5ch                          ; 75 17
    83538278    test cl, cl                               ; 84 c9
    8354     je short 05df5h                           ; 74 13
     8279    je short 05d5ch                           ; 74 13
    83558280    mov dx, strict word 0006ch                ; ba 6c 00
    83568281    mov ax, strict word 00040h                ; b8 40 00
    8357     call 0161ch                               ; e8 31 b8
     8282    call 0161ch                               ; e8 ca b8
    83588283    cmp ax, si                                ; 39 f0
    8359     je short 05dd4h                           ; 74 e5
     8284    je short 05d3bh                           ; 74 e5
    83608285    mov si, ax                                ; 89 c6
    83618286    db  0feh, 0c9h
    83628287    ; dec cl                                    ; fe c9
    8363     jmp short 05dd4h                          ; eb df
     8288    jmp short 05d3bh                          ; eb df
    83648289    test cl, cl                               ; 84 c9
    8365     je short 05e0ch                           ; 74 13
     8290    je short 05d73h                           ; 74 13
    83668291    mov byte [bp+015h], 000h                  ; c6 46 15 00
    83678292    mov dx, bx                                ; 89 da
     
    83788303    db  02ah, 0e4h
    83798304    ; sub ah, ah                                ; 2a e4
    8380     jmp short 05dc4h                          ; eb b0
     8305    jmp short 05d2bh                          ; eb b0
    83818306    lea dx, [si+005h]                         ; 8d 54 05
    83828307    in AL, DX                                 ; ec
     
    83888313    db  02ah, 0e4h
    83898314    ; sub ah, ah                                ; 2a e4
    8390     jmp short 05e02h                          ; eb dd
     8315    jmp short 05d69h                          ; eb dd
    83918316    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    83928317    pop bp                                    ; 5d
     
    83978322    pop si                                    ; 5e
    83988323    retn                                      ; c3
    8399 set_enable_a20_:                             ; 0xf5e33 LB 0x29
     8324set_enable_a20_:                             ; 0xf5d9a LB 0x29
    84008325    push bx                                   ; 53
    84018326    push cx                                   ; 51
     
    84108335    mov cl, al                                ; 88 c1
    84118336    test bx, bx                               ; 85 db
    8412     je short 05e4ch                           ; 74 05
     8337    je short 05db3h                           ; 74 05
    84138338    or AL, strict byte 002h                   ; 0c 02
    84148339    out DX, AL                                ; ee
    8415     jmp short 05e4fh                          ; eb 03
     8340    jmp short 05db6h                          ; eb 03
    84168341    and AL, strict byte 0fdh                  ; 24 fd
    84178342    out DX, AL                                ; ee
     
    84258350    pop bx                                    ; 5b
    84268351    retn                                      ; c3
    8427 set_e820_range_:                             ; 0xf5e5c LB 0x8c
     8352set_e820_range_:                             ; 0xf5dc3 LB 0x8c
    84288353    push si                                   ; 56
    84298354    push bp                                   ; 55
     
    84548379    retn 0000ah                               ; c2 0a 00
    84558380    in AL, DX                                 ; ec
    8456     jmp near 0208fh                           ; e9 d8 c1
     8381    jmp near 01ff6h                           ; e9 d8 c1
    84578382    sar byte [bx-06f6fh], 089h                ; c0 bf 91 90 89
    84588383    mov byte [bx+05283h], al                  ; 88 87 83 52
     
    84608385    inc cx                                    ; 41
    84618386    and AL, strict byte 000h                  ; 24 00
    8462     and word [bp+di+026h], strict byte 0005fh ; 83 63 26 5f
    8463     cmp word [bx-035h], bx                    ; 39 5f cb
     8387    jmp far 0a05eh:08d62h                     ; ea 62 8d 5e a0
     8388    pop si                                    ; 5e
     8389    xor bl, byte [bx+038h]                    ; 32 5f 38
    84648390    pop di                                    ; 5f
    8465     rcr word [bx-02ah], 1                     ; d1 5f d6
     8391    cmp ax, 0425fh                            ; 3d 5f 42
    84668392    pop di                                    ; 5f
    8467     fistp dword [bx+07dh]                     ; db 5f 7d
    8468     pushaw                                    ; 60
    8469     sbb ah, byte [bp+si+040h]                 ; 1a 62 40
     8393    in AL, strict byte 05fh                   ; e4 5f
     8394    and word [bx+di-059h], 02e61h             ; 81 61 a7 61 2e
     8395    pop di                                    ; 5f
     8396    db  02eh, 05fh
     8397    ; cs pop di                                 ; 2e 5f
     8398    je short 05ea7h                           ; 74 62
     8399    pushfw                                    ; 9c
     8400    bound bp, [bx-0419eh]                     ; 62 af 62 be
     8401    bound si, [bp+si]                         ; 62 32
     8402    pop di                                    ; 5f
     8403    db  0c5h
    84708404    db  062h
    8471     db  0c7h, 05fh, 0c7h, 05fh, 00dh
    8472     ; mov word [bx-039h], 00d5fh                ; c7 5f c7 5f 0d
    8473     arpl word [di], si                        ; 63 35
    8474     arpl word [bx+si+063h], cx                ; 63 48 63
    8475     push di                                   ; 57
    8476     arpl bx, cx                               ; 63 cb
    8477     pop di                                    ; 5f
    8478     pop si                                    ; 5e
    8479     db  063h
    8480 _int15_function:                             ; 0xf5ee8 LB 0x4c9
     8405_int15_function:                             ; 0xf5e4f LB 0x4c9
    84818406    push si                                   ; 56
    84828407    push di                                   ; 57
     
    84858410    shr ax, 008h                              ; c1 e8 08
    84868411    cmp ax, 000ech                            ; 3d ec 00
    8487     jnbe near 06383h                          ; 0f 87 88 04
     8412    jnbe near 062eah                          ; 0f 87 88 04
    84888413    push CS                                   ; 0e
    84898414    pop ES                                    ; 07
    84908415    mov cx, strict word 00012h                ; b9 12 00
    8491     mov di, 05eb3h                            ; bf b3 5e
     8416    mov di, 05e1ah                            ; bf 1a 5e
    84928417    repne scasb                               ; f2 ae
    84938418    sal cx, 1                                 ; d1 e1
    84948419    mov di, cx                                ; 89 cf
    8495     mov si, word [cs:di+05ec4h]               ; 2e 8b b5 c4 5e
     8420    mov si, word [cs:di+05e2bh]               ; 2e 8b b5 2b 5e
    84968421    mov ax, word [bp+016h]                    ; 8b 46 16
    84978422    xor ah, ah                                ; 30 e4
     
    85068431    xor ah, ah                                ; 30 e4
    85078432    cmp ax, 000c0h                            ; 3d c0 00
    8508     jne near 06383h                           ; 0f 85 51 04
     8433    jne near 062eah                           ; 0f 85 51 04
    85098434    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8510     jmp near 0632ch                           ; e9 f3 03
     8435    jmp near 06293h                           ; e9 f3 03
    85118436    mov dx, ax                                ; 89 c2
    85128437    cmp ax, strict word 00001h                ; 3d 01 00
    8513     jc short 05f4eh                           ; 72 0e
    8514     jbe short 05f62h                          ; 76 20
     8438    jc short 05eb5h                           ; 72 0e
     8439    jbe short 05ec9h                          ; 76 20
    85158440    cmp ax, strict word 00003h                ; 3d 03 00
    8516     je short 05f8fh                           ; 74 48
     8441    je short 05ef6h                           ; 74 48
    85178442    cmp ax, strict word 00002h                ; 3d 02 00
    8518     je short 05f72h                           ; 74 26
    8519     jmp short 05f9ch                          ; eb 4e
     8443    je short 05ed9h                           ; 74 26
     8444    jmp short 05f03h                          ; eb 4e
    85208445    test ax, ax                               ; 85 c0
    8521     jne short 05f9ch                          ; 75 4a
     8446    jne short 05f03h                          ; 75 4a
    85228447    xor ax, ax                                ; 31 c0
    8523     call 05e33h                               ; e8 dc fe
     8448    call 05d9ah                               ; e8 dc fe
    85248449    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    85258450    mov byte [bp+017h], 000h                  ; c6 46 17 00
    8526     jmp near 05fc7h                           ; e9 65 00
     8451    jmp near 05f2eh                           ; e9 65 00
    85278452    mov ax, strict word 00001h                ; b8 01 00
    8528     call 05e33h                               ; e8 cb fe
     8453    call 05d9ah                               ; e8 cb fe
    85298454    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    85308455    mov byte [bp+017h], dh                    ; 88 76 17
    8531     jmp near 05fc7h                           ; e9 55 00
     8456    jmp near 05f2eh                           ; e9 55 00
    85328457    mov dx, 00092h                            ; ba 92 00
    85338458    in AL, DX                                 ; ec
     
    85418466    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    85428467    mov byte [bp+017h], ah                    ; 88 66 17
    8543     jmp near 05fc7h                           ; e9 38 00
     8468    jmp near 05f2eh                           ; e9 38 00
    85448469    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    85458470    mov byte [bp+017h], ah                    ; 88 66 17
    85468471    mov word [bp+010h], ax                    ; 89 46 10
    8547     jmp near 05fc7h                           ; e9 2b 00
    8548     mov bx, 00cech                            ; bb ec 0c
     8472    jmp near 05f2eh                           ; e9 2b 00
     8473    mov bx, 00d32h                            ; bb 32 0d
    85498474    mov cx, ds                                ; 8c d9
    85508475    mov ax, strict word 00004h                ; b8 04 00
    8551     call 018aeh                               ; e8 07 b9
     8476    call 018aeh                               ; e8 a0 b9
    85528477    mov ax, word [bp+016h]                    ; 8b 46 16
    85538478    xor ah, ah                                ; 30 e4
    85548479    push ax                                   ; 50
    8555     push 007c4h                               ; 68 c4 07
     8480    push 007c6h                               ; 68 c6 07
    85568481    push strict byte 00004h                   ; 6a 04
    8557     call 018e9h                               ; e8 34 b9
     8482    call 018e9h                               ; e8 cd b9
    85588483    add sp, strict byte 00006h                ; 83 c4 06
    85598484    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     
    85678492    retn                                      ; c3
    85688493    mov word [bp+01ch], bx                    ; 89 5e 1c
    8569     jmp near 06077h                           ; e9 a6 00
     8494    jmp near 05fdeh                           ; e9 a6 00
    85708495    mov word [bp+01ch], bx                    ; 89 5e 1c
    8571     jmp short 05fc7h                          ; eb f1
     8496    jmp short 05f2eh                          ; eb f1
    85728497    mov word [bp+01ch], cx                    ; 89 4e 1c
    8573     jmp short 05fc4h                          ; eb e9
     8498    jmp short 05f2bh                          ; eb e9
    85748499    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    8575     je short 0604dh                           ; 74 6c
     8500    je short 05fb4h                           ; 74 6c
    85768501    mov dx, 000a0h                            ; ba a0 00
    85778502    mov ax, strict word 00040h                ; b8 40 00
    8578     call 01600h                               ; e8 16 b6
     8503    call 01600h                               ; e8 af b6
    85798504    test AL, strict byte 001h                 ; a8 01
    8580     jne near 06323h                           ; 0f 85 33 03
     8505    jne near 0628ah                           ; 0f 85 33 03
    85818506    mov bx, strict word 00001h                ; bb 01 00
    85828507    mov dx, 000a0h                            ; ba a0 00
    85838508    mov ax, strict word 00040h                ; b8 40 00
    8584     call 0160eh                               ; e8 12 b6
     8509    call 0160eh                               ; e8 ab b6
    85858510    mov bx, word [bp+018h]                    ; 8b 5e 18
    85868511    mov dx, 00098h                            ; ba 98 00
    85878512    mov ax, strict word 00040h                ; b8 40 00
    8588     call 0162ah                               ; e8 22 b6
     8513    call 0162ah                               ; e8 bb b6
    85898514    mov bx, word [bp+010h]                    ; 8b 5e 10
    85908515    mov dx, 0009ah                            ; ba 9a 00
    85918516    mov ax, strict word 00040h                ; b8 40 00
    8592     call 0162ah                               ; e8 16 b6
     8517    call 0162ah                               ; e8 af b6
    85938518    mov bx, word [bp+012h]                    ; 8b 5e 12
    85948519    mov dx, 0009ch                            ; ba 9c 00
    85958520    mov ax, strict word 00040h                ; b8 40 00
    8596     call 0162ah                               ; e8 0a b6
     8521    call 0162ah                               ; e8 a3 b6
    85978522    mov bx, word [bp+014h]                    ; 8b 5e 14
    85988523    mov dx, 0009eh                            ; ba 9e 00
    85998524    mov ax, strict word 00040h                ; b8 40 00
    8600     call 0162ah                               ; e8 fe b5
     8525    call 0162ah                               ; e8 97 b6
    86018526    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    86028527    mov dx, 000a1h                            ; ba a1 00
     
    86078532    out DX, AL                                ; ee
    86088533    mov ax, strict word 0000bh                ; b8 0b 00
    8609     call 0165ch                               ; e8 1d b6
     8534    call 0165ch                               ; e8 b6 b6
    86108535    or AL, strict byte 040h                   ; 0c 40
    86118536    movzx dx, al                              ; 0f b6 d0
    86128537    mov ax, strict word 0000bh                ; b8 0b 00
    8613     call 0166dh                               ; e8 23 b6
    8614     jmp near 05fc7h                           ; e9 7a ff
     8538    call 0166dh                               ; e8 bc b6
     8539    jmp near 05f2eh                           ; e9 7a ff
    86158540    cmp ax, strict word 00001h                ; 3d 01 00
    8616     jne short 0606bh                          ; 75 19
     8541    jne short 05fd2h                          ; 75 19
    86178542    xor bx, bx                                ; 31 db
    86188543    mov dx, 000a0h                            ; ba a0 00
    86198544    mov ax, strict word 00040h                ; b8 40 00
    8620     call 0160eh                               ; e8 b1 b5
     8545    call 0160eh                               ; e8 4a b6
    86218546    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    86228547    mov ax, strict word 0000bh                ; b8 0b 00
    8623     call 0165ch                               ; e8 f5 b5
     8548    call 0165ch                               ; e8 8e b6
    86248549    and AL, strict byte 0bfh                  ; 24 bf
    8625     jmp short 06041h                          ; eb d6
     8550    jmp short 05fa8h                          ; eb d6
    86268551    mov word [bp+01ch], bx                    ; 89 5e 1c
    86278552    mov ax, dx                                ; 89 d0
     
    86318556    or dx, ax                                 ; 09 c2
    86328557    mov word [bp+016h], dx                    ; 89 56 16
    8633     jmp near 05fc7h                           ; e9 4a ff
     8558    jmp near 05f2eh                           ; e9 4a ff
    86348559    cli                                       ; fa
    86358560    mov ax, strict word 00001h                ; b8 01 00
    8636     call 05e33h                               ; e8 af fd
     8561    call 05d9ah                               ; e8 af fd
    86378562    mov di, ax                                ; 89 c7
    86388563    mov ax, word [bp+018h]                    ; 8b 46 18
     
    86448569    mov byte [bp-002h], dl                    ; 88 56 fe
    86458570    cmp cx, ax                                ; 39 c1
    8646     jnc short 060a3h                          ; 73 05
     8571    jnc short 0600ah                          ; 73 05
    86478572    db  0feh, 0c2h
    86488573    ; inc dl                                    ; fe c2
     
    86528577    mov ax, word [bp+018h]                    ; 8b 46 18
    86538578    mov bx, strict word 0002fh                ; bb 2f 00
    8654     call 0162ah                               ; e8 78 b5
     8579    call 0162ah                               ; e8 11 b6
    86558580    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86568581    add dx, strict byte 0000ah                ; 83 c2 0a
    86578582    mov ax, word [bp+018h]                    ; 8b 46 18
    86588583    mov bx, cx                                ; 89 cb
    8659     call 0162ah                               ; e8 6a b5
     8584    call 0162ah                               ; e8 03 b6
    86608585    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    86618586    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86628587    add dx, strict byte 0000ch                ; 83 c2 0c
    86638588    mov ax, word [bp+018h]                    ; 8b 46 18
    8664     call 0160eh                               ; e8 3e b5
     8589    call 0160eh                               ; e8 d7 b5
    86658590    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86668591    add dx, strict byte 0000dh                ; 83 c2 0d
    86678592    mov ax, word [bp+018h]                    ; 8b 46 18
    86688593    mov bx, 00093h                            ; bb 93 00
    8669     call 0160eh                               ; e8 2f b5
     8594    call 0160eh                               ; e8 c8 b5
    86708595    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86718596    add dx, strict byte 0000eh                ; 83 c2 0e
    86728597    mov ax, word [bp+018h]                    ; 8b 46 18
    86738598    xor bx, bx                                ; 31 db
    8674     call 0162ah                               ; e8 3d b5
     8599    call 0162ah                               ; e8 d6 b5
    86758600    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86768601    add dx, strict byte 00020h                ; 83 c2 20
    86778602    mov ax, word [bp+018h]                    ; 8b 46 18
    86788603    mov bx, strict word 0ffffh                ; bb ff ff
    8679     call 0162ah                               ; e8 2e b5
     8604    call 0162ah                               ; e8 c7 b5
    86808605    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86818606    add dx, strict byte 00022h                ; 83 c2 22
    86828607    mov ax, word [bp+018h]                    ; 8b 46 18
    86838608    xor bx, bx                                ; 31 db
    8684     call 0162ah                               ; e8 20 b5
     8609    call 0162ah                               ; e8 b9 b5
    86858610    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86868611    add dx, strict byte 00024h                ; 83 c2 24
    86878612    mov ax, word [bp+018h]                    ; 8b 46 18
    86888613    mov bx, strict word 0000fh                ; bb 0f 00
    8689     call 0160eh                               ; e8 f5 b4
     8614    call 0160eh                               ; e8 8e b5
    86908615    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86918616    add dx, strict byte 00025h                ; 83 c2 25
    86928617    mov ax, word [bp+018h]                    ; 8b 46 18
    86938618    mov bx, 0009bh                            ; bb 9b 00
    8694     call 0160eh                               ; e8 e6 b4
     8619    call 0160eh                               ; e8 7f b5
    86958620    mov dx, word [bp+00ah]                    ; 8b 56 0a
    86968621    add dx, strict byte 00026h                ; 83 c2 26
    86978622    mov ax, word [bp+018h]                    ; 8b 46 18
    86988623    xor bx, bx                                ; 31 db
    8699     call 0162ah                               ; e8 f4 b4
     8624    call 0162ah                               ; e8 8d b5
    87008625    mov ax, ss                                ; 8c d0
    87018626    mov cx, ax                                ; 89 c1
     
    87078632    mov ax, word [bp+018h]                    ; 8b 46 18
    87088633    mov bx, strict word 0ffffh                ; bb ff ff
    8709     call 0162ah                               ; e8 d8 b4
     8634    call 0162ah                               ; e8 71 b5
    87108635    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87118636    add dx, strict byte 0002ah                ; 83 c2 2a
    87128637    mov ax, word [bp+018h]                    ; 8b 46 18
    87138638    mov bx, cx                                ; 89 cb
    8714     call 0162ah                               ; e8 ca b4
     8639    call 0162ah                               ; e8 63 b5
    87158640    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    87168641    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87178642    add dx, strict byte 0002ch                ; 83 c2 2c
    87188643    mov ax, word [bp+018h]                    ; 8b 46 18
    8719     call 0160eh                               ; e8 9e b4
     8644    call 0160eh                               ; e8 37 b5
    87208645    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87218646    add dx, strict byte 0002dh                ; 83 c2 2d
    87228647    mov ax, word [bp+018h]                    ; 8b 46 18
    87238648    mov bx, 00093h                            ; bb 93 00
    8724     call 0160eh                               ; e8 8f b4
     8649    call 0160eh                               ; e8 28 b5
    87258650    mov dx, word [bp+00ah]                    ; 8b 56 0a
    87268651    add dx, strict byte 0002eh                ; 83 c2 2e
    87278652    mov ax, word [bp+018h]                    ; 8b 46 18
    87288653    xor bx, bx                                ; 31 db
    8729     call 0162ah                               ; e8 9d b4
     8654    call 0162ah                               ; e8 36 b5
    87308655    mov si, word [bp+00ah]                    ; 8b 76 0a
    87318656    mov es, [bp+018h]                         ; 8e 46 18
     
    87388663    mov word [00467h], sp                     ; 89 26 67 04
    87398664    mov [00469h], ss                          ; 8c 16 69 04
    8740     call 061a9h                               ; e8 00 00
     8665    call 06110h                               ; e8 00 00
    87418666    pop di                                    ; 5f
    87428667    add di, strict byte 0001bh                ; 83 c7 1b
     
    87448669    push di                                   ; 57
    87458670    lgdt [es:si+008h]                         ; 26 0f 01 54 08
    8746     lidt [cs:0efdfh]                          ; 2e 0f 01 1e df ef
     8671    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
    87478672    mov eax, cr0                              ; 0f 20 c0
    87488673    or AL, strict byte 001h                   ; 0c 01
     
    87618686    cld                                       ; fc
    87628687    rep movsw                                 ; f3 a5
    8763     call 061ddh                               ; e8 00 00
     8688    call 06144h                               ; e8 00 00
    87648689    pop ax                                    ; 58
    87658690    push 0f000h                               ; 68 00 f0
     
    87738698    mov cr0, eax                              ; 0f 22 c0
    87748699    retf                                      ; cb
    8775     lidt [cs:0efe5h]                          ; 2e 0f 01 1e e5 ef
     8700    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
    87768701    db  033h, 0c0h
    87778702    ; xor ax, ax                                ; 33 c0
     
    87828707    pop DS                                    ; 1f
    87838708    mov ax, di                                ; 89 f8
    8784     call 05e33h                               ; e8 25 fc
     8709    call 05d9ah                               ; e8 25 fc
    87858710    sti                                       ; fb
    87868711    mov byte [bp+017h], 000h                  ; c6 46 17 00
    87878712    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8788     jmp near 05fc7h                           ; e9 ad fd
     8713    jmp near 05f2eh                           ; e9 ad fd
    87898714    mov ax, strict word 00031h                ; b8 31 00
    8790     call 0165ch                               ; e8 3c b4
     8715    call 0165ch                               ; e8 d5 b4
    87918716    xor ah, ah                                ; 30 e4
    87928717    mov dx, ax                                ; 89 c2
    87938718    sal dx, 008h                              ; c1 e2 08
    87948719    mov ax, strict word 00030h                ; b8 30 00
    8795     call 0165ch                               ; e8 2f b4
     8720    call 0165ch                               ; e8 c8 b4
    87968721    xor ah, ah                                ; 30 e4
    87978722    or dx, ax                                 ; 09 c2
    87988723    mov word [bp+016h], dx                    ; 89 56 16
    87998724    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    8800     jbe short 06213h                          ; 76 da
     8725    jbe short 0617ah                          ; 76 da
    88018726    mov word [bp+016h], strict word 0ffc0h    ; c7 46 16 c0 ff
    8802     jmp short 06213h                          ; eb d3
     8727    jmp short 0617ah                          ; eb d3
    88038728    cli                                       ; fa
    88048729    mov ax, strict word 00001h                ; b8 01 00
    8805     call 05e33h                               ; e8 ec fb
     8730    call 05d9ah                               ; e8 ec fb
    88068731    mov dx, word [bp+00ah]                    ; 8b 56 0a
    88078732    add dx, strict byte 00038h                ; 83 c2 38
    88088733    mov ax, word [bp+018h]                    ; 8b 46 18
    88098734    mov bx, strict word 0ffffh                ; bb ff ff
    8810     call 0162ah                               ; e8 d4 b3
     8735    call 0162ah                               ; e8 6d b4
    88118736    mov dx, word [bp+00ah]                    ; 8b 56 0a
    88128737    add dx, strict byte 0003ah                ; 83 c2 3a
    88138738    mov ax, word [bp+018h]                    ; 8b 46 18
    88148739    xor bx, bx                                ; 31 db
    8815     call 0162ah                               ; e8 c6 b3
     8740    call 0162ah                               ; e8 5f b4
    88168741    mov dx, word [bp+00ah]                    ; 8b 56 0a
    88178742    add dx, strict byte 0003ch                ; 83 c2 3c
    88188743    mov ax, word [bp+018h]                    ; 8b 46 18
    88198744    mov bx, strict word 0000fh                ; bb 0f 00
    8820     call 0160eh                               ; e8 9b b3
     8745    call 0160eh                               ; e8 34 b4
    88218746    mov dx, word [bp+00ah]                    ; 8b 56 0a
    88228747    add dx, strict byte 0003dh                ; 83 c2 3d
    88238748    mov ax, word [bp+018h]                    ; 8b 46 18
    88248749    mov bx, 0009bh                            ; bb 9b 00
    8825     call 0160eh                               ; e8 8c b3
     8750    call 0160eh                               ; e8 25 b4
    88268751    mov dx, word [bp+00ah]                    ; 8b 56 0a
    88278752    add dx, strict byte 0003eh                ; 83 c2 3e
    88288753    mov ax, word [bp+018h]                    ; 8b 46 18
    88298754    xor bx, bx                                ; 31 db
    8830     call 0162ah                               ; e8 9a b3
     8755    call 0162ah                               ; e8 33 b4
    88318756    mov AL, strict byte 011h                  ; b0 11
    88328757    mov dx, strict word 00020h                ; ba 20 00
     
    88588783    out DX, AL                                ; ee
    88598784    mov si, word [bp+00ah]                    ; 8b 76 0a
    8860     call 062d1h                               ; e8 00 00
     8785    call 06238h                               ; e8 00 00
    88618786    pop di                                    ; 5f
    88628787    add di, strict byte 00018h                ; 83 c7 18
     
    88868811    push cx                                   ; 51
    88878812    retf                                      ; cb
    8888     jmp near 05fc7h                           ; e9 ba fc
    8889     mov bx, 00cech                            ; bb ec 0c
     8813    jmp near 05f2eh                           ; e9 ba fc
     8814    mov bx, 00d32h                            ; bb 32 0d
    88908815    mov cx, ds                                ; 8c d9
    88918816    mov ax, strict word 00004h                ; b8 04 00
    8892     call 018aeh                               ; e8 96 b5
    8893     push 00804h                               ; 68 04 08
     8817    call 018aeh                               ; e8 2f b6
     8818    push 00806h                               ; 68 06 08
    88948819    push strict byte 00004h                   ; 6a 04
    8895     call 018e9h                               ; e8 c9 b5
     8820    call 018e9h                               ; e8 62 b6
    88968821    add sp, strict byte 00004h                ; 83 c4 04
    88978822    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     
    89008825    or ah, 086h                               ; 80 cc 86
    89018826    mov word [bp+016h], ax                    ; 89 46 16
    8902     jmp near 05fc7h                           ; e9 92 fc
     8827    jmp near 05f2eh                           ; e9 92 fc
    89038828    mov word [bp+01ch], cx                    ; 89 4e 1c
    89048829    mov word [bp+016h], ax                    ; 89 46 16
    89058830    mov word [bp+010h], 0e6f5h                ; c7 46 10 f5 e6
    89068831    mov word [bp+018h], 0f000h                ; c7 46 18 00 f0
    8907     jmp near 05fc7h                           ; e9 7f fc
     8832    jmp near 05f2eh                           ; e9 7f fc
    89088833    mov dx, strict word 0000eh                ; ba 0e 00
    89098834    mov ax, strict word 00040h                ; b8 40 00
    8910     call 0161ch                               ; e8 cb b2
     8835    call 0161ch                               ; e8 64 b3
    89118836    mov word [bp+018h], ax                    ; 89 46 18
    8912     jmp near 06213h                           ; e9 bc fe
    8913     push 00833h                               ; 68 33 08
     8837    jmp near 0617ah                           ; e9 bc fe
     8838    push 00835h                               ; 68 35 08
    89148839    push strict byte 00008h                   ; 6a 08
    8915     jmp short 0631dh                          ; eb bf
     8840    jmp short 06284h                          ; eb bf
    89168841    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    8917     jne short 06383h                          ; 75 1f
     8842    jne short 062eah                          ; 75 1f
    89188843    mov word [bp+016h], ax                    ; 89 46 16
    89198844    mov ax, word [bp+010h]                    ; 8b 46 10
    89208845    xor ah, ah                                ; 30 e4
    89218846    cmp ax, strict word 00001h                ; 3d 01 00
    8922     jc short 0637ch                           ; 72 0b
     8847    jc short 062e3h                           ; 72 0b
    89238848    cmp ax, strict word 00003h                ; 3d 03 00
    8924     jnbe short 0637ch                         ; 77 06
     8849    jnbe short 062e3h                         ; 77 06
    89258850    mov word [bp+01ch], cx                    ; 89 4e 1c
    8926     jmp near 05fc7h                           ; e9 4b fc
     8851    jmp near 05f2eh                           ; e9 4b fc
    89278852    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8928     jmp near 05fc7h                           ; e9 44 fc
    8929     mov bx, 00cech                            ; bb ec 0c
     8853    jmp near 05f2eh                           ; e9 44 fc
     8854    mov bx, 00d32h                            ; bb 32 0d
    89308855    mov cx, ds                                ; 8c d9
    89318856    mov ax, strict word 00004h                ; b8 04 00
    8932     call 018aeh                               ; e8 20 b5
     8857    call 018aeh                               ; e8 b9 b5
    89338858    push word [bp+010h]                       ; ff 76 10
    89348859    push word [bp+016h]                       ; ff 76 16
    8935     push 0084ah                               ; 68 4a 08
     8860    push 0084ch                               ; 68 4c 08
    89368861    push strict byte 00004h                   ; 6a 04
    8937     call 018e9h                               ; e8 4d b5
     8862    call 018e9h                               ; e8 e6 b5
    89388863    add sp, strict byte 00008h                ; 83 c4 08
    8939     jmp short 06323h                          ; eb 82
    8940     jcxz 06407h                               ; e3 64
    8941     sbb word [di+03bh], sp                    ; 19 65 3b
    8942     db  065h, 05ch
    8943     ; gs pop sp                                 ; 65 5c
    8944     db  065h, 07bh, 065h
    8945     ; gs jnp short 06410h                       ; 65 7b 65
    8946     call far 00965h:0dc65h                    ; 9a 65 dc 65 09
    8947     db  066h
    8948 _int15_function32:                           ; 0xf63b1 LB 0x309
     8864    jmp short 0628ah                          ; eb 82
     8865    dec dx                                    ; 4a
     8866    and byte [fs:si-05eh], 064h               ; 64 80 64 a2 64
     8867    retn                                      ; c3
     8868    db  064h, 0e2h, 064h
     8869    ; fs loop 06376h                            ; 64 e2 64
     8870    add word [di+043h], sp                    ; 01 65 43
     8871    db  065h, 070h, 065h
     8872    ; gs jo short 0637dh                        ; 65 70 65
     8873_int15_function32:                           ; 0xf6318 LB 0x309
    89498874    push si                                   ; 56
    89508875    enter 00008h, 000h                        ; c8 08 00 00
     
    89528877    shr ax, 008h                              ; c1 e8 08
    89538878    cmp ax, 000e8h                            ; 3d e8 00
    8954     je short 06402h                           ; 74 41
     8879    je short 06369h                           ; 74 41
    89558880    cmp ax, 00086h                            ; 3d 86 00
    8956     jne near 0668dh                           ; 0f 85 c5 02
     8881    jne near 065f4h                           ; 0f 85 c5 02
    89578882    sti                                       ; fb
    89588883    mov ax, word [bp+01eh]                    ; 8b 46 1e
     
    89738898    db  066h, 00bh, 0c9h
    89748899    ; or ecx, ecx                               ; 66 0b c9
    8975     je near 063ffh                            ; 0f 84 0e 00
     8900    je near 06366h                            ; 0f 84 0e 00
    89768901    in AL, strict byte 061h                   ; e4 61
    89778902    and AL, strict byte 010h                  ; 24 10
    89788903    db  03ah, 0c4h
    89798904    ; cmp al, ah                                ; 3a c4
    8980     je short 063f1h                           ; 74 f8
     8905    je short 06358h                           ; 74 f8
    89818906    db  08ah, 0e0h
    89828907    ; mov ah, al                                ; 8a e0
    89838908    dec ecx                                   ; 66 49
    8984     jne short 063f1h                          ; 75 f2
     8909    jne short 06358h                          ; 75 f2
    89858910    leave                                     ; c9
    89868911    pop si                                    ; 5e
     
    89898914    xor ah, ah                                ; 30 e4
    89908915    cmp ax, strict word 00020h                ; 3d 20 00
    8991     je short 06416h                           ; 74 0a
     8916    je short 0637dh                           ; 74 0a
    89928917    cmp ax, strict word 00001h                ; 3d 01 00
    8993     je near 0663fh                            ; 0f 84 2c 02
    8994     jmp near 0668dh                           ; e9 77 02
     8918    je near 065a6h                            ; 0f 84 2c 02
     8919    jmp near 065f4h                           ; e9 77 02
    89958920    cmp word [bp+01ch], 0534dh                ; 81 7e 1c 4d 53
    8996     jne near 0668dh                           ; 0f 85 6e 02
     8921    jne near 065f4h                           ; 0f 85 6e 02
    89978922    cmp word [bp+01ah], 04150h                ; 81 7e 1a 50 41
    8998     jne near 0668dh                           ; 0f 85 65 02
     8923    jne near 065f4h                           ; 0f 85 65 02
    89998924    mov ax, strict word 00035h                ; b8 35 00
    9000     call 0165ch                               ; e8 2e b2
     8925    call 0165ch                               ; e8 c7 b2
    90018926    movzx bx, al                              ; 0f b6 d8
    90028927    xor dx, dx                                ; 31 d2
     
    90048929    sal bx, 1                                 ; d1 e3
    90058930    rcl dx, 1                                 ; d1 d2
    9006     loop 06436h                               ; e2 fa
     8931    loop 0639dh                               ; e2 fa
    90078932    mov ax, strict word 00034h                ; b8 34 00
    9008     call 0165ch                               ; e8 1a b2
     8933    call 0165ch                               ; e8 b3 b2
    90098934    xor ah, ah                                ; 30 e4
    90108935    mov dx, bx                                ; 89 da
     
    90148939    adc dx, 00100h                            ; 81 d2 00 01
    90158940    cmp dx, 00100h                            ; 81 fa 00 01
    9016     jc short 0645ch                           ; 72 06
    9017     jne short 06489h                          ; 75 31
     8941    jc short 063c3h                           ; 72 06
     8942    jne short 063f0h                          ; 75 31
    90188943    test bx, bx                               ; 85 db
    9019     jnbe short 06489h                         ; 77 2d
     8944    jnbe short 063f0h                         ; 77 2d
    90208945    mov ax, strict word 00031h                ; b8 31 00
    9021     call 0165ch                               ; e8 fa b1
     8946    call 0165ch                               ; e8 93 b2
    90228947    movzx bx, al                              ; 0f b6 d8
    90238948    xor dx, dx                                ; 31 d2
     
    90258950    sal bx, 1                                 ; d1 e3
    90268951    rcl dx, 1                                 ; d1 d2
    9027     loop 0646ah                               ; e2 fa
     8952    loop 063d1h                               ; e2 fa
    90288953    mov ax, strict word 00030h                ; b8 30 00
    9029     call 0165ch                               ; e8 e6 b1
     8954    call 0165ch                               ; e8 7f b2
    90308955    xor ah, ah                                ; 30 e4
    90318956    or bx, ax                                 ; 09 c3
     
    90338958    sal bx, 1                                 ; d1 e3
    90348959    rcl dx, 1                                 ; d1 d2
    9035     loop 0647dh                               ; e2 fa
     8960    loop 063e4h                               ; e2 fa
    90368961    add bx, strict byte 00000h                ; 83 c3 00
    90378962    adc dx, strict byte 00010h                ; 83 d2 10
    90388963    mov ax, strict word 00062h                ; b8 62 00
    9039     call 0165ch                               ; e8 cd b1
     8964    call 0165ch                               ; e8 66 b2
    90408965    xor ah, ah                                ; 30 e4
    90418966    mov word [bp-008h], ax                    ; 89 46 f8
     
    90458970    sal word [bp-008h], 1                     ; d1 66 f8
    90468971    rcl word [bp-006h], 1                     ; d1 56 fa
    9047     loop 0649ch                               ; e2 f8
     8972    loop 06403h                               ; e2 f8
    90488973    mov ax, strict word 00061h                ; b8 61 00
    9049     call 0165ch                               ; e8 b2 b1
     8974    call 0165ch                               ; e8 4b b2
    90508975    xor ah, ah                                ; 30 e4
    90518976    or word [bp-008h], ax                     ; 09 46 f8
     
    90548979    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    90558980    mov ax, strict word 00063h                ; b8 63 00
    9056     call 0165ch                               ; e8 9c b1
     8981    call 0165ch                               ; e8 35 b2
    90578982    mov byte [bp-004h], al                    ; 88 46 fc
    90588983    mov byte [bp-002h], al                    ; 88 46 fe
    90598984    mov ax, word [bp+016h]                    ; 8b 46 16
    90608985    cmp ax, strict word 00007h                ; 3d 07 00
    9061     jnbe near 0668dh                          ; 0f 87 bd 01
     8986    jnbe near 065f4h                          ; 0f 87 bd 01
    90628987    mov si, ax                                ; 89 c6
    90638988    add si, ax                                ; 01 c6
     
    90668991    mov cx, dx                                ; 89 d1
    90678992    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9068     jmp word [cs:si+063a1h]                   ; 2e ff a4 a1 63
     8993    jmp word [cs:si+06308h]                   ; 2e ff a4 08 63
    90698994    push strict byte 00001h                   ; 6a 01
    90708995    push dword 000000000h                     ; 66 6a 00
     
    90759000    xor bx, bx                                ; 31 db
    90769001    xor cx, cx                                ; 31 c9
    9077     call 05e5ch                               ; e8 62 f9
     9002    call 05dc3h                               ; e8 62 f9
    90789003    mov dword [bp+016h], strict dword 000000001h ; 66 c7 46 16 01 00 00 00
    90799004    mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53
     
    90919016    mov bx, 0fc00h                            ; bb 00 fc
    90929017    mov cx, strict word 00009h                ; b9 09 00
    9093     call 05e5ch                               ; e8 2b f9
     9018    call 05dc3h                               ; e8 2b f9
    90949019    mov dword [bp+016h], strict dword 000000002h ; 66 c7 46 16 02 00 00 00
    9095     jmp short 06502h                          ; eb c7
     9020    jmp short 06469h                          ; eb c7
    90969021    push strict byte 00002h                   ; 6a 02
    90979022    push dword 000000000h                     ; 66 6a 00
     
    91029027    xor bx, bx                                ; 31 db
    91039028    mov cx, strict word 0000fh                ; b9 0f 00
    9104     call 05e5ch                               ; e8 0a f9
     9029    call 05dc3h                               ; e8 0a f9
    91059030    mov dword [bp+016h], strict dword 000000003h ; 66 c7 46 16 03 00 00 00
    9106     jmp short 06502h                          ; eb a6
     9031    jmp short 06469h                          ; eb a6
    91079032    push strict byte 00001h                   ; 6a 01
    91089033    push dword 000000000h                     ; 66 6a 00
     
    91139038    xor bx, bx                                ; 31 db
    91149039    mov cx, strict word 00010h                ; b9 10 00
    9115     call 05e5ch                               ; e8 eb f8
     9040    call 05dc3h                               ; e8 eb f8
    91169041    mov dword [bp+016h], strict dword 000000004h ; 66 c7 46 16 04 00 00 00
    9117     jmp short 06502h                          ; eb 87
     9042    jmp short 06469h                          ; eb 87
    91189043    push strict byte 00003h                   ; 6a 03
    91199044    push dword 000000000h                     ; 66 6a 00
     
    91249049    mov bx, ax                                ; 89 c3
    91259050    mov ax, si                                ; 89 f0
    9126     call 05e5ch                               ; e8 cd f8
     9051    call 05dc3h                               ; e8 cd f8
    91279052    mov dword [bp+016h], strict dword 000000005h ; 66 c7 46 16 05 00 00 00
    9128     jmp near 06502h                           ; e9 68 ff
     9053    jmp near 06469h                           ; e9 68 ff
    91299054    push strict byte 00002h                   ; 6a 02
    91309055    push dword 000000000h                     ; 66 6a 00
     
    91349059    xor bx, bx                                ; 31 db
    91359060    mov cx, strict word 0fffch                ; b9 fc ff
    9136     call 05e5ch                               ; e8 ac f8
     9061    call 05dc3h                               ; e8 ac f8
    91379062    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9138     jne short 065bdh                          ; 75 07
     9063    jne short 06524h                          ; 75 07
    91399064    mov ax, word [bp-006h]                    ; 8b 46 fa
    91409065    test ax, ax                               ; 85 c0
    9141     je short 065d3h                           ; 74 16
     9066    je short 0653ah                           ; 74 16
    91429067    mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00
    9143     jmp near 06502h                           ; e9 3a ff
     9068    jmp near 06469h                           ; e9 3a ff
    91449069    mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00
    9145     jmp near 06502h                           ; e9 2f ff
     9070    jmp near 06469h                           ; e9 2f ff
    91469071    mov word [bp+016h], ax                    ; 89 46 16
    91479072    mov word [bp+018h], ax                    ; 89 46 18
    9148     jmp near 06502h                           ; e9 26 ff
     9073    jmp near 06469h                           ; e9 26 ff
    91499074    push strict byte 00002h                   ; 6a 02
    91509075    push dword 000000000h                     ; 66 6a 00
     
    91549079    xor bx, bx                                ; 31 db
    91559080    xor cx, cx                                ; 31 c9
    9156     call 05e5ch                               ; e8 6b f8
     9081    call 05dc3h                               ; e8 6b f8
    91579082    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9158     jne short 065feh                          ; 75 07
     9083    jne short 06565h                          ; 75 07
    91599084    mov ax, word [bp-006h]                    ; 8b 46 fa
    91609085    test ax, ax                               ; 85 c0
    9161     je short 06600h                           ; 74 02
    9162     jmp short 065bdh                          ; eb bd
     9086    je short 06567h                           ; 74 02
     9087    jmp short 06524h                          ; eb bd
    91639088    mov word [bp+016h], ax                    ; 89 46 16
    91649089    mov word [bp+018h], ax                    ; 89 46 18
    9165     jmp near 06502h                           ; e9 f9 fe
     9090    jmp near 06469h                           ; e9 f9 fe
    91669091    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9167     jne short 06617h                          ; 75 08
     9092    jne short 0657eh                          ; 75 08
    91689093    cmp word [bp-006h], strict byte 00000h    ; 83 7e fa 00
    9169     je near 06502h                            ; 0f 84 eb fe
     9094    je near 06469h                            ; 0f 84 eb fe
    91709095    push strict byte 00001h                   ; 6a 01
    91719096    mov al, byte [bp-002h]                    ; 8a 46 fe
     
    91809105    xor bx, bx                                ; 31 db
    91819106    xor cx, cx                                ; 31 c9
    9182     call 05e5ch                               ; e8 28 f8
     9107    call 05dc3h                               ; e8 28 f8
    91839108    xor ax, ax                                ; 31 c0
    91849109    mov word [bp+016h], ax                    ; 89 46 16
    91859110    mov word [bp+018h], ax                    ; 89 46 18
    9186     jmp near 06502h                           ; e9 c3 fe
     9111    jmp near 06469h                           ; e9 c3 fe
    91879112    and byte [bp+02ah], 0feh                  ; 80 66 2a fe
    91889113    mov ax, strict word 00031h                ; b8 31 00
    9189     call 0165ch                               ; e8 13 b0
     9114    call 0165ch                               ; e8 ac b0
    91909115    xor ah, ah                                ; 30 e4
    91919116    mov dx, ax                                ; 89 c2
    91929117    sal dx, 008h                              ; c1 e2 08
    91939118    mov ax, strict word 00030h                ; b8 30 00
    9194     call 0165ch                               ; e8 06 b0
     9119    call 0165ch                               ; e8 9f b0
    91959120    xor ah, ah                                ; 30 e4
    91969121    or dx, ax                                 ; 09 c2
    91979122    mov word [bp+01eh], dx                    ; 89 56 1e
    91989123    cmp dx, 03c00h                            ; 81 fa 00 3c
    9199     jbe short 06668h                          ; 76 05
     9124    jbe short 065cfh                          ; 76 05
    92009125    mov word [bp+01eh], 03c00h                ; c7 46 1e 00 3c
    92019126    mov ax, strict word 00035h                ; b8 35 00
    9202     call 0165ch                               ; e8 ee af
     9127    call 0165ch                               ; e8 87 b0
    92039128    movzx dx, al                              ; 0f b6 d0
    92049129    sal dx, 008h                              ; c1 e2 08
    92059130    mov ax, strict word 00034h                ; b8 34 00
    9206     call 0165ch                               ; e8 e2 af
     9131    call 0165ch                               ; e8 7b b0
    92079132    xor ah, ah                                ; 30 e4
    92089133    or dx, ax                                 ; 09 c2
     
    92149139    pop si                                    ; 5e
    92159140    retn                                      ; c3
    9216     mov bx, 00cech                            ; bb ec 0c
     9141    mov bx, 00d32h                            ; bb 32 0d
    92179142    mov cx, ds                                ; 8c d9
    92189143    mov ax, strict word 00004h                ; b8 04 00
    9219     call 018aeh                               ; e8 16 b2
     9144    call 018aeh                               ; e8 af b2
    92209145    push word [bp+016h]                       ; ff 76 16
    92219146    push word [bp+022h]                       ; ff 76 22
    9222     push 0084ah                               ; 68 4a 08
     9147    push 0084ch                               ; 68 4c 08
    92239148    push strict byte 00004h                   ; 6a 04
    9224     call 018e9h                               ; e8 43 b2
     9149    call 018e9h                               ; e8 dc b2
    92259150    add sp, strict byte 00008h                ; 83 c4 08
    92269151    or byte [bp+02ah], 001h                   ; 80 4e 2a 01
     
    92329157    pop si                                    ; 5e
    92339158    retn                                      ; c3
    9234 init_rtc_:                                   ; 0xf66ba LB 0x25
     9159init_rtc_:                                   ; 0xf6621 LB 0x25
    92359160    push dx                                   ; 52
    92369161    push bp                                   ; 55
     
    92389163    mov dx, strict word 00026h                ; ba 26 00
    92399164    mov ax, strict word 0000ah                ; b8 0a 00
    9240     call 0166dh                               ; e8 a6 af
     9165    call 0166dh                               ; e8 3f b0
    92419166    mov dx, strict word 00002h                ; ba 02 00
    92429167    mov ax, strict word 0000bh                ; b8 0b 00
    9243     call 0166dh                               ; e8 9d af
     9168    call 0166dh                               ; e8 36 b0
    92449169    mov ax, strict word 0000ch                ; b8 0c 00
    9245     call 0165ch                               ; e8 86 af
     9170    call 0165ch                               ; e8 1f b0
    92469171    mov ax, strict word 0000dh                ; b8 0d 00
    9247     call 0165ch                               ; e8 80 af
     9172    call 0165ch                               ; e8 19 b0
    92489173    pop bp                                    ; 5d
    92499174    pop dx                                    ; 5a
    92509175    retn                                      ; c3
    9251 rtc_updating_:                               ; 0xf66df LB 0x1f
     9176rtc_updating_:                               ; 0xf6646 LB 0x1f
    92529177    push dx                                   ; 52
    92539178    push bp                                   ; 55
     
    92559180    mov dx, 061a8h                            ; ba a8 61
    92569181    dec dx                                    ; 4a
    9257     je short 066f8h                           ; 74 0f
     9182    je short 0665fh                           ; 74 0f
    92589183    mov ax, strict word 0000ah                ; b8 0a 00
    9259     call 0165ch                               ; e8 6d af
     9184    call 0165ch                               ; e8 06 b0
    92609185    test AL, strict byte 080h                 ; a8 80
    9261     jne short 066e6h                          ; 75 f3
     9186    jne short 0664dh                          ; 75 f3
    92629187    xor ax, ax                                ; 31 c0
    92639188    pop bp                                    ; 5d
     
    92689193    pop dx                                    ; 5a
    92699194    retn                                      ; c3
    9270 _int70_function:                             ; 0xf66fe LB 0xbb
     9195_int70_function:                             ; 0xf6665 LB 0xbb
    92719196    push si                                   ; 56
    92729197    enter 00002h, 000h                        ; c8 02 00 00
    92739198    mov ax, strict word 0000bh                ; b8 0b 00
    9274     call 0165ch                               ; e8 53 af
     9199    call 0165ch                               ; e8 ec af
    92759200    mov dl, al                                ; 88 c2
    92769201    mov byte [bp-002h], al                    ; 88 46 fe
    92779202    mov ax, strict word 0000ch                ; b8 0c 00
    9278     call 0165ch                               ; e8 48 af
     9203    call 0165ch                               ; e8 e1 af
    92799204    mov dh, al                                ; 88 c6
    92809205    test dl, 060h                             ; f6 c2 60
    9281     je near 067a3h                            ; 0f 84 86 00
     9206    je near 0670ah                            ; 0f 84 86 00
    92829207    test AL, strict byte 020h                 ; a8 20
    9283     je short 06725h                           ; 74 04
     9208    je short 0668ch                           ; 74 04
    92849209    sti                                       ; fb
    92859210    int 04ah                                  ; cd 4a
    92869211    cli                                       ; fa
    92879212    test dh, 040h                             ; f6 c6 40
    9288     je near 067a3h                            ; 0f 84 77 00
     9213    je near 0670ah                            ; 0f 84 77 00
    92899214    mov dx, 000a0h                            ; ba a0 00
    92909215    mov ax, strict word 00040h                ; b8 40 00
    9291     call 01600h                               ; e8 cb ae
     9216    call 01600h                               ; e8 64 af
    92929217    test al, al                               ; 84 c0
    9293     je short 067a3h                           ; 74 6a
     9218    je short 0670ah                           ; 74 6a
    92949219    mov dx, 0009ch                            ; ba 9c 00
    92959220    mov ax, strict word 00040h                ; b8 40 00
    9296     call 01638h                               ; e8 f6 ae
     9221    call 01638h                               ; e8 8f af
    92979222    test dx, dx                               ; 85 d2
    9298     jne short 0678fh                          ; 75 49
     9223    jne short 066f6h                          ; 75 49
    92999224    cmp ax, 003d1h                            ; 3d d1 03
    9300     jnc short 0678fh                          ; 73 44
     9225    jnc short 066f6h                          ; 73 44
    93019226    mov dx, 00098h                            ; ba 98 00
    93029227    mov ax, strict word 00040h                ; b8 40 00
    9303     call 0161ch                               ; e8 c8 ae
     9228    call 0161ch                               ; e8 61 af
    93049229    mov si, ax                                ; 89 c6
    93059230    mov dx, 0009ah                            ; ba 9a 00
    93069231    mov ax, strict word 00040h                ; b8 40 00
    9307     call 0161ch                               ; e8 bd ae
     9232    call 0161ch                               ; e8 56 af
    93089233    mov cx, ax                                ; 89 c1
    93099234    xor bx, bx                                ; 31 db
    93109235    mov dx, 000a0h                            ; ba a0 00
    93119236    mov ax, strict word 00040h                ; b8 40 00
    9312     call 0160eh                               ; e8 a2 ae
     9237    call 0160eh                               ; e8 3b af
    93139238    mov al, byte [bp-002h]                    ; 8a 46 fe
    93149239    and AL, strict byte 037h                  ; 24 37
    93159240    movzx dx, al                              ; 0f b6 d0
    93169241    mov ax, strict word 0000bh                ; b8 0b 00
    9317     call 0166dh                               ; e8 f3 ae
     9242    call 0166dh                               ; e8 8c af
    93189243    mov dx, cx                                ; 89 ca
    93199244    mov ax, si                                ; 89 f0
    9320     call 01600h                               ; e8 7f ae
     9245    call 01600h                               ; e8 18 af
    93219246    or AL, strict byte 080h                   ; 0c 80
    93229247    movzx bx, al                              ; 0f b6 d8
    93239248    mov dx, cx                                ; 89 ca
    93249249    mov ax, si                                ; 89 f0
    9325     call 0160eh                               ; e8 81 ae
    9326     jmp short 067a3h                          ; eb 14
     9250    call 0160eh                               ; e8 1a af
     9251    jmp short 0670ah                          ; eb 14
    93279252    mov bx, ax                                ; 89 c3
    93289253    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    93319256    mov dx, 0009ch                            ; ba 9c 00
    93329257    mov ax, strict word 00040h                ; b8 40 00
    9333     call 0164ah                               ; e8 a7 ae
    9334     call 0e03bh                               ; e8 95 78
     9258    call 0164ah                               ; e8 40 af
     9259    call 0e03bh                               ; e8 2e 79
    93359260    leave                                     ; c9
    93369261    pop si                                    ; 5e
    93379262    retn                                      ; c3
    9338     db  0d0h, 067h, 0f7h, 067h, 01ch, 068h, 04eh, 068h, 09ch, 068h, 0d2h, 068h, 014h, 069h, 069h, 069h
    9339 _int1a_function:                             ; 0xf67b9 LB 0x1c0
     9263    aaa                                       ; 37
     9264    db  067h, 05eh
     9265    ; pop si                                    ; 67 5e
     9266    and word [edi-04bh], strict byte 00067h   ; 67 83 67 b5 67
     9267    add bp, word [bx+si+039h]                 ; 03 68 39
     9268    push 0687bh                               ; 68 7b 68
     9269    db  0d0h
     9270    db  068h
     9271_int1a_function:                             ; 0xf6720 LB 0x1c0
    93409272    push bp                                   ; 55
    93419273    mov bp, sp                                ; 89 e5
     
    93439275    mov al, byte [bp+013h]                    ; 8a 46 13
    93449276    cmp AL, strict byte 007h                  ; 3c 07
    9345     jnbe near 067f5h                          ; 0f 87 2f 00
     9277    jnbe near 0675ch                          ; 0f 87 2f 00
    93469278    movzx bx, al                              ; 0f b6 d8
    93479279    add bx, bx                                ; 01 db
    9348     jmp word [cs:bx+067a9h]                   ; 2e ff a7 a9 67
     9280    jmp word [cs:bx+06710h]                   ; 2e ff a7 10 67
    93499281    cli                                       ; fa
    93509282    mov bx, 0046eh                            ; bb 6e 04
     
    93789310    pop bp                                    ; 5d
    93799311    retn                                      ; c3
    9380     call 066dfh                               ; e8 c0 fe
     9312    call 06646h                               ; e8 c0 fe
    93819313    test ax, ax                               ; 85 c0
    9382     je short 06825h                           ; 74 02
     9314    je short 0678ch                           ; 74 02
    93839315    pop bp                                    ; 5d
    93849316    retn                                      ; c3
    93859317    xor ax, ax                                ; 31 c0
    9386     call 0165ch                               ; e8 32 ae
     9318    call 0165ch                               ; e8 cb ae
    93879319    mov byte [bp+00fh], al                    ; 88 46 0f
    93889320    mov ax, strict word 00002h                ; b8 02 00
    9389     call 0165ch                               ; e8 29 ae
     9321    call 0165ch                               ; e8 c2 ae
    93909322    mov byte [bp+010h], al                    ; 88 46 10
    93919323    mov ax, strict word 00004h                ; b8 04 00
    9392     call 0165ch                               ; e8 20 ae
     9324    call 0165ch                               ; e8 b9 ae
    93939325    mov bl, al                                ; 88 c3
    93949326    mov byte [bp+011h], al                    ; 88 46 11
    93959327    mov ax, strict word 0000bh                ; b8 0b 00
    9396     call 0165ch                               ; e8 15 ae
     9328    call 0165ch                               ; e8 ae ae
    93979329    and AL, strict byte 001h                  ; 24 01
    93989330    mov byte [bp+00eh], al                    ; 88 46 0e
    9399     jmp short 06893h                          ; eb 45
    9400     call 066dfh                               ; e8 8e fe
     9331    jmp short 067fah                          ; eb 45
     9332    call 06646h                               ; e8 8e fe
    94019333    test ax, ax                               ; 85 c0
    9402     je short 06858h                           ; 74 03
    9403     call 066bah                               ; e8 62 fe
     9334    je short 067bfh                           ; 74 03
     9335    call 06621h                               ; e8 62 fe
    94049336    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    94059337    xor ax, ax                                ; 31 c0
    9406     call 0166dh                               ; e8 0c ae
     9338    call 0166dh                               ; e8 a5 ae
    94079339    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    94089340    mov ax, strict word 00002h                ; b8 02 00
    9409     call 0166dh                               ; e8 02 ae
     9341    call 0166dh                               ; e8 9b ae
    94109342    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    94119343    mov ax, strict word 00004h                ; b8 04 00
    9412     call 0166dh                               ; e8 f8 ad
     9344    call 0166dh                               ; e8 91 ae
    94139345    mov ax, strict word 0000bh                ; b8 0b 00
    9414     call 0165ch                               ; e8 e1 ad
     9346    call 0165ch                               ; e8 7a ae
    94159347    mov bl, al                                ; 88 c3
    94169348    and bl, 060h                              ; 80 e3 60
     
    94219353    movzx dx, bl                              ; 0f b6 d3
    94229354    mov ax, strict word 0000bh                ; b8 0b 00
    9423     call 0166dh                               ; e8 da ad
     9355    call 0166dh                               ; e8 73 ae
    94249356    mov byte [bp+013h], 000h                  ; c6 46 13 00
    94259357    mov byte [bp+012h], bl                    ; 88 5e 12
     
    94279359    retn                                      ; c3
    94289360    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9429     call 066dfh                               ; e8 3c fe
     9361    call 06646h                               ; e8 3c fe
    94309362    test ax, ax                               ; 85 c0
    9431     je short 068a9h                           ; 74 02
     9363    je short 06810h                           ; 74 02
    94329364    pop bp                                    ; 5d
    94339365    retn                                      ; c3
    94349366    mov ax, strict word 00009h                ; b8 09 00
    9435     call 0165ch                               ; e8 ad ad
     9367    call 0165ch                               ; e8 46 ae
    94369368    mov byte [bp+010h], al                    ; 88 46 10
    94379369    mov ax, strict word 00008h                ; b8 08 00
    9438     call 0165ch                               ; e8 a4 ad
     9370    call 0165ch                               ; e8 3d ae
    94399371    mov byte [bp+00fh], al                    ; 88 46 0f
    94409372    mov ax, strict word 00007h                ; b8 07 00
    9441     call 0165ch                               ; e8 9b ad
     9373    call 0165ch                               ; e8 34 ae
    94429374    mov byte [bp+00eh], al                    ; 88 46 0e
    94439375    mov ax, strict word 00032h                ; b8 32 00
    9444     call 0165ch                               ; e8 92 ad
     9376    call 0165ch                               ; e8 2b ae
    94459377    mov byte [bp+011h], al                    ; 88 46 11
    94469378    mov byte [bp+012h], al                    ; 88 46 12
    94479379    pop bp                                    ; 5d
    94489380    retn                                      ; c3
    9449     call 066dfh                               ; e8 0a fe
     9381    call 06646h                               ; e8 0a fe
    94509382    test ax, ax                               ; 85 c0
    9451     je short 068deh                           ; 74 05
    9452     call 066bah                               ; e8 de fd
     9383    je short 06845h                           ; 74 05
     9384    call 06621h                               ; e8 de fd
    94539385    pop bp                                    ; 5d
    94549386    retn                                      ; c3
    94559387    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    94569388    mov ax, strict word 00009h                ; b8 09 00
    9457     call 0166dh                               ; e8 85 ad
     9389    call 0166dh                               ; e8 1e ae
    94589390    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    94599391    mov ax, strict word 00008h                ; b8 08 00
    9460     call 0166dh                               ; e8 7b ad
     9392    call 0166dh                               ; e8 14 ae
    94619393    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    94629394    mov ax, strict word 00007h                ; b8 07 00
    9463     call 0166dh                               ; e8 71 ad
     9395    call 0166dh                               ; e8 0a ae
    94649396    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    94659397    mov ax, strict word 00032h                ; b8 32 00
    9466     call 0166dh                               ; e8 67 ad
     9398    call 0166dh                               ; e8 00 ae
    94679399    mov ax, strict word 0000bh                ; b8 0b 00
    9468     call 0165ch                               ; e8 50 ad
     9400    call 0165ch                               ; e8 e9 ad
    94699401    mov bl, al                                ; 88 c3
    94709402    and bl, 07fh                              ; 80 e3 7f
    9471     jmp near 0688ah                           ; e9 76 ff
     9403    jmp near 067f1h                           ; e9 76 ff
    94729404    mov ax, strict word 0000bh                ; b8 0b 00
    9473     call 0165ch                               ; e8 42 ad
     9405    call 0165ch                               ; e8 db ad
    94749406    mov bl, al                                ; 88 c3
    94759407    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    94769408    test AL, strict byte 020h                 ; a8 20
    9477     je short 06927h                           ; 74 02
     9409    je short 0688eh                           ; 74 02
    94789410    pop bp                                    ; 5d
    94799411    retn                                      ; c3
    9480     call 066dfh                               ; e8 b5 fd
     9412    call 06646h                               ; e8 b5 fd
    94819413    test ax, ax                               ; 85 c0
    9482     je short 06931h                           ; 74 03
    9483     call 066bah                               ; e8 89 fd
     9414    je short 06898h                           ; 74 03
     9415    call 06621h                               ; e8 89 fd
    94849416    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    94859417    mov ax, strict word 00001h                ; b8 01 00
    9486     call 0166dh                               ; e8 32 ad
     9418    call 0166dh                               ; e8 cb ad
    94879419    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    94889420    mov ax, strict word 00003h                ; b8 03 00
    9489     call 0166dh                               ; e8 28 ad
     9421    call 0166dh                               ; e8 c1 ad
    94909422    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    94919423    mov ax, strict word 00005h                ; b8 05 00
    9492     call 0166dh                               ; e8 1e ad
     9424    call 0166dh                               ; e8 b7 ad
    94939425    mov dx, 000a1h                            ; ba a1 00
    94949426    in AL, DX                                 ; ec
     
    95029434    movzx dx, al                              ; 0f b6 d0
    95039435    mov ax, strict word 0000bh                ; b8 0b 00
    9504     call 0166dh                               ; e8 06 ad
     9436    call 0166dh                               ; e8 9f ad
    95059437    pop bp                                    ; 5d
    95069438    retn                                      ; c3
    95079439    mov ax, strict word 0000bh                ; b8 0b 00
    9508     call 0165ch                               ; e8 ed ac
     9440    call 0165ch                               ; e8 86 ad
    95099441    mov bl, al                                ; 88 c3
    95109442    and AL, strict byte 057h                  ; 24 57
    95119443    movzx dx, al                              ; 0f b6 d0
    9512     jmp near 0688dh                           ; e9 14 ff
    9513 send_to_mouse_ctrl_:                         ; 0xf6979 LB 0x31
     9444    jmp near 067f4h                           ; e9 14 ff
     9445send_to_mouse_ctrl_:                         ; 0xf68e0 LB 0x31
    95149446    push bx                                   ; 53
    95159447    push dx                                   ; 52
     
    95229454    ; sub ah, ah                                ; 2a e4
    95239455    test AL, strict byte 002h                 ; a8 02
    9524     je short 06998h                           ; 74 0e
    9525     push 00884h                               ; 68 84 08
    9526     push 010b4h                               ; 68 b4 10
     9456    je short 068ffh                           ; 74 0e
     9457    push 00886h                               ; 68 86 08
     9458    push 010fah                               ; 68 fa 10
    95279459    push strict byte 00007h                   ; 6a 07
    9528     call 018e9h                               ; e8 54 af
     9460    call 018e9h                               ; e8 ed af
    95299461    add sp, strict byte 00006h                ; 83 c4 06
    95309462    mov AL, strict byte 0d4h                  ; b0 d4
     
    95399471    pop bx                                    ; 5b
    95409472    retn                                      ; c3
    9541 get_mouse_data_:                             ; 0xf69aa LB 0x38
     9473get_mouse_data_:                             ; 0xf6911 LB 0x38
    95429474    push bx                                   ; 53
    95439475    push cx                                   ; 51
     
    95539485    and ax, strict word 00021h                ; 25 21 00
    95549486    cmp ax, strict word 00021h                ; 3d 21 00
    9555     je short 069cbh                           ; 74 07
     9487    je short 06932h                           ; 74 07
    95569488    test cx, cx                               ; 85 c9
    9557     je short 069cbh                           ; 74 03
     9489    je short 06932h                           ; 74 03
    95589490    dec cx                                    ; 49
    9559     jmp short 069b6h                          ; eb eb
     9491    jmp short 0691dh                          ; eb eb
    95609492    test cx, cx                               ; 85 c9
    9561     jne short 069d3h                          ; 75 04
     9493    jne short 0693ah                          ; 75 04
    95629494    mov AL, strict byte 001h                  ; b0 01
    9563     jmp short 069deh                          ; eb 0b
     9495    jmp short 06945h                          ; eb 0b
    95649496    mov dx, strict word 00060h                ; ba 60 00
    95659497    in AL, DX                                 ; ec
     
    95729504    pop bx                                    ; 5b
    95739505    retn                                      ; c3
    9574 set_kbd_command_byte_:                       ; 0xf69e2 LB 0x2f
     9506set_kbd_command_byte_:                       ; 0xf6949 LB 0x2f
    95759507    push bx                                   ; 53
    95769508    push dx                                   ; 52
     
    95839515    ; sub ah, ah                                ; 2a e4
    95849516    test AL, strict byte 002h                 ; a8 02
    9585     je short 06a01h                           ; 74 0e
    9586     push 0088eh                               ; 68 8e 08
    9587     push 010b4h                               ; 68 b4 10
     9517    je short 06968h                           ; 74 0e
     9518    push 00890h                               ; 68 90 08
     9519    push 010fah                               ; 68 fa 10
    95889520    push strict byte 00007h                   ; 6a 07
    9589     call 018e9h                               ; e8 eb ae
     9521    call 018e9h                               ; e8 84 af
    95909522    add sp, strict byte 00006h                ; 83 c4 06
    95919523    mov AL, strict byte 060h                  ; b0 60
     
    95999531    pop bx                                    ; 5b
    96009532    retn                                      ; c3
    9601 _int74_function:                             ; 0xf6a11 LB 0xc6
     9533_int74_function:                             ; 0xf6978 LB 0xc6
    96029534    enter 00008h, 000h                        ; c8 08 00 00
    96039535    mov dx, strict word 0000eh                ; ba 0e 00
    96049536    mov ax, strict word 00040h                ; b8 40 00
    9605     call 0161ch                               ; e8 fe ab
     9537    call 0161ch                               ; e8 97 ac
    96069538    mov cx, ax                                ; 89 c1
    96079539    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    96129544    and AL, strict byte 021h                  ; 24 21
    96139545    cmp AL, strict byte 021h                  ; 3c 21
    9614     jne near 06ac5h                           ; 0f 85 92 00
     9546    jne near 06a2ch                           ; 0f 85 92 00
    96159547    mov dx, strict word 00060h                ; ba 60 00
    96169548    in AL, DX                                 ; ec
     
    96209552    mov dx, strict word 00026h                ; ba 26 00
    96219553    mov ax, cx                                ; 89 c8
    9622     call 01600h                               ; e8 bd ab
     9554    call 01600h                               ; e8 56 ac
    96239555    mov byte [bp-006h], al                    ; 88 46 fa
    96249556    mov dx, strict word 00027h                ; ba 27 00
    96259557    mov ax, cx                                ; 89 c8
    9626     call 01600h                               ; e8 b2 ab
     9558    call 01600h                               ; e8 4b ac
    96279559    mov byte [bp-008h], al                    ; 88 46 f8
    96289560    test AL, strict byte 080h                 ; a8 80
    9629     je short 06ac5h                           ; 74 70
     9561    je short 06a2ch                           ; 74 70
    96309562    mov al, byte [bp-008h]                    ; 8a 46 f8
    96319563    and AL, strict byte 007h                  ; 24 07
     
    96389570    add dx, strict byte 00028h                ; 83 c2 28
    96399571    mov ax, cx                                ; 89 c8
    9640     call 0160eh                               ; e8 9c ab
     9572    call 0160eh                               ; e8 35 ac
    96419573    mov al, byte [bp-004h]                    ; 8a 46 fc
    96429574    cmp al, byte [bp-002h]                    ; 3a 46 fe
    9643     jc short 06ab6h                           ; 72 3c
     9575    jc short 06a1dh                           ; 72 3c
    96449576    mov dx, strict word 00028h                ; ba 28 00
    96459577    mov ax, cx                                ; 89 c8
    9646     call 01600h                               ; e8 7e ab
     9578    call 01600h                               ; e8 17 ac
    96479579    xor ah, ah                                ; 30 e4
    96489580    mov word [bp+00ch], ax                    ; 89 46 0c
    96499581    mov dx, strict word 00029h                ; ba 29 00
    96509582    mov ax, cx                                ; 89 c8
    9651     call 01600h                               ; e8 71 ab
     9583    call 01600h                               ; e8 0a ac
    96529584    xor ah, ah                                ; 30 e4
    96539585    mov word [bp+00ah], ax                    ; 89 46 0a
    96549586    mov dx, strict word 0002ah                ; ba 2a 00
    96559587    mov ax, cx                                ; 89 c8
    9656     call 01600h                               ; e8 64 ab
     9588    call 01600h                               ; e8 fd ab
    96579589    xor ah, ah                                ; 30 e4
    96589590    mov word [bp+008h], ax                    ; 89 46 08
     
    96619593    mov byte [bp-006h], ah                    ; 88 66 fa
    96629594    test byte [bp-008h], 080h                 ; f6 46 f8 80
    9663     je short 06ab9h                           ; 74 0a
     9595    je short 06a20h                           ; 74 0a
    96649596    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    9665     jmp short 06ab9h                          ; eb 03
     9597    jmp short 06a20h                          ; eb 03
    96669598    inc byte [bp-006h]                        ; fe 46 fa
    96679599    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    96689600    mov dx, strict word 00026h                ; ba 26 00
    96699601    mov ax, cx                                ; 89 c8
    9670     call 0160eh                               ; e8 49 ab
     9602    call 0160eh                               ; e8 e2 ab
    96719603    leave                                     ; c9
    96729604    retn                                      ; c3
    9673     sbb word [bp+di-071h], bp                 ; 19 6b 8f
    9674     imul dx, word [bp+si], strict byte 0006ch ; 6b 12 6c
    9675     mov word [0116ch], ax                     ; a3 6c 11
    9676     insw                                      ; 6d
    9677     imul di, word [gs:bx+di], strict byte 0006dh ; 65 6b 39 6d
    9678     db  0feh
    9679     insw                                      ; 6d
    9680 _int15_function_mouse:                       ; 0xf6ad7 LB 0x386
     9605    sub byte [bp+si-00ah], 06ah               ; 80 6a f6 6a
     9606    jns short 06a9fh                          ; 79 6b
     9607    or ch, byte [si+078h]                     ; 0a 6c 78
     9608    insb                                      ; 6c
     9609    int3                                      ; cc
     9610    push strict byte 0ffa0h                   ; 6a a0
     9611    insb                                      ; 6c
     9612    db  065h, 06dh
     9613    ; gs insw                                   ; 65 6d
     9614_int15_function_mouse:                       ; 0xf6a3e LB 0x386
    96819615    push si                                   ; 56
    96829616    enter 00006h, 000h                        ; c8 06 00 00
    96839617    mov dx, strict word 0000eh                ; ba 0e 00
    96849618    mov ax, strict word 00040h                ; b8 40 00
    9685     call 0161ch                               ; e8 37 ab
     9619    call 0161ch                               ; e8 d0 ab
    96869620    mov cx, ax                                ; 89 c1
    96879621    cmp byte [bp+014h], 007h                  ; 80 7e 14 07
    9688     jbe short 06af8h                          ; 76 0b
     9622    jbe short 06a5fh                          ; 76 0b
    96899623    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    96909624    mov byte [bp+015h], 001h                  ; c6 46 15 01
     
    96939627    retn                                      ; c3
    96949628    mov ax, strict word 00065h                ; b8 65 00
    9695     call 069e2h                               ; e8 e4 fe
     9629    call 06949h                               ; e8 e4 fe
    96969630    and word [bp+01ah], strict byte 0fffeh    ; 83 66 1a fe
    96979631    mov byte [bp+015h], 000h                  ; c6 46 15 00
    96989632    mov al, byte [bp+014h]                    ; 8a 46 14
    96999633    cmp AL, strict byte 007h                  ; 3c 07
    9700     jnbe near 06e41h                          ; 0f 87 32 03
     9634    jnbe near 06da8h                          ; 0f 87 32 03
    97019635    movzx si, al                              ; 0f b6 f0
    97029636    add si, si                                ; 01 f6
    9703     jmp word [cs:si+06ac7h]                   ; 2e ff a4 c7 6a
     9637    jmp word [cs:si+06a2eh]                   ; 2e ff a4 2e 6a
    97049638    cmp byte [bp+00fh], 001h                  ; 80 7e 0f 01
    9705     jnbe near 06e4ch                          ; 0f 87 2b 03
     9639    jnbe near 06db3h                          ; 0f 87 2b 03
    97069640    mov dx, strict word 00027h                ; ba 27 00
    97079641    mov ax, cx                                ; 89 c8
    9708     call 01600h                               ; e8 d7 aa
     9642    call 01600h                               ; e8 70 ab
    97099643    test AL, strict byte 080h                 ; a8 80
    9710     jne short 06b38h                          ; 75 0b
     9644    jne short 06a9fh                          ; 75 0b
    97119645    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    97129646    mov byte [bp+015h], 005h                  ; c6 46 15 05
    9713     jmp near 06e54h                           ; e9 1c 03
     9647    jmp near 06dbbh                           ; e9 1c 03
    97149648    cmp byte [bp+00fh], 000h                  ; 80 7e 0f 00
    97159649    db  00fh, 094h, 0c0h
     
    97179651    add AL, strict byte 0f4h                  ; 04 f4
    97189652    xor ah, ah                                ; 30 e4
    9719     call 06979h                               ; e8 33 fe
     9653    call 068e0h                               ; e8 33 fe
    97209654    test al, al                               ; 84 c0
    9721     jne near 06ddah                           ; 0f 85 8e 02
     9655    jne near 06d41h                           ; 0f 85 8e 02
    97229656    mov dx, ss                                ; 8c d2
    97239657    lea ax, [bp-006h]                         ; 8d 46 fa
    9724     call 069aah                               ; e8 56 fe
     9658    call 06911h                               ; e8 56 fe
    97259659    test al, al                               ; 84 c0
    9726     je near 06e54h                            ; 0f 84 fa 02
     9660    je near 06dbbh                            ; 0f 84 fa 02
    97279661    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9728     jne near 06ddah                           ; 0f 85 78 02
    9729     jmp near 06e54h                           ; e9 ef 02
     9662    jne near 06d41h                           ; 0f 85 78 02
     9663    jmp near 06dbbh                           ; e9 ef 02
    97309664    mov al, byte [bp+00fh]                    ; 8a 46 0f
    97319665    cmp AL, strict byte 001h                  ; 3c 01
    9732     jc short 06b70h                           ; 72 04
     9666    jc short 06ad7h                           ; 72 04
    97339667    cmp AL, strict byte 008h                  ; 3c 08
    9734     jbe short 06b73h                          ; 76 03
    9735     jmp near 06d06h                           ; e9 93 01
     9668    jbe short 06adah                          ; 76 03
     9669    jmp near 06c6dh                           ; e9 93 01
    97369670    mov dx, strict word 00027h                ; ba 27 00
    97379671    mov ax, cx                                ; 89 c8
    9738     call 01600h                               ; e8 85 aa
     9672    call 01600h                               ; e8 1e ab
    97399673    mov ah, byte [bp+00fh]                    ; 8a 66 0f
    97409674    db  0feh, 0cch
     
    97459679    mov dx, strict word 00027h                ; ba 27 00
    97469680    mov ax, cx                                ; 89 c8
    9747     call 0160eh                               ; e8 7f aa
     9681    call 0160eh                               ; e8 18 ab
    97489682    mov dx, strict word 00026h                ; ba 26 00
    97499683    mov ax, cx                                ; 89 c8
    9750     call 01600h                               ; e8 69 aa
     9684    call 01600h                               ; e8 02 ab
    97519685    and AL, strict byte 0f8h                  ; 24 f8
    97529686    movzx bx, al                              ; 0f b6 d8
    97539687    mov dx, strict word 00026h                ; ba 26 00
    97549688    mov ax, cx                                ; 89 c8
    9755     call 0160eh                               ; e8 6a aa
     9689    call 0160eh                               ; e8 03 ab
    97569690    mov ax, 000ffh                            ; b8 ff 00
    9757     call 06979h                               ; e8 cf fd
     9691    call 068e0h                               ; e8 cf fd
    97589692    test al, al                               ; 84 c0
    9759     jne near 06ddah                           ; 0f 85 2a 02
     9693    jne near 06d41h                           ; 0f 85 2a 02
    97609694    mov dx, ss                                ; 8c d2
    97619695    lea ax, [bp-002h]                         ; 8d 46 fe
    9762     call 069aah                               ; e8 f2 fd
     9696    call 06911h                               ; e8 f2 fd
    97639697    mov cl, al                                ; 88 c1
    97649698    cmp byte [bp-002h], 0feh                  ; 80 7e fe fe
    9765     jne short 06bcbh                          ; 75 0b
     9699    jne short 06b32h                          ; 75 0b
    97669700    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    97679701    mov byte [bp+015h], 004h                  ; c6 46 15 04
    9768     jmp near 06e54h                           ; e9 89 02
     9702    jmp near 06dbbh                           ; e9 89 02
    97699703    cmp byte [bp-002h], 0fah                  ; 80 7e fe fa
    9770     je short 06be1h                           ; 74 10
     9704    je short 06b48h                           ; 74 10
    97719705    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    97729706    push ax                                   ; 50
    9773     push 00899h                               ; 68 99 08
     9707    push 0089bh                               ; 68 9b 08
    97749708    push strict byte 00007h                   ; 6a 07
    9775     call 018e9h                               ; e8 0b ad
     9709    call 018e9h                               ; e8 a4 ad
    97769710    add sp, strict byte 00006h                ; 83 c4 06
    97779711    test cl, cl                               ; 84 c9
    9778     jne near 06ddah                           ; 0f 85 f3 01
     9712    jne near 06d41h                           ; 0f 85 f3 01
    97799713    mov dx, ss                                ; 8c d2
    97809714    lea ax, [bp-006h]                         ; 8d 46 fa
    9781     call 069aah                               ; e8 bb fd
     9715    call 06911h                               ; e8 bb fd
    97829716    test al, al                               ; 84 c0
    9783     jne near 06ddah                           ; 0f 85 e5 01
     9717    jne near 06d41h                           ; 0f 85 e5 01
    97849718    mov dx, ss                                ; 8c d2
    97859719    lea ax, [bp-004h]                         ; 8d 46 fc
    9786     call 069aah                               ; e8 ad fd
     9720    call 06911h                               ; e8 ad fd
    97879721    test al, al                               ; 84 c0
    9788     jne near 06ddah                           ; 0f 85 d7 01
     9722    jne near 06d41h                           ; 0f 85 d7 01
    97899723    mov al, byte [bp-006h]                    ; 8a 46 fa
    97909724    mov byte [bp+00eh], al                    ; 88 46 0e
    97919725    mov al, byte [bp-004h]                    ; 8a 46 fc
    97929726    mov byte [bp+00fh], al                    ; 88 46 0f
    9793     jmp near 06e54h                           ; e9 42 02
     9727    jmp near 06dbbh                           ; e9 42 02
    97949728    mov al, byte [bp+00fh]                    ; 8a 46 0f
    97959729    cmp AL, strict byte 003h                  ; 3c 03
    9796     jc short 06c29h                           ; 72 10
    9797     jbe short 06c47h                          ; 76 2c
     9730    jc short 06b90h                           ; 72 10
     9731    jbe short 06baeh                          ; 76 2c
    97989732    cmp AL, strict byte 006h                  ; 3c 06
    9799     je short 06c59h                           ; 74 3a
     9733    je short 06bc0h                           ; 74 3a
    98009734    cmp AL, strict byte 005h                  ; 3c 05
    9801     je short 06c53h                           ; 74 30
     9735    je short 06bbah                           ; 74 30
    98029736    cmp AL, strict byte 004h                  ; 3c 04
    9803     je short 06c4dh                           ; 74 26
    9804     jmp short 06c5fh                          ; eb 36
     9737    je short 06bb4h                           ; 74 26
     9738    jmp short 06bc6h                          ; eb 36
    98059739    cmp AL, strict byte 002h                  ; 3c 02
    9806     je short 06c41h                           ; 74 14
     9740    je short 06ba8h                           ; 74 14
    98079741    cmp AL, strict byte 001h                  ; 3c 01
    9808     je short 06c3bh                           ; 74 0a
     9742    je short 06ba2h                           ; 74 0a
    98099743    test al, al                               ; 84 c0
    9810     jne short 06c5fh                          ; 75 2a
     9744    jne short 06bc6h                          ; 75 2a
    98119745    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    9812     jmp short 06c63h                          ; eb 28
     9746    jmp short 06bcah                          ; eb 28
    98139747    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    9814     jmp short 06c63h                          ; eb 22
     9748    jmp short 06bcah                          ; eb 22
    98159749    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    9816     jmp short 06c63h                          ; eb 1c
     9750    jmp short 06bcah                          ; eb 1c
    98179751    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    9818     jmp short 06c63h                          ; eb 16
     9752    jmp short 06bcah                          ; eb 16
    98199753    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    9820     jmp short 06c63h                          ; eb 10
     9754    jmp short 06bcah                          ; eb 10
    98219755    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    9822     jmp short 06c63h                          ; eb 0a
     9756    jmp short 06bcah                          ; eb 0a
    98239757    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    9824     jmp short 06c63h                          ; eb 04
     9758    jmp short 06bcah                          ; eb 04
    98259759    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    98269760    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    9827     jbe short 06c98h                          ; 76 2f
     9761    jbe short 06bffh                          ; 76 2f
    98289762    mov ax, 000f3h                            ; b8 f3 00
    9829     call 06979h                               ; e8 0a fd
     9763    call 068e0h                               ; e8 0a fd
    98309764    test al, al                               ; 84 c0
    9831     jne short 06c8dh                          ; 75 1a
     9765    jne short 06bf4h                          ; 75 1a
    98329766    mov dx, ss                                ; 8c d2
    98339767    lea ax, [bp-004h]                         ; 8d 46 fc
    9834     call 069aah                               ; e8 2f fd
     9768    call 06911h                               ; e8 2f fd
    98359769    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    9836     call 06979h                               ; e8 f7 fc
     9770    call 068e0h                               ; e8 f7 fc
    98379771    mov dx, ss                                ; 8c d2
    98389772    lea ax, [bp-004h]                         ; 8d 46 fc
    9839     call 069aah                               ; e8 20 fd
    9840     jmp near 06e54h                           ; e9 c7 01
     9773    call 06911h                               ; e8 20 fd
     9774    jmp near 06dbbh                           ; e9 c7 01
    98419775    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98429776    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9843     jmp near 06e54h                           ; e9 bc 01
     9777    jmp near 06dbbh                           ; e9 bc 01
    98449778    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98459779    mov byte [bp+015h], 002h                  ; c6 46 15 02
    9846     jmp near 06e54h                           ; e9 b1 01
     9780    jmp near 06dbbh                           ; e9 b1 01
    98479781    cmp byte [bp+00fh], 004h                  ; 80 7e 0f 04
    9848     jnc short 06d06h                          ; 73 5d
     9782    jnc short 06c6dh                          ; 73 5d
    98499783    mov ax, 000e8h                            ; b8 e8 00
    9850     call 06979h                               ; e8 ca fc
     9784    call 068e0h                               ; e8 ca fc
    98519785    test al, al                               ; 84 c0
    9852     jne short 06cfbh                          ; 75 48
     9786    jne short 06c62h                          ; 75 48
    98539787    mov dx, ss                                ; 8c d2
    98549788    lea ax, [bp-006h]                         ; 8d 46 fa
    9855     call 069aah                               ; e8 ef fc
     9789    call 06911h                               ; e8 ef fc
    98569790    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9857     je short 06cd1h                           ; 74 10
     9791    je short 06c38h                           ; 74 10
    98589792    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    98599793    push ax                                   ; 50
    9860     push 008c4h                               ; 68 c4 08
     9794    push 008c6h                               ; 68 c6 08
    98619795    push strict byte 00007h                   ; 6a 07
    9862     call 018e9h                               ; e8 1b ac
     9796    call 018e9h                               ; e8 b4 ac
    98639797    add sp, strict byte 00006h                ; 83 c4 06
    98649798    movzx ax, byte [bp+00fh]                  ; 0f b6 46 0f
    9865     call 06979h                               ; e8 a1 fc
     9799    call 068e0h                               ; e8 a1 fc
    98669800    mov dx, ss                                ; 8c d2
    98679801    lea ax, [bp-006h]                         ; 8d 46 fa
    9868     call 069aah                               ; e8 ca fc
     9802    call 06911h                               ; e8 ca fc
    98699803    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9870     je near 06e54h                            ; 0f 84 6c 01
     9804    je near 06dbbh                            ; 0f 84 6c 01
    98719805    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    98729806    push ax                                   ; 50
    9873     push 008c4h                               ; 68 c4 08
     9807    push 008c6h                               ; 68 c6 08
    98749808    push strict byte 00007h                   ; 6a 07
    9875     call 018e9h                               ; e8 f4 ab
     9809    call 018e9h                               ; e8 8d ac
    98769810    add sp, strict byte 00006h                ; 83 c4 06
    9877     jmp near 06e54h                           ; e9 59 01
     9811    jmp near 06dbbh                           ; e9 59 01
    98789812    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98799813    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9880     jmp near 06e54h                           ; e9 4e 01
     9814    jmp near 06dbbh                           ; e9 4e 01
    98819815    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98829816    mov byte [bp+015h], 002h                  ; c6 46 15 02
    9883     jmp near 06e54h                           ; e9 43 01
     9817    jmp near 06dbbh                           ; e9 43 01
    98849818    mov ax, 000f2h                            ; b8 f2 00
    9885     call 06979h                               ; e8 62 fc
     9819    call 068e0h                               ; e8 62 fc
    98869820    test al, al                               ; 84 c0
    9887     jne short 06d2eh                          ; 75 13
     9821    jne short 06c95h                          ; 75 13
    98889822    mov dx, ss                                ; 8c d2
    98899823    lea ax, [bp-006h]                         ; 8d 46 fa
    9890     call 069aah                               ; e8 87 fc
     9824    call 06911h                               ; e8 87 fc
    98919825    mov dx, ss                                ; 8c d2
    98929826    lea ax, [bp-004h]                         ; 8d 46 fc
    9893     call 069aah                               ; e8 7f fc
    9894     jmp near 06c09h                           ; e9 db fe
     9827    call 06911h                               ; e8 7f fc
     9828    jmp near 06b70h                           ; e9 db fe
    98959829    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    98969830    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9897     jmp near 06e54h                           ; e9 1b 01
     9831    jmp near 06dbbh                           ; e9 1b 01
    98989832    mov al, byte [bp+00fh]                    ; 8a 46 0f
    98999833    test al, al                               ; 84 c0
    9900     jbe short 06d47h                          ; 76 07
     9834    jbe short 06caeh                          ; 76 07
    99019835    cmp AL, strict byte 002h                  ; 3c 02
    9902     jbe short 06db0h                          ; 76 6c
    9903     jmp near 06de4h                           ; e9 9d 00
     9836    jbe short 06d17h                          ; 76 6c
     9837    jmp near 06d4bh                           ; e9 9d 00
    99049838    mov ax, 000e9h                            ; b8 e9 00
    9905     call 06979h                               ; e8 2c fc
     9839    call 068e0h                               ; e8 2c fc
    99069840    test al, al                               ; 84 c0
    9907     jne near 06ddah                           ; 0f 85 87 00
     9841    jne near 06d41h                           ; 0f 85 87 00
    99089842    mov dx, ss                                ; 8c d2
    99099843    lea ax, [bp-006h]                         ; 8d 46 fa
    9910     call 069aah                               ; e8 4f fc
     9844    call 06911h                               ; e8 4f fc
    99119845    mov cl, al                                ; 88 c1
    99129846    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9913     je short 06d73h                           ; 74 10
     9847    je short 06cdah                           ; 74 10
    99149848    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    99159849    push ax                                   ; 50
    9916     push 008c4h                               ; 68 c4 08
     9850    push 008c6h                               ; 68 c6 08
    99179851    push strict byte 00007h                   ; 6a 07
    9918     call 018e9h                               ; e8 79 ab
     9852    call 018e9h                               ; e8 12 ac
    99199853    add sp, strict byte 00006h                ; 83 c4 06
    99209854    test cl, cl                               ; 84 c9
    9921     jne short 06ddah                          ; 75 63
     9855    jne short 06d41h                          ; 75 63
    99229856    mov dx, ss                                ; 8c d2
    99239857    lea ax, [bp-006h]                         ; 8d 46 fa
    9924     call 069aah                               ; e8 2b fc
     9858    call 06911h                               ; e8 2b fc
    99259859    test al, al                               ; 84 c0
    9926     jne short 06ddah                          ; 75 57
     9860    jne short 06d41h                          ; 75 57
    99279861    mov dx, ss                                ; 8c d2
    99289862    lea ax, [bp-004h]                         ; 8d 46 fc
    9929     call 069aah                               ; e8 1f fc
     9863    call 06911h                               ; e8 1f fc
    99309864    test al, al                               ; 84 c0
    9931     jne short 06ddah                          ; 75 4b
     9865    jne short 06d41h                          ; 75 4b
    99329866    mov dx, ss                                ; 8c d2
    99339867    lea ax, [bp-002h]                         ; 8d 46 fe
    9934     call 069aah                               ; e8 13 fc
     9868    call 06911h                               ; e8 13 fc
    99359869    test al, al                               ; 84 c0
    9936     jne short 06ddah                          ; 75 3f
     9870    jne short 06d41h                          ; 75 3f
    99379871    mov al, byte [bp-006h]                    ; 8a 46 fa
    99389872    mov byte [bp+00eh], al                    ; 88 46 0e
     
    99419875    mov al, byte [bp-002h]                    ; 8a 46 fe
    99429876    mov byte [bp+010h], al                    ; 88 46 10
    9943     jmp near 06e54h                           ; e9 a4 00
     9877    jmp near 06dbbh                           ; e9 a4 00
    99449878    cmp AL, strict byte 001h                  ; 3c 01
    9945     jne short 06db9h                          ; 75 05
     9879    jne short 06d20h                          ; 75 05
    99469880    mov ax, 000e6h                            ; b8 e6 00
    9947     jmp short 06dbch                          ; eb 03
     9881    jmp short 06d23h                          ; eb 03
    99489882    mov ax, 000e7h                            ; b8 e7 00
    9949     call 06979h                               ; e8 ba fb
     9883    call 068e0h                               ; e8 ba fb
    99509884    mov cl, al                                ; 88 c1
    99519885    test cl, cl                               ; 84 c9
    9952     jne short 06dd4h                          ; 75 0f
     9886    jne short 06d3bh                          ; 75 0f
    99539887    mov dx, ss                                ; 8c d2
    99549888    lea ax, [bp-006h]                         ; 8d 46 fa
    9955     call 069aah                               ; e8 dd fb
     9889    call 06911h                               ; e8 dd fb
    99569890    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    99579891    db  00fh, 095h, 0c1h
    99589892    ; setne cl                                  ; 0f 95 c1
    99599893    test cl, cl                               ; 84 c9
    9960     je near 06e54h                            ; 0f 84 7a 00
     9894    je near 06dbbh                            ; 0f 84 7a 00
    99619895    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    99629896    mov byte [bp+015h], 003h                  ; c6 46 15 03
    9963     jmp short 06e54h                          ; eb 70
     9897    jmp short 06dbbh                          ; eb 70
    99649898    movzx ax, byte [bp+00fh]                  ; 0f b6 46 0f
    99659899    push ax                                   ; 50
    9966     push 008f0h                               ; 68 f0 08
     9900    push 008f2h                               ; 68 f2 08
    99679901    push strict byte 00007h                   ; 6a 07
    9968     call 018e9h                               ; e8 f8 aa
     9902    call 018e9h                               ; e8 91 ab
    99699903    add sp, strict byte 00006h                ; 83 c4 06
    99709904    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    99719905    mov byte [bp+015h], 001h                  ; c6 46 15 01
    9972     jmp short 06e54h                          ; eb 56
     9906    jmp short 06dbbh                          ; eb 56
    99739907    mov si, word [bp+00eh]                    ; 8b 76 0e
    99749908    mov bx, si                                ; 89 f3
    99759909    mov dx, strict word 00022h                ; ba 22 00
    99769910    mov ax, cx                                ; 89 c8
    9977     call 0162ah                               ; e8 1f a8
     9911    call 0162ah                               ; e8 b8 a8
    99789912    mov bx, word [bp+016h]                    ; 8b 5e 16
    99799913    mov dx, strict word 00024h                ; ba 24 00
    99809914    mov ax, cx                                ; 89 c8
    9981     call 0162ah                               ; e8 14 a8
     9915    call 0162ah                               ; e8 ad a8
    99829916    mov dx, strict word 00027h                ; ba 27 00
    99839917    mov ax, cx                                ; 89 c8
    9984     call 01600h                               ; e8 e2 a7
     9918    call 01600h                               ; e8 7b a8
    99859919    mov ah, al                                ; 88 c4
    99869920    test si, si                               ; 85 f6
    9987     jne short 06e32h                          ; 75 0e
     9921    jne short 06d99h                          ; 75 0e
    99889922    cmp word [bp+016h], strict byte 00000h    ; 83 7e 16 00
    9989     jne short 06e32h                          ; 75 08
     9923    jne short 06d99h                          ; 75 08
    99909924    test AL, strict byte 080h                 ; a8 80
    9991     je short 06e34h                           ; 74 06
     9925    je short 06d9bh                           ; 74 06
    99929926    and AL, strict byte 07fh                  ; 24 7f
    9993     jmp short 06e34h                          ; eb 02
     9927    jmp short 06d9bh                          ; eb 02
    99949928    or AL, strict byte 080h                   ; 0c 80
    99959929    movzx bx, al                              ; 0f b6 d8
    99969930    mov dx, strict word 00027h                ; ba 27 00
    99979931    mov ax, cx                                ; 89 c8
    9998     call 0160eh                               ; e8 cf a7
    9999     jmp short 06e54h                          ; eb 13
    10000     push 0090ah                               ; 68 0a 09
     9932    call 0160eh                               ; e8 68 a8
     9933    jmp short 06dbbh                          ; eb 13
     9934    push 0090ch                               ; 68 0c 09
    100019935    push strict byte 00007h                   ; 6a 07
    10002     call 018e9h                               ; e8 a0 aa
     9936    call 018e9h                               ; e8 39 ab
    100039937    add sp, strict byte 00004h                ; 83 c4 04
    100049938    or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    100059939    mov byte [bp+015h], 001h                  ; c6 46 15 01
    100069940    mov ax, strict word 00047h                ; b8 47 00
    10007     call 069e2h                               ; e8 88 fb
     9941    call 06949h                               ; e8 88 fb
    100089942    leave                                     ; c9
    100099943    pop si                                    ; 5e
    100109944    retn                                      ; c3
    10011 _int17_function:                             ; 0xf6e5d LB 0xb1
     9945_int17_function:                             ; 0xf6dc4 LB 0xb1
    100129946    push si                                   ; 56
    100139947    enter 00002h, 000h                        ; c8 02 00 00
     
    100179951    add dx, strict byte 00008h                ; 83 c2 08
    100189952    mov ax, strict word 00040h                ; b8 40 00
    10019     call 0161ch                               ; e8 ab a7
     9953    call 0161ch                               ; e8 44 a8
    100209954    mov bx, ax                                ; 89 c3
    100219955    mov si, ax                                ; 89 c6
    100229956    cmp byte [bp+015h], 003h                  ; 80 7e 15 03
    10023     jnc near 06f07h                           ; 0f 83 8a 00
     9957    jnc near 06e6eh                           ; 0f 83 8a 00
    100249958    mov ax, word [bp+010h]                    ; 8b 46 10
    100259959    cmp ax, strict word 00003h                ; 3d 03 00
    10026     jnc near 06f07h                           ; 0f 83 80 00
     9960    jnc near 06e6eh                           ; 0f 83 80 00
    100279961    test bx, bx                               ; 85 db
    10028     jbe near 06f07h                           ; 0f 86 7a 00
     9962    jbe near 06e6eh                           ; 0f 86 7a 00
    100299963    mov dx, ax                                ; 89 c2
    100309964    add dx, strict byte 00078h                ; 83 c2 78
    100319965    mov ax, strict word 00040h                ; b8 40 00
    10032     call 01600h                               ; e8 68 a7
     9966    call 01600h                               ; e8 01 a8
    100339967    movzx cx, al                              ; 0f b6 c8
    100349968    sal cx, 008h                              ; c1 e1 08
    100359969    cmp byte [bp+015h], 000h                  ; 80 7e 15 00
    10036     jne short 06ed1h                          ; 75 2d
     9970    jne short 06e38h                          ; 75 2d
    100379971    mov al, byte [bp+014h]                    ; 8a 46 14
    100389972    mov dx, bx                                ; 89 da
     
    100549988    ; sub ah, ah                                ; 2a e4
    100559989    test AL, strict byte 040h                 ; a8 40
    10056     je short 06ed1h                           ; 74 07
     9990    je short 06e38h                           ; 74 07
    100579991    test cx, cx                               ; 85 c9
    10058     je short 06ed1h                           ; 74 03
     9992    je short 06e38h                           ; 74 03
    100599993    dec cx                                    ; 49
    10060     jmp short 06ec0h                          ; eb ef
     9994    jmp short 06e27h                          ; eb ef
    100619995    cmp byte [bp+015h], 001h                  ; 80 7e 15 01
    10062     jne short 06eedh                          ; 75 16
     9996    jne short 06e54h                          ; 75 16
    100639997    lea dx, [si+002h]                         ; 8d 54 02
    100649998    in AL, DX                                 ; ec
     
    1007910013    mov byte [bp+015h], al                    ; 88 46 15
    1008010014    test cx, cx                               ; 85 c9
    10081     jne short 06f00h                          ; 75 04
     10015    jne short 06e67h                          ; 75 04
    1008210016    or byte [bp+015h], 001h                   ; 80 4e 15 01
    1008310017    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
     
    1008910023    pop si                                    ; 5e
    1009010024    retn                                      ; c3
    10091 wait_:                                       ; 0xf6f0e LB 0xad
     10025wait_:                                       ; 0xf6e75 LB 0xad
    1009210026    push bx                                   ; 53
    1009310027    push cx                                   ; 51
     
    1010510039    mov dx, 0046ch                            ; ba 6c 04
    1010610040    xor ax, ax                                ; 31 c0
    10107     call 01638h                               ; e8 09 a7
     10041    call 01638h                               ; e8 a2 a7
    1010810042    mov word [bp-006h], ax                    ; 89 46 fa
    1010910043    mov bx, dx                                ; 89 d3
     
    1011110045    mov dx, 0046ch                            ; ba 6c 04
    1011210046    xor ax, ax                                ; 31 c0
    10113     call 01638h                               ; e8 fb a6
     10047    call 01638h                               ; e8 94 a7
    1011410048    mov word [bp-00ah], ax                    ; 89 46 f6
    1011510049    mov di, dx                                ; 89 d7
    1011610050    cmp dx, bx                                ; 39 da
    10117     jnbe short 06f4dh                         ; 77 07
    10118     jne short 06f54h                          ; 75 0c
     10051    jnbe short 06eb4h                         ; 77 07
     10052    jne short 06ebbh                          ; 75 0c
    1011910053    cmp ax, word [bp-006h]                    ; 3b 46 fa
    10120     jbe short 06f54h                          ; 76 07
     10054    jbe short 06ebbh                          ; 76 07
    1012110055    sub ax, word [bp-006h]                    ; 2b 46 fa
    1012210056    sbb dx, bx                                ; 19 da
    10123     jmp short 06f5fh                          ; eb 0b
     10057    jmp short 06ec6h                          ; eb 0b
    1012410058    cmp dx, bx                                ; 39 da
    10125     jc short 06f5fh                           ; 72 07
    10126     jne short 06f63h                          ; 75 09
     10059    jc short 06ec6h                           ; 72 07
     10060    jne short 06ecah                          ; 75 09
    1012710061    cmp ax, word [bp-006h]                    ; 3b 46 fa
    10128     jnc short 06f63h                          ; 73 04
     10062    jnc short 06ecah                          ; 73 04
    1012910063    sub si, ax                                ; 29 c6
    1013010064    sbb cx, dx                                ; 19 d1
     
    1013410068    mov ax, 00100h                            ; b8 00 01
    1013510069    int 016h                                  ; cd 16
    10136     je near 06f79h                            ; 0f 84 05 00
     10070    je near 06ee0h                            ; 0f 84 05 00
    1013710071    mov AL, strict byte 001h                  ; b0 01
    10138     jmp near 06f7bh                           ; e9 02 00
     10072    jmp near 06ee2h                           ; e9 02 00
    1013910073    db  032h, 0c0h
    1014010074    ; xor al, al                                ; 32 c0
    1014110075    test al, al                               ; 84 c0
    10142     je short 06fa3h                           ; 74 24
     10076    je short 06f0ah                           ; 74 24
    1014310077    db  033h, 0c0h
    1014410078    ; xor ax, ax                                ; 33 c0
     
    1014910083    movzx ax, dl                              ; 0f b6 c2
    1015010084    push ax                                   ; 50
    10151     push 0092ch                               ; 68 2c 09
     10085    push 0092eh                               ; 68 2e 09
    1015210086    push strict byte 00004h                   ; 6a 04
    10153     call 018e9h                               ; e8 53 a9
     10087    call 018e9h                               ; e8 ec a9
    1015410088    add sp, strict byte 00006h                ; 83 c4 06
    1015510089    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10156     je short 06fa3h                           ; 74 04
     10090    je short 06f0ah                           ; 74 04
    1015710091    mov al, dl                                ; 88 d0
    10158     jmp short 06fb5h                          ; eb 12
     10092    jmp short 06f1ch                          ; eb 12
    1015910093    test cx, cx                               ; 85 c9
    10160     jnle short 06f34h                         ; 7f 8d
    10161     jne short 06fadh                          ; 75 04
     10094    jnle short 06e9bh                         ; 7f 8d
     10095    jne short 06f14h                          ; 75 04
    1016210096    test si, si                               ; 85 f6
    10163     jnbe short 06f34h                         ; 77 87
     10097    jnbe short 06e9bh                         ; 77 87
    1016410098    mov ax, word [bp-008h]                    ; 8b 46 f8
    1016510099    push ax                                   ; 50
     
    1017210106    pop bx                                    ; 5b
    1017310107    retn                                      ; c3
    10174 read_logo_byte_:                             ; 0xf6fbb LB 0x13
     10108read_logo_byte_:                             ; 0xf6f22 LB 0x13
    1017510109    push dx                                   ; 52
    1017610110    push bp                                   ; 55
     
    1018610120    pop dx                                    ; 5a
    1018710121    retn                                      ; c3
    10188 read_logo_word_:                             ; 0xf6fce LB 0x11
     10122read_logo_word_:                             ; 0xf6f35 LB 0x11
    1018910123    push dx                                   ; 52
    1019010124    push bp                                   ; 55
     
    1019810132    pop dx                                    ; 5a
    1019910133    retn                                      ; c3
    10200 print_detected_harddisks_:                   ; 0xf6fdf LB 0x12c
     10134print_detected_harddisks_:                   ; 0xf6f46 LB 0x12c
    1020110135    push bx                                   ; 53
    1020210136    push cx                                   ; 51
     
    1020710141    mov dx, strict word 0000eh                ; ba 0e 00
    1020810142    mov ax, strict word 00040h                ; b8 40 00
    10209     call 0161ch                               ; e8 2b a6
     10143    call 0161ch                               ; e8 c4 a6
    1021010144    mov si, ax                                ; 89 c6
    1021110145    mov byte [bp-002h], 000h                  ; c6 46 fe 00
     
    1021310147    xor ch, ch                                ; 30 ed
    1021410148    mov dx, 002c0h                            ; ba c0 02
    10215     call 01600h                               ; e8 ff a5
     10149    call 01600h                               ; e8 98 a6
    1021610150    mov byte [bp-004h], al                    ; 88 46 fc
    1021710151    xor bl, bl                                ; 30 db
    1021810152    cmp bl, byte [bp-004h]                    ; 3a 5e fc
    10219     jnc near 070e0h                           ; 0f 83 d3 00
     10153    jnc near 07047h                           ; 0f 83 d3 00
    1022010154    movzx dx, bl                              ; 0f b6 d3
    1022110155    add dx, 002c1h                            ; 81 c2 c1 02
    1022210156    mov ax, si                                ; 89 f0
    10223     call 01600h                               ; e8 e7 a5
     10157    call 01600h                               ; e8 80 a6
    1022410158    mov bh, al                                ; 88 c7
    1022510159    cmp AL, strict byte 00ch                  ; 3c 0c
    10226     jc short 07043h                           ; 72 24
     10160    jc short 06faah                           ; 72 24
    1022710161    test cl, cl                               ; 84 c9
    10228     jne short 07030h                          ; 75 0d
    10229     push 0093dh                               ; 68 3d 09
     10162    jne short 06f97h                          ; 75 0d
     10163    push 0093fh                               ; 68 3f 09
    1023010164    push strict byte 00002h                   ; 6a 02
    10231     call 018e9h                               ; e8 be a8
     10165    call 018e9h                               ; e8 57 a9
    1023210166    add sp, strict byte 00004h                ; 83 c4 04
    1023310167    mov CL, strict byte 001h                  ; b1 01
     
    1023510169    inc ax                                    ; 40
    1023610170    push ax                                   ; 50
    10237     push 00951h                               ; 68 51 09
     10171    push 00953h                               ; 68 53 09
    1023810172    push strict byte 00002h                   ; 6a 02
    10239     call 018e9h                               ; e8 ac a8
     10173    call 018e9h                               ; e8 45 a9
    1024010174    add sp, strict byte 00006h                ; 83 c4 06
    10241     jmp near 070dbh                           ; e9 98 00
     10175    jmp near 07042h                           ; e9 98 00
    1024210176    cmp AL, strict byte 008h                  ; 3c 08
    10243     jc short 0705ah                           ; 72 13
     10177    jc short 06fc1h                           ; 72 13
    1024410178    test ch, ch                               ; 84 ed
    10245     jne short 07058h                          ; 75 0d
    10246     push 00964h                               ; 68 64 09
     10179    jne short 06fbfh                          ; 75 0d
     10180    push 00966h                               ; 68 66 09
    1024710181    push strict byte 00002h                   ; 6a 02
    10248     call 018e9h                               ; e8 96 a8
     10182    call 018e9h                               ; e8 2f a9
    1024910183    add sp, strict byte 00004h                ; 83 c4 04
    1025010184    mov CH, strict byte 001h                  ; b5 01
    10251     jmp short 07030h                          ; eb d6
     10185    jmp short 06f97h                          ; eb d6
    1025210186    cmp AL, strict byte 004h                  ; 3c 04
    10253     jnc short 07075h                          ; 73 17
     10187    jnc short 06fdch                          ; 73 17
    1025410188    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10255     jne short 07075h                          ; 75 11
    10256     push 00978h                               ; 68 78 09
     10189    jne short 06fdch                          ; 75 11
     10190    push 0097ah                               ; 68 7a 09
    1025710191    push strict byte 00002h                   ; 6a 02
    10258     call 018e9h                               ; e8 7d a8
     10192    call 018e9h                               ; e8 16 a9
    1025910193    add sp, strict byte 00004h                ; 83 c4 04
    1026010194    mov byte [bp-002h], 001h                  ; c6 46 fe 01
    10261     jmp short 0708bh                          ; eb 16
     10195    jmp short 06ff2h                          ; eb 16
    1026210196    cmp bh, 004h                              ; 80 ff 04
    10263     jc short 0708bh                           ; 72 11
     10197    jc short 06ff2h                           ; 72 11
    1026410198    test cl, cl                               ; 84 c9
    10265     jne short 0708bh                          ; 75 0d
    10266     push 0093dh                               ; 68 3d 09
     10199    jne short 06ff2h                          ; 75 0d
     10200    push 0093fh                               ; 68 3f 09
    1026710201    push strict byte 00002h                   ; 6a 02
    10268     call 018e9h                               ; e8 63 a8
     10202    call 018e9h                               ; e8 fc a8
    1026910203    add sp, strict byte 00004h                ; 83 c4 04
    1027010204    mov CL, strict byte 001h                  ; b1 01
     
    1027210206    inc ax                                    ; 40
    1027310207    push ax                                   ; 50
    10274     push 00989h                               ; 68 89 09
     10208    push 0098bh                               ; 68 8b 09
    1027510209    push strict byte 00002h                   ; 6a 02
    10276     call 018e9h                               ; e8 51 a8
     10210    call 018e9h                               ; e8 ea a8
    1027710211    add sp, strict byte 00006h                ; 83 c4 06
    1027810212    cmp bh, 004h                              ; 80 ff 04
    10279     jc short 070a3h                           ; 72 03
     10213    jc short 0700ah                           ; 72 03
    1028010214    sub bh, 004h                              ; 80 ef 04
    1028110215    movzx ax, bh                              ; 0f b6 c7
     
    1028510219    sar ax, 1                                 ; d1 f8
    1028610220    test ax, ax                               ; 85 c0
    10287     je short 070b4h                           ; 74 05
    10288     push 00993h                               ; 68 93 09
    10289     jmp short 070b7h                          ; eb 03
    10290     push 0099eh                               ; 68 9e 09
     10221    je short 0701bh                           ; 74 05
     10222    push 00995h                               ; 68 95 09
     10223    jmp short 0701eh                          ; eb 03
     10224    push 009a0h                               ; 68 a0 09
    1029110225    push strict byte 00002h                   ; 6a 02
    10292     call 018e9h                               ; e8 2d a8
     10226    call 018e9h                               ; e8 c6 a8
    1029310227    add sp, strict byte 00004h                ; 83 c4 04
    1029410228    movzx ax, bh                              ; 0f b6 c7
     
    1029710231    idiv di                                   ; f7 ff
    1029810232    test dx, dx                               ; 85 d2
    10299     je short 070d1h                           ; 74 05
    10300     push 009a7h                               ; 68 a7 09
    10301     jmp short 070d4h                          ; eb 03
    10302     push 009adh                               ; 68 ad 09
     10233    je short 07038h                           ; 74 05
     10234    push 009a9h                               ; 68 a9 09
     10235    jmp short 0703bh                          ; eb 03
     10236    push 009afh                               ; 68 af 09
    1030310237    push di                                   ; 57
    10304     call 018e9h                               ; e8 11 a8
     10238    call 018e9h                               ; e8 aa a8
    1030510239    add sp, strict byte 00004h                ; 83 c4 04
    1030610240    db  0feh, 0c3h
    1030710241    ; inc bl                                    ; fe c3
    10308     jmp near 07006h                           ; e9 26 ff
     10242    jmp near 06f6dh                           ; e9 26 ff
    1030910243    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10310     jne short 070f9h                          ; 75 13
     10244    jne short 07060h                          ; 75 13
    1031110245    test cl, cl                               ; 84 c9
    10312     jne short 070f9h                          ; 75 0f
     10246    jne short 07060h                          ; 75 0f
    1031310247    test ch, ch                               ; 84 ed
    10314     jne short 070f9h                          ; 75 0b
    10315     push 009b4h                               ; 68 b4 09
     10248    jne short 07060h                          ; 75 0b
     10249    push 009b6h                               ; 68 b6 09
    1031610250    push strict byte 00002h                   ; 6a 02
    10317     call 018e9h                               ; e8 f3 a7
     10251    call 018e9h                               ; e8 8c a8
    1031810252    add sp, strict byte 00004h                ; 83 c4 04
    10319     push 009c8h                               ; 68 c8 09
     10253    push 009cah                               ; 68 ca 09
    1032010254    push strict byte 00002h                   ; 6a 02
    10321     call 018e9h                               ; e8 e8 a7
     10255    call 018e9h                               ; e8 81 a8
    1032210256    add sp, strict byte 00004h                ; 83 c4 04
    1032310257    leave                                     ; c9
     
    1032810262    pop bx                                    ; 5b
    1032910263    retn                                      ; c3
    10330 get_boot_drive_:                             ; 0xf710b LB 0x25
     10264get_boot_drive_:                             ; 0xf7072 LB 0x25
    1033110265    push bx                                   ; 53
    1033210266    push dx                                   ; 52
     
    1033610270    mov dx, strict word 0000eh                ; ba 0e 00
    1033710271    mov ax, strict word 00040h                ; b8 40 00
    10338     call 0161ch                               ; e8 01 a5
     10272    call 0161ch                               ; e8 9a a5
    1033910273    mov dx, 002c0h                            ; ba c0 02
    10340     call 01600h                               ; e8 df a4
     10274    call 01600h                               ; e8 78 a5
    1034110275    sub bl, 002h                              ; 80 eb 02
    1034210276    cmp bl, al                                ; 38 c3
    10343     jc short 0712ah                           ; 72 02
     10277    jc short 07091h                           ; 72 02
    1034410278    mov BL, strict byte 0ffh                  ; b3 ff
    1034510279    mov al, bl                                ; 88 d8
     
    1034810282    pop bx                                    ; 5b
    1034910283    retn                                      ; c3
    10350 show_logo_:                                  ; 0xf7130 LB 0x21f
     10284show_logo_:                                  ; 0xf7097 LB 0x21f
    1035110285    push bx                                   ; 53
    1035210286    push cx                                   ; 51
     
    1035710291    mov dx, strict word 0000eh                ; ba 0e 00
    1035810292    mov ax, strict word 00040h                ; b8 40 00
    10359     call 0161ch                               ; e8 da a4
     10293    call 0161ch                               ; e8 73 a5
    1036010294    mov si, ax                                ; 89 c6
    1036110295    xor cl, cl                                ; 30 c9
     
    1036810302    out strict byte 040h, AL                  ; e6 40
    1036910303    movzx ax, dl                              ; 0f b6 c2
    10370     call 06fceh                               ; e8 74 fe
     10304    call 06f35h                               ; e8 74 fe
    1037110305    cmp ax, 066bbh                            ; 3d bb 66
    10372     jne near 07232h                           ; 0f 85 d1 00
     10306    jne near 07199h                           ; 0f 85 d1 00
    1037310307    push SS                                   ; 16
    1037410308    pop ES                                    ; 07
     
    1037810312    mov word [es:di], bx                      ; 26 89 1d
    1037910313    cmp ax, strict word 0004fh                ; 3d 4f 00
    10380     jne near 07232h                           ; 0f 85 bd 00
     10314    jne near 07199h                           ; 0f 85 bd 00
    1038110315    mov al, dl                                ; 88 d0
    1038210316    add AL, strict byte 004h                  ; 04 04
    1038310317    xor ah, ah                                ; 30 e4
    10384     call 06fbbh                               ; e8 3d fe
     10318    call 06f22h                               ; e8 3d fe
    1038510319    mov ch, al                                ; 88 c5
    1038610320    mov byte [bp-002h], al                    ; 88 46 fe
     
    1038810322    add AL, strict byte 005h                  ; 04 05
    1038910323    xor ah, ah                                ; 30 e4
    10390     call 06fbbh                               ; e8 2f fe
     10324    call 06f22h                               ; e8 2f fe
    1039110325    mov dh, al                                ; 88 c6
    1039210326    mov byte [bp-006h], al                    ; 88 46 fa
     
    1039410328    add AL, strict byte 002h                  ; 04 02
    1039510329    xor ah, ah                                ; 30 e4
    10396     call 06fceh                               ; e8 34 fe
     10330    call 06f35h                               ; e8 34 fe
    1039710331    mov bx, ax                                ; 89 c3
    1039810332    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1040010334    add AL, strict byte 006h                  ; 04 06
    1040110335    xor ah, ah                                ; 30 e4
    10402     call 06fbbh                               ; e8 13 fe
     10336    call 06f22h                               ; e8 13 fe
    1040310337    mov byte [bp-008h], al                    ; 88 46 f8
    1040410338    test ch, ch                               ; 84 ed
    10405     jne short 071b9h                          ; 75 0a
     10339    jne short 07120h                          ; 75 0a
    1040610340    test dh, dh                               ; 84 f6
    10407     jne short 071b9h                          ; 75 06
     10341    jne short 07120h                          ; 75 06
    1040810342    test bx, bx                               ; 85 db
    10409     je near 07232h                            ; 0f 84 79 00
     10343    je near 07199h                            ; 0f 84 79 00
    1041010344    mov bx, 00142h                            ; bb 42 01
    1041110345    mov ax, 04f02h                            ; b8 02 4f
    1041210346    int 010h                                  ; cd 10
    1041310347    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10414     je short 071eah                           ; 74 23
     10348    je short 07151h                           ; 74 23
    1041510349    xor bx, bx                                ; 31 db
    10416     jmp short 071d1h                          ; eb 06
     10350    jmp short 07138h                          ; eb 06
    1041710351    inc bx                                    ; 43
    1041810352    cmp bx, strict byte 00010h                ; 83 fb 10
    10419     jnbe short 071f1h                         ; 77 20
     10353    jnbe short 07158h                         ; 77 20
    1042010354    mov ax, bx                                ; 89 d8
    1042110355    or ah, 002h                               ; 80 cc 02
     
    1042410358    xor dx, dx                                ; 31 d2
    1042510359    mov ax, strict word 00001h                ; b8 01 00
    10426     call 06f0eh                               ; e8 2c fd
     10360    call 06e75h                               ; e8 2c fd
    1042710361    cmp AL, strict byte 086h                  ; 3c 86
    10428     jne short 071cbh                          ; 75 e5
     10362    jne short 07132h                          ; 75 e5
    1042910363    mov CL, strict byte 001h                  ; b1 01
    10430     jmp short 071f1h                          ; eb 07
     10364    jmp short 07158h                          ; eb 07
    1043110365    mov ax, 00210h                            ; b8 10 02
    1043210366    mov dx, 003b8h                            ; ba b8 03
    1043310367    out DX, ax                                ; ef
    1043410368    test cl, cl                               ; 84 c9
    10435     jne short 07207h                          ; 75 12
     10369    jne short 0716eh                          ; 75 12
    1043610370    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1043710371    shr ax, 004h                              ; c1 e8 04
    1043810372    mov dx, strict word 00001h                ; ba 01 00
    10439     call 06f0eh                               ; e8 0d fd
     10373    call 06e75h                               ; e8 0d fd
    1044010374    cmp AL, strict byte 086h                  ; 3c 86
    10441     jne short 07207h                          ; 75 02
     10375    jne short 0716eh                          ; 75 02
    1044210376    mov CL, strict byte 001h                  ; b1 01
    1044310377    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10444     je short 07232h                           ; 74 25
     10378    je short 07199h                           ; 74 25
    1044510379    test cl, cl                               ; 84 c9
    10446     jne short 07232h                          ; 75 21
     10380    jne short 07199h                          ; 75 21
    1044710381    mov bx, strict word 00010h                ; bb 10 00
    10448     jmp short 0721bh                          ; eb 05
     10382    jmp short 07182h                          ; eb 05
    1044910383    dec bx                                    ; 4b
    1045010384    test bx, bx                               ; 85 db
    10451     jbe short 07232h                          ; 76 17
     10385    jbe short 07199h                          ; 76 17
    1045210386    mov ax, bx                                ; 89 d8
    1045310387    or ah, 002h                               ; 80 cc 02
     
    1045610390    xor dx, dx                                ; 31 d2
    1045710391    mov ax, strict word 00001h                ; b8 01 00
    10458     call 06f0eh                               ; e8 e2 fc
     10392    call 06e75h                               ; e8 e2 fc
    1045910393    cmp AL, strict byte 086h                  ; 3c 86
    10460     jne short 07216h                          ; 75 e6
     10394    jne short 0717dh                          ; 75 e6
    1046110395    mov CL, strict byte 001h                  ; b1 01
    1046210396    xor bx, bx                                ; 31 db
    1046310397    mov dx, 00339h                            ; ba 39 03
    1046410398    mov ax, si                                ; 89 f0
    10465     call 0160eh                               ; e8 d2 a3
     10399    call 0160eh                               ; e8 6b a4
    1046610400    mov AL, strict byte 003h                  ; b0 03
    1046710401    mov AH, strict byte 000h                  ; b4 00
    1046810402    int 010h                                  ; cd 10
    1046910403    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10470     je near 07333h                            ; 0f 84 e9 00
     10404    je near 0729ah                            ; 0f 84 e9 00
    1047110405    cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10472     jne short 07280h                          ; 75 30
     10406    jne short 071e7h                          ; 75 30
    1047310407    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10474     jne short 07280h                          ; 75 2a
     10408    jne short 071e7h                          ; 75 2a
    1047510409    cmp word [bp-00ah], strict byte 00000h    ; 83 7e f6 00
    10476     jne short 07280h                          ; 75 24
     10410    jne short 071e7h                          ; 75 24
    1047710411    cmp byte [bp-008h], 002h                  ; 80 7e f8 02
    10478     jne short 0726dh                          ; 75 0b
    10479     push 009cah                               ; 68 ca 09
     10412    jne short 071d4h                          ; 75 0b
     10413    push 009cch                               ; 68 cc 09
    1048010414    push strict byte 00002h                   ; 6a 02
    10481     call 018e9h                               ; e8 7f a6
     10415    call 018e9h                               ; e8 18 a7
    1048210416    add sp, strict byte 00004h                ; 83 c4 04
    1048310417    test cl, cl                               ; 84 c9
    10484     jne short 07280h                          ; 75 0f
     10418    jne short 071e7h                          ; 75 0f
    1048510419    mov dx, strict word 00001h                ; ba 01 00
    1048610420    mov ax, 000c0h                            ; b8 c0 00
    10487     call 06f0eh                               ; e8 94 fc
     10421    call 06e75h                               ; e8 94 fc
    1048810422    cmp AL, strict byte 086h                  ; 3c 86
    10489     jne short 07280h                          ; 75 02
     10423    jne short 071e7h                          ; 75 02
    1049010424    mov CL, strict byte 001h                  ; b1 01
    1049110425    test cl, cl                               ; 84 c9
    10492     je near 07333h                            ; 0f 84 ad 00
     10426    je near 0729ah                            ; 0f 84 ad 00
    1049310427    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1049410428    mov ax, 00100h                            ; b8 00 01
     
    1050710441    ; xor dx, dx                                ; 33 d2
    1050810442    int 010h                                  ; cd 10
    10509     push 009ech                               ; 68 ec 09
     10443    push 009eeh                               ; 68 ee 09
    1051010444    push strict byte 00002h                   ; 6a 02
    10511     call 018e9h                               ; e8 3a a6
     10445    call 018e9h                               ; e8 d3 a6
    1051210446    add sp, strict byte 00004h                ; 83 c4 04
    10513     call 06fdfh                               ; e8 2a fd
    10514     push 00a30h                               ; 68 30 0a
     10447    call 06f46h                               ; e8 2a fd
     10448    push 00a32h                               ; 68 32 0a
    1051510449    push strict byte 00002h                   ; 6a 02
    10516     call 018e9h                               ; e8 2c a6
     10450    call 018e9h                               ; e8 c5 a6
    1051710451    add sp, strict byte 00004h                ; 83 c4 04
    1051810452    mov dx, strict word 00001h                ; ba 01 00
    1051910453    mov ax, strict word 00040h                ; b8 40 00
    10520     call 06f0eh                               ; e8 45 fc
     10454    call 06e75h                               ; e8 45 fc
    1052110455    mov bl, al                                ; 88 c3
    1052210456    test al, al                               ; 84 c0
    10523     je short 072c0h                           ; 74 f1
     10457    je short 07227h                           ; 74 f1
    1052410458    cmp AL, strict byte 030h                  ; 3c 30
    10525     je short 07321h                           ; 74 4e
     10459    je short 07288h                           ; 74 4e
    1052610460    cmp bl, 002h                              ; 80 fb 02
    10527     jc short 072fah                           ; 72 22
     10461    jc short 07261h                           ; 72 22
    1052810462    cmp bl, 009h                              ; 80 fb 09
    10529     jnbe short 072fah                         ; 77 1d
     10463    jnbe short 07261h                         ; 77 1d
    1053010464    movzx ax, bl                              ; 0f b6 c3
    10531     call 0710bh                               ; e8 28 fe
     10465    call 07072h                               ; e8 28 fe
    1053210466    cmp AL, strict byte 0ffh                  ; 3c ff
    10533     jne short 072e9h                          ; 75 02
    10534     jmp short 072c0h                          ; eb d7
     10467    jne short 07250h                          ; 75 02
     10468    jmp short 07227h                          ; eb d7
    1053510469    movzx bx, al                              ; 0f b6 d8
    1053610470    mov dx, 00338h                            ; ba 38 03
    1053710471    mov ax, si                                ; 89 f0
    10538     call 0160eh                               ; e8 1a a3
     10472    call 0160eh                               ; e8 b3 a3
    1053910473    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    10540     jmp short 07321h                          ; eb 27
     10474    jmp short 07288h                          ; eb 27
    1054110475    cmp bl, 02eh                              ; 80 fb 2e
    10542     je short 0730fh                           ; 74 10
     10476    je short 07276h                           ; 74 10
    1054310477    cmp bl, 026h                              ; 80 fb 26
    10544     je short 07315h                           ; 74 11
     10478    je short 0727ch                           ; 74 11
    1054510479    cmp bl, 021h                              ; 80 fb 21
    10546     jne short 0731bh                          ; 75 12
     10480    jne short 07282h                          ; 75 12
    1054710481    mov byte [bp-004h], 001h                  ; c6 46 fc 01
    10548     jmp short 07321h                          ; eb 12
     10482    jmp short 07288h                          ; eb 12
    1054910483    mov byte [bp-004h], 003h                  ; c6 46 fc 03
    10550     jmp short 07321h                          ; eb 0c
     10484    jmp short 07288h                          ; eb 0c
    1055110485    mov byte [bp-004h], 004h                  ; c6 46 fc 04
    10552     jmp short 07321h                          ; eb 06
     10486    jmp short 07288h                          ; eb 06
    1055310487    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10554     je short 072c0h                           ; 74 9f
     10488    je short 07227h                           ; 74 9f
    1055510489    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    1055610490    mov dx, 00339h                            ; ba 39 03
    1055710491    mov ax, si                                ; 89 f0
    10558     call 0160eh                               ; e8 e1 a2
     10492    call 0160eh                               ; e8 7a a3
    1055910493    mov AL, strict byte 003h                  ; b0 03
    1056010494    mov AH, strict byte 000h                  ; b4 00
     
    1056910503    push DS                                   ; 1e
    1057010504    mov ds, ax                                ; 8e d8
    10571     call 0edbfh                               ; e8 7a 7a
     10505    call 0edbfh                               ; e8 13 7b
    1057210506    pop DS                                    ; 1f
    1057310507    popad                                     ; 66 61
     
    1057910513    pop bx                                    ; 5b
    1058010514    retn                                      ; c3
    10581 delay_boot_:                                 ; 0xf734f LB 0x64
     10515delay_boot_:                                 ; 0xf72b6 LB 0x64
    1058210516    push bx                                   ; 53
    1058310517    push dx                                   ; 52
     
    1058610520    mov dx, ax                                ; 89 c2
    1058710521    test ax, ax                               ; 85 c0
    10588     je short 073afh                           ; 74 55
     10522    je short 07316h                           ; 74 55
    1058910523    mov AL, strict byte 034h                  ; b0 34
    1059010524    out strict byte 043h, AL                  ; e6 43
     
    1059410528    out strict byte 040h, AL                  ; e6 40
    1059510529    push dx                                   ; 52
    10596     push 00a7ah                               ; 68 7a 0a
     10530    push 00a7ch                               ; 68 7c 0a
    1059710531    push strict byte 00002h                   ; 6a 02
    10598     call 018e9h                               ; e8 7a a5
     10532    call 018e9h                               ; e8 13 a6
    1059910533    add sp, strict byte 00006h                ; 83 c4 06
    1060010534    mov bx, dx                                ; 89 d3
    1060110535    test bx, bx                               ; 85 db
    10602     jbe short 0738fh                          ; 76 17
     10536    jbe short 072f6h                          ; 76 17
    1060310537    push bx                                   ; 53
    10604     push 00a98h                               ; 68 98 0a
     10538    push 00a9ah                               ; 68 9a 0a
    1060510539    push strict byte 00002h                   ; 6a 02
    10606     call 018e9h                               ; e8 68 a5
     10540    call 018e9h                               ; e8 01 a6
    1060710541    add sp, strict byte 00006h                ; 83 c4 06
    1060810542    xor dx, dx                                ; 31 d2
    1060910543    mov ax, strict word 00040h                ; b8 40 00
    10610     call 06f0eh                               ; e8 82 fb
     10544    call 06e75h                               ; e8 82 fb
    1061110545    dec bx                                    ; 4b
    10612     jmp short 07374h                          ; eb e5
    10613     push 009c8h                               ; 68 c8 09
     10546    jmp short 072dbh                          ; eb e5
     10547    push 009cah                               ; 68 ca 09
    1061410548    push strict byte 00002h                   ; 6a 02
    10615     call 018e9h                               ; e8 52 a5
     10549    call 018e9h                               ; e8 eb a5
    1061610550    add sp, strict byte 00004h                ; 83 c4 04
    1061710551    mov AL, strict byte 034h                  ; b0 34
     
    1062410558    push DS                                   ; 1e
    1062510559    mov ds, ax                                ; 8e d8
    10626     call 0edbfh                               ; e8 13 7a
     10560    call 0edbfh                               ; e8 ac 7a
    1062710561    pop DS                                    ; 1f
    1062810562    popad                                     ; 66 61
     
    1063110565    pop bx                                    ; 5b
    1063210566    retn                                      ; c3
    10633 scsi_cmd_data_in_:                           ; 0xf73b3 LB 0x88
     10567scsi_cmd_data_in_:                           ; 0xf731a LB 0x88
    1063410568    push si                                   ; 56
    1063510569    push di                                   ; 57
     
    1064410578    ; sub ah, ah                                ; 2a e4
    1064510579    test AL, strict byte 001h                 ; a8 01
    10646     jne short 073c4h                          ; 75 f7
     10580    jne short 0732bh                          ; 75 f7
    1064710581    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1064810582    mov dx, word [bp+010h]                    ; 8b 56 10
     
    1065010584    shr dx, 1                                 ; d1 ea
    1065110585    rcr ax, 1                                 ; d1 d8
    10652     loop 073d6h                               ; e2 fa
     10586    loop 0733dh                               ; e2 fa
    1065310587    and ax, 000f0h                            ; 25 f0 00
    1065410588    movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
     
    1066810602    shr dx, 1                                 ; d1 ea
    1066910603    rcr ax, 1                                 ; d1 d8
    10670     loop 073feh                               ; e2 fa
     10604    loop 07365h                               ; e2 fa
    1067110605    mov dx, si                                ; 89 f2
    1067210606    out DX, AL                                ; ee
     
    1067410608    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    1067510609    cmp bx, ax                                ; 39 c3
    10676     jnc short 0741fh                          ; 73 0e
     10610    jnc short 07386h                          ; 73 0e
    1067710611    les di, [bp-006h]                         ; c4 7e fa
    1067810612    add di, bx                                ; 01 df
     
    1068110615    out DX, AL                                ; ee
    1068210616    inc bx                                    ; 43
    10683     jmp short 07409h                          ; eb ea
     10617    jmp short 07370h                          ; eb ea
    1068410618    mov dx, si                                ; 89 f2
    1068510619    in AL, DX                                 ; ec
     
    1068710621    ; sub ah, ah                                ; 2a e4
    1068810622    test AL, strict byte 001h                 ; a8 01
    10689     jne short 0741fh                          ; 75 f7
     10623    jne short 07386h                          ; 75 f7
    1069010624    lea dx, [si+001h]                         ; 8d 54 01
    1069110625    mov cx, word [bp+00eh]                    ; 8b 4e 0e
     
    1069710631    pop si                                    ; 5e
    1069810632    retn 0000ah                               ; c2 0a 00
    10699 scsi_cmd_data_out_:                          ; 0xf743b LB 0x89
     10633scsi_cmd_data_out_:                          ; 0xf73a2 LB 0x89
    1070010634    push si                                   ; 56
    1070110635    push di                                   ; 57
     
    1071010644    ; sub ah, ah                                ; 2a e4
    1071110645    test AL, strict byte 001h                 ; a8 01
    10712     jne short 0744ch                          ; 75 f7
     10646    jne short 073b3h                          ; 75 f7
    1071310647    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1071410648    mov dx, word [bp+010h]                    ; 8b 56 10
     
    1071610650    shr dx, 1                                 ; d1 ea
    1071710651    rcr ax, 1                                 ; d1 d8
    10718     loop 0745eh                               ; e2 fa
     10652    loop 073c5h                               ; e2 fa
    1071910653    and ax, 000f0h                            ; 25 f0 00
    1072010654    movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
     
    1073410668    shr dx, 1                                 ; d1 ea
    1073510669    rcr ax, 1                                 ; d1 d8
    10736     loop 07486h                               ; e2 fa
     10670    loop 073edh                               ; e2 fa
    1073710671    mov dx, di                                ; 89 fa
    1073810672    out DX, AL                                ; ee
     
    1074010674    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    1074110675    cmp bx, ax                                ; 39 c3
    10742     jnc short 074a7h                          ; 73 0e
     10676    jnc short 0740eh                          ; 73 0e
    1074310677    les si, [bp-006h]                         ; c4 76 fa
    1074410678    add si, bx                                ; 01 de
     
    1074710681    out DX, AL                                ; ee
    1074810682    inc bx                                    ; 43
    10749     jmp short 07491h                          ; eb ea
     10683    jmp short 073f8h                          ; eb ea
    1075010684    lea dx, [di+001h]                         ; 8d 55 01
    1075110685    mov cx, word [bp+00eh]                    ; 8b 4e 0e
     
    1075810692    ; sub ah, ah                                ; 2a e4
    1075910693    test AL, strict byte 001h                 ; a8 01
    10760     jne short 074b3h                          ; 75 f7
     10694    jne short 0741ah                          ; 75 f7
    1076110695    xor ax, ax                                ; 31 c0
    1076210696    leave                                     ; c9
     
    1076410698    pop si                                    ; 5e
    1076510699    retn 0000ah                               ; c2 0a 00
    10766 @scsi_read_sectors:                          ; 0xf74c4 LB 0xb1
     10700@scsi_read_sectors:                          ; 0xf742b LB 0xb1
    1076710701    push si                                   ; 56
    1076810702    push di                                   ; 57
     
    1077310707    sub bl, 008h                              ; 80 eb 08
    1077410708    cmp bl, 004h                              ; 80 fb 04
    10775     jbe short 074ebh                          ; 76 0f
     10709    jbe short 07452h                          ; 76 0f
    1077610710    movzx ax, bl                              ; 0f b6 c3
    1077710711    push ax                                   ; 50
    10778     push 00a9ch                               ; 68 9c 0a
     10712    push 00a9eh                               ; 68 9e 0a
    1077910713    push strict byte 00007h                   ; 6a 07
    10780     call 018e9h                               ; e8 01 a4
     10714    call 018e9h                               ; e8 9a a4
    1078110715    add sp, strict byte 00006h                ; 83 c4 06
    1078210716    mov es, [bp+00ah]                         ; 8e 46 0a
     
    1080510739    sal word [bp-004h], 1                     ; d1 66 fc
    1080610740    rcl word [bp-002h], 1                     ; d1 56 fe
    10807     loop 07534h                               ; e2 f8
     10741    loop 0749bh                               ; e2 f8
    1080810742    push dword [bp-004h]                      ; 66 ff 76 fc
    1080910743    db  066h, 026h, 0ffh, 074h, 004h
     
    1081310747    mov cx, ss                                ; 8c d1
    1081410748    lea bx, [bp-00eh]                         ; 8d 5e f2
    10815     call 073b3h                               ; e8 62 fe
     10749    call 0731ah                               ; e8 62 fe
    1081610750    mov ah, al                                ; 88 c4
    1081710751    test al, al                               ; 84 c0
    10818     jne short 0756ch                          ; 75 15
     10752    jne short 074d3h                          ; 75 15
    1081910753    mov es, [bp+00ah]                         ; 8e 46 0a
    1082010754    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1082810762    pop si                                    ; 5e
    1082910763    retn 00004h                               ; c2 04 00
    10830 @scsi_write_sectors:                         ; 0xf7575 LB 0xb1
     10764@scsi_write_sectors:                         ; 0xf74dc LB 0xb1
    1083110765    push si                                   ; 56
    1083210766    push di                                   ; 57
     
    1083710771    sub bl, 008h                              ; 80 eb 08
    1083810772    cmp bl, 004h                              ; 80 fb 04
    10839     jbe short 0759ch                          ; 76 0f
     10773    jbe short 07503h                          ; 76 0f
    1084010774    movzx ax, bl                              ; 0f b6 c3
    1084110775    push ax                                   ; 50
    10842     push 00acah                               ; 68 ca 0a
     10776    push 00acch                               ; 68 cc 0a
    1084310777    push strict byte 00007h                   ; 6a 07
    10844     call 018e9h                               ; e8 50 a3
     10778    call 018e9h                               ; e8 e9 a3
    1084510779    add sp, strict byte 00006h                ; 83 c4 06
    1084610780    mov es, [bp+00ah]                         ; 8e 46 0a
     
    1086910803    sal word [bp-004h], 1                     ; d1 66 fc
    1087010804    rcl word [bp-002h], 1                     ; d1 56 fe
    10871     loop 075e5h                               ; e2 f8
     10805    loop 0754ch                               ; e2 f8
    1087210806    push dword [bp-004h]                      ; 66 ff 76 fc
    1087310807    db  066h, 026h, 0ffh, 074h, 004h
     
    1087710811    mov cx, ss                                ; 8c d1
    1087810812    lea bx, [bp-00eh]                         ; 8d 5e f2
    10879     call 0743bh                               ; e8 39 fe
     10813    call 073a2h                               ; e8 39 fe
    1088010814    mov ah, al                                ; 88 c4
    1088110815    test al, al                               ; 84 c0
    10882     jne short 0761dh                          ; 75 15
     10816    jne short 07584h                          ; 75 15
    1088310817    mov es, [bp+00ah]                         ; 8e 46 0a
    1088410818    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1089210826    pop si                                    ; 5e
    1089310827    retn 00004h                               ; c2 04 00
    10894 scsi_cmd_packet_:                            ; 0xf7626 LB 0x131
     10828scsi_cmd_packet_:                            ; 0xf758d LB 0x161
    1089510829    push si                                   ; 56
    1089610830    push di                                   ; 57
     
    1089810832    mov di, ax                                ; 89 c7
    1089910833    mov byte [bp-002h], dl                    ; 88 56 fe
    10900     mov word [bp-00ch], bx                    ; 89 5e f4
     10834    mov word [bp-008h], bx                    ; 89 5e f8
    1090110835    mov word [bp-006h], cx                    ; 89 4e fa
    1090210836    mov dx, strict word 0000eh                ; ba 0e 00
    1090310837    mov ax, strict word 00040h                ; b8 40 00
    10904     call 0161ch                               ; e8 dc 9f
     10838    call 0161ch                               ; e8 75 a0
    1090510839    mov si, 00122h                            ; be 22 01
    1090610840    mov word [bp-00ah], ax                    ; 89 46 f6
    1090710841    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    10908     jne short 0766bh                          ; 75 1f
    10909     mov bx, 00cech                            ; bb ec 0c
     10842    jne short 075d2h                          ; 75 1f
     10843    mov bx, 00d32h                            ; bb 32 0d
    1091010844    mov cx, ds                                ; 8c d9
    1091110845    mov ax, strict word 00004h                ; b8 04 00
    10912     call 018aeh                               ; e8 57 a2
    10913     push 00af9h                               ; 68 f9 0a
    10914     push 00b09h                               ; 68 09 0b
     10846    call 018aeh                               ; e8 f0 a2
     10847    push 00afbh                               ; 68 fb 0a
     10848    push 00b0bh                               ; 68 0b 0b
    1091510849    push strict byte 00004h                   ; 6a 04
    10916     call 018e9h                               ; e8 87 a2
     10850    call 018e9h                               ; e8 20 a3
    1091710851    add sp, strict byte 00006h                ; 83 c4 06
    1091810852    mov dx, strict word 00001h                ; ba 01 00
    10919     jmp near 0774fh                           ; e9 e4 00
     10853    jmp near 076e6h                           ; e9 14 01
    1092010854    sub di, strict byte 00008h                ; 83 ef 08
    1092110855    sal di, 002h                              ; c1 e7 02
     
    1093110865    ; sub ah, ah                                ; 2a e4
    1093210866    test AL, strict byte 001h                 ; a8 01
    10933     jne short 07687h                          ; 75 f7
     10867    jne short 075eeh                          ; 75 f7
     10868    xor ax, ax                                ; 31 c0
     10869    mov dx, word [bp+00ah]                    ; 8b 56 0a
     10870    add dx, word [bp+008h]                    ; 03 56 08
     10871    adc ax, word [bp+00ch]                    ; 13 46 0c
     10872    mov es, [bp-00ah]                         ; 8e 46 f6
     10873    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1093410874    xor di, di                                ; 31 ff
    10935     mov ax, word [bp+00ah]                    ; 8b 46 0a
    10936     add ax, word [bp+008h]                    ; 03 46 08
    10937     mov word [bp-008h], ax                    ; 89 46 f8
    10938     adc di, word [bp+00ch]                    ; 13 7e 0c
     10875    add cx, dx                                ; 01 d1
     10876    mov word [bp-00ch], cx                    ; 89 4e f4
     10877    adc di, ax                                ; 11 c7
     10878    mov ax, cx                                ; 89 c8
    1093910879    mov dx, di                                ; 89 fa
    1094010880    mov cx, strict word 0000ch                ; b9 0c 00
    1094110881    shr dx, 1                                 ; d1 ea
    1094210882    rcr ax, 1                                 ; d1 d8
    10943     loop 076a3h                               ; e2 fa
     10883    loop 07619h                               ; e2 fa
    1094410884    and ax, 000f0h                            ; 25 f0 00
    1094510885    movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
     
    1095210892    mov al, cl                                ; 88 c8
    1095310893    out DX, AL                                ; ee
    10954     mov ax, word [bp+00ah]                    ; 8b 46 0a
    10955     add ax, word [bp+008h]                    ; 03 46 08
    10956     out DX, AL                                ; ee
    10957     mov ax, word [bp-008h]                    ; 8b 46 f8
     10894    mov al, byte [bp-00ch]                    ; 8a 46 f4
     10895    out DX, AL                                ; ee
     10896    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1095810897    mov dx, di                                ; 89 fa
    1095910898    mov cx, strict word 00008h                ; b9 08 00
    1096010899    shr dx, 1                                 ; d1 ea
    1096110900    rcr ax, 1                                 ; d1 d8
    10962     loop 076cdh                               ; e2 fa
     10901    loop 07640h                               ; e2 fa
    1096310902    mov dx, bx                                ; 89 da
    1096410903    out DX, AL                                ; ee
     
    1096610905    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    1096710906    cmp cx, ax                                ; 39 c1
    10968     jnc short 076f1h                          ; 73 11
    10969     mov es, [bp-006h]                         ; 8e 46 fa
    10970     mov di, word [bp-00ch]                    ; 8b 7e f4
     10907    jnc short 07661h                          ; 73 0e
     10908    les di, [bp-008h]                         ; c4 7e f8
    1097110909    add di, cx                                ; 01 cf
    1097210910    mov al, byte [es:di]                      ; 26 8a 05
     
    1097410912    out DX, AL                                ; ee
    1097510913    inc cx                                    ; 41
    10976     jmp short 076d8h                          ; eb e7
     10914    jmp short 0764bh                          ; eb ea
    1097710915    mov dx, bx                                ; 89 da
    1097810916    in AL, DX                                 ; ec
     
    1098010918    ; sub ah, ah                                ; 2a e4
    1098110919    test AL, strict byte 001h                 ; a8 01
    10982     jne short 076f1h                          ; 75 f7
     10920    jne short 07661h                          ; 75 f7
     10921    test AL, strict byte 002h                 ; a8 02
     10922    je short 0767ch                           ; 74 0e
     10923    lea dx, [bx+003h]                         ; 8d 57 03
     10924    xor al, al                                ; 30 c0
     10925    out DX, AL                                ; ee
     10926    in AL, DX                                 ; ec
     10927    db  02ah, 0e4h
     10928    ; sub ah, ah                                ; 2a e4
     10929    mov dx, strict word 00003h                ; ba 03 00
     10930    jmp short 076e6h                          ; eb 6a
    1098310931    mov ax, word [bp+008h]                    ; 8b 46 08
    1098410932    test ax, ax                               ; 85 c0
    10985     je short 07709h                           ; 74 08
     10933    je short 0768bh                           ; 74 08
    1098610934    lea dx, [bx+001h]                         ; 8d 57 01
    1098710935    mov cx, ax                                ; 89 c1
    1098810936    in AL, DX                                 ; ec
    10989     loop 07706h                               ; e2 fd
     10937    loop 07688h                               ; e2 fd
    1099010938    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1099110939    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1099310941    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1099410942    mov word [es:si+018h], ax                 ; 26 89 44 18
    10995     lea dx, [bx+001h]                         ; 8d 57 01
     10943    lea ax, [bx+001h]                         ; 8d 47 01
    1099610944    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10997     jne short 0772ah                          ; 75 07
     10945    jne short 076ach                          ; 75 07
    1099810946    cmp word [bp+00ah], 08000h                ; 81 7e 0a 00 80
    10999     jbe short 07745h                          ; 76 1b
     10947    jbe short 076c9h                          ; 76 1d
     10948    mov dx, ax                                ; 89 c2
    1100010949    mov cx, 08000h                            ; b9 00 80
    1100110950    les di, [bp+010h]                         ; c4 7e 10
     
    1100610955    add ax, 00800h                            ; 05 00 08
    1100710956    mov word [bp+012h], ax                    ; 89 46 12
    11008     jmp short 0771ah                          ; eb d5
     10957    jmp short 0769ch                          ; eb d3
     10958    mov dx, ax                                ; 89 c2
    1100910959    mov cx, word [bp+00ah]                    ; 8b 4e 0a
    1101010960    les di, [bp+010h]                         ; c4 7e 10
    1101110961    rep insb                                  ; f3 6c
     10962    mov es, [bp-00ah]                         ; 8e 46 f6
     10963    cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
     10964    je short 076e4h                           ; 74 07
     10965    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
     10966    in AL, DX                                 ; ec
     10967    loop 076e1h                               ; e2 fd
    1101210968    xor dx, dx                                ; 31 d2
    1101310969    mov ax, dx                                ; 89 d0
     
    1101610972    pop si                                    ; 5e
    1101710973    retn 0000ch                               ; c2 0c 00
    11018 scsi_enumerate_attached_devices_:            ; 0xf7757 LB 0x319
     10974scsi_enumerate_attached_devices_:            ; 0xf76ee LB 0x36d
    1101910975    push bx                                   ; 53
    1102010976    push cx                                   ; 51
     
    1102310979    push di                                   ; 57
    1102410980    enter 0021eh, 000h                        ; c8 1e 02 00
    11025     mov di, ax                                ; 89 c7
     10981    push ax                                   ; 50
    1102610982    mov dx, strict word 0000eh                ; ba 0e 00
    1102710983    mov ax, strict word 00040h                ; b8 40 00
    11028     call 0161ch                               ; e8 b1 9e
     10984    call 0161ch                               ; e8 1b 9f
    1102910985    mov si, 00122h                            ; be 22 01
    11030     mov word [bp-00ah], ax                    ; 89 46 f6
    11031     mov word [bp-006h], strict word 00000h    ; c7 46 fa 00 00
    11032     jmp near 07a03h                           ; e9 8a 02
    11033     mov es, [bp-00ah]                         ; 8e 46 f6
     10986    mov word [bp-008h], ax                    ; 89 46 f8
     10987    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     10988    jmp near 079ech                           ; e9 dd 02
     10989    mov es, [bp-008h]                         ; 8e 46 f8
    1103410990    cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    11035     jnc near 07a69h                           ; 0f 83 e3 02
     10991    jnc near 07a54h                           ; 0f 83 38 03
    1103610992    mov cx, strict word 0000ah                ; b9 0a 00
    1103710993    xor bx, bx                                ; 31 db
    1103810994    mov dx, ss                                ; 8c d2
    1103910995    lea ax, [bp-01eh]                         ; 8d 46 e2
    11040     call 0902ah                               ; e8 97 18
     10996    call 0901ah                               ; e8 f1 18
    1104110997    mov byte [bp-01eh], 025h                  ; c6 46 e2 25
    1104210998    push dword 000000008h                     ; 66 6a 08
     
    1104511001    push dx                                   ; 52
    1104611002    push strict byte 0000ah                   ; 6a 0a
    11047     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     11003    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    1104811004    mov cx, ss                                ; 8c d1
    1104911005    lea bx, [bp-01eh]                         ; 8d 5e e2
    11050     mov ax, di                                ; 89 f8
    11051     call 073b3h                               ; e8 03 fc
     11006    mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
     11007    call 0731ah                               ; e8 d2 fb
    1105211008    test al, al                               ; 84 c0
    11053     je short 077c2h                           ; 74 0e
    11054     push 00b29h                               ; 68 29 0b
    11055     push 00b62h                               ; 68 62 0b
     11009    je short 0775ah                           ; 74 0e
     11010    push 00b2bh                               ; 68 2b 0b
     11011    push 00b64h                               ; 68 64 0b
    1105611012    push strict byte 00007h                   ; 6a 07
    11057     call 018e9h                               ; e8 2a a1
     11013    call 018e9h                               ; e8 92 a1
    1105811014    add sp, strict byte 00006h                ; 83 c4 06
    1105911015    movzx dx, byte [bp-0021dh]                ; 0f b6 96 e3 fd
    11060     movzx ax, byte [bp-0021eh]                ; 0f b6 86 e2 fd
    11061     sal ax, 008h                              ; c1 e0 08
     11016    movzx di, byte [bp-0021eh]                ; 0f b6 be e2 fd
     11017    sal di, 008h                              ; c1 e7 08
    1106211018    xor bx, bx                                ; 31 db
    11063     or ax, dx                                 ; 09 d0
    11064     mov word [bp-014h], ax                    ; 89 46 ec
     11019    or di, dx                                 ; 09 d7
    1106511020    movzx ax, byte [bp-0021ch]                ; 0f b6 86 e4 fd
    1106611021    xor dx, dx                                ; 31 d2
     
    1106811023    sal ax, 1                                 ; d1 e0
    1106911024    rcl dx, 1                                 ; d1 d2
    11070     loop 077e0h                               ; e2 fa
    11071     or bx, ax                                 ; 09 c3
    11072     or dx, word [bp-014h]                     ; 0b 56 ec
    11073     movzx ax, byte [bp-0021bh]                ; 0f b6 86 e5 fd
    11074     or bx, ax                                 ; 09 c3
    11075     mov word [bp-010h], bx                    ; 89 5e f0
    11076     mov word [bp-008h], dx                    ; 89 56 f8
     11025    loop 07775h                               ; e2 fa
     11026    or ax, bx                                 ; 09 d8
     11027    or di, dx                                 ; 09 d7
     11028    movzx dx, byte [bp-0021bh]                ; 0f b6 96 e5 fd
     11029    or ax, dx                                 ; 09 d0
     11030    mov word [bp-006h], ax                    ; 89 46 fa
    1107711031    movzx dx, byte [bp-0021ah]                ; 0f b6 96 e6 fd
    1107811032    sal dx, 008h                              ; c1 e2 08
    1107911033    movzx ax, byte [bp-00219h]                ; 0f b6 86 e7 fd
    11080     xor bx, bx                                ; 31 db
    1108111034    or dx, ax                                 ; 09 c2
    1108211035    mov word [bp-014h], dx                    ; 89 56 ec
     
    1108611039    sal ax, 1                                 ; d1 e0
    1108711040    rcl dx, 1                                 ; d1 d2
    11088     loop 07816h                               ; e2 fa
     11041    loop 077a5h                               ; e2 fa
    1108911042    or bx, ax                                 ; 09 c3
    1109011043    or dx, word [bp-014h]                     ; 0b 56 ec
    1109111044    movzx ax, byte [bp-00217h]                ; 0f b6 86 e9 fd
    1109211045    or bx, ax                                 ; 09 c3
    11093     mov word [bp-012h], bx                    ; 89 5e ee
     11046    mov word [bp-004h], bx                    ; 89 5e fc
    1109411047    test dx, dx                               ; 85 d2
    11095     jne short 07835h                          ; 75 06
     11048    jne short 077c4h                          ; 75 06
    1109611049    cmp bx, 00200h                            ; 81 fb 00 02
    11097     je short 07855h                           ; 74 20
    11098     mov bx, 00cech                            ; bb ec 0c
     11050    je short 077e4h                           ; 74 20
     11051    mov bx, 00d32h                            ; bb 32 0d
    1109911052    mov cx, ds                                ; 8c d9
    1110011053    mov ax, strict word 00004h                ; b8 04 00
    11101     call 018aeh                               ; e8 6e a0
     11054    call 018aeh                               ; e8 df a0
    1110211055    push dx                                   ; 52
    11103     push word [bp-012h]                       ; ff 76 ee
    11104     push word [bp-006h]                       ; ff 76 fa
    11105     push 00b81h                               ; 68 81 0b
     11056    push word [bp-004h]                       ; ff 76 fc
     11057    push word [bp-00ah]                       ; ff 76 f6
     11058    push 00b83h                               ; 68 83 0b
    1110611059    push strict byte 00004h                   ; 6a 04
    11107     call 018e9h                               ; e8 9a a0
     11060    call 018e9h                               ; e8 0b a1
    1110811061    add sp, strict byte 0000ah                ; 83 c4 0a
    11109     jmp near 079fah                           ; e9 a5 01
    11110     mov ax, word [bp-008h]                    ; 8b 46 f8
    11111     cmp ax, strict word 00040h                ; 3d 40 00
    11112     jnbe short 0785fh                         ; 77 02
    11113     jne short 07869h                          ; 75 0a
     11062    jmp near 079e3h                           ; e9 ff 01
     11063    cmp di, strict byte 00040h                ; 83 ff 40
     11064    jnbe short 077ebh                         ; 77 02
     11065    jne short 077f5h                          ; 75 0a
    1111411066    mov dword [bp-00eh], strict dword 000ff003fh ; 66 c7 46 f2 3f 00 ff 00
    11115     jmp short 07882h                          ; eb 19
    11116     cmp ax, strict word 00020h                ; 3d 20 00
    11117     jnbe short 07870h                         ; 77 02
    11118     jne short 0787ah                          ; 75 0a
     11067    jmp short 0780eh                          ; eb 19
     11068    cmp di, strict byte 00020h                ; 83 ff 20
     11069    jnbe short 077fch                         ; 77 02
     11070    jne short 07806h                          ; 75 0a
    1111911071    mov dword [bp-00eh], strict dword 000800020h ; 66 c7 46 f2 20 00 80 00
    11120     jmp short 07882h                          ; eb 08
     11072    jmp short 0780eh                          ; eb 08
    1112111073    mov dword [bp-00eh], strict dword 000400020h ; 66 c7 46 f2 20 00 40 00
    1112211074    mov bx, word [bp-00ch]                    ; 8b 5e f4
    1112311075    imul bx, word [bp-00eh]                   ; 0f af 5e f2
    11124     mov ax, word [bp-010h]                    ; 8b 46 f0
    11125     mov dx, word [bp-008h]                    ; 8b 56 f8
     11076    mov ax, word [bp-006h]                    ; 8b 46 fa
     11077    mov dx, di                                ; 89 fa
    1112611078    xor cx, cx                                ; 31 c9
    11127     call 08fc0h                               ; e8 2c 17
    11128     mov cx, ax                                ; 89 c1
    11129     mov word [bp-004h], dx                    ; 89 56 fc
    11130     mov es, [bp-00ah]                         ; 8e 46 f6
     11079    call 08fb0h                               ; e8 91 17
     11080    mov word [bp-012h], ax                    ; 89 46 ee
     11081    mov word [bp-010h], dx                    ; 89 56 f0
     11082    mov es, [bp-008h]                         ; 8e 46 f8
    1113111083    mov al, byte [es:si+001e8h]               ; 26 8a 84 e8 01
    1113211084    mov byte [bp-002h], al                    ; 88 46 fe
    11133     add AL, strict byte 008h                  ; 04 08
    11134     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     11085    mov dl, al                                ; 88 c2
     11086    add dl, 008h                              ; 80 c2 08
     11087    movzx bx, al                              ; 0f b6 d8
    1113511088    sal bx, 002h                              ; c1 e3 02
    1113611089    add bx, si                                ; 01 f3
    11137     mov word [es:bx+001d8h], di               ; 26 89 bf d8 01
    11138     mov ah, byte [bp-006h]                    ; 8a 66 fa
    11139     mov byte [es:bx+001dah], ah               ; 26 88 a7 da 01
    11140     movzx dx, al                              ; 0f b6 d0
    11141     imul dx, dx, strict byte 00018h           ; 6b d2 18
     11090    mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
     11091    mov word [es:bx+001d8h], ax               ; 26 89 87 d8 01
     11092    mov al, byte [bp-00ah]                    ; 8a 46 f6
     11093    mov byte [es:bx+001dah], al               ; 26 88 87 da 01
     11094    movzx ax, dl                              ; 0f b6 c2
     11095    imul ax, ax, strict byte 00018h           ; 6b c0 18
    1114211096    mov bx, si                                ; 89 f3
    11143     add bx, dx                                ; 01 d3
     11097    add bx, ax                                ; 01 c3
    1114411098    db  066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h
    1114511099    ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00
    11146     mov dx, word [bp-012h]                    ; 8b 56 ee
    11147     mov word [es:bx+024h], dx                 ; 26 89 57 24
     11100    mov ax, word [bp-004h]                    ; 8b 46 fc
     11101    mov word [es:bx+024h], ax                 ; 26 89 47 24
    1114811102    mov byte [es:bx+023h], 001h               ; 26 c6 47 23 01
    11149     mov dx, word [bp-00ch]                    ; 8b 56 f4
    11150     mov word [es:bx+026h], dx                 ; 26 89 57 26
    11151     mov dx, word [bp-00eh]                    ; 8b 56 f2
    11152     mov word [es:bx+02ah], dx                 ; 26 89 57 2a
    11153     cmp word [bp-004h], strict byte 00000h    ; 83 7e fc 00
    11154     jne short 078f5h                          ; 75 06
    11155     cmp cx, 00400h                            ; 81 f9 00 04
    11156     jbe short 078fdh                          ; 76 08
     11103    mov ax, word [bp-00ch]                    ; 8b 46 f4
     11104    mov word [es:bx+026h], ax                 ; 26 89 47 26
     11105    mov ax, word [bp-00eh]                    ; 8b 46 f2
     11106    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
     11107    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
     11108    jne short 07888h                          ; 75 07
     11109    cmp word [bp-012h], 00400h                ; 81 7e ee 00 04
     11110    jbe short 07890h                          ; 76 08
    1115711111    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11158     jmp short 07901h                          ; eb 04
    11159     mov word [es:bx+028h], cx                 ; 26 89 4f 28
    11160     movzx dx, al                              ; 0f b6 d0
    11161     imul dx, dx, strict byte 00018h           ; 6b d2 18
    11162     mov es, [bp-00ah]                         ; 8e 46 f6
    11163     mov bx, si                                ; 89 f3
    11164     add bx, dx                                ; 01 d3
    11165     mov dx, word [bp-00ch]                    ; 8b 56 f4
    11166     mov word [es:bx+02ch], dx                 ; 26 89 57 2c
    11167     mov dx, word [bp-00eh]                    ; 8b 56 f2
    11168     mov word [es:bx+030h], dx                 ; 26 89 57 30
    11169     cmp word [bp-004h], strict byte 00000h    ; 83 7e fc 00
    11170     jne short 07928h                          ; 75 06
    11171     cmp cx, 00400h                            ; 81 f9 00 04
    11172     jbe short 07930h                          ; 76 08
    11173     mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11174     jmp short 07934h                          ; eb 04
    11175     mov word [es:bx+02eh], cx                 ; 26 89 4f 2e
    11176     xor ah, ah                                ; 30 e4
     11112    jmp short 07897h                          ; eb 07
     11113    mov ax, word [bp-012h]                    ; 8b 46 ee
     11114    mov word [es:bx+028h], ax                 ; 26 89 47 28
     11115    mov bx, 00d32h                            ; bb 32 0d
     11116    mov cx, ds                                ; 8c d9
     11117    mov ax, strict word 00004h                ; b8 04 00
     11118    call 018aeh                               ; e8 0c a0
     11119    push di                                   ; 57
     11120    push word [bp-006h]                       ; ff 76 fa
     11121    push word [bp-00eh]                       ; ff 76 f2
     11122    push word [bp-00ch]                       ; ff 76 f4
     11123    push word [bp-012h]                       ; ff 76 ee
     11124    push word [bp-00ah]                       ; ff 76 f6
     11125    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11126    push ax                                   ; 50
     11127    push 00bb1h                               ; 68 b1 0b
     11128    push strict byte 00004h                   ; 6a 04
     11129    call 018e9h                               ; e8 2a a0
     11130    add sp, strict byte 00012h                ; 83 c4 12
     11131    movzx ax, dl                              ; 0f b6 c2
    1117711132    imul ax, ax, strict byte 00018h           ; 6b c0 18
    11178     mov es, [bp-00ah]                         ; 8e 46 f6
     11133    mov es, [bp-008h]                         ; 8e 46 f8
    1117911134    mov bx, si                                ; 89 f3
    1118011135    add bx, ax                                ; 01 c3
    11181     mov ax, word [bp-010h]                    ; 8b 46 f0
     11136    mov ax, word [bp-00ch]                    ; 8b 46 f4
     11137    mov word [es:bx+02ch], ax                 ; 26 89 47 2c
     11138    mov ax, word [bp-00eh]                    ; 8b 46 f2
     11139    mov word [es:bx+030h], ax                 ; 26 89 47 30
     11140    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
     11141    jne short 078eah                          ; 75 07
     11142    cmp word [bp-012h], 00400h                ; 81 7e ee 00 04
     11143    jbe short 078f2h                          ; 76 08
     11144    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
     11145    jmp short 078f9h                          ; eb 07
     11146    mov ax, word [bp-012h]                    ; 8b 46 ee
     11147    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
     11148    movzx ax, dl                              ; 0f b6 c2
     11149    imul ax, ax, strict byte 00018h           ; 6b c0 18
     11150    mov es, [bp-008h]                         ; 8e 46 f8
     11151    mov bx, si                                ; 89 f3
     11152    add bx, ax                                ; 01 c3
     11153    mov ax, word [bp-006h]                    ; 8b 46 fa
    1118211154    mov word [es:bx+032h], ax                 ; 26 89 47 32
    11183     mov ax, word [bp-008h]                    ; 8b 46 f8
    11184     mov word [es:bx+034h], ax                 ; 26 89 47 34
     11155    mov word [es:bx+034h], di                 ; 26 89 7f 34
    1118511156    mov al, byte [es:si+0019eh]               ; 26 8a 84 9e 01
    1118611157    mov ah, byte [bp-002h]                    ; 8a 66 fe
     
    1119411165    mov dx, strict word 00075h                ; ba 75 00
    1119511166    mov ax, strict word 00040h                ; b8 40 00
    11196     call 01600h                               ; e8 8d 9c
     11167    call 01600h                               ; e8 ca 9c
    1119711168    db  0feh, 0c0h
    1119811169    ; inc al                                    ; fe c0
     
    1120011171    mov dx, strict word 00075h                ; ba 75 00
    1120111172    mov ax, strict word 00040h                ; b8 40 00
    11202     call 0160eh                               ; e8 8d 9c
     11173    call 0160eh                               ; e8 ca 9c
    1120311174    inc byte [bp-002h]                        ; fe 46 fe
    1120411175    mov al, byte [bp-002h]                    ; 8a 46 fe
    11205     mov es, [bp-00ah]                         ; 8e 46 f6
     11176    mov es, [bp-008h]                         ; 8e 46 f8
    1120611177    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11207     jmp short 079fah                          ; eb 69
    11208     mov al, byte [bp-002h]                    ; 8a 46 fe
    11209     add AL, strict byte 008h                  ; 04 08
     11178    jmp near 079e3h                           ; e9 8e 00
     11179    mov bx, 00d32h                            ; bb 32 0d
     11180    mov cx, ds                                ; 8c d9
     11181    mov ax, strict word 00004h                ; b8 04 00
     11182    call 018aeh                               ; e8 4e 9f
     11183    push word [bp-00ah]                       ; ff 76 f6
     11184    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11185    push ax                                   ; 50
     11186    push 00bdbh                               ; 68 db 0b
     11187    push strict byte 00004h                   ; 6a 04
     11188    call 018e9h                               ; e8 79 9f
     11189    add sp, strict byte 00008h                ; 83 c4 08
     11190    mov dl, byte [bp-002h]                    ; 8a 56 fe
     11191    add dl, 008h                              ; 80 c2 08
    1121011192    test byte [bp-0021dh], 080h               ; f6 86 e3 fd 80
    11211     db  00fh, 095h, 0c4h
    11212     ; setne ah                                  ; 0f 95 c4
    11213     movzx dx, ah                              ; 0f b6 d4
    11214     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    11215     sal bx, 002h                              ; c1 e3 02
    11216     mov es, [bp-00ah]                         ; 8e 46 f6
    11217     add bx, si                                ; 01 f3
    11218     mov word [es:bx+001d8h], di               ; 26 89 bf d8 01
    11219     mov ah, byte [bp-006h]                    ; 8a 66 fa
    11220     mov byte [es:bx+001dah], ah               ; 26 88 a7 da 01
     11193    db  00fh, 095h, 0c0h
     11194    ; setne al                                  ; 0f 95 c0
    1122111195    xor ah, ah                                ; 30 e4
    11222     imul ax, ax, strict byte 00018h           ; 6b c0 18
     11196    mov cx, ax                                ; 89 c1
     11197    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11198    sal ax, 002h                              ; c1 e0 02
     11199    mov es, [bp-008h]                         ; 8e 46 f8
    1122311200    mov bx, si                                ; 89 f3
    1122411201    add bx, ax                                ; 01 c3
     11202    mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
     11203    mov word [es:bx+001d8h], ax               ; 26 89 87 d8 01
     11204    mov al, byte [bp-00ah]                    ; 8a 46 f6
     11205    mov byte [es:bx+001dah], al               ; 26 88 87 da 01
     11206    movzx bx, dl                              ; 0f b6 da
     11207    imul bx, bx, strict byte 00018h           ; 6b db 18
     11208    add bx, si                                ; 01 f3
    1122511209    mov word [es:bx+01eh], 00504h             ; 26 c7 47 1e 04 05
    11226     mov byte [es:bx+020h], dl                 ; 26 88 57 20
     11210    mov byte [es:bx+020h], cl                 ; 26 88 4f 20
    1122711211    mov word [es:bx+024h], 00800h             ; 26 c7 47 24 00 08
    1122811212    mov al, byte [es:si+001afh]               ; 26 8a 84 af 01
     
    1123811222    mov al, byte [bp-002h]                    ; 8a 46 fe
    1123911223    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11240     inc word [bp-006h]                        ; ff 46 fa
    11241     cmp word [bp-006h], strict byte 00010h    ; 83 7e fa 10
    11242     jnl short 07a69h                          ; 7d 66
     11224    inc word [bp-00ah]                        ; ff 46 f6
     11225    cmp word [bp-00ah], strict byte 00010h    ; 83 7e f6 10
     11226    jnl short 07a54h                          ; 7d 68
    1124311227    mov byte [bp-01eh], 012h                  ; c6 46 e2 12
    1124411228    xor al, al                                ; 30 c0
     
    1125311237    push dx                                   ; 52
    1125411238    push strict byte 00006h                   ; 6a 06
    11255     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     11239    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    1125611240    mov cx, ss                                ; 8c d1
    1125711241    lea bx, [bp-01eh]                         ; 8d 5e e2
    11258     mov ax, di                                ; 89 f8
    11259     call 073b3h                               ; e8 81 f9
     11242    mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
     11243    call 0731ah                               ; e8 fd f8
    1126011244    test al, al                               ; 84 c0
    11261     je short 07a44h                           ; 74 0e
    11262     push 00b29h                               ; 68 29 0b
    11263     push 00b49h                               ; 68 49 0b
     11245    je short 07a2fh                           ; 74 0e
     11246    push 00b2bh                               ; 68 2b 0b
     11247    push 00b4bh                               ; 68 4b 0b
    1126411248    push strict byte 00007h                   ; 6a 07
    11265     call 018e9h                               ; e8 a8 9e
     11249    call 018e9h                               ; e8 bd 9e
    1126611250    add sp, strict byte 00006h                ; 83 c4 06
    1126711251    test byte [bp-0021eh], 0e0h               ; f6 86 e2 fd e0
    11268     jne short 07a54h                          ; 75 09
     11252    jne short 07a3fh                          ; 75 09
    1126911253    test byte [bp-0021eh], 01fh               ; f6 86 e2 fd 1f
    11270     je near 07779h                            ; 0f 84 25 fd
     11254    je near 0770fh                            ; 0f 84 d0 fc
    1127111255    test byte [bp-0021eh], 0e0h               ; f6 86 e2 fd e0
    11272     jne short 079fah                          ; 75 9f
     11256    jne short 079e3h                          ; 75 9d
    1127311257    mov al, byte [bp-0021eh]                  ; 8a 86 e2 fd
    1127411258    and AL, strict byte 01fh                  ; 24 1f
    1127511259    cmp AL, strict byte 005h                  ; 3c 05
    11276     je near 07991h                            ; 0f 84 2a ff
    11277     jmp short 079fah                          ; eb 91
     11260    je near 07955h                            ; 0f 84 03 ff
     11261    jmp short 079e3h                          ; eb 8f
    1127811262    leave                                     ; c9
    1127911263    pop di                                    ; 5f
     
    1128311267    pop bx                                    ; 5b
    1128411268    retn                                      ; c3
    11285 _scsi_init:                                  ; 0xf7a70 LB 0x64
     11269_scsi_init:                                  ; 0xf7a5b LB 0x64
    1128611270    push bp                                   ; 55
    1128711271    mov bp, sp                                ; 89 e5
    1128811272    mov dx, strict word 0000eh                ; ba 0e 00
    1128911273    mov ax, strict word 00040h                ; b8 40 00
    11290     call 0161ch                               ; e8 a0 9b
     11274    call 0161ch                               ; e8 b5 9b
    1129111275    mov bx, 00122h                            ; bb 22 01
    1129211276    mov es, ax                                ; 8e c0
    1129311277    mov byte [es:bx+001e8h], 000h             ; 26 c6 87 e8 01 00
    1129411278    mov AL, strict byte 055h                  ; b0 55
    11295     mov dx, 00332h                            ; ba 32 03
     11279    mov dx, 00432h                            ; ba 32 04
    1129611280    out DX, AL                                ; ee
    1129711281    in AL, DX                                 ; ec
     
    1129911283    ; sub ah, ah                                ; 2a e4
    1130011284    cmp AL, strict byte 055h                  ; 3c 55
    11301     jne short 07aa0h                          ; 75 0c
     11285    jne short 07a8bh                          ; 75 0c
    1130211286    xor al, al                                ; 30 c0
    11303     mov dx, 00333h                            ; ba 33 03
    11304     out DX, AL                                ; ee
    11305     mov ax, 00330h                            ; b8 30 03
    11306     call 07757h                               ; e8 b7 fc
     11287    mov dx, 00433h                            ; ba 33 04
     11288    out DX, AL                                ; ee
     11289    mov ax, 00430h                            ; b8 30 04
     11290    call 076eeh                               ; e8 63 fc
    1130711291    mov AL, strict byte 055h                  ; b0 55
    11308     mov dx, 00342h                            ; ba 42 03
     11292    mov dx, 00436h                            ; ba 36 04
    1130911293    out DX, AL                                ; ee
    1131011294    in AL, DX                                 ; ec
     
    1131211296    ; sub ah, ah                                ; 2a e4
    1131311297    cmp AL, strict byte 055h                  ; 3c 55
    11314     jne short 07ab9h                          ; 75 0c
     11298    jne short 07aa4h                          ; 75 0c
    1131511299    xor al, al                                ; 30 c0
    11316     mov dx, 00343h                            ; ba 43 03
    11317     out DX, AL                                ; ee
    11318     mov ax, 00340h                            ; b8 40 03
    11319     call 07757h                               ; e8 9e fc
     11300    mov dx, 00437h                            ; ba 37 04
     11301    out DX, AL                                ; ee
     11302    mov ax, 00434h                            ; b8 34 04
     11303    call 076eeh                               ; e8 4a fc
    1132011304    mov AL, strict byte 055h                  ; b0 55
    11321     mov dx, 00352h                            ; ba 52 03
     11305    mov dx, 0043ah                            ; ba 3a 04
    1132211306    out DX, AL                                ; ee
    1132311307    in AL, DX                                 ; ec
     
    1132511309    ; sub ah, ah                                ; 2a e4
    1132611310    cmp AL, strict byte 055h                  ; 3c 55
    11327     jne short 07ad2h                          ; 75 0c
     11311    jne short 07abdh                          ; 75 0c
    1132811312    xor al, al                                ; 30 c0
    11329     mov dx, 00353h                            ; ba 53 03
    11330     out DX, AL                                ; ee
    11331     mov ax, 00350h                            ; b8 50 03
    11332     call 07757h                               ; e8 85 fc
     11313    mov dx, 0043bh                            ; ba 3b 04
     11314    out DX, AL                                ; ee
     11315    mov ax, 00438h                            ; b8 38 04
     11316    call 076eeh                               ; e8 31 fc
    1133311317    pop bp                                    ; 5d
    1133411318    retn                                      ; c3
    11335 high_bits_save_:                             ; 0xf7ad4 LB 0x14
     11319high_bits_save_:                             ; 0xf7abf LB 0x14
    1133611320    push bx                                   ; 53
    1133711321    push bp                                   ; 55
     
    1134411328    pop bx                                    ; 5b
    1134511329    retn                                      ; c3
    11346 high_bits_restore_:                          ; 0xf7ae8 LB 0x14
     11330high_bits_restore_:                          ; 0xf7ad3 LB 0x14
    1134711331    push bx                                   ; 53
    1134811332    push bp                                   ; 55
     
    1135511339    pop bx                                    ; 5b
    1135611340    retn                                      ; c3
    11357 ahci_ctrl_set_bits_:                         ; 0xf7afc LB 0x40
     11341ahci_ctrl_set_bits_:                         ; 0xf7ae7 LB 0x40
    1135811342    push si                                   ; 56
    1135911343    push di                                   ; 57
     
    1139011374    pop si                                    ; 5e
    1139111375    retn                                      ; c3
    11392 ahci_ctrl_clear_bits_:                       ; 0xf7b3c LB 0x44
     11376ahci_ctrl_clear_bits_:                       ; 0xf7b27 LB 0x44
    1139311377    push si                                   ; 56
    1139411378    push di                                   ; 57
     
    1142711411    pop si                                    ; 5e
    1142811412    retn                                      ; c3
    11429 ahci_ctrl_is_bit_set_:                       ; 0xf7b80 LB 0x36
     11413ahci_ctrl_is_bit_set_:                       ; 0xf7b6b LB 0x36
    1143011414    push si                                   ; 56
    1143111415    push di                                   ; 57
     
    1144911433    xchg dx, ax                               ; 92
    1145011434    test dx, di                               ; 85 fa
    11451     jne short 07bach                          ; 75 04
     11435    jne short 07b97h                          ; 75 04
    1145211436    test ax, bx                               ; 85 d8
    11453     je short 07bb0h                           ; 74 04
     11437    je short 07b9bh                           ; 74 04
    1145411438    mov AL, strict byte 001h                  ; b0 01
    11455     jmp short 07bb2h                          ; eb 02
     11439    jmp short 07b9dh                          ; eb 02
    1145611440    xor al, al                                ; 30 c0
    1145711441    pop bp                                    ; 5d
     
    1145911443    pop si                                    ; 5e
    1146011444    retn                                      ; c3
    11461 ahci_ctrl_extract_bits_:                     ; 0xf7bb6 LB 0x1b
     11445ahci_ctrl_extract_bits_:                     ; 0xf7ba1 LB 0x1b
    1146211446    push si                                   ; 56
    1146311447    push bp                                   ; 55
     
    1146711451    and dx, cx                                ; 21 ca
    1146811452    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    11469     jcxz 07bcch                               ; e3 06
     11453    jcxz 07bb7h                               ; e3 06
    1147011454    shr dx, 1                                 ; d1 ea
    1147111455    rcr ax, 1                                 ; d1 d8
    11472     loop 07bc6h                               ; e2 fa
     11456    loop 07bb1h                               ; e2 fa
    1147311457    pop bp                                    ; 5d
    1147411458    pop si                                    ; 5e
    1147511459    retn 00002h                               ; c2 02 00
    11476 ahci_addr_to_phys_:                          ; 0xf7bd1 LB 0x1e
     11460ahci_addr_to_phys_:                          ; 0xf7bbc LB 0x1e
    1147711461    push bx                                   ; 53
    1147811462    push cx                                   ; 51
     
    1148511469    sal ax, 1                                 ; d1 e0
    1148611470    rcl dx, 1                                 ; d1 d2
    11487     loop 07bdfh                               ; e2 fa
     11471    loop 07bcah                               ; e2 fa
    1148811472    xor cx, cx                                ; 31 c9
    1148911473    add ax, bx                                ; 01 d8
     
    1149311477    pop bx                                    ; 5b
    1149411478    retn                                      ; c3
    11495 ahci_port_cmd_sync_:                         ; 0xf7bef LB 0xd0
     11479ahci_port_cmd_sync_:                         ; 0xf7bda LB 0xd0
    1149611480    push cx                                   ; 51
    1149711481    push si                                   ; 56
     
    1150511489    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1150611490    cmp AL, strict byte 0ffh                  ; 3c ff
    11507     je near 07cbah                            ; 0f 84 aa 00
     11491    je near 07ca5h                            ; 0f 84 aa 00
    1150811492    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    1150911493    xor dx, dx                                ; 31 d2
     
    1151711501    lea ax, [si+00080h]                       ; 8d 84 80 00
    1151811502    mov dx, es                                ; 8c c2
    11519     call 07bd1h                               ; e8 98 ff
     11503    call 07bbch                               ; e8 98 ff
    1152011504    mov es, [bp-004h]                         ; 8e 46 fc
    1152111505    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1152711511    xor cx, cx                                ; 31 c9
    1152811512    mov ax, di                                ; 89 f8
    11529     call 07afch                               ; e8 a3 fe
     11513    call 07ae7h                               ; e8 a3 fe
    1153011514    lea ax, [si+00138h]                       ; 8d 84 38 01
    1153111515    cwd                                       ; 99
     
    1155411538    mov dx, si                                ; 89 f2
    1155511539    mov ax, di                                ; 89 f8
    11556     call 07b80h                               ; e8 e7 fe
     11540    call 07b6bh                               ; e8 e7 fe
    1155711541    test al, al                               ; 84 c0
    11558     je short 07c7ch                           ; 74 df
     11542    je short 07c67h                           ; 74 df
    1155911543    mov bx, strict word 00001h                ; bb 01 00
    1156011544    xor cx, cx                                ; 31 c9
    1156111545    mov dx, si                                ; 89 f2
    1156211546    mov ax, di                                ; 89 f8
    11563     call 07afch                               ; e8 53 fe
     11547    call 07ae7h                               ; e8 53 fe
    1156411548    mov dx, word [bp-006h]                    ; 8b 56 fa
    1156511549    add dx, 00118h                            ; 81 c2 18 01
     
    1156711551    xor cx, cx                                ; 31 c9
    1156811552    mov ax, di                                ; 89 f8
    11569     call 07b3ch                               ; e8 82 fe
     11553    call 07b27h                               ; e8 82 fe
    1157011554    leave                                     ; c9
    1157111555    pop di                                    ; 5f
     
    1157311557    pop cx                                    ; 59
    1157411558    retn                                      ; c3
    11575 ahci_cmd_data_:                              ; 0xf7cbf LB 0x1c5
     11559ahci_cmd_data_:                              ; 0xf7caa LB 0x1c5
    1157611560    push cx                                   ; 51
    1157711561    push si                                   ; 56
     
    1159511579    mov ax, 00080h                            ; b8 80 00
    1159611580    mov dx, word [bp-004h]                    ; 8b 56 fc
    11597     call 0902ah                               ; e8 2e 13
     11581    call 0901ah                               ; e8 33 13
    1159811582    mov es, [bp-004h]                         ; 8e 46 fc
    1159911583    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1161111595    shr bx, 1                                 ; d1 eb
    1161211596    rcr ax, 1                                 ; d1 d8
    11613     loop 07d2fh                               ; e2 fa
     11597    loop 07d1ah                               ; e2 fa
    1161411598    mov es, [bp-004h]                         ; 8e 46 fc
    1161511599    mov byte [es:si+00085h], al               ; 26 88 84 85 00
     
    1163611620    mov bx, word [bp-010h]                    ; 8b 5e f0
    1163711621    xor cx, cx                                ; 31 c9
    11638     call 08ff9h                               ; e8 61 12
     11622    call 08fe9h                               ; e8 66 12
    1163911623    push dx                                   ; 52
    1164011624    push ax                                   ; 50
     
    1164411628    mov ax, 0026ah                            ; b8 6a 02
    1164511629    mov dx, word [bp-004h]                    ; 8b 56 fc
    11646     call 08f14h                               ; e8 66 11
     11630    call 08effh                               ; e8 66 11
    1164711631    mov es, [bp-004h]                         ; 8e 46 fc
    1164811632    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1166411648    mov es, [bp-00ch]                         ; 8e 46 f4
    1166511649    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    11666     je short 07e27h                           ; 74 2c
     11650    je short 07e12h                           ; 74 2c
    1166711651    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1166811652    dec dx                                    ; 4a
     
    1168311667    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1168411668    cmp ax, dx                                ; 39 d0
    11685     jnc short 07e41h                          ; 73 03
     11669    jnc short 07e2ch                          ; 73 03
    1168611670    inc ax                                    ; 40
    11687     jmp short 07e31h                          ; eb f0
     11671    jmp short 07e1ch                          ; eb f0
    1168811672    mov al, byte [bp-002h]                    ; 8a 46 fe
    1168911673    cmp AL, strict byte 035h                  ; 3c 35
    11690     jne short 07e4eh                          ; 75 06
     11674    jne short 07e39h                          ; 75 06
    1169111675    mov byte [bp-002h], 040h                  ; c6 46 fe 40
    11692     jmp short 07e62h                          ; eb 14
     11676    jmp short 07e4dh                          ; eb 14
    1169311677    cmp AL, strict byte 0a0h                  ; 3c a0
    11694     jne short 07e5eh                          ; 75 0c
     11678    jne short 07e49h                          ; 75 0c
    1169511679    or byte [bp-002h], 020h                   ; 80 4e fe 20
    1169611680    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    11697     jmp short 07e62h                          ; eb 04
     11681    jmp short 07e4dh                          ; eb 04
    1169811682    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    1169911683    or byte [bp-002h], 005h                   ; 80 4e fe 05
     
    1170111685    mov ax, word [bp-008h]                    ; 8b 46 f8
    1170211686    mov dx, word [bp-006h]                    ; 8b 56 fa
    11703     call 07befh                               ; e8 7c fd
     11687    call 07bdah                               ; e8 7c fd
    1170411688    mov ax, word [bp-008h]                    ; 8b 46 f8
    1170511689    add ax, 0026ah                            ; 05 6a 02
    1170611690    mov dx, word [bp-006h]                    ; 8b 56 fa
    11707     call 08f8ah                               ; e8 0b 11
     11691    call 08f75h                               ; e8 0b 11
    1170811692    leave                                     ; c9
    1170911693    pop di                                    ; 5f
     
    1171111695    pop cx                                    ; 59
    1171211696    retn                                      ; c3
    11713 ahci_port_deinit_current_:                   ; 0xf7e84 LB 0x13f
     11697ahci_port_deinit_current_:                   ; 0xf7e6f LB 0x13f
    1171411698    push bx                                   ; 53
    1171511699    push cx                                   ; 51
     
    1172411708    mov byte [bp-002h], al                    ; 88 46 fe
    1172511709    cmp AL, strict byte 0ffh                  ; 3c ff
    11726     je near 07fbdh                            ; 0f 84 17 01
     11710    je near 07fa8h                            ; 0f 84 17 01
    1172711711    movzx dx, al                              ; 0f b6 d0
    1172811712    sal dx, 007h                              ; c1 e2 07
     
    1173111715    xor cx, cx                                ; 31 c9
    1173211716    mov ax, si                                ; 89 f0
    11733     call 07b3ch                               ; e8 82 fc
     11717    call 07b27h                               ; e8 82 fc
    1173411718    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    1173511719    sal ax, 007h                              ; c1 e0 07
     
    1174011724    xor cx, cx                                ; 31 c9
    1174111725    mov ax, si                                ; 89 f0
    11742     call 07b80h                               ; e8 ac fc
     11726    call 07b6bh                               ; e8 ac fc
    1174311727    cmp AL, strict byte 001h                  ; 3c 01
    11744     je short 07ebah                           ; 74 e2
     11728    je short 07ea5h                           ; 74 e2
    1174511729    mov cx, strict word 00020h                ; b9 20 00
    1174611730    xor bx, bx                                ; 31 db
    1174711731    mov ax, di                                ; 89 f8
    1174811732    mov dx, word [bp-004h]                    ; 8b 56 fc
    11749     call 0902ah                               ; e8 45 11
     11733    call 0901ah                               ; e8 4a 11
    1175011734    lea ax, [di+00080h]                       ; 8d 85 80 00
    1175111735    mov cx, strict word 00040h                ; b9 40 00
    1175211736    xor bx, bx                                ; 31 db
    1175311737    mov dx, word [bp-004h]                    ; 8b 56 fc
    11754     call 0902ah                               ; e8 36 11
     11738    call 0901ah                               ; e8 3b 11
    1175511739    lea ax, [di+00200h]                       ; 8d 85 00 02
    1175611740    mov cx, strict word 00060h                ; b9 60 00
    1175711741    xor bx, bx                                ; 31 db
    1175811742    mov dx, word [bp-004h]                    ; 8b 56 fc
    11759     call 0902ah                               ; e8 27 11
     11743    call 0901ah                               ; e8 2c 11
    1176011744    mov ax, word [bp-006h]                    ; 8b 46 fa
    1176111745    add ax, 00108h                            ; 05 08 01
     
    1185811842    pop bx                                    ; 5b
    1185911843    retn                                      ; c3
    11860 ahci_port_init_:                             ; 0xf7fc3 LB 0x201
     11844ahci_port_init_:                             ; 0xf7fae LB 0x201
    1186111845    push cx                                   ; 51
    1186211846    push si                                   ; 56
     
    1186611850    mov word [bp-004h], dx                    ; 89 56 fc
    1186711851    mov byte [bp-002h], bl                    ; 88 5e fe
    11868     call 07e84h                               ; e8 af fe
     11852    call 07e6fh                               ; e8 af fe
    1186911853    movzx dx, bl                              ; 0f b6 d3
    1187011854    sal dx, 007h                              ; c1 e2 07
     
    1187411858    mov bx, strict word 00011h                ; bb 11 00
    1187511859    xor cx, cx                                ; 31 c9
    11876     call 07b3ch                               ; e8 4d fb
     11860    call 07b27h                               ; e8 4d fb
    1187711861    movzx di, byte [bp-002h]                  ; 0f b6 7e fe
    1187811862    sal di, 007h                              ; c1 e7 07
     
    1188211866    mov bx, 0c011h                            ; bb 11 c0
    1188311867    xor cx, cx                                ; 31 c9
    11884     call 07b80h                               ; e8 76 fb
     11868    call 07b6bh                               ; e8 76 fb
    1188511869    cmp AL, strict byte 001h                  ; 3c 01
    11886     je short 07fefh                           ; 74 e1
     11870    je short 07fdah                           ; 74 e1
    1188711871    mov cx, strict word 00020h                ; b9 20 00
    1188811872    xor bx, bx                                ; 31 db
    1188911873    mov ax, si                                ; 89 f0
    1189011874    mov dx, word [bp-004h]                    ; 8b 56 fc
    11891     call 0902ah                               ; e8 0f 10
     11875    call 0901ah                               ; e8 14 10
    1189211876    lea ax, [si+00080h]                       ; 8d 84 80 00
    1189311877    mov cx, strict word 00040h                ; b9 40 00
    1189411878    xor bx, bx                                ; 31 db
    1189511879    mov dx, word [bp-004h]                    ; 8b 56 fc
    11896     call 0902ah                               ; e8 00 10
     11880    call 0901ah                               ; e8 05 10
    1189711881    mov ax, si                                ; 89 f0
    1189811882    add ah, 002h                              ; 80 c4 02
     
    1190111885    xor bx, bx                                ; 31 db
    1190211886    mov dx, word [bp-004h]                    ; 8b 56 fc
    11903     call 0902ah                               ; e8 ed 0f
     11887    call 0901ah                               ; e8 f2 0f
    1190411888    lea ax, [di+00108h]                       ; 8d 85 08 01
    1190511889    cwd                                       ; 99
     
    1191511899    mov ax, word [bp-006h]                    ; 8b 46 fa
    1191611900    mov dx, word [bp-004h]                    ; 8b 56 fc
    11917     call 07bd1h                               ; e8 71 fb
     11901    call 07bbch                               ; e8 71 fb
    1191811902    mov es, [bp-004h]                         ; 8e 46 fc
    1191911903    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1196011944    mov ax, si                                ; 89 f0
    1196111945    mov dx, word [bp-004h]                    ; 8b 56 fc
    11962     call 07bd1h                               ; e8 05 fb
     11946    call 07bbch                               ; e8 05 fb
    1196311947    mov es, [bp-004h]                         ; 8e 46 fc
    1196411948    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1206412048    pop cx                                    ; 59
    1206512049    retn                                      ; c3
    12066 @ahci_read_sectors:                          ; 0xf81c4 LB 0x91
     12050@ahci_read_sectors:                          ; 0xf81af LB 0x91
    1206712051    push si                                   ; 56
    1206812052    push di                                   ; 57
     
    1207312057    sub di, strict byte 0000ch                ; 83 ef 0c
    1207412058    cmp di, strict byte 00004h                ; 83 ff 04
    12075     jbe short 081e8h                          ; 76 0f
     12059    jbe short 081d3h                          ; 76 0f
    1207612060    push di                                   ; 57
    12077     push 00bb0h                               ; 68 b0 0b
    12078     push 00bc2h                               ; 68 c2 0b
     12061    push 00bf6h                               ; 68 f6 0b
     12062    push 00c08h                               ; 68 08 0c
    1207912063    push strict byte 00007h                   ; 6a 07
    12080     call 018e9h                               ; e8 04 97
     12064    call 018e9h                               ; e8 19 97
    1208112065    add sp, strict byte 00008h                ; 83 c4 08
    1208212066    les bx, [bp+008h]                         ; c4 5e 08
    1208312067    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1208412068    xor ax, ax                                ; 31 c0
    12085     call 07ad4h                               ; e8 df f8
     12069    call 07abfh                               ; e8 df f8
    1208612070    mov es, [bp+00ah]                         ; 8e 46 0a
    1208712071    add di, bx                                ; 01 df
     
    1209012074    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1209112075    xor ax, ax                                ; 31 c0
    12092     call 07fc3h                               ; e8 b6 fd
     12076    call 07faeh                               ; e8 b6 fd
    1209312077    mov bx, strict word 00025h                ; bb 25 00
    1209412078    mov ax, di                                ; 89 f8
    1209512079    mov dx, word [bp+00ah]                    ; 8b 56 0a
    12096     call 07cbfh                               ; e8 a7 fa
     12080    call 07caah                               ; e8 a7 fa
    1209712081    mov es, [bp+00ah]                         ; 8e 46 0a
    1209812082    mov bx, di                                ; 89 fb
     
    1211412098    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1211512099    xor ax, ax                                ; 31 c0
    12116     call 07ae8h                               ; e8 9b f8
     12100    call 07ad3h                               ; e8 9b f8
    1211712101    xor ax, ax                                ; 31 c0
    1211812102    pop bp                                    ; 5d
     
    1212012104    pop si                                    ; 5e
    1212112105    retn 00004h                               ; c2 04 00
    12122 @ahci_write_sectors:                         ; 0xf8255 LB 0x6d
     12106@ahci_write_sectors:                         ; 0xf8240 LB 0x6d
    1212312107    push si                                   ; 56
    1212412108    push bp                                   ; 55
     
    1213012114    sub bx, strict byte 0000ch                ; 83 eb 0c
    1213112115    cmp bx, strict byte 00004h                ; 83 fb 04
    12132     jbe short 0827dh                          ; 76 0f
     12116    jbe short 08268h                          ; 76 0f
    1213312117    push bx                                   ; 53
    12134     push 00be1h                               ; 68 e1 0b
    12135     push 00bc2h                               ; 68 c2 0b
     12118    push 00c27h                               ; 68 27 0c
     12119    push 00c08h                               ; 68 08 0c
    1213612120    push strict byte 00007h                   ; 6a 07
    12137     call 018e9h                               ; e8 6f 96
     12121    call 018e9h                               ; e8 84 96
    1213812122    add sp, strict byte 00008h                ; 83 c4 08
    1213912123    mov es, cx                                ; 8e c1
    1214012124    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1214112125    xor ax, ax                                ; 31 c0
    12142     call 07ad4h                               ; e8 4b f8
     12126    call 07abfh                               ; e8 4b f8
    1214312127    mov es, cx                                ; 8e c1
    1214412128    add bx, si                                ; 01 f3
     
    1214612130    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1214712131    xor ax, ax                                ; 31 c0
    12148     call 07fc3h                               ; e8 26 fd
     12132    call 07faeh                               ; e8 26 fd
    1214912133    mov bx, strict word 00035h                ; bb 35 00
    1215012134    mov ax, si                                ; 89 f0
    1215112135    mov dx, cx                                ; 89 ca
    12152     call 07cbfh                               ; e8 18 fa
     12136    call 07caah                               ; e8 18 fa
    1215312137    mov es, cx                                ; 8e c1
    1215412138    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     
    1215612140    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1215712141    xor ax, ax                                ; 31 c0
    12158     call 07ae8h                               ; e8 2d f8
     12142    call 07ad3h                               ; e8 2d f8
    1215912143    xor ax, ax                                ; 31 c0
    1216012144    pop bp                                    ; 5d
    1216112145    pop si                                    ; 5e
    1216212146    retn 00004h                               ; c2 04 00
    12163 ahci_cmd_packet_:                            ; 0xf82c2 LB 0x16e
     12147ahci_cmd_packet_:                            ; 0xf82ad LB 0x16e
    1216412148    push si                                   ; 56
    1216512149    push di                                   ; 57
     
    1217112155    mov dx, strict word 0000eh                ; ba 0e 00
    1217212156    mov ax, strict word 00040h                ; b8 40 00
    12173     call 0161ch                               ; e8 41 93
     12157    call 0161ch                               ; e8 56 93
    1217412158    mov si, 00122h                            ; be 22 01
    1217512159    mov word [bp-004h], ax                    ; 89 46 fc
    1217612160    cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    12177     jne short 08306h                          ; 75 1f
    12178     mov bx, 00cech                            ; bb ec 0c
     12161    jne short 082f1h                          ; 75 1f
     12162    mov bx, 00d32h                            ; bb 32 0d
    1217912163    mov cx, ds                                ; 8c d9
    1218012164    mov ax, strict word 00004h                ; b8 04 00
    12181     call 018aeh                               ; e8 bc 95
    12182     push 00bf4h                               ; 68 f4 0b
    12183     push 00c04h                               ; 68 04 0c
     12165    call 018aeh                               ; e8 d1 95
     12166    push 00c3ah                               ; 68 3a 0c
     12167    push 00c4ah                               ; 68 4a 0c
    1218412168    push strict byte 00004h                   ; 6a 04
    12185     call 018e9h                               ; e8 ec 95
     12169    call 018e9h                               ; e8 01 96
    1218612170    add sp, strict byte 00006h                ; 83 c4 06
    1218712171    mov ax, strict word 00001h                ; b8 01 00
    12188     jmp near 0842ah                           ; e9 24 01
     12172    jmp near 08415h                           ; e9 24 01
    1218912173    test byte [bp+008h], 001h                 ; f6 46 08 01
    12190     jne short 08300h                          ; 75 f4
     12174    jne short 082ebh                          ; 75 f4
    1219112175    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1219212176    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1219412178    sal ax, 1                                 ; d1 e0
    1219512179    rcl dx, 1                                 ; d1 d2
    12196     loop 08315h                               ; e2 fa
     12180    loop 08300h                               ; e2 fa
    1219712181    mov es, [bp-004h]                         ; 8e 46 fc
    1219812182    mov word [es:si], ax                      ; 26 89 04
     
    1220612190    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1220712191    xor cx, cx                                ; 31 c9
    12208     call 08fc0h                               ; e8 7e 0c
     12192    call 08fb0h                               ; e8 83 0c
    1220912193    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1221012194    xor di, di                                ; 31 ff
     
    1221612200    xor ax, ax                                ; 31 c0
    1221712201    mov dx, word [bp-006h]                    ; 8b 56 fa
    12218     call 07ad4h                               ; e8 72 f7
     12202    call 07abfh                               ; e8 72 f7
    1221912203    mov es, [bp-004h]                         ; 8e 46 fc
    1222012204    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1222312207    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1222412208    xor ax, ax                                ; 31 c0
    12225     call 07fc3h                               ; e8 49 fc
     12209    call 07faeh                               ; e8 49 fc
    1222612210    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    1222712211    push ax                                   ; 50
     
    1223012214    mov ax, 000c0h                            ; b8 c0 00
    1223112215    mov dx, word [bp-006h]                    ; 8b 56 fa
    12232     call 09037h                               ; e8 a9 0c
     12216    call 09027h                               ; e8 ae 0c
    1223312217    mov es, [bp-004h]                         ; 8e 46 fc
    1223412218    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1223712221    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1223812222    test ax, ax                               ; 85 c0
    12239     je short 083cch                           ; 74 27
     12223    je short 083b7h                           ; 74 27
    1224012224    dec ax                                    ; 48
    1224112225    mov es, [bp-006h]                         ; 8e 46 fa
     
    1225012234    mov ax, si                                ; 89 f0
    1225112235    mov dx, word [bp-004h]                    ; 8b 56 fc
    12252     call 07cbfh                               ; e8 e8 f8
     12236    call 07caah                               ; e8 e8 f8
    1225312237    les bx, [bp-00ah]                         ; c4 5e f6
    1225412238    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1227312257    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1227412258    mov dx, word [bp-008h]                    ; 8b 56 f8
    12275     call 07ae8h                               ; e8 d2 f6
     12259    call 07ad3h                               ; e8 d2 f6
    1227612260    les bx, [bp-00ah]                         ; c4 5e f6
    1227712261    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1227812262    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12279     jne short 08428h                          ; 75 05
     12263    jne short 08413h                          ; 75 05
    1228012264    mov ax, strict word 00004h                ; b8 04 00
    12281     jmp short 0842ah                          ; eb 02
     12265    jmp short 08415h                          ; eb 02
    1228212266    xor ax, ax                                ; 31 c0
    1228312267    leave                                     ; c9
     
    1228512269    pop si                                    ; 5e
    1228612270    retn 0000ch                               ; c2 0c 00
    12287 ahci_port_detect_device_:                    ; 0xf8430 LB 0x3cb
     12271ahci_port_detect_device_:                    ; 0xf841b LB 0x3cb
    1228812272    push cx                                   ; 51
    1228912273    push si                                   ; 56
     
    1229512279    movzx cx, bl                              ; 0f b6 cb
    1229612280    mov bx, cx                                ; 89 cb
    12297     call 07fc3h                               ; e8 7c fb
     12281    call 07faeh                               ; e8 7c fb
    1229812282    mov dx, strict word 0000eh                ; ba 0e 00
    1229912283    mov ax, strict word 00040h                ; b8 40 00
    12300     call 0161ch                               ; e8 cc 91
     12284    call 0161ch                               ; e8 e1 91
    1230112285    mov word [bp-01ah], ax                    ; 89 46 e6
    1230212286    mov si, 00122h                            ; be 22 01
     
    1237112355    mov bx, strict word 0000fh                ; bb 0f 00
    1237212356    xor cx, cx                                ; 31 c9
    12373     call 07bb6h                               ; e8 b2 f6
     12357    call 07ba1h                               ; e8 b2 f6
    1237412358    cmp ax, strict word 00003h                ; 3d 03 00
    12375     jne near 087f6h                           ; 0f 85 eb 02
     12359    jne near 087e1h                           ; 0f 85 eb 02
    1237612360    mov es, [bp-008h]                         ; 8e 46 f8
    1237712361    mov al, byte [es:si+001edh]               ; 26 8a 84 ed 01
    1237812362    mov byte [bp-004h], al                    ; 88 46 fc
    1237912363    cmp AL, strict byte 004h                  ; 3c 04
    12380     jnc near 087f6h                           ; 0f 83 da 02
     12364    jnc near 087e1h                           ; 0f 83 da 02
    1238112365    mov dx, word [bp-016h]                    ; 8b 56 ea
    1238212366    add dx, 00118h                            ; 81 c2 18 01
     
    1238512369    mov bx, strict word 00010h                ; bb 10 00
    1238612370    xor cx, cx                                ; 31 c9
    12387     call 07afch                               ; e8 c9 f5
     12371    call 07ae7h                               ; e8 c9 f5
    1238812372    mov ax, word [bp-016h]                    ; 8b 46 ea
    1238912373    add ax, 00124h                            ; 05 24 01
     
    1241112395    add cl, 00ch                              ; 80 c1 0c
    1241212396    test dx, dx                               ; 85 d2
    12413     jne near 08748h                           ; 0f 85 d5 01
     12397    jne near 08733h                           ; 0f 85 d5 01
    1241412398    cmp bx, 00101h                            ; 81 fb 01 01
    12415     jne near 08748h                           ; 0f 85 cd 01
     12399    jne near 08733h                           ; 0f 85 cd 01
    1241612400    mov es, [bp-008h]                         ; 8e 46 f8
    1241712401    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1242512409    mov ax, si                                ; 89 f0
    1242612410    mov dx, word [bp-01ah]                    ; 8b 56 e6
    12427     call 07cbfh                               ; e8 19 f7
     12411    call 07caah                               ; e8 19 f7
    1242812412    mov byte [bp-006h], cl                    ; 88 4e fa
    1242912413    test byte [bp-00222h], 080h               ; f6 86 de fd 80
     
    1244112425    mov word [bp-00eh], dx                    ; 89 56 f2
    1244212426    cmp dx, 00fffh                            ; 81 fa ff 0f
    12443     jne short 085e9h                          ; 75 10
     12427    jne short 085d4h                          ; 75 10
    1244412428    cmp di, strict byte 0ffffh                ; 83 ff ff
    12445     jne short 085e9h                          ; 75 0b
     12429    jne short 085d4h                          ; 75 0b
    1244612430    mov di, word [bp-0015ah]                  ; 8b be a6 fe
    1244712431    mov dx, word [bp-00158h]                  ; 8b 96 a8 fe
     
    1247212456    mov al, byte [bp-004h]                    ; 8a 46 fc
    1247312457    cmp AL, strict byte 001h                  ; 3c 01
    12474     jc short 08654h                           ; 72 0c
    12475     jbe short 0865ch                          ; 76 12
     12458    jc short 0863fh                           ; 72 0c
     12459    jbe short 08647h                          ; 76 12
    1247612460    cmp AL, strict byte 003h                  ; 3c 03
    12477     je short 08664h                           ; 74 16
     12461    je short 0864fh                           ; 74 16
    1247812462    cmp AL, strict byte 002h                  ; 3c 02
    12479     je short 08660h                           ; 74 0e
    12480     jmp short 086adh                          ; eb 59
     12463    je short 0864bh                           ; 74 0e
     12464    jmp short 08698h                          ; eb 59
    1248112465    test al, al                               ; 84 c0
    12482     jne short 086adh                          ; 75 55
     12466    jne short 08698h                          ; 75 55
    1248312467    mov DL, strict byte 040h                  ; b2 40
    12484     jmp short 08666h                          ; eb 0a
     12468    jmp short 08651h                          ; eb 0a
    1248512469    mov DL, strict byte 048h                  ; b2 48
    12486     jmp short 08666h                          ; eb 06
     12470    jmp short 08651h                          ; eb 06
    1248712471    mov DL, strict byte 050h                  ; b2 50
    12488     jmp short 08666h                          ; eb 02
     12472    jmp short 08651h                          ; eb 02
    1248912473    mov DL, strict byte 058h                  ; b2 58
    1249012474    mov al, dl                                ; 88 d0
     
    1249212476    movzx bx, al                              ; 0f b6 d8
    1249312477    mov ax, bx                                ; 89 d8
    12494     call 0165ch                               ; e8 ea 8f
     12478    call 0165ch                               ; e8 ff 8f
    1249512479    test al, al                               ; 84 c0
    12496     je short 086adh                           ; 74 37
     12480    je short 08698h                           ; 74 37
    1249712481    mov al, dl                                ; 88 d0
    1249812482    db  0feh, 0c0h
    1249912483    ; inc al                                    ; fe c0
    1250012484    xor ah, ah                                ; 30 e4
    12501     call 0165ch                               ; e8 dd 8f
     12485    call 0165ch                               ; e8 f2 8f
    1250212486    xor ah, ah                                ; 30 e4
    1250312487    mov cx, ax                                ; 89 c1
    1250412488    sal cx, 008h                              ; c1 e1 08
    1250512489    movzx ax, dl                              ; 0f b6 c2
    12506     call 0165ch                               ; e8 d0 8f
     12490    call 0165ch                               ; e8 e5 8f
    1250712491    xor ah, ah                                ; 30 e4
    1250812492    add ax, cx                                ; 01 c8
     
    1251112495    add AL, strict byte 002h                  ; 04 02
    1251212496    xor ah, ah                                ; 30 e4
    12513     call 0165ch                               ; e8 c0 8f
     12497    call 0165ch                               ; e8 d5 8f
    1251412498    xor ah, ah                                ; 30 e4
    1251512499    mov word [bp-022h], ax                    ; 89 46 de
    1251612500    mov ax, bx                                ; 89 d8
    12517     call 0165ch                               ; e8 b6 8f
     12501    call 0165ch                               ; e8 cb 8f
    1251812502    xor ah, ah                                ; 30 e4
    1251912503    mov word [bp-01eh], ax                    ; 89 46 e2
    12520     jmp short 086bah                          ; eb 0d
     12504    jmp short 086a5h                          ; eb 0d
    1252112505    mov bx, di                                ; 89 fb
    1252212506    mov cx, word [bp-00eh]                    ; 8b 4e f2
    1252312507    mov dx, ss                                ; 8c d2
    1252412508    lea ax, [bp-022h]                         ; 8d 46 de
    12525     call 0533dh                               ; e8 83 cc
    12526     mov bx, 00cech                            ; bb ec 0c
     12509    call 052a4h                               ; e8 ff cb
     12510    mov bx, 00d32h                            ; bb 32 0d
    1252712511    mov cx, ds                                ; 8c d9
    1252812512    mov ax, strict word 00004h                ; b8 04 00
    12529     call 018aeh                               ; e8 e9 91
     12513    call 018aeh                               ; e8 fe 91
    1253012514    push word [bp-00eh]                       ; ff 76 f2
    1253112515    push di                                   ; 57
     
    1254212526    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1254312527    push ax                                   ; 50
    12544     push 00c24h                               ; 68 24 0c
     12528    push 00c6ah                               ; 68 6a 0c
    1254512529    push strict byte 00004h                   ; 6a 04
    12546     call 018e9h                               ; e8 fb 91
     12530    call 018e9h                               ; e8 10 92
    1254712531    add sp, strict byte 00018h                ; 83 c4 18
    1254812532    movzx di, byte [bp-006h]                  ; 0f b6 7e fa
     
    1257212556    mov dx, strict word 00075h                ; ba 75 00
    1257312557    mov ax, strict word 00040h                ; b8 40 00
    12574     call 01600h                               ; e8 c9 8e
     12558    call 01600h                               ; e8 de 8e
    1257512559    db  0feh, 0c0h
    1257612560    ; inc al                                    ; fe c0
     
    1257812562    mov dx, strict word 00075h                ; ba 75 00
    1257912563    mov ax, strict word 00040h                ; b8 40 00
    12580     call 0160eh                               ; e8 c9 8e
    12581     jmp near 087e5h                           ; e9 9d 00
     12564    call 0160eh                               ; e8 de 8e
     12565    jmp near 087d0h                           ; e9 9d 00
    1258212566    cmp dx, 0eb14h                            ; 81 fa 14 eb
    12583     jne near 087e5h                           ; 0f 85 95 00
     12567    jne near 087d0h                           ; 0f 85 95 00
    1258412568    cmp bx, 00101h                            ; 81 fb 01 01
    12585     jne near 087e5h                           ; 0f 85 8d 00
     12569    jne near 087d0h                           ; 0f 85 8d 00
    1258612570    mov es, [bp-008h]                         ; 8e 46 f8
    1258712571    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1259512579    mov ax, si                                ; 89 f0
    1259612580    mov dx, word [bp-01ah]                    ; 8b 56 e6
    12597     call 07cbfh                               ; e8 3c f5
     12581    call 07caah                               ; e8 3c f5
    1259812582    test byte [bp-00222h], 080h               ; f6 86 de fd 80
    1259912583    db  00fh, 095h, 0c0h
     
    1263512619    pop cx                                    ; 59
    1263612620    retn                                      ; c3
    12637 ahci_mem_alloc_:                             ; 0xf87fb LB 0x40
     12621ahci_mem_alloc_:                             ; 0xf87e6 LB 0x40
    1263812622    push bx                                   ; 53
    1263912623    push cx                                   ; 51
     
    1264512629    mov dx, 00413h                            ; ba 13 04
    1264612630    xor ax, ax                                ; 31 c0
    12647     call 0161ch                               ; e8 11 8e
     12631    call 0161ch                               ; e8 26 8e
    1264812632    test ax, ax                               ; 85 c0
    12649     je short 08834h                           ; 74 25
     12633    je short 0881fh                           ; 74 25
    1265012634    dec ax                                    ; 48
    1265112635    mov bx, ax                                ; 89 c3
     
    1265412638    sal ax, 1                                 ; d1 e0
    1265512639    rcl dx, 1                                 ; d1 d2
    12656     loop 08817h                               ; e2 fa
     12640    loop 08802h                               ; e2 fa
    1265712641    mov si, ax                                ; 89 c6
    1265812642    mov di, dx                                ; 89 d7
     
    1266012644    shr di, 1                                 ; d1 ef
    1266112645    rcr si, 1                                 ; d1 de
    12662     loop 08824h                               ; e2 fa
     12646    loop 0880fh                               ; e2 fa
    1266312647    mov dx, 00413h                            ; ba 13 04
    1266412648    xor ax, ax                                ; 31 c0
    12665     call 0162ah                               ; e8 f8 8d
     12649    call 0162ah                               ; e8 0d 8e
    1266612650    mov ax, si                                ; 89 f0
    1266712651    pop bp                                    ; 5d
     
    1267212656    pop bx                                    ; 5b
    1267312657    retn                                      ; c3
    12674 ahci_hba_init_:                              ; 0xf883b LB 0x120
     12658ahci_hba_init_:                              ; 0xf8826 LB 0x120
    1267512659    push bx                                   ; 53
    1267612660    push cx                                   ; 51
     
    1268212666    mov dx, strict word 0000eh                ; ba 0e 00
    1268312667    mov ax, strict word 00040h                ; b8 40 00
    12684     call 0161ch                               ; e8 cd 8d
     12668    call 0161ch                               ; e8 e2 8d
    1268512669    mov bx, 00122h                            ; bb 22 01
    1268612670    mov word [bp-006h], ax                    ; 89 46 fa
     
    1269912683    shr eax, 010h                             ; 66 c1 e8 10
    1270012684    xchg dx, ax                               ; 92
    12701     call 087fbh                               ; e8 87 ff
     12685    call 087e6h                               ; e8 87 ff
    1270212686    mov di, ax                                ; 89 c7
    1270312687    test ax, ax                               ; 85 c0
    12704     je near 0893dh                            ; 0f 84 c1 00
     12688    je near 08928h                            ; 0f 84 c1 00
    1270512689    mov es, [bp-006h]                         ; 8e 46 fa
    1270612690    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1271612700    mov dx, strict word 00004h                ; ba 04 00
    1271712701    mov ax, si                                ; 89 f0
    12718     call 07afch                               ; e8 4c f2
     12702    call 07ae7h                               ; e8 4c f2
    1271912703    mov ax, strict word 00004h                ; b8 04 00
    1272012704    xor cx, cx                                ; 31 c9
     
    1273312717    xchg dx, ax                               ; 92
    1273412718    test AL, strict byte 001h                 ; a8 01
    12735     jne short 088b0h                          ; 75 de
     12719    jne short 0889bh                          ; 75 de
    1273612720    xor ax, ax                                ; 31 c0
    1273712721    xor cx, cx                                ; 31 c9
     
    1275112735    mov bx, strict word 0001fh                ; bb 1f 00
    1275212736    xor cx, cx                                ; 31 c9
    12753     call 07bb6h                               ; e8 c0 f2
     12737    call 07ba1h                               ; e8 c0 f2
    1275412738    db  0feh, 0c0h
    1275512739    ; inc al                                    ; fe c0
    1275612740    mov byte [bp-004h], al                    ; 88 46 fc
    1275712741    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    12758     jmp short 0890ah                          ; eb 09
     12742    jmp short 088f5h                          ; eb 09
    1275912743    inc byte [bp-002h]                        ; fe 46 fe
    1276012744    cmp byte [bp-002h], 020h                  ; 80 7e fe 20
    12761     jnc short 0893bh                          ; 73 31
     12745    jnc short 08926h                          ; 73 31
    1276212746    movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
    1276312747    mov ax, strict word 00001h                ; b8 01 00
    1276412748    xor dx, dx                                ; 31 d2
    12765     jcxz 0891bh                               ; e3 06
     12749    jcxz 08906h                               ; e3 06
    1276612750    sal ax, 1                                 ; d1 e0
    1276712751    rcl dx, 1                                 ; d1 d2
    12768     loop 08915h                               ; e2 fa
     12752    loop 08900h                               ; e2 fa
    1276912753    mov bx, ax                                ; 89 c3
    1277012754    mov cx, dx                                ; 89 d1
    1277112755    mov dx, strict word 0000ch                ; ba 0c 00
    1277212756    mov ax, si                                ; 89 f0
    12773     call 07b80h                               ; e8 59 f2
     12757    call 07b6bh                               ; e8 59 f2
    1277412758    test al, al                               ; 84 c0
    12775     je short 08901h                           ; 74 d6
     12759    je short 088ech                           ; 74 d6
    1277612760    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    1277712761    xor ax, ax                                ; 31 c0
    1277812762    mov dx, di                                ; 89 fa
    12779     call 08430h                               ; e8 fa fa
     12763    call 0841bh                               ; e8 fa fa
    1278012764    dec byte [bp-004h]                        ; fe 4e fc
    12781     jne short 08901h                          ; 75 c6
     12765    jne short 088ech                          ; 75 c6
    1278212766    xor ax, ax                                ; 31 c0
    1278312767    leave                                     ; c9
     
    1278812772    pop bx                                    ; 5b
    1278912773    retn                                      ; c3
    12790     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 028h, 08ah, 006h, 08ah, 00ch, 08ah, 012h, 08ah, 018h
    12791     db  08ah, 01eh, 08ah, 024h, 08ah, 028h, 08ah
    12792 _ahci_init:                                  ; 0xf895b LB 0xf9
     12774    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 013h, 08ah, 0f1h, 089h, 0f7h, 089h, 0fdh, 089h, 003h
     12775    db  08ah, 009h, 08ah, 00fh, 08ah, 013h, 08ah
     12776_ahci_init:                                  ; 0xf8946 LB 0xf9
    1279312777    push si                                   ; 56
    1279412778    push di                                   ; 57
     
    1279612780    mov ax, 00601h                            ; b8 01 06
    1279712781    mov dx, strict word 00001h                ; ba 01 00
    12798     call 08e4dh                               ; e8 e3 04
     12782    call 08e38h                               ; e8 e3 04
    1279912783    mov dx, ax                                ; 89 c2
    1280012784    cmp ax, strict word 0ffffh                ; 3d ff ff
    12801     je near 08a50h                            ; 0f 84 dd 00
     12785    je near 08a3bh                            ; 0f 84 dd 00
    1280212786    xor al, al                                ; 30 c0
    1280312787    shr ax, 008h                              ; c1 e8 08
     
    1280712791    xor ah, ah                                ; 30 e4
    1280812792    mov bx, strict word 00034h                ; bb 34 00
    12809     call 08e75h                               ; e8 ed 04
     12793    call 08e60h                               ; e8 ed 04
    1281012794    mov cl, al                                ; 88 c1
    1281112795    test cl, cl                               ; 84 c9
    12812     je short 089b1h                           ; 74 23
     12796    je short 0899ch                           ; 74 23
    1281312797    movzx bx, cl                              ; 0f b6 d9
    1281412798    movzx di, byte [bp-004h]                  ; 0f b6 7e fc
     
    1281612800    mov dx, di                                ; 89 fa
    1281712801    mov ax, si                                ; 89 f0
    12818     call 08e75h                               ; e8 d5 04
     12802    call 08e60h                               ; e8 d5 04
    1281912803    cmp AL, strict byte 012h                  ; 3c 12
    12820     je short 089b1h                           ; 74 0d
     12804    je short 0899ch                           ; 74 0d
    1282112805    mov al, cl                                ; 88 c8
    1282212806    db  0feh, 0c0h
     
    1282512809    mov dx, di                                ; 89 fa
    1282612810    mov ax, si                                ; 89 f0
    12827     jmp short 08985h                          ; eb d4
     12811    jmp short 08970h                          ; eb d4
    1282812812    test cl, cl                               ; 84 c9
    12829     je near 08a50h                            ; 0f 84 99 00
     12813    je near 08a3bh                            ; 0f 84 99 00
    1283012814    add cl, 002h                              ; 80 c1 02
    1283112815    movzx bx, cl                              ; 0f b6 d9
     
    1283412818    mov dx, di                                ; 89 fa
    1283512819    mov ax, si                                ; 89 f0
    12836     call 08e75h                               ; e8 a9 04
     12820    call 08e60h                               ; e8 a9 04
    1283712821    cmp AL, strict byte 010h                  ; 3c 10
    12838     jne near 08a50h                           ; 0f 85 7e 00
     12822    jne near 08a3bh                           ; 0f 85 7e 00
    1283912823    mov byte [bp-002h], 000h                  ; c6 46 fe 00
    1284012824    mov al, cl                                ; 88 c8
     
    1284312827    mov dx, di                                ; 89 fa
    1284412828    mov ax, si                                ; 89 f0
    12845     call 08e96h                               ; e8 b2 04
     12829    call 08e81h                               ; e8 b2 04
    1284612830    mov dx, ax                                ; 89 c2
    1284712831    and ax, strict word 0000fh                ; 25 0f 00
    1284812832    sub ax, strict word 00004h                ; 2d 04 00
    1284912833    cmp ax, strict word 0000bh                ; 3d 0b 00
    12850     jnbe short 08a28h                         ; 77 37
     12834    jnbe short 08a13h                         ; 77 37
    1285112835    push CS                                   ; 0e
    1285212836    pop ES                                    ; 07
    1285312837    mov cx, strict word 00008h                ; b9 08 00
    12854     mov di, 08944h                            ; bf 44 89
     12838    mov di, 0892fh                            ; bf 2f 89
    1285512839    repne scasb                               ; f2 ae
    1285612840    sal cx, 1                                 ; d1 e1
    1285712841    mov di, cx                                ; 89 cf
    12858     mov ax, word [cs:di-076b5h]               ; 2e 8b 85 4b 89
     12842    mov ax, word [cs:di-076cah]               ; 2e 8b 85 36 89
    1285912843    jmp ax                                    ; ff e0
    1286012844    mov byte [bp-002h], 010h                  ; c6 46 fe 10
    12861     jmp short 08a28h                          ; eb 1c
     12845    jmp short 08a13h                          ; eb 1c
    1286212846    mov byte [bp-002h], 014h                  ; c6 46 fe 14
    12863     jmp short 08a28h                          ; eb 16
     12847    jmp short 08a13h                          ; eb 16
    1286412848    mov byte [bp-002h], 018h                  ; c6 46 fe 18
    12865     jmp short 08a28h                          ; eb 10
     12849    jmp short 08a13h                          ; eb 10
    1286612850    mov byte [bp-002h], 01ch                  ; c6 46 fe 1c
    12867     jmp short 08a28h                          ; eb 0a
     12851    jmp short 08a13h                          ; eb 0a
    1286812852    mov byte [bp-002h], 020h                  ; c6 46 fe 20
    12869     jmp short 08a28h                          ; eb 04
     12853    jmp short 08a13h                          ; eb 04
    1287012854    mov byte [bp-002h], 024h                  ; c6 46 fe 24
    1287112855    mov si, dx                                ; 89 d6
     
    1287412858    mov al, byte [bp-002h]                    ; 8a 46 fe
    1287512859    test al, al                               ; 84 c0
    12876     je short 08a50h                           ; 74 19
     12860    je short 08a3bh                           ; 74 19
    1287712861    movzx bx, al                              ; 0f b6 d8
    1287812862    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    1287912863    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    12880     call 08eb5h                               ; e8 70 04
     12864    call 08ea0h                               ; e8 70 04
    1288112865    test AL, strict byte 001h                 ; a8 01
    12882     je short 08a50h                           ; 74 07
     12866    je short 08a3bh                           ; 74 07
    1288312867    and AL, strict byte 0f0h                  ; 24 f0
    1288412868    add ax, si                                ; 01 f0
    12885     call 0883bh                               ; e8 eb fd
     12869    call 08826h                               ; e8 eb fd
    1288612870    leave                                     ; c9
    1288712871    pop di                                    ; 5f
    1288812872    pop si                                    ; 5e
    1288912873    retn                                      ; c3
    12890 apm_out_str_:                                ; 0xf8a54 LB 0x36
     12874apm_out_str_:                                ; 0xf8a3f LB 0x36
    1289112875    push bx                                   ; 53
    1289212876    push bp                                   ; 55
     
    1289412878    mov bx, ax                                ; 89 c3
    1289512879    cmp byte [bx], 000h                       ; 80 3f 00
    12896     je short 08a69h                           ; 74 0a
     12880    je short 08a54h                           ; 74 0a
    1289712881    mov al, byte [bx]                         ; 8a 07
    1289812882    out DX, AL                                ; ee
     
    1290112885    db  00ah, 0c0h
    1290212886    ; or al, al                                 ; 0a c0
    12903     jne short 08a61h                          ; 75 f8
     12887    jne short 08a4ch                          ; 75 f8
    1290412888    pop bp                                    ; 5d
    1290512889    pop bx                                    ; 5b
    1290612890    retn                                      ; c3
    12907     lodsw                                     ; ad
    12908     mov bh, byte [si-075h]                    ; 8a 7c 8b
    12909     mov di, 0da8ah                            ; bf 8a da
    12910     mov bh, byte [si-075h]                    ; 8a 7c 8b
    12911     add ax, 07c8bh                            ; 05 8b 7c
    12912     mov cx, word [bp+si]                      ; 8b 0a
    12913     mov dx, word [bx+di-075h]                 ; 8b 51 8b
    12914     push cx                                   ; 51
    12915     mov dx, word [bx+di-075h]                 ; 8b 51 8b
    12916     dec sp                                    ; 4c
    12917     mov dx, word [bx+di-075h]                 ; 8b 51 8b
    12918     push cx                                   ; 51
    12919     mov ax, word [si-075h]                    ; 8b 44 8b
    12920 _apm_function:                               ; 0xf8a8a LB 0xf5
     12891    db  098h, 08ah, 067h, 08bh, 0aah, 08ah, 0c5h, 08ah, 067h, 08bh, 0f0h, 08ah, 067h, 08bh, 0f5h, 08ah
     12892    db  03ch, 08bh, 03ch, 08bh, 03ch, 08bh, 037h, 08bh, 03ch, 08bh, 03ch, 08bh, 02fh, 08bh
     12893_apm_function:                               ; 0xf8a75 LB 0xf5
    1292112894    push si                                   ; 56
    1292212895    push bp                                   ; 55
     
    1292612899    xor ah, ah                                ; 30 e4
    1292712900    cmp ax, strict word 0000eh                ; 3d 0e 00
    12928     jnbe near 08b51h                          ; 0f 87 b3 00
     12901    jnbe near 08b3ch                          ; 0f 87 b3 00
    1292912902    mov bx, ax                                ; 89 c3
    1293012903    add bx, ax                                ; 01 c3
    1293112904    mov dx, word [bp+01ah]                    ; 8b 56 1a
    1293212905    or dl, 001h                               ; 80 ca 01
    12933     jmp word [cs:bx-07594h]                   ; 2e ff a7 6c 8a
     12906    jmp word [cs:bx-075a9h]                   ; 2e ff a7 57 8a
    1293412907    mov word [bp+014h], 00102h                ; c7 46 14 02 01
    1293512908    mov word [bp+00eh], 0504dh                ; c7 46 0e 4d 50
     
    1293912912    retn                                      ; c3
    1294012913    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    12941     mov word [bp+00eh], 090a4h                ; c7 46 0e a4 90
     12914    mov word [bp+00eh], 09094h                ; c7 46 0e 94 90
    1294212915    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1294312916    mov ax, strict word 0fff0h                ; b8 f0 ff
     
    1296812941    retn                                      ; c3
    1296912942    cmp word [bp+012h], strict byte 00003h    ; 83 7e 12 03
    12970     je short 08b30h                           ; 74 20
     12943    je short 08b1bh                           ; 74 20
    1297112944    cmp word [bp+012h], strict byte 00002h    ; 83 7e 12 02
    12972     je short 08b28h                           ; 74 12
     12945    je short 08b13h                           ; 74 12
    1297312946    cmp word [bp+012h], strict byte 00001h    ; 83 7e 12 01
    12974     jne short 08b38h                          ; 75 1c
     12947    jne short 08b23h                          ; 75 1c
    1297512948    mov dx, 08900h                            ; ba 00 89
    12976     mov ax, 00c5ch                            ; b8 5c 0c
    12977     call 08a54h                               ; e8 2f ff
     12949    mov ax, 00ca2h                            ; b8 a2 0c
     12950    call 08a3fh                               ; e8 2f ff
    1297812951    pop bp                                    ; 5d
    1297912952    pop si                                    ; 5e
    1298012953    retn                                      ; c3
    1298112954    mov dx, 08900h                            ; ba 00 89
    12982     mov ax, 00c64h                            ; b8 64 0c
    12983     jmp short 08b22h                          ; eb f2
     12955    mov ax, 00caah                            ; b8 aa 0c
     12956    jmp short 08b0dh                          ; eb f2
    1298412957    mov dx, 08900h                            ; ba 00 89
    12985     mov ax, 00c6ch                            ; b8 6c 0c
    12986     jmp short 08b22h                          ; eb ea
     12958    mov ax, 00cb2h                            ; b8 b2 0c
     12959    jmp short 08b0dh                          ; eb ea
    1298712960    or ah, 00ah                               ; 80 cc 0a
    1298812961    mov word [bp+014h], ax                    ; 89 46 14
     
    1299612969    retn                                      ; c3
    1299712970    or ah, 080h                               ; 80 cc 80
    12998     jmp short 08b3bh                          ; eb ea
    12999     mov bx, 00cech                            ; bb ec 0c
     12971    jmp short 08b26h                          ; eb ea
     12972    mov bx, 00d32h                            ; bb 32 0d
    1300012973    mov cx, ds                                ; 8c d9
    1300112974    mov ax, strict word 00004h                ; b8 04 00
    13002     call 018aeh                               ; e8 52 8d
     12975    call 018aeh                               ; e8 67 8d
    1300312976    push word [bp+00eh]                       ; ff 76 0e
    1300412977    push word [bp+014h]                       ; ff 76 14
    13005     push 00c75h                               ; 68 75 0c
     12978    push 00cbbh                               ; 68 bb 0c
    1300612979    push strict byte 00004h                   ; 6a 04
    13007     call 018e9h                               ; e8 7f 8d
     12980    call 018e9h                               ; e8 94 8d
    1300812981    add sp, strict byte 00008h                ; 83 c4 08
    1300912982    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1301512988    pop si                                    ; 5e
    1301612989    retn                                      ; c3
    13017 pci16_select_reg_:                           ; 0xf8b7f LB 0x21
     12990pci16_select_reg_:                           ; 0xf8b6a LB 0x21
    1301812991    push bx                                   ; 53
    1301912992    push bp                                   ; 55
     
    1303113004    pop bx                                    ; 5b
    1303213005    retn                                      ; c3
    13033 pci16_find_device_:                          ; 0xf8ba0 LB 0xf2
     13006pci16_find_device_:                          ; 0xf8b8b LB 0xf2
    1303413007    push si                                   ; 56
    1303513008    push di                                   ; 57
     
    1304313016    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1304413017    test bl, 007h                             ; f6 c3 07
    13045     jne short 08be6h                          ; 75 2d
     13018    jne short 08bd1h                          ; 75 2d
    1304613019    mov dx, strict word 0000eh                ; ba 0e 00
    1304713020    mov ax, bx                                ; 89 d8
    13048     call 08b7fh                               ; e8 be ff
     13021    call 08b6ah                               ; e8 be ff
    1304913022    mov dx, 00cfeh                            ; ba fe 0c
    1305013023    in AL, DX                                 ; ec
     
    1305313026    mov byte [bp-002h], al                    ; 88 46 fe
    1305413027    cmp AL, strict byte 0ffh                  ; 3c ff
    13055     jne short 08bd4h                          ; 75 06
     13028    jne short 08bbfh                          ; 75 06
    1305613029    add bx, strict byte 00008h                ; 83 c3 08
    13057     jmp near 08c67h                           ; e9 93 00
     13030    jmp near 08c52h                           ; e9 93 00
    1305813031    test byte [bp-002h], 080h                 ; f6 46 fe 80
    13059     je short 08be1h                           ; 74 07
     13032    je short 08bcch                           ; 74 07
    1306013033    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    13061     jmp short 08be6h                          ; eb 05
     13034    jmp short 08bd1h                          ; eb 05
    1306213035    mov word [bp-006h], strict word 00008h    ; c7 46 fa 08 00
    1306313036    mov al, byte [bp-002h]                    ; 8a 46 fe
    1306413037    and AL, strict byte 007h                  ; 24 07
    1306513038    cmp AL, strict byte 001h                  ; 3c 01
    13066     jne short 08c0eh                          ; 75 1f
     13039    jne short 08bf9h                          ; 75 1f
    1306713040    mov ax, bx                                ; 89 d8
    1306813041    shr ax, 008h                              ; c1 e8 08
    1306913042    test ax, ax                               ; 85 c0
    13070     jne short 08c0eh                          ; 75 16
     13043    jne short 08bf9h                          ; 75 16
    1307113044    mov dx, strict word 0001ah                ; ba 1a 00
    1307213045    mov ax, bx                                ; 89 d8
    13073     call 08b7fh                               ; e8 7f ff
     13046    call 08b6ah                               ; e8 7f ff
    1307413047    mov dx, 00cfeh                            ; ba fe 0c
    1307513048    in AL, DX                                 ; ec
     
    1307713050    ; sub ah, ah                                ; 2a e4
    1307813051    cmp al, byte [bp-004h]                    ; 3a 46 fc
    13079     jbe short 08c0eh                          ; 76 03
     13052    jbe short 08bf9h                          ; 76 03
    1308013053    mov byte [bp-004h], al                    ; 88 46 fc
    1308113054    test di, di                               ; 85 ff
    13082     je short 08c17h                           ; 74 05
     13055    je short 08c02h                           ; 74 05
    1308313056    mov dx, strict word 00008h                ; ba 08 00
    13084     jmp short 08c19h                          ; eb 02
     13057    jmp short 08c04h                          ; eb 02
    1308513058    xor dx, dx                                ; 31 d2
    1308613059    mov ax, bx                                ; 89 d8
    13087     call 08b7fh                               ; e8 61 ff
     13060    call 08b6ah                               ; e8 61 ff
    1308813061    mov dx, 00cfch                            ; ba fc 0c
    1308913062    in eax, DX                                ; 66 ed
     
    1309613069    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1309713070    test di, di                               ; 85 ff
    13098     je short 08c48h                           ; 74 0f
     13071    je short 08c33h                           ; 74 0f
    1309913072    mov cx, strict word 00008h                ; b9 08 00
    1310013073    shr dx, 1                                 ; d1 ea
    1310113074    rcr ax, 1                                 ; d1 d8
    13102     loop 08c3ch                               ; e2 fa
     13075    loop 08c27h                               ; e2 fa
    1310313076    mov word [bp-00ah], ax                    ; 89 46 f6
    1310413077    mov word [bp-008h], dx                    ; 89 56 f8
    1310513078    mov ax, word [bp-008h]                    ; 8b 46 f8
    1310613079    cmp ax, word [bp-010h]                    ; 3b 46 f0
    13107     jne short 08c58h                          ; 75 08
     13080    jne short 08c43h                          ; 75 08
    1310813081    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1310913082    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    13110     je short 08c5eh                           ; 74 06
     13083    je short 08c49h                           ; 74 06
    1311113084    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    13112     je short 08c64h                           ; 74 06
     13085    je short 08c4fh                           ; 74 06
    1311313086    dec si                                    ; 4e
    1311413087    cmp si, strict byte 0ffffh                ; 83 fe ff
    13115     je short 08c76h                           ; 74 12
     13088    je short 08c61h                           ; 74 12
    1311613089    add bx, word [bp-006h]                    ; 03 5e fa
    1311713090    mov dx, bx                                ; 89 da
     
    1311913092    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1312013093    cmp dx, ax                                ; 39 c2
    13121     jbe near 08bb4h                           ; 0f 86 3e ff
     13094    jbe near 08b9fh                           ; 0f 86 3e ff
    1312213095    cmp si, strict byte 0ffffh                ; 83 fe ff
    13123     jne short 08c7fh                          ; 75 04
     13096    jne short 08c6ah                          ; 75 04
    1312413097    mov ax, bx                                ; 89 d8
    13125     jmp short 08c82h                          ; eb 03
     13098    jmp short 08c6dh                          ; eb 03
    1312613099    mov ax, strict word 0ffffh                ; b8 ff ff
    1312713100    leave                                     ; c9
     
    1312913102    pop si                                    ; 5e
    1313013103    retn                                      ; c3
    13131     db  072h, 08dh, 08ch, 08dh, 09fh, 08dh, 0b4h, 08dh, 0c7h, 08dh, 0d9h, 08dh
    13132 _pci16_function:                             ; 0xf8c92 LB 0x1bb
     13104    pop bp                                    ; 5d
     13105    lea si, [bx-073h]                         ; 8d 77 8d
     13106    mov cl, byte [di-07261h]                  ; 8a 8d 9f 8d
     13107    mov DL, strict byte 08dh                  ; b2 8d
     13108    db  0c4h
     13109    db  08dh
     13110_pci16_function:                             ; 0xf8c7d LB 0x1bb
    1313313111    push si                                   ; 56
    1313413112    push di                                   ; 57
     
    1314213120    xor ah, ah                                ; 30 e4
    1314313121    cmp bx, strict byte 00003h                ; 83 fb 03
    13144     jc short 08cc9h                           ; 72 1a
    13145     jbe short 08d21h                          ; 76 70
     13122    jc short 08cb4h                           ; 72 1a
     13123    jbe short 08d0ch                          ; 76 70
    1314613124    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13147     je near 08dedh                            ; 0f 84 35 01
     13125    je near 08dd8h                            ; 0f 84 35 01
    1314813126    cmp bx, strict byte 00008h                ; 83 fb 08
    13149     jc near 08e1ch                            ; 0f 82 5d 01
     13127    jc near 08e07h                            ; 0f 82 5d 01
    1315013128    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13151     jbe near 08d46h                           ; 0f 86 80 00
    13152     jmp near 08e1ch                           ; e9 53 01
     13129    jbe near 08d31h                           ; 0f 86 80 00
     13130    jmp near 08e07h                           ; e9 53 01
    1315313131    cmp bx, strict byte 00002h                ; 83 fb 02
    13154     je short 08cf1h                           ; 74 23
     13132    je short 08cdch                           ; 74 23
    1315513133    cmp bx, strict byte 00001h                ; 83 fb 01
    13156     jne near 08e1ch                           ; 0f 85 47 01
     13134    jne near 08e07h                           ; 0f 85 47 01
    1315713135    mov word [bp+024h], strict word 00001h    ; c7 46 24 01 00
    1315813136    mov word [bp+018h], 00210h                ; c7 46 18 10 02
     
    1316013138    mov word [bp+01ch], 04350h                ; c7 46 1c 50 43
    1316113139    mov word [bp+01eh], 02049h                ; c7 46 1e 49 20
    13162     jmp near 08e49h                           ; e9 58 01
     13140    jmp near 08e34h                           ; e9 58 01
    1316313141    cmp word [bp+01ch], strict byte 0ffffh    ; 83 7e 1c ff
    13164     jne short 08cfdh                          ; 75 06
     13142    jne short 08ce8h                          ; 75 06
    1316513143    or ah, 083h                               ; 80 cc 83
    13166     jmp near 08e42h                           ; e9 45 01
     13144    jmp near 08e2dh                           ; e9 45 01
    1316713145    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    1316813146    mov dx, word [bp+020h]                    ; 8b 56 20
    1316913147    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1317013148    xor cx, cx                                ; 31 c9
    13171     call 08ba0h                               ; e8 95 fe
     13149    call 08b8bh                               ; e8 95 fe
    1317213150    cmp ax, strict word 0ffffh                ; 3d ff ff
    13173     jne short 08d1bh                          ; 75 0b
     13151    jne short 08d06h                          ; 75 0b
    1317413152    mov ax, word [bp+024h]                    ; 8b 46 24
    1317513153    xor ah, ah                                ; 30 e4
    1317613154    or ah, 086h                               ; 80 cc 86
    13177     jmp near 08e42h                           ; e9 27 01
     13155    jmp near 08e2dh                           ; e9 27 01
    1317813156    mov word [bp+018h], ax                    ; 89 46 18
    13179     jmp near 08e49h                           ; e9 28 01
     13157    jmp near 08e34h                           ; e9 28 01
    1318013158    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    1318113159    mov ax, word [bp+020h]                    ; 8b 46 20
    1318213160    mov dx, word [bp+022h]                    ; 8b 56 22
    1318313161    mov cx, strict word 00001h                ; b9 01 00
    13184     call 08ba0h                               ; e8 70 fe
     13162    call 08b8bh                               ; e8 70 fe
    1318513163    cmp ax, strict word 0ffffh                ; 3d ff ff
    13186     jne short 08d40h                          ; 75 0b
     13164    jne short 08d2bh                          ; 75 0b
    1318713165    mov ax, word [bp+024h]                    ; 8b 46 24
    1318813166    xor ah, ah                                ; 30 e4
    1318913167    or ah, 086h                               ; 80 cc 86
    13190     jmp near 08e42h                           ; e9 02 01
     13168    jmp near 08e2dh                           ; e9 02 01
    1319113169    mov word [bp+018h], ax                    ; 89 46 18
    13192     jmp near 08e49h                           ; e9 03 01
     13170    jmp near 08e34h                           ; e9 03 01
    1319313171    cmp word [bp+008h], 00100h                ; 81 7e 08 00 01
    13194     jc short 08d53h                           ; 72 06
     13172    jc short 08d3eh                           ; 72 06
    1319513173    or ah, 087h                               ; 80 cc 87
    13196     jmp near 08e42h                           ; e9 ef 00
     13174    jmp near 08e2dh                           ; e9 ef 00
    1319713175    mov dx, word [bp+008h]                    ; 8b 56 08
    1319813176    mov ax, word [bp+018h]                    ; 8b 46 18
    13199     call 08b7fh                               ; e8 23 fe
     13177    call 08b6ah                               ; e8 23 fe
    1320013178    mov bx, word [bp+024h]                    ; 8b 5e 24
    1320113179    xor bh, bh                                ; 30 ff
    1320213180    sub bx, strict byte 00008h                ; 83 eb 08
    1320313181    cmp bx, strict byte 00005h                ; 83 fb 05
    13204     jnbe near 08e49h                          ; 0f 87 de 00
     13182    jnbe near 08e34h                          ; 0f 87 de 00
    1320513183    add bx, bx                                ; 01 db
    13206     jmp word [cs:bx-0737ah]                   ; 2e ff a7 86 8c
     13184    jmp word [cs:bx-0738fh]                   ; 2e ff a7 71 8c
    1320713185    mov bx, word [bp+020h]                    ; 8b 5e 20
    1320813186    xor bl, bl                                ; 30 db
     
    1321513193    or bx, ax                                 ; 09 c3
    1321613194    mov word [bp+020h], bx                    ; 89 5e 20
    13217     jmp near 08e49h                           ; e9 bd 00
     13195    jmp near 08e34h                           ; e9 bd 00
    1321813196    mov dx, word [bp+008h]                    ; 8b 56 08
    1321913197    xor dh, dh                                ; 30 f6
     
    1322213200    in ax, DX                                 ; ed
    1322313201    mov word [bp+020h], ax                    ; 89 46 20
    13224     jmp near 08e49h                           ; e9 aa 00
     13202    jmp near 08e34h                           ; e9 aa 00
    1322513203    mov dx, 00cfch                            ; ba fc 0c
    1322613204    in eax, DX                                ; 66 ed
     
    1323113209    mov word [bp+020h], ax                    ; 89 46 20
    1323213210    mov word [bp+022h], dx                    ; 89 56 22
    13233     jmp near 08e49h                           ; e9 95 00
     13211    jmp near 08e34h                           ; e9 95 00
    1323413212    mov ax, word [bp+020h]                    ; 8b 46 20
    1323513213    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1323813216    add dx, 00cfch                            ; 81 c2 fc 0c
    1323913217    out DX, AL                                ; ee
    13240     jmp near 08e49h                           ; e9 82 00
     13218    jmp near 08e34h                           ; e9 82 00
    1324113219    mov ax, word [bp+020h]                    ; 8b 46 20
    1324213220    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1324513223    add dx, 00cfch                            ; 81 c2 fc 0c
    1324613224    out DX, ax                                ; ef
    13247     jmp short 08e49h                          ; eb 70
     13225    jmp short 08e34h                          ; eb 70
    1324813226    mov ax, word [bp+020h]                    ; 8b 46 20
    1324913227    mov cx, word [bp+022h]                    ; 8b 4e 22
     
    1325413232    ; mov ax, cx                                ; 8b c1
    1325513233    out DX, eax                               ; 66 ef
    13256     jmp short 08e49h                          ; eb 5c
     13234    jmp short 08e34h                          ; eb 5c
    1325713235    mov bx, word [bp+008h]                    ; 8b 5e 08
    1325813236    mov es, [bp+028h]                         ; 8e 46 28
    1325913237    mov cx, word [word 00000h]                ; 8b 0e 00 00
    1326013238    cmp cx, word [es:bx]                      ; 26 3b 0f
    13261     jbe short 08e06h                          ; 76 0a
     13239    jbe short 08df1h                          ; 76 0a
    1326213240    mov ax, word [bp+024h]                    ; 8b 46 24
    1326313241    xor ah, ah                                ; 30 e4
    1326413242    or ah, 089h                               ; 80 cc 89
    13265     jmp short 08e42h                          ; eb 3c
     13243    jmp short 08e2dh                          ; eb 3c
    1326613244    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1326713245    mov si, 0f2c0h                            ; be c0 f2
     
    1327213250    pop DS                                    ; 1f
    1327313251    mov word [bp+018h], 00a00h                ; c7 46 18 00 0a
    13274     jmp short 08e49h                          ; eb 2d
    13275     mov bx, 00cech                            ; bb ec 0c
     13252    jmp short 08e34h                          ; eb 2d
     13253    mov bx, 00d32h                            ; bb 32 0d
    1327613254    mov cx, ds                                ; 8c d9
    1327713255    mov ax, strict word 00004h                ; b8 04 00
    13278     call 018aeh                               ; e8 87 8a
     13256    call 018aeh                               ; e8 9c 8a
    1327913257    mov ax, word [bp+018h]                    ; 8b 46 18
    1328013258    push ax                                   ; 50
    1328113259    mov ax, word [bp+024h]                    ; 8b 46 24
    1328213260    push ax                                   ; 50
    13283     push 00ca8h                               ; 68 a8 0c
     13261    push 00ceeh                               ; 68 ee 0c
    1328413262    push strict byte 00004h                   ; 6a 04
    13285     call 018e9h                               ; e8 b2 8a
     13263    call 018e9h                               ; e8 c7 8a
    1328613264    add sp, strict byte 00008h                ; 83 c4 08
    1328713265    mov ax, word [bp+024h]                    ; 8b 46 24
     
    1329413272    pop si                                    ; 5e
    1329513273    retn                                      ; c3
    13296 pci_find_classcode_:                         ; 0xf8e4d LB 0x28
     13274pci_find_classcode_:                         ; 0xf8e38 LB 0x28
    1329713275    push bx                                   ; 53
    1329813276    push cx                                   ; 51
     
    1330913287    int 01ah                                  ; cd 1a
    1331013288    cmp ah, 000h                              ; 80 fc 00
    13311     je near 08e6eh                            ; 0f 84 03 00
     13289    je near 08e59h                            ; 0f 84 03 00
    1331213290    mov bx, strict word 0ffffh                ; bb ff ff
    1331313291    mov ax, bx                                ; 89 d8
     
    1331713295    pop bx                                    ; 5b
    1331813296    retn                                      ; c3
    13319 pci_read_config_byte_:                       ; 0xf8e75 LB 0x21
     13297pci_read_config_byte_:                       ; 0xf8e60 LB 0x21
    1332013298    push cx                                   ; 51
    1332113299    push di                                   ; 57
     
    1333513313    pop cx                                    ; 59
    1333613314    retn                                      ; c3
    13337 pci_read_config_word_:                       ; 0xf8e96 LB 0x1f
     13315pci_read_config_word_:                       ; 0xf8e81 LB 0x1f
    1333813316    push cx                                   ; 51
    1333913317    push di                                   ; 57
     
    1335313331    pop cx                                    ; 59
    1335413332    retn                                      ; c3
    13355 pci_read_config_dword_:                      ; 0xf8eb5 LB 0x24
     13333pci_read_config_dword_:                      ; 0xf8ea0 LB 0x24
    1335613334    push cx                                   ; 51
    1335713335    push di                                   ; 57
     
    1337313351    pop cx                                    ; 59
    1337413352    retn                                      ; c3
    13375 vds_is_present_:                             ; 0xf8ed9 LB 0x1d
     13353vds_is_present_:                             ; 0xf8ec4 LB 0x1d
    1337613354    push bx                                   ; 53
    1337713355    push bp                                   ; 55
     
    1338113359    mov es, ax                                ; 8e c0
    1338213360    test byte [es:bx], 020h                   ; 26 f6 07 20
    13383     je short 08ef1h                           ; 74 06
     13361    je short 08edch                           ; 74 06
    1338413362    mov ax, strict word 00001h                ; b8 01 00
    1338513363    pop bp                                    ; 5d
     
    1339013368    pop bx                                    ; 5b
    1339113369    retn                                      ; c3
    13392 vds_real_to_lin_:                            ; 0xf8ef6 LB 0x1e
     13370vds_real_to_lin_:                            ; 0xf8ee1 LB 0x1e
    1339313371    push bx                                   ; 53
    1339413372    push cx                                   ; 51
     
    1340113379    sal ax, 1                                 ; d1 e0
    1340213380    rcl dx, 1                                 ; d1 d2
    13403     loop 08f04h                               ; e2 fa
     13381    loop 08eefh                               ; e2 fa
    1340413382    xor cx, cx                                ; 31 c9
    1340513383    add ax, bx                                ; 01 d8
     
    1340913387    pop bx                                    ; 5b
    1341013388    retn                                      ; c3
    13411 vds_build_sg_list_:                          ; 0xf8f14 LB 0x76
     13389vds_build_sg_list_:                          ; 0xf8eff LB 0x76
    1341213390    push si                                   ; 56
    1341313391    push di                                   ; 57
     
    1342313401    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1342413402    mov word [es:di+002h], bx                 ; 26 89 5d 02
    13425     call 08ef6h                               ; e8 c3 ff
     13403    call 08ee1h                               ; e8 c3 ff
    1342613404    mov es, si                                ; 8e c6
    1342713405    mov word [es:di+004h], ax                 ; 26 89 45 04
    1342813406    mov word [es:di+006h], dx                 ; 26 89 55 06
    1342913407    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    13430     call 08ed9h                               ; e8 93 ff
     13408    call 08ec4h                               ; e8 93 ff
    1343113409    test ax, ax                               ; 85 c0
    13432     je short 08f5dh                           ; 74 13
     13410    je short 08f48h                           ; 74 13
    1343313411    mov es, si                                ; 8e c6
    1343413412    mov ax, 08105h                            ; b8 05 81
    1343513413    mov dx, strict word 00000h                ; ba 00 00
    1343613414    int 04bh                                  ; cd 4b
    13437     jc near 08f5ah                            ; 0f 82 02 00
     13415    jc near 08f45h                            ; 0f 82 02 00
    1343813416    db  032h, 0c0h
    1343913417    ; xor al, al                                ; 32 c0
    1344013418    cbw                                       ; 98
    13441     jmp short 08f84h                          ; eb 27
     13419    jmp short 08f6fh                          ; eb 27
    1344213420    mov es, si                                ; 8e c6
    1344313421    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1345513433    pop si                                    ; 5e
    1345613434    retn 00004h                               ; c2 04 00
    13457 vds_free_sg_list_:                           ; 0xf8f8a LB 0x36
     13435vds_free_sg_list_:                           ; 0xf8f75 LB 0x3b
    1345813436    push bx                                   ; 53
    1345913437    push di                                   ; 57
     
    1346113439    mov bp, sp                                ; 89 e5
    1346213440    mov bx, ax                                ; 89 c3
    13463     call 08ed9h                               ; e8 45 ff
     13441    call 08ec4h                               ; e8 45 ff
    1346413442    test ax, ax                               ; 85 c0
    13465     je short 08fabh                           ; 74 13
     13443    je short 08f96h                           ; 74 13
    1346613444    mov di, bx                                ; 89 df
    1346713445    mov es, dx                                ; 8e c2
     
    1346913447    mov dx, strict word 00000h                ; ba 00 00
    1347013448    int 04bh                                  ; cd 4b
    13471     jc near 08faah                            ; 0f 82 02 00
     13449    jc near 08f95h                            ; 0f 82 02 00
    1347213450    db  032h, 0c0h
    1347313451    ; xor al, al                                ; 32 c0
     
    1347913457    pop bx                                    ; 5b
    1348013458    retn                                      ; c3
    13481     times 0x9 db 0
    13482 __U4D:                                       ; 0xf8fc0 LB 0x39
     13459    times 0xe db 0
     13460__U4D:                                       ; 0xf8fb0 LB 0x39
    1348313461    pushfw                                    ; 9c
    1348413462    push eax                                  ; 66 50
     
    1351013488    popfw                                     ; 9d
    1351113489    retn                                      ; c3
    13512 __U4M:                                       ; 0xf8ff9 LB 0x31
     13490__U4M:                                       ; 0xf8fe9 LB 0x31
    1351313491    pushfw                                    ; 9c
    1351413492    push eax                                  ; 66 50
     
    1353513513    popfw                                     ; 9d
    1353613514    retn                                      ; c3
    13537 _fmemset_:                                   ; 0xf902a LB 0xd
     13515_fmemset_:                                   ; 0xf901a LB 0xd
    1353813516    push di                                   ; 57
    1353913517    mov es, dx                                ; 8e c2
     
    1354513523    pop di                                    ; 5f
    1354613524    retn                                      ; c3
    13547 _fmemcpy_:                                   ; 0xf9037 LB 0x33
     13525_fmemcpy_:                                   ; 0xf9027 LB 0x33
    1354813526    push bp                                   ; 55
    1354913527    db  08bh, 0ech
     
    1356513543    leave                                     ; c9
    1356613544    retn                                      ; c3
    13567     add byte [bx+si-07d70h], al               ; 00 80 90 82
     13545    add byte [bx+si-070h], dh                 ; 00 70 90
     13546    jc short 08fd4h                           ; 72 90
     13547    jbe short 08fd6h                          ; 76 90
     13548    jbe short 08fd8h                          ; 76 90
     13549    jbe short 08fdah                          ; 76 90
     13550    js short 08fdch                           ; 78 90
     13551    js short 08fdeh                           ; 78 90
     13552    jp short 08fe0h                           ; 7a 90
     13553    jle short 08fe2h                          ; 7e 90
     13554    jle short 08fe4h                          ; 7e 90
     13555    adc byte [bx+si-06f7bh], 087h             ; 80 90 85 90 87
    1356813556    nop                                       ; 90
    13569     xchg byte [bx+si-06f7ah], dl              ; 86 90 86 90
    13570     xchg byte [bx+si-06f78h], dl              ; 86 90 88 90
    13571     mov byte [bx+si-06f76h], dl               ; 88 90 8a 90
    13572     mov ss, [bx+si-06f72h]                    ; 8e 90 8e 90
    13573     nop                                       ; 90
    13574     nop                                       ; 90
    13575     xchg bp, ax                               ; 95
    13576     nop                                       ; 90
    13577     xchg di, ax                               ; 97
    13578     nop                                       ; 90
    13579 apm_worker:                                  ; 0xf906a LB 0x3a
     13557apm_worker:                                  ; 0xf905a LB 0x3a
    1358013558    sti                                       ; fb
    1358113559    push ax                                   ; 50
     
    1358913567    pop ax                                    ; 58
    1359013568    mov AH, strict byte 053h                  ; b4 53
    13591     jnc short 090a0h                          ; 73 25
    13592     jmp word [cs:bp-06fb0h]                   ; 2e ff a6 50 90
    13593     jmp short 0909eh                          ; eb 1c
     13569    jnc short 09090h                          ; 73 25
     13570    jmp word [cs:bp-06fc0h]                   ; 2e ff a6 40 90
     13571    jmp short 0908eh                          ; eb 1c
    1359413572    sti                                       ; fb
    1359513573    hlt                                       ; f4
    13596     jmp short 0909eh                          ; eb 18
    13597     jmp short 0909eh                          ; eb 16
    13598     jmp short 090a0h                          ; eb 16
     13574    jmp short 0908eh                          ; eb 18
     13575    jmp short 0908eh                          ; eb 16
     13576    jmp short 09090h                          ; eb 16
    1359913577    mov AH, strict byte 080h                  ; b4 80
    13600     jmp short 090a2h                          ; eb 14
    13601     jmp short 090a0h                          ; eb 10
     13578    jmp short 09092h                          ; eb 14
     13579    jmp short 09090h                          ; eb 10
    1360213580    mov ax, 00102h                            ; b8 02 01
    13603     jmp short 0909eh                          ; eb 09
    13604     jmp short 0909eh                          ; eb 07
     13581    jmp short 0908eh                          ; eb 09
     13582    jmp short 0908eh                          ; eb 07
    1360513583    mov BL, strict byte 000h                  ; b3 00
    1360613584    mov cx, strict word 00000h                ; b9 00 00
    13607     jmp short 0909eh                          ; eb 00
     13585    jmp short 0908eh                          ; eb 00
    1360813586    clc                                       ; f8
    1360913587    retn                                      ; c3
     
    1361113589    stc                                       ; f9
    1361213590    retn                                      ; c3
    13613 apm_pm16_entry:                              ; 0xf90a4 LB 0x11
     13591apm_pm16_entry:                              ; 0xf9094 LB 0x11
    1361413592    mov AH, strict byte 002h                  ; b4 02
    1361513593    push DS                                   ; 1e
     
    1361913597    add bp, strict byte 00008h                ; 83 c5 08
    1362013598    mov ds, bp                                ; 8e dd
    13621     call 0906ah                               ; e8 b8 ff
     13599    call 0905ah                               ; e8 b8 ff
    1362213600    pop bp                                    ; 5d
    1362313601    pop DS                                    ; 1f
    1362413602    retf                                      ; cb
    1362513603
    13626   ; Padding 0x494b bytes at 0xf90b5
    13627   times 18763 db 0
     13604  ; Padding 0x495b bytes at 0xf90a5
     13605  times 18779 db 0
    1362813606
    1362913607section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3aa class=CODE group=AUTO
     
    1367213650    add bp, strict byte 00008h                ; 83 c5 08
    1367313651    push ebp                                  ; 66 55
    13674     mov bp, 090a6h                            ; bd a6 90
     13652    mov bp, 09096h                            ; bd 96 90
    1367513653    add byte [bx+si], al                      ; 00 00
    1367613654    push ebp                                  ; 66 55
     
    1409914077    mov AL, strict byte 020h                  ; b0 20
    1410014078    out strict byte 0a0h, AL                  ; e6 a0
    14101 eoi_master_pic:                              ; 0xfe03f LB 0x1c
     14079eoi_master_pic:                              ; 0xfe03f LB 0x5
    1410214080    mov AL, strict byte 020h                  ; b0 20
    1410314081    out strict byte 020h, AL                  ; e6 20
    1410414082    retn                                      ; c3
    14105     times 0x15 db 0
     14083set_int_vects:                               ; 0xfe044 LB 0x17
     14084    mov word [bx], ax                         ; 89 07
     14085    mov word [bx+002h], dx                    ; 89 57 02
     14086    add bx, strict byte 00004h                ; 83 c3 04
     14087    loop 0e044h                               ; e2 f6
     14088    retn                                      ; c3
     14089    times 0xa db 0
    1410614090    db  'XM'
    14107 post:                                        ; 0xfe05b LB 0x32
     14091post:                                        ; 0xfe05b LB 0x3f
     14092    cli                                       ; fa
     14093    smsw ax                                   ; 0f 01 e0
     14094    test ax, strict word 00001h               ; a9 01 00
     14095    je short 0e068h                           ; 74 04
     14096    out strict byte 092h, AL                  ; e6 92
     14097    jmp short 0e066h                          ; eb fe
    1410814098    db  033h, 0c0h
    1410914099    ; xor ax, ax                                ; 33 c0
     
    1412614116    ; mov al, bl                                ; 8a c3
    1412714117    cmp AL, strict byte 000h                  ; 3c 00
    14128     je short 0e098h                           ; 74 19
     14118    je short 0e09ah                           ; 74 0e
    1412914119    cmp AL, strict byte 00dh                  ; 3c 0d
    14130     jnc short 0e098h                          ; 73 15
     14120    jnc short 0e09ah                          ; 73 0a
    1413114121    cmp AL, strict byte 009h                  ; 3c 09
    14132     je short 0e098h                           ; 74 11
     14122    je short 0e09ah                           ; 74 06
    1413314123    cmp AL, strict byte 005h                  ; 3c 05
    14134     je short 0e030h                           ; 74 a5
    14135     jmp short 0e098h                          ; eb 0b
    14136 set_int_vects:                               ; 0xfe08d LB 0xb
    14137     mov word [bx], ax                         ; 89 07
    14138     mov word [bx+002h], dx                    ; 89 57 02
    14139     add bx, strict byte 00004h                ; 83 c3 04
    14140     loop 0e08dh                               ; e2 f6
    14141     retn                                      ; c3
    14142 normal_post:                                 ; 0xfe098 LB 0x22b
    14143     cli                                       ; fa
     14124    je short 0e030h                           ; 74 98
     14125    jmp short 0e09ah                          ; eb 00
     14126normal_post:                                 ; 0xfe09a LB 0x229
    1414414127    mov ax, 07800h                            ; b8 00 78
    1414514128    db  08bh, 0e0h
     
    1416314146    add bx, 01000h                            ; 81 c3 00 10
    1416414147    cmp bx, 09000h                            ; 81 fb 00 90
    14165     jnc short 0e0cch                          ; 73 0b
     14148    jnc short 0e0cdh                          ; 73 0b
    1416614149    mov es, bx                                ; 8e c3
    1416714150    db  033h, 0ffh
     
    1416914152    mov cx, 08000h                            ; b9 00 80
    1417014153    rep stosw                                 ; f3 ab
    14171     jmp short 0e0b7h                          ; eb eb
     14154    jmp short 0e0b8h                          ; eb eb
    1417214155    mov es, bx                                ; 8e c3
    1417314156    db  033h, 0ffh
     
    1418014163    pop DS                                    ; 1f
    1418114164    cld                                       ; fc
    14182     call 01707h                               ; e8 2a 36
    14183     call 0e8e0h                               ; e8 00 08
     14165    call 01707h                               ; e8 29 36
     14166    call 0e8e0h                               ; e8 ff 07
    1418414167    db  033h, 0dbh
    1418514168    ; xor bx, bx                                ; 33 db
     
    1418814171    mov ax, 0ff53h                            ; b8 53 ff
    1418914172    mov dx, 0f000h                            ; ba 00 f0
    14190     call 0e08dh                               ; e8 9d ff
     14173    call 0e044h                               ; e8 53 ff
    1419114174    mov bx, 001a0h                            ; bb a0 01
    1419214175    mov cx, strict word 00010h                ; b9 10 00
    14193     call 0e08dh                               ; e8 94 ff
     14176    call 0e044h                               ; e8 4a ff
    1419414177    mov ax, 0027fh                            ; b8 7f 02
    1419514178    mov word [00413h], ax                     ; a3 13 04
     
    1420614189    mov ax, 0f000h                            ; b8 00 f0
    1420714190    mov word [00056h], ax                     ; a3 56 00
    14208     mov ax, 0efd2h                            ; b8 d2 ef
     14191    mov ax, 0efd4h                            ; b8 d4 ef
    1420914192    mov word [0005ch], ax                     ; a3 5c 00
    1421014193    mov ax, 0f000h                            ; b8 00 f0
     
    1421814201    mov ax, 0f000h                            ; b8 00 f0
    1421914202    mov word [00066h], ax                     ; a3 66 00
    14220     mov ax, 0efebh                            ; b8 eb ef
     14203    mov ax, 0efedh                            ; b8 ed ef
    1422114204    mov word [00070h], ax                     ; a3 70 00
    1422214205    mov ax, 0f000h                            ; b8 00 f0
    1422314206    mov word [00072h], ax                     ; a3 72 00
    14224     call 0e7c0h                               ; e8 6a 06
     14207    call 0e7c0h                               ; e8 69 06
    1422514208    mov ax, 0fea5h                            ; b8 a5 fe
    1422614209    mov word [00020h], ax                     ; a3 20 00
     
    1426014243    pop DS                                    ; 1f
    1426114244    cld                                       ; fc
    14262     call 04969h                               ; e8 b0 67
     14245    call 048d0h                               ; e8 16 67
    1426314246    pop DS                                    ; 1f
    1426414247    mov AL, strict byte 014h                  ; b0 14
     
    1427714260    mov CL, strict byte 014h                  ; b1 14
    1427814261    mov dx, 00378h                            ; ba 78 03
    14279     call 0ecedh                               ; e8 10 0b
     14262    call 0ecedh                               ; e8 0f 0b
    1428014263    mov dx, 00278h                            ; ba 78 02
    14281     call 0ecedh                               ; e8 0a 0b
     14264    call 0ecedh                               ; e8 09 0b
    1428214265    sal bx, 00eh                              ; c1 e3 0e
    1428314266    mov ax, word [00410h]                     ; a1 10 04
     
    1430214285    mov CL, strict byte 00ah                  ; b1 0a
    1430314286    mov dx, 003f8h                            ; ba f8 03
    14304     call 0ed0bh                               ; e8 ec 0a
     14287    call 0ed0bh                               ; e8 eb 0a
    1430514288    mov dx, 002f8h                            ; ba f8 02
    14306     call 0ed0bh                               ; e8 e6 0a
     14289    call 0ed0bh                               ; e8 e5 0a
    1430714290    mov dx, 003e8h                            ; ba e8 03
    14308     call 0ed0bh                               ; e8 e0 0a
     14291    call 0ed0bh                               ; e8 df 0a
    1430914292    mov dx, 002e8h                            ; ba e8 02
    14310     call 0ed0bh                               ; e8 da 0a
     14293    call 0ed0bh                               ; e8 d9 0a
    1431114294    sal bx, 009h                              ; c1 e3 09
    1431214295    mov ax, word [00410h]                     ; a1 10 04
     
    1432714310    mov ax, 0f000h                            ; b8 00 f0
    1432814311    mov word [001c2h], ax                     ; a3 c2 01
    14329     call 0edbfh                               ; e8 59 0b
     14312    call 0edbfh                               ; e8 58 0b
    1433014313    mov ax, 0f8a4h                            ; b8 a4 f8
    1433114314    mov word [001d0h], ax                     ; a3 d0 01
     
    1434014323    mov ax, 0f000h                            ; b8 00 f0
    1434114324    mov word [00042h], ax                     ; a3 42 00
    14342     call 0e79bh                               ; e8 0e 05
    14343     call 0f13ch                               ; e8 ac 0e
    14344     call 0f1c1h                               ; e8 2e 0f
    14345     call 0e758h                               ; e8 c2 04
     14325    call 0e79bh                               ; e8 0d 05
     14326    call 0f13ch                               ; e8 ab 0e
     14327    call 0f1c1h                               ; e8 2d 0f
     14328    call 0e758h                               ; e8 c1 04
    1434614329    push CS                                   ; 0e
    1434714330    pop DS                                    ; 1f
    1434814331    cld                                       ; fc
    14349     call 01b25h                               ; e8 89 38
    14350     call 01f13h                               ; e8 74 3c
    14351     call 0895bh                               ; e8 b9 a6
    14352     call 07a70h                               ; e8 cb 97
    14353     call 0ed2fh                               ; e8 87 0a
    14354     call 0e2d2h                               ; e8 27 00
     14332    call 01b25h                               ; e8 88 38
     14333    call 01f13h                               ; e8 73 3c
     14334    call 08946h                               ; e8 a3 a6
     14335    call 07a5bh                               ; e8 b5 97
     14336    call 0ed2fh                               ; e8 86 0a
     14337    call 0e2d2h                               ; e8 26 00
    1435514338    push CS                                   ; 0e
    1435614339    pop DS                                    ; 1f
    1435714340    cld                                       ; fc
    14358     call 01725h                               ; e8 74 34
    14359     call 0356dh                               ; e8 b9 52
     14341    call 01725h                               ; e8 73 34
     14342    call 035e0h                               ; e8 2b 53
    1436014343    sti                                       ; fb
    1436114344    int 019h                                  ; cd 19
    1436214345    sti                                       ; fb
    1436314346    hlt                                       ; f4
    14364     jmp short 0e2b8h                          ; eb fd
     14347    jmp short 0e2b9h                          ; eb fd
    1436514348    cli                                       ; fa
    1436614349    hlt                                       ; f4
    1436714350    add byte [bx+si], al                      ; 00 00
    14368     add byte [bx+si], al                      ; 00 00
    14369     pop ax                                    ; 58
    14370     dec bp                                    ; 4d
     14351    add byte [bx+si+04dh], bl                 ; 00 58 4d
    1437114352nmi:                                         ; 0xfe2c3 LB 0x7
    1437214353    push CS                                   ; 0e
     
    1438114362    iret                                      ; cf
    1438214363hard_drive_post:                             ; 0xfe2d2 LB 0x12c
    14383     mov AL, strict byte 00ah                  ; b0 0a
    14384     mov dx, 003f6h                            ; ba f6 03
    14385     out DX, AL                                ; ee
    1438614364    db  033h, 0c0h
    1438714365    ; xor ax, ax                                ; 33 c0
     
    1441114389    mov word [0011ah], ax                     ; a3 1a 01
    1441214390    retn                                      ; c3
    14413     times 0xdb db 0
     14391    times 0xe1 db 0
    1441414392    db  'XM'
    1441514393int13_handler:                               ; 0xfe3fe LB 0x3
     
    1448214460    pop DS                                    ; 1f
    1448314461    cld                                       ; fc
    14484     call 05cdfh                               ; e8 9d 75
     14462    call 05c46h                               ; e8 04 75
    1448514463    popaw                                     ; 61
    1448614464    pop ES                                    ; 07
     
    1459814576    pop DS                                    ; 1f
    1459914577    cld                                       ; fc
    14600     call 0505bh                               ; e8 19 68
     14578    call 04fc2h                               ; e8 80 67
    1460114579    popaw                                     ; 61
    1460214580    pop DS                                    ; 1f
     
    1461514593    pop DS                                    ; 1f
    1461614594    cld                                       ; fc
    14617     call 0505bh                               ; e8 fb 67
     14595    call 04fc2h                               ; e8 62 67
    1461814596    popaw                                     ; 61
    1461914597    pop DS                                    ; 1f
     
    1471414692    pop DS                                    ; 1f
    1471514693    cld                                       ; fc
    14716     call 04c73h                               ; e8 a4 62
     14694    call 04bdah                               ; e8 0b 62
    1471714695    pop ES                                    ; 07
    1471814696    popaw                                     ; 61
     
    1474014718    cld                                       ; fc
    1474114719    push 0ece9h                               ; 68 e9 ec
    14742     jmp near 035abh                           ; e9 3a 49
     14720    jmp near 0361eh                           ; e9 ad 49
    1474314721    push ES                                   ; 06
    1474414722    push ax                                   ; 50
     
    1474614724    push cx                                   ; 51
    1474714725    push dx                                   ; 52
    14748     call 03583h                               ; e8 0a 49
     14726    call 035f6h                               ; e8 7d 49
    1474914727    cmp AL, strict byte 000h                  ; 3c 00
    1475014728    je short 0ecabh                           ; 74 2e
    14751     call 03597h                               ; e8 17 49
     14729    call 0360ah                               ; e8 8a 49
    1475214730    pop dx                                    ; 5a
    1475314731    push dx                                   ; 52
     
    1476714745    cld                                       ; fc
    1476814746    push 0ece9h                               ; 68 e9 ec
    14769     jmp near 03c06h                           ; e9 6f 4f
     14747    jmp near 03be6h                           ; e9 4f 4f
    1477014748    and dl, 0e0h                              ; 80 e2 e0
    1477114749    db  03ah, 0c2h
     
    1480714785    jne short 0ecc8h                          ; 75 06
    1480814786    push 0ece9h                               ; 68 e9 ec
    14809     jmp near 02dd4h                           ; e9 0c 41
     14787    jmp near 02e51h                           ; e9 89 41
    1481014788int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1481114789    cmp dl, 0e0h                              ; 80 fa e0
     
    1481314791    shr ebx, 010h                             ; 66 c1 eb 10
    1481414792    push bx                                   ; 53
    14815     call 04053h                               ; e8 7e 53
     14793    call 04015h                               ; e8 40 53
    1481614794    pop bx                                    ; 5b
    1481714795    sal ebx, 010h                             ; 66 c1 e3 10
     
    1482014798    cmp ah, 040h                              ; 80 fc 40
    1482114799    jnbe short 0ece6h                         ; 77 05
    14822     call 053dbh                               ; e8 f7 66
     14800    call 05342h                               ; e8 5e 66
    1482314801    jmp short 0ece9h                          ; eb 03
    14824     call 05817h                               ; e8 2e 6b
     14802    call 0577eh                               ; e8 95 6a
    1482514803int13_out:                                   ; 0xfece9 LB 0x4
    1482614804    pop DS                                    ; 1f
     
    1501814996    times 0x33 db 0
    1501914997    db  'XM'
    15020 _diskette_param_table:                       ; 0xfefc7 LB 0xb
     14998_diskette_param_table:                       ; 0xfefc7 LB 0xd
    1502114999    scasw                                     ; af
    1502215000    add ah, byte [di]                         ; 02 25
     
    1502715005    db  0f6h
    1502815006    invd                                      ; 0f 08
    15029 int17_handler:                               ; 0xfefd2 LB 0xd
     15007    jmp short 0efd4h                          ; eb 00
     15008int17_handler:                               ; 0xfefd4 LB 0xd
    1503015009    push DS                                   ; 1e
    1503115010    push ES                                   ; 06
     
    1503415013    pop DS                                    ; 1f
    1503515014    cld                                       ; fc
    15036     call 06e5dh                               ; e8 82 7e
     15015    call 06dc4h                               ; e8 e7 7d
    1503715016    popaw                                     ; 61
    1503815017    pop ES                                    ; 07
    1503915018    pop DS                                    ; 1f
    1504015019    iret                                      ; cf
    15041 _pmode_IDT:                                  ; 0xfefdf LB 0x6
     15020_pmode_IDT:                                  ; 0xfefe1 LB 0x6
    1504215021    db  000h, 000h, 000h, 000h, 00fh, 000h
    15043 _rmode_IDT:                                  ; 0xfefe5 LB 0x6
     15022_rmode_IDT:                                  ; 0xfefe7 LB 0x6
    1504415023    db  0ffh, 003h, 000h, 000h, 000h, 000h
    15045 int1c_handler:                               ; 0xfefeb LB 0x7a
     15024int1c_handler:                               ; 0xfefed LB 0x78
    1504615025    iret                                      ; cf
    15047     times 0x57 db 0
     15026    times 0x55 db 0
    1504815027    pop ax                                    ; 58
    1504915028    dec bp                                    ; 4d
     
    1508215061    mov ax, strict word 00001h                ; b8 01 00
    1508315062    push ax                                   ; 50
    15084     call 04707h                               ; e8 37 56
     15063    call 0466eh                               ; e8 9e 55
    1508515064    inc sp                                    ; 44
    1508615065    inc sp                                    ; 44
     
    1508915068    mov ax, strict word 00002h                ; b8 02 00
    1509015069    push ax                                   ; 50
    15091     call 04707h                               ; e8 2a 56
     15070    call 0466eh                               ; e8 91 55
    1509215071    inc sp                                    ; 44
    1509315072    inc sp                                    ; 44
     
    1509615075    mov ax, strict word 00003h                ; b8 03 00
    1509715076    push strict byte 00003h                   ; 6a 03
    15098     call 04707h                               ; e8 1c 56
     15077    call 0466eh                               ; e8 83 55
    1509915078    inc sp                                    ; 44
    1510015079    inc sp                                    ; 44
     
    1510315082    mov ax, strict word 00004h                ; b8 04 00
    1510415083    push ax                                   ; 50
    15105     call 04707h                               ; e8 0f 56
     15084    call 0466eh                               ; e8 76 55
    1510615085    inc sp                                    ; 44
    1510715086    inc sp                                    ; 44
     
    1512215101    iret                                      ; cf
    1512315102    or cx, word [bp+si]                       ; 0b 0a
    15124     or word [di], ax                          ; 09 05
     15103    or word [bp+di], cx                       ; 09 0b
    1512515104    push eax                                  ; 66 50
    1512615105    mov eax, strict dword 000800000h          ; 66 b8 00 00 80 00
     
    1544715426    cmp ah, 0c2h                              ; 80 fc c2
    1544815427    je short 0f882h                           ; 74 0e
    15449     call 05ee8h                               ; e8 71 66
     15428    call 05e4fh                               ; e8 d8 65
    1545015429    popaw                                     ; 61
    1545115430    pop ES                                    ; 07
     
    1545315432    popfw                                     ; 9d
    1545415433    jmp short 0f890h                          ; eb 13
    15455     call 08a8ah                               ; e8 0a 92
     15434    call 08a75h                               ; e8 f5 91
    1545615435    jmp short 0f877h                          ; eb f5
    1545715436int15_handler_mouse:                         ; 0xff882 LB 0x5
    15458     call 06ad7h                               ; e8 52 72
     15437    call 06a3eh                               ; e8 b9 71
    1545915438    jmp short 0f877h                          ; eb f0
    1546015439int15_handler32:                             ; 0xff887 LB 0x9
    1546115440    pushad                                    ; 66 60
    15462     call 063b1h                               ; e8 25 6b
     15441    call 06318h                               ; e8 8c 6a
    1546315442    popad                                     ; 66 61
    1546415443    jmp short 0f878h                          ; eb e8
     
    1549015469    pop DS                                    ; 1f
    1549115470    cld                                       ; fc
    15492     call 06a11h                               ; e8 59 71
     15471    call 06978h                               ; e8 c0 70
    1549315472    pop cx                                    ; 59
    1549415473    jcxz 0f8c7h                               ; e3 0c
     
    1558215561    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1558315562    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    15584     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 015h, 08eh, 066h
    15585     db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 02eh, 069h, 061h, 01fh, 007h
     15563    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 000h, 08eh, 066h
     15564    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 095h, 068h, 061h, 01fh, 007h
    1558615565    db  0cfh
    1558715566int70_handler:                               ; 0xffe8f LB 0x16
     
    1559215571    pop DS                                    ; 1f
    1559315572    cld                                       ; fc
    15594     call 066feh                               ; e8 66 68
     15573    call 06665h                               ; e8 cd 67
    1559515574    popaw                                     ; 61
    1559615575    pop DS                                    ; 1f
     
    1567915658    dec cx                                    ; 49
    1568015659    pop di                                    ; 5f
    15681     mov di, 00160h                            ; bf 60 01
    15682     add byte [bx+si], dl                      ; 00 10
    15683     push CS                                   ; 0e
    15684     add byte [di], al                         ; 00 05
     15660    sbb AL, strict byte 000h                  ; 1c 00
     15661    add byte [bx+si], al                      ; 00 00
     15662    adc byte [00900h], cl                     ; 10 0e 00 09
    1568515663    add byte [di], ah                         ; 00 25
    1568615664    times 0x6f db 0
     
    1568815666cpu_reset:                                   ; 0xffff0 LB 0x10
    1568915667    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    15690     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03bh
     15668    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 039h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r43630 r44751  
    1 0c14a3e4d7b29dba2a7e66be9479e668 *VBoxPcBios.rom
     1672b75ae8ab89eb41cf55264d313f4c1 *VBoxPcBios.rom
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette