VirtualBox

Changeset 58831 in vbox for trunk/src/VBox/Devices/PC/BIOS


Ignore:
Timestamp:
Nov 23, 2015 5:21:38 PM (9 years ago)
Author:
vboxsync
Message:

BIOS: updated alternative source

Location:
trunk/src/VBox/Devices/PC/BIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm

    r57333 r58831  
    856856    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    857857_pktacc:                                     ; 0xf006a LB 0xc
    858     db  000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 089h, 07bh, 06bh, 089h
     858    db  000h, 000h, 000h, 000h, 000h, 000h, 064h, 02bh, 03eh, 07fh, 065h, 08eh
    859859_softrst:                                    ; 0xf0076 LB 0xc
    860     db  000h, 000h, 000h, 000h, 000h, 000h, 077h, 02bh, 054h, 038h, 054h, 038h
     860    db  000h, 000h, 000h, 000h, 000h, 000h, 04ch, 02eh, 029h, 03bh, 029h, 03bh
    861861_dskacc:                                     ; 0xf0082 LB 0x2e
    862     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 027h, 052h, 028h, 000h, 000h, 000h, 000h
    863     db  017h, 07ah, 0d0h, 07ah, 066h, 088h, 0f9h, 088h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     862    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 054h, 02ah, 009h, 02bh, 000h, 000h, 000h, 000h
     863    db  088h, 07dh, 063h, 07eh, 03bh, 08dh, 0e1h, 08dh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    864864    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    865865
    866 section CONST progbits vstart=0xb0 align=1 ; size=0xce0 class=DATA group=DGROUP
     866section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
    867867    db   'NMI Handler called', 00ah, 000h
    868868    db   'INT18: BOOT FAILURE', 00ah, 000h
    869869    db   '%s', 00ah, 000h, 000h
    870870    db   'FATAL: ', 000h
    871     db   'bios_printf: unknown format', 00ah, 000h, 000h
     871    db   'bios_printf: unknown %ll format', 00ah, 000h
     872    db   'bios_printf: unknown format', 00ah, 000h
    872873    db   'ata-detect: Failed to detect ATA device', 00ah, 000h
    873874    db   'ata%d-%d: PCHS=%u/%u/%u LCHS=%u/%u/%u', 00ah, 000h
     
    927928    db   '%s: function %02xh unsupported, returns fail', 00ah, 000h
    928929    db   'int13_harddisk_ext', 000h
    929     db   '%s: function %02x. Can', 027h, 't use 64bits lba', 00ah, 000h
    930     db   '%s: function %02x. LBA out of range', 00ah, 000h
     930    db   '%s: function %02x. LBA out of range', 00ah, 000h, 000h
    931931    db   'int15: Func 24h, subfunc %02xh, A20 gate control not supported', 00ah, 000h
    932932    db   '*** int 15h function AH=bf not yet supported!', 00ah, 000h
     
    968968    db   '%s: SCSI_READ_CAPACITY failed', 00ah, 000h
    969969    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
    970     db   'SCSI %d-ID#%d: LCHS=%u/%u/%u %lu sectors', 00ah, 000h
     970    db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
    971971    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
    972972    db   'ahci_read_sectors', 000h
     
    975975    db   'ahci_cmd_packet', 000h
    976976    db   '%s: DATA_OUT not supported yet', 00ah, 000h
    977     db   'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u %lu sectors', 00ah, 000h, 000h
     977    db   'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u 0x%llx sectors', 00ah, 000h
    978978    db   'Standby', 000h
    979979    db   'Suspend', 000h
     
    982982    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    983983
    984 section CONST2 progbits vstart=0xd90 align=1 ; size=0x3fa class=DATA group=DGROUP
    985 _bios_cvs_version_string:                    ; 0xf0d90 LB 0x12
    986     db  'VirtualBox 5.0.2', 000h, 000h
    987 _bios_prefix_string:                         ; 0xf0da2 LB 0x8
     984section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
     985_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
     986    db  'VirtualBox 5.0.51', 000h
     987_bios_prefix_string:                         ; 0xf0da0 LB 0x8
    988988    db  'BIOS: ', 000h, 000h
    989 _isotag:                                     ; 0xf0daa LB 0x6
     989_isotag:                                     ; 0xf0da8 LB 0x6
    990990    db  'CD001', 000h
    991 _eltorito:                                   ; 0xf0db0 LB 0x18
     991_eltorito:                                   ; 0xf0dae LB 0x18
    992992    db  'EL TORITO SPECIFICATION', 000h
    993 _drivetypes:                                 ; 0xf0dc8 LB 0x28
     993_drivetypes:                                 ; 0xf0dc6 LB 0x28
    994994    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    995995    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    996996    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    997 _scan_to_scanascii:                          ; 0xf0df0 LB 0x37a
     997_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
    998998    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    999999    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    10521052    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    10531053    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1054 _panic_msg_keyb_buffer_full:                 ; 0xf116a LB 0x20
     1054_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
    10551055    db  '%s: keyboard input buffer full', 00ah, 000h
    10561056
    1057   ; Padding 0x476 bytes at 0xf118a
    1058   times 1142 db 0
     1057  ; Padding 0x478 bytes at 0xf1188
     1058  times 1144 db 0
    10591059
    1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8235 class=CODE group=AUTO
     1060section _TEXT progbits vstart=0x1600 align=1 ; size=0x87f5 class=CODE group=AUTO
    10611061rom_scan_:                                   ; 0xf1600 LB 0x50
    10621062    push bp                                   ; 55
     
    12801280    push bp                                   ; 55
    12811281    mov bp, sp                                ; 89 e5
    1282     mov bx, 00da2h                            ; bb a2 0d
     1282    mov bx, 00da0h                            ; bb a0 0d
    12831283    mov cx, ds                                ; 8c d9
    12841284    mov ax, strict word 00004h                ; b8 04 00
    12851285    call 01931h                               ; e8 ac 01
    1286     push 00d90h                               ; 68 90 0d
     1286    push 00d8eh                               ; 68 8e 0d
    12871287    push 000d9h                               ; 68 d9 00
    12881288    push strict byte 00004h                   ; 6a 04
     
    13091309    int 010h                                  ; cd 10
    13101310    jmp short 017c1h                          ; eb 03
    1311     call 075fah                               ; e8 39 5e
     1311    call 07947h                               ; e8 86 61
    13121312    mov sp, bp                                ; 89 ec
    13131313    pop bp                                    ; 5d
     
    14551455    mov bx, strict word 0000ah                ; bb 0a 00
    14561456    xor cx, cx                                ; 31 c9
    1457     call 09740h                               ; e8 67 7e
     1457    call 09ce0h                               ; e8 07 84
    14581458    mov word [bp-008h], ax                    ; 89 46 f8
    14591459    mov cx, dx                                ; 89 d1
     
    15341534    pop bp                                    ; 5d
    15351535    retn                                      ; c3
    1536 bios_printf_:                                ; 0xf1972 LB 0x23b
     1536bios_printf_:                                ; 0xf1972 LB 0x33d
    15371537    push bp                                   ; 55
    15381538    mov bp, sp                                ; 89 e5
     
    15421542    push si                                   ; 56
    15431543    push di                                   ; 57
    1544     sub sp, strict byte 00008h                ; 83 ec 08
     1544    sub sp, strict byte 0001ch                ; 83 ec 1c
    15451545    lea bx, [bp+008h]                         ; 8d 5e 08
    1546     mov word [bp-012h], bx                    ; 89 5e ee
    1547     mov [bp-010h], ss                         ; 8c 56 f0
    1548     xor cx, cx                                ; 31 c9
    1549     xor si, si                                ; 31 f6
     1546    mov word [bp-016h], bx                    ; 89 5e ea
     1547    mov [bp-014h], ss                         ; 8c 56 ec
     1548    xor bx, bx                                ; 31 db
     1549    xor di, di                                ; 31 ff
    15501550    mov ax, word [bp+004h]                    ; 8b 46 04
    15511551    and ax, strict word 00007h                ; 25 07 00
     
    15561556    call 01972h                               ; e8 d5 ff
    15571557    add sp, strict byte 00004h                ; 83 c4 04
    1558     mov bx, word [bp+006h]                    ; 8b 5e 06
    1559     mov dl, byte [bx]                         ; 8a 17
     1558    mov si, word [bp+006h]                    ; 8b 76 06
     1559    mov dl, byte [si]                         ; 8a 14
    15601560    test dl, dl                               ; 84 d2
    1561     je near 01b91h                            ; 0f 84 e6 01
     1561    je near 01c93h                            ; 0f 84 e8 02
    15621562    cmp dl, 025h                              ; 80 fa 25
    15631563    jne short 019b8h                          ; 75 08
    1564     mov cx, strict word 00001h                ; b9 01 00
    1565     xor si, si                                ; 31 f6
    1566     jmp near 01b8bh                           ; e9 d3 01
    1567     test cx, cx                               ; 85 c9
    1568     je near 01b83h                            ; 0f 84 c5 01
     1564    mov bx, strict word 00001h                ; bb 01 00
     1565    xor di, di                                ; 31 ff
     1566    jmp near 01c8dh                           ; e9 d5 02
     1567    test bx, bx                               ; 85 db
     1568    je near 01c85h                            ; 0f 84 c7 02
    15691569    cmp dl, 030h                              ; 80 fa 30
    15701570    jc short 019d6h                           ; 72 13
     
    15721572    jnbe short 019d6h                         ; 77 0e
    15731573    movzx ax, dl                              ; 0f b6 c2
    1574     imul si, si, strict byte 0000ah           ; 6b f6 0a
     1574    imul di, di, strict byte 0000ah           ; 6b ff 0a
    15751575    sub ax, strict word 00030h                ; 2d 30 00
    1576     add si, ax                                ; 01 c6
    1577     jmp near 01b8bh                           ; e9 b5 01
    1578     mov ax, word [bp-010h]                    ; 8b 46 f0
    1579     mov word [bp-010h], ax                    ; 89 46 f0
    1580     add word [bp-012h], strict byte 00002h    ; 83 46 ee 02
    1581     les bx, [bp-012h]                         ; c4 5e ee
     1576    add di, ax                                ; 01 c7
     1577    jmp near 01c8dh                           ; e9 b7 02
     1578    mov ax, word [bp-014h]                    ; 8b 46 ec
     1579    mov word [bp-014h], ax                    ; 89 46 ec
     1580    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
     1581    les bx, [bp-016h]                         ; c4 5e ea
    15821582    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
    1583     mov word [bp-00ch], ax                    ; 89 46 f4
     1583    mov word [bp-012h], ax                    ; 89 46 ee
    15841584    cmp dl, 078h                              ; 80 fa 78
    15851585    je short 019f4h                           ; 74 05
    15861586    cmp dl, 058h                              ; 80 fa 58
    1587     jne short 01a3dh                          ; 75 49
    1588     test si, si                               ; 85 f6
     1587    jne short 01a4ah                          ; 75 56
     1588    test di, di                               ; 85 ff
    15891589    jne short 019fbh                          ; 75 03
    1590     mov si, strict word 00004h                ; be 04 00
     1590    mov di, strict word 00004h                ; bf 04 00
    15911591    cmp dl, 078h                              ; 80 fa 78
    1592     jne short 01a05h                          ; 75 05
    1593     mov di, strict word 00061h                ; bf 61 00
    1594     jmp short 01a08h                          ; eb 03
    1595     mov di, strict word 00041h                ; bf 41 00
    1596     lea bx, [si-001h]                         ; 8d 5c ff
    1597     test bx, bx                               ; 85 db
    1598     jl near 01b7fh                            ; 0f 8c 6e 01
    1599     mov cx, bx                                ; 89 d9
     1592    jne short 01a07h                          ; 75 07
     1593    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
     1594    jmp short 01a0ch                          ; eb 05
     1595    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
     1596    lea ax, [di-001h]                         ; 8d 45 ff
     1597    mov word [bp-00ch], ax                    ; 89 46 f4
     1598    mov ax, word [bp-00ch]                    ; 8b 46 f4
     1599    test ax, ax                               ; 85 c0
     1600    jl near 01c81h                            ; 0f 8c 66 02
     1601    mov cx, ax                                ; 89 c1
    16001602    sal cx, 002h                              ; c1 e1 02
    1601     mov ax, word [bp-00ch]                    ; 8b 46 f4
     1603    mov ax, word [bp-012h]                    ; 8b 46 ee
    16021604    shr ax, CL                                ; d3 e8
    16031605    xor ah, ah                                ; 30 e4
    16041606    and AL, strict byte 00fh                  ; 24 0f
    16051607    cmp ax, strict word 00009h                ; 3d 09 00
    1606     jnbe short 01a2bh                         ; 77 07
     1608    jnbe short 01a35h                         ; 77 07
    16071609    mov dx, ax                                ; 89 c2
    16081610    add dx, strict byte 00030h                ; 83 c2 30
    1609     jmp short 01a32h                          ; eb 07
    1610     mov dx, ax                                ; 89 c2
    1611     sub dx, strict byte 0000ah                ; 83 ea 0a
    1612     add dx, di                                ; 01 fa
     1611    jmp short 01a3dh                          ; eb 08
     1612    sub ax, strict word 0000ah                ; 2d 0a 00
     1613    mov dx, word [bp-00eh]                    ; 8b 56 f2
     1614    add dx, ax                                ; 01 c2
    16131615    xor dh, dh                                ; 30 f6
    16141616    mov ax, word [bp+004h]                    ; 8b 46 04
    1615     call 017c5h                               ; e8 8b fd
    1616     dec bx                                    ; 4b
    1617     jmp short 01a0bh                          ; eb ce
     1617    call 017c5h                               ; e8 80 fd
     1618    dec word [bp-00ch]                        ; ff 4e f4
     1619    jmp short 01a12h                          ; eb c8
    16181620    cmp dl, 075h                              ; 80 fa 75
    1619     jne short 01a51h                          ; 75 0f
     1621    jne short 01a5eh                          ; 75 0f
    16201622    xor cx, cx                                ; 31 c9
    1621     mov bx, si                                ; 89 f3
     1623    mov bx, di                                ; 89 fb
    16221624    mov dx, ax                                ; 89 c2
    16231625    mov ax, word [bp+004h]                    ; 8b 46 04
    1624     call 0185fh                               ; e8 11 fe
    1625     jmp near 01b7fh                           ; e9 2e 01
    1626     lea bx, [si-001h]                         ; 8d 5c ff
     1626    call 0185fh                               ; e8 04 fe
     1627    jmp near 01c81h                           ; e9 23 02
    16271628    cmp dl, 06ch                              ; 80 fa 6c
    1628     jne near 01b0dh                           ; 0f 85 b2 00
     1629    jne near 01b40h                           ; 0f 85 db 00
     1630    mov bx, word [bp+006h]                    ; 8b 5e 06
     1631    cmp dl, byte [bx+001h]                    ; 3a 57 01
     1632    jne near 01b40h                           ; 0f 85 d1 00
     1633    add word [bp+006h], strict byte 00002h    ; 83 46 06 02
     1634    mov bx, word [bp+006h]                    ; 8b 5e 06
     1635    mov dl, byte [bx]                         ; 8a 17
     1636    mov word [bp-026h], ax                    ; 89 46 da
     1637    mov ax, word [bp-014h]                    ; 8b 46 ec
     1638    mov word [bp-014h], ax                    ; 89 46 ec
     1639    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
     1640    les bx, [bp-016h]                         ; c4 5e ea
     1641    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
     1642    mov word [bp-024h], ax                    ; 89 46 dc
     1643    mov ax, word [bp-014h]                    ; 8b 46 ec
     1644    mov word [bp-014h], ax                    ; 89 46 ec
     1645    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
     1646    les bx, [bp-016h]                         ; c4 5e ea
     1647    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
     1648    mov word [bp-022h], ax                    ; 89 46 de
     1649    mov ax, word [bp-014h]                    ; 8b 46 ec
     1650    mov word [bp-014h], ax                    ; 89 46 ec
     1651    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
     1652    les bx, [bp-016h]                         ; c4 5e ea
     1653    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
     1654    mov word [bp-020h], ax                    ; 89 46 e0
     1655    cmp dl, 078h                              ; 80 fa 78
     1656    je short 01ac1h                           ; 74 05
     1657    cmp dl, 058h                              ; 80 fa 58
     1658    jne short 01b32h                          ; 75 71
     1659    test di, di                               ; 85 ff
     1660    jne short 01ac8h                          ; 75 03
     1661    mov di, strict word 00010h                ; bf 10 00
     1662    cmp dl, 078h                              ; 80 fa 78
     1663    jne short 01ad4h                          ; 75 07
     1664    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
     1665    jmp short 01ad9h                          ; eb 05
     1666    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
     1667    lea ax, [di-001h]                         ; 8d 45 ff
     1668    mov word [bp-00ch], ax                    ; 89 46 f4
     1669    mov ax, word [bp-00ch]                    ; 8b 46 f4
     1670    test ax, ax                               ; 85 c0
     1671    jl near 01c81h                            ; 0f 8c 99 01
     1672    sal ax, 002h                              ; c1 e0 02
     1673    mov word [bp-01eh], ax                    ; 89 46 e2
     1674    xor ax, ax                                ; 31 c0
     1675    mov word [bp-01ch], ax                    ; 89 46 e4
     1676    mov word [bp-01ah], ax                    ; 89 46 e6
     1677    mov word [bp-018h], ax                    ; 89 46 e8
     1678    mov ax, word [bp-020h]                    ; 8b 46 e0
     1679    mov bx, word [bp-022h]                    ; 8b 5e de
     1680    mov cx, word [bp-024h]                    ; 8b 4e dc
     1681    mov dx, word [bp-026h]                    ; 8b 56 da
     1682    mov si, word [bp-01eh]                    ; 8b 76 e2
     1683    call 09d5ah                               ; e8 4f 82
     1684    mov ax, dx                                ; 89 d0
     1685    xor ah, dh                                ; 30 f4
     1686    and AL, strict byte 00fh                  ; 24 0f
     1687    cmp ax, strict word 00009h                ; 3d 09 00
     1688    jnbe short 01b1dh                         ; 77 07
     1689    mov dx, ax                                ; 89 c2
     1690    add dx, strict byte 00030h                ; 83 c2 30
     1691    jmp short 01b25h                          ; eb 08
     1692    sub ax, strict word 0000ah                ; 2d 0a 00
     1693    mov dx, word [bp-00eh]                    ; 8b 56 f2
     1694    add dx, ax                                ; 01 c2
     1695    xor dh, dh                                ; 30 f6
     1696    mov ax, word [bp+004h]                    ; 8b 46 04
     1697    call 017c5h                               ; e8 98 fc
     1698    dec word [bp-00ch]                        ; ff 4e f4
     1699    jmp short 01adfh                          ; eb ad
     1700    push 000e6h                               ; 68 e6 00
     1701    push strict byte 00007h                   ; 6a 07
     1702    call 01972h                               ; e8 38 fe
     1703    add sp, strict byte 00004h                ; 83 c4 04
     1704    jmp near 01c81h                           ; e9 41 01
     1705    lea bx, [di-001h]                         ; 8d 5d ff
     1706    cmp dl, 06ch                              ; 80 fa 6c
     1707    jne near 01c09h                           ; 0f 85 bf 00
    16291708    inc word [bp+006h]                        ; ff 46 06
    1630     mov di, word [bp+006h]                    ; 8b 7e 06
    1631     mov dl, byte [di]                         ; 8a 15
    1632     mov ax, word [bp-010h]                    ; 8b 46 f0
     1709    mov si, word [bp+006h]                    ; 8b 76 06
     1710    mov dl, byte [si]                         ; 8a 14
     1711    mov ax, word [bp-014h]                    ; 8b 46 ec
     1712    mov word [bp-014h], ax                    ; 89 46 ec
     1713    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
     1714    les si, [bp-016h]                         ; c4 76 ea
     1715    mov ax, word [es:si-002h]                 ; 26 8b 44 fe
    16331716    mov word [bp-010h], ax                    ; 89 46 f0
    1634     add word [bp-012h], strict byte 00002h    ; 83 46 ee 02
    1635     les di, [bp-012h]                         ; c4 7e ee
    1636     mov ax, word [es:di-002h]                 ; 26 8b 45 fe
    1637     mov word [bp-00eh], ax                    ; 89 46 f2
    16381717    cmp dl, 064h                              ; 80 fa 64
    1639     jne short 01aa9h                          ; 75 2d
    1640     test byte [bp-00dh], 080h                 ; f6 46 f3 80
    1641     je short 01a97h                           ; 74 15
     1718    jne short 01b98h                          ; 75 2d
     1719    test byte [bp-00fh], 080h                 ; f6 46 f1 80
     1720    je short 01b86h                           ; 74 15
    16421721    push strict byte 00001h                   ; 6a 01
    1643     mov ax, word [bp-00ch]                    ; 8b 46 f4
    1644     mov cx, word [bp-00eh]                    ; 8b 4e f2
     1722    mov ax, word [bp-012h]                    ; 8b 46 ee
     1723    mov cx, word [bp-010h]                    ; 8b 4e f0
    16451724    neg cx                                    ; f7 d9
    16461725    neg ax                                    ; f7 d8
     
    16481727    mov dx, bx                                ; 89 da
    16491728    mov bx, ax                                ; 89 c3
    1650     jmp short 01aa0h                          ; eb 09
     1729    jmp short 01b8fh                          ; eb 09
    16511730    push strict byte 00000h                   ; 6a 00
    1652     mov bx, word [bp-00ch]                    ; 8b 5e f4
    1653     mov dx, si                                ; 89 f2
     1731    mov bx, word [bp-012h]                    ; 8b 5e ee
     1732    mov dx, di                                ; 89 fa
    16541733    mov cx, ax                                ; 89 c1
    16551734    mov ax, word [bp+004h]                    ; 8b 46 04
    1656     call 018bfh                               ; e8 19 fe
    1657     jmp near 01b7fh                           ; e9 d6 00
     1735    call 018bfh                               ; e8 2a fd
     1736    jmp near 01c81h                           ; e9 e9 00
    16581737    cmp dl, 075h                              ; 80 fa 75
    1659     jne short 01ab0h                          ; 75 02
    1660     jmp short 01a97h                          ; eb e7
     1738    jne short 01b9fh                          ; 75 02
     1739    jmp short 01b86h                          ; eb e7
    16611740    cmp dl, 078h                              ; 80 fa 78
    1662     je short 01abch                           ; 74 07
     1741    je short 01babh                           ; 74 07
    16631742    cmp dl, 058h                              ; 80 fa 58
    1664     jne near 01b7fh                           ; 0f 85 c3 00
    1665     test si, si                               ; 85 f6
    1666     jne short 01ac3h                          ; 75 03
    1667     mov si, strict word 00008h                ; be 08 00
     1743    jne near 01c81h                           ; 0f 85 d6 00
     1744    test di, di                               ; 85 ff
     1745    jne short 01bb2h                          ; 75 03
     1746    mov di, strict word 00008h                ; bf 08 00
    16681747    cmp dl, 078h                              ; 80 fa 78
    1669     jne short 01acdh                          ; 75 05
    1670     mov di, strict word 00061h                ; bf 61 00
    1671     jmp short 01ad0h                          ; eb 03
    1672     mov di, strict word 00041h                ; bf 41 00
    1673     lea bx, [si-001h]                         ; 8d 5c ff
    1674     test bx, bx                               ; 85 db
    1675     jl near 01b7fh                            ; 0f 8c a6 00
    1676     mov ax, word [bp-00ch]                    ; 8b 46 f4
    1677     mov cx, bx                                ; 89 d9
     1748    jne short 01bbeh                          ; 75 07
     1749    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
     1750    jmp short 01bc3h                          ; eb 05
     1751    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
     1752    lea ax, [di-001h]                         ; 8d 45 ff
     1753    mov word [bp-00ch], ax                    ; 89 46 f4
     1754    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
     1755    jl near 01c81h                            ; 0f 8c b0 00
     1756    mov ax, word [bp-012h]                    ; 8b 46 ee
     1757    mov cx, word [bp-00ch]                    ; 8b 4e f4
    16781758    sal cx, 002h                              ; c1 e1 02
    1679     mov dx, word [bp-00eh]                    ; 8b 56 f2
    1680     jcxz 01aech                               ; e3 06
     1759    mov dx, word [bp-010h]                    ; 8b 56 f0
     1760    jcxz 01be5h                               ; e3 06
    16811761    shr dx, 1                                 ; d1 ea
    16821762    rcr ax, 1                                 ; d1 d8
    1683     loop 01ae6h                               ; e2 fa
     1763    loop 01bdfh                               ; e2 fa
    16841764    and ax, strict word 0000fh                ; 25 0f 00
    16851765    cmp ax, strict word 00009h                ; 3d 09 00
    1686     jnbe short 01afbh                         ; 77 07
     1766    jnbe short 01bf4h                         ; 77 07
    16871767    mov dx, ax                                ; 89 c2
    16881768    add dx, strict byte 00030h                ; 83 c2 30
    1689     jmp short 01b02h                          ; eb 07
    1690     mov dx, ax                                ; 89 c2
    1691     sub dx, strict byte 0000ah                ; 83 ea 0a
    1692     add dx, di                                ; 01 fa
     1769    jmp short 01bfch                          ; eb 08
     1770    sub ax, strict word 0000ah                ; 2d 0a 00
     1771    mov dx, word [bp-00eh]                    ; 8b 56 f2
     1772    add dx, ax                                ; 01 c2
    16931773    xor dh, dh                                ; 30 f6
    16941774    mov ax, word [bp+004h]                    ; 8b 46 04
    1695     call 017c5h                               ; e8 bb fc
    1696     dec bx                                    ; 4b
    1697     jmp short 01ad3h                          ; eb c6
     1775    call 017c5h                               ; e8 c1 fb
     1776    dec word [bp-00ch]                        ; ff 4e f4
     1777    jmp short 01bc9h                          ; eb c0
    16981778    cmp dl, 064h                              ; 80 fa 64
    1699     jne short 01b2fh                          ; 75 1d
    1700     test byte [bp-00bh], 080h                 ; f6 46 f5 80
    1701     je short 01b21h                           ; 74 09
    1702     mov dx, ax                                ; 89 c2
     1779    jne short 01c2dh                          ; 75 1f
     1780    test byte [bp-011h], 080h                 ; f6 46 ef 80
     1781    je short 01c1eh                           ; 74 0a
     1782    mov dx, word [bp-012h]                    ; 8b 56 ee
    17031783    neg dx                                    ; f7 da
    17041784    mov cx, strict word 00001h                ; b9 01 00
    1705     jmp short 01b27h                          ; eb 06
     1785    jmp short 01c25h                          ; eb 07
    17061786    xor cx, cx                                ; 31 c9
    1707     mov bx, si                                ; 89 f3
    1708     mov dx, ax                                ; 89 c2
     1787    mov bx, di                                ; 89 fb
     1788    mov dx, word [bp-012h]                    ; 8b 56 ee
    17091789    mov ax, word [bp+004h]                    ; 8b 46 04
    1710     call 01800h                               ; e8 d3 fc
    1711     jmp short 01b7fh                          ; eb 50
     1790    call 01800h                               ; e8 d5 fb
     1791    jmp short 01c81h                          ; eb 54
    17121792    cmp dl, 073h                              ; 80 fa 73
    1713     jne short 01b40h                          ; 75 0c
     1793    jne short 01c3fh                          ; 75 0d
    17141794    mov cx, ds                                ; 8c d9
     1795    mov bx, word [bp-012h]                    ; 8b 5e ee
     1796    mov ax, word [bp+004h]                    ; 8b 46 04
     1797    call 01931h                               ; e8 f4 fc
     1798    jmp short 01c81h                          ; eb 42
     1799    cmp dl, 053h                              ; 80 fa 53
     1800    jne short 01c65h                          ; 75 21
     1801    mov ax, word [bp-012h]                    ; 8b 46 ee
     1802    mov word [bp-010h], ax                    ; 89 46 f0
     1803    mov ax, word [bp-014h]                    ; 8b 46 ec
     1804    mov word [bp-014h], ax                    ; 89 46 ec
     1805    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
     1806    les bx, [bp-016h]                         ; c4 5e ea
     1807    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
     1808    mov word [bp-012h], ax                    ; 89 46 ee
    17151809    mov bx, ax                                ; 89 c3
     1810    mov cx, word [bp-010h]                    ; 8b 4e f0
     1811    jmp short 01c37h                          ; eb d2
     1812    cmp dl, 063h                              ; 80 fa 63
     1813    jne short 01c76h                          ; 75 0c
     1814    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
    17161815    mov ax, word [bp+004h]                    ; 8b 46 04
    1717     call 01931h                               ; e8 f3 fd
    1718     jmp short 01b7fh                          ; eb 3f
    1719     cmp dl, 053h                              ; 80 fa 53
    1720     jne short 01b63h                          ; 75 1e
    1721     mov word [bp-00eh], ax                    ; 89 46 f2
    1722     mov ax, word [bp-010h]                    ; 8b 46 f0
    1723     mov word [bp-010h], ax                    ; 89 46 f0
    1724     add word [bp-012h], strict byte 00002h    ; 83 46 ee 02
    1725     les bx, [bp-012h]                         ; c4 5e ee
    1726     mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
    1727     mov word [bp-00ch], ax                    ; 89 46 f4
    1728     mov bx, ax                                ; 89 c3
    1729     mov cx, word [bp-00eh]                    ; 8b 4e f2
    1730     jmp short 01b38h                          ; eb d5
    1731     cmp dl, 063h                              ; 80 fa 63
    1732     jne short 01b74h                          ; 75 0c
    1733     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    1734     mov ax, word [bp+004h]                    ; 8b 46 04
    1735     call 017c5h                               ; e8 53 fc
    1736     jmp short 01b7fh                          ; eb 0b
    1737     push 000e6h                               ; 68 e6 00
     1816    call 017c5h                               ; e8 51 fb
     1817    jmp short 01c81h                          ; eb 0b
     1818    push 00107h                               ; 68 07 01
    17381819    push strict byte 00007h                   ; 6a 07
    1739     call 01972h                               ; e8 f6 fd
     1820    call 01972h                               ; e8 f4 fc
    17401821    add sp, strict byte 00004h                ; 83 c4 04
    1741     xor cx, cx                                ; 31 c9
    1742     jmp short 01b8bh                          ; eb 08
     1822    xor bx, bx                                ; 31 db
     1823    jmp short 01c8dh                          ; eb 08
    17431824    xor dh, dh                                ; 30 f6
    17441825    mov ax, word [bp+004h]                    ; 8b 46 04
    1745     call 017c5h                               ; e8 3a fc
     1826    call 017c5h                               ; e8 38 fb
    17461827    inc word [bp+006h]                        ; ff 46 06
    1747     jmp near 019a0h                           ; e9 0f fe
     1828    jmp near 019a0h                           ; e9 0d fd
    17481829    xor ax, ax                                ; 31 c0
    1749     mov word [bp-012h], ax                    ; 89 46 ee
    1750     mov word [bp-010h], ax                    ; 89 46 f0
     1830    mov word [bp-016h], ax                    ; 89 46 ea
     1831    mov word [bp-014h], ax                    ; 89 46 ec
    17511832    test byte [bp+004h], 001h                 ; f6 46 04 01
    1752     je short 01ba3h                           ; 74 04
     1833    je short 01ca5h                           ; 74 04
    17531834    cli                                       ; fa
    17541835    hlt                                       ; f4
    1755     jmp short 01ba0h                          ; eb fd
     1836    jmp short 01ca2h                          ; eb fd
    17561837    lea sp, [bp-00ah]                         ; 8d 66 f6
    17571838    pop di                                    ; 5f
     
    17621843    pop bp                                    ; 5d
    17631844    retn                                      ; c3
    1764 _ata_init:                                   ; 0xf1bad LB 0xc4
     1845_ata_init:                                   ; 0xf1caf LB 0xcd
    17651846    push bp                                   ; 55
    17661847    mov bp, sp                                ; 89 e5
     
    17681849    mov dx, strict word 0000eh                ; ba 0e 00
    17691850    mov ax, strict word 00040h                ; b8 40 00
    1770     call 0166ch                               ; e8 b2 fa
     1851    call 0166ch                               ; e8 b0 f9
    17711852    mov si, 00122h                            ; be 22 01
    17721853    mov dx, ax                                ; 89 c2
    17731854    xor al, al                                ; 30 c0
    1774     jmp short 01bc7h                          ; eb 04
     1855    jmp short 01cc9h                          ; eb 04
    17751856    cmp AL, strict byte 004h                  ; 3c 04
    1776     jnc short 01bebh                          ; 73 24
     1857    jnc short 01cedh                          ; 73 24
    17771858    movzx bx, al                              ; 0f b6 d8
    17781859    imul bx, bx, strict byte 00006h           ; 6b db 06
    17791860    mov es, dx                                ; 8e c2
    17801861    add bx, si                                ; 01 f3
    1781     mov byte [es:bx+001c0h], 000h             ; 26 c6 87 c0 01 00
    1782     db  066h, 026h, 0c7h, 087h, 0c2h, 001h, 000h, 000h, 000h, 000h
    1783     ; mov dword [es:bx+001c2h], strict dword 000000000h ; 66 26 c7 87 c2 01 00 00 00 00
    1784     mov byte [es:bx+001c1h], 000h             ; 26 c6 87 c1 01 00
     1862    mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
     1863    db  066h, 026h, 0c7h, 087h, 006h, 002h, 000h, 000h, 000h, 000h
     1864    ; mov dword [es:bx+00206h], strict dword 000000000h ; 66 26 c7 87 06 02 00 00 00 00
     1865    mov byte [es:bx+00205h], 000h             ; 26 c6 87 05 02 00
    17851866    db  0feh, 0c0h
    17861867    ; inc al                                    ; fe c0
    1787     jmp short 01bc3h                          ; eb d8
     1868    jmp short 01cc5h                          ; eb d8
    17881869    xor al, al                                ; 30 c0
    1789     jmp short 01bf3h                          ; eb 04
     1870    jmp short 01cf5h                          ; eb 04
    17901871    cmp AL, strict byte 008h                  ; 3c 08
    1791     jnc short 01c3eh                          ; 73 4b
     1872    jnc short 01d49h                          ; 73 54
    17921873    movzx bx, al                              ; 0f b6 d8
    1793     imul bx, bx, strict byte 00018h           ; 6b db 18
     1874    imul bx, bx, strict byte 0001ch           ; 6b db 1c
    17941875    mov es, dx                                ; 8e c2
    17951876    add bx, si                                ; 01 f3
    1796     db  066h, 026h, 0c7h, 047h, 01eh, 000h, 000h, 000h, 000h
    1797     ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
    1798     mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    1799     mov word [es:bx+024h], 00200h             ; 26 c7 47 24 00 02
    1800     mov byte [es:bx+023h], 000h               ; 26 c6 47 23 00
    1801     db  066h, 026h, 0c7h, 047h, 026h, 000h, 000h, 000h, 000h
    1802     ; mov dword [es:bx+026h], strict dword 000000000h ; 66 26 c7 47 26 00 00 00 00
     1877    db  066h, 026h, 0c7h, 047h, 022h, 000h, 000h, 000h, 000h
     1878    ; mov dword [es:bx+022h], strict dword 000000000h ; 66 26 c7 47 22 00 00 00 00
     1879    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
     1880    mov word [es:bx+028h], 00200h             ; 26 c7 47 28 00 02
     1881    mov byte [es:bx+027h], 000h               ; 26 c6 47 27 00
    18031882    db  066h, 026h, 0c7h, 047h, 02ah, 000h, 000h, 000h, 000h
    18041883    ; mov dword [es:bx+02ah], strict dword 000000000h ; 66 26 c7 47 2a 00 00 00 00
     
    18071886    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
    18081887    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
     1888    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
     1889    ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00
     1890    db  066h, 026h, 0c7h, 047h, 036h, 000h, 000h, 000h, 000h
     1891    ; mov dword [es:bx+036h], strict dword 000000000h ; 66 26 c7 47 36 00 00 00 00
    18091892    db  0feh, 0c0h
    18101893    ; inc al                                    ; fe c0
    1811     jmp short 01befh                          ; eb b1
     1894    jmp short 01cf1h                          ; eb a8
    18121895    xor al, al                                ; 30 c0
    1813     jmp short 01c46h                          ; eb 04
     1896    jmp short 01d51h                          ; eb 04
    18141897    cmp AL, strict byte 010h                  ; 3c 10
    1815     jnc short 01c5dh                          ; 73 17
     1898    jnc short 01d68h                          ; 73 17
    18161899    movzx bx, al                              ; 0f b6 d8
    18171900    mov es, dx                                ; 8e c2
    18181901    add bx, si                                ; 01 f3
    1819     mov byte [es:bx+0019fh], 010h             ; 26 c6 87 9f 01 10
    1820     mov byte [es:bx+001b0h], 010h             ; 26 c6 87 b0 01 10
     1902    mov byte [es:bx+001e3h], 010h             ; 26 c6 87 e3 01 10
     1903    mov byte [es:bx+001f4h], 010h             ; 26 c6 87 f4 01 10
    18211904    db  0feh, 0c0h
    18221905    ; inc al                                    ; fe c0
    1823     jmp short 01c42h                          ; eb e5
     1906    jmp short 01d4dh                          ; eb e5
    18241907    mov es, dx                                ; 8e c2
    1825     mov byte [es:si+0019eh], 000h             ; 26 c6 84 9e 01 00
    1826     mov byte [es:si+001afh], 000h             ; 26 c6 84 af 01 00
     1908    mov byte [es:si+001e2h], 000h             ; 26 c6 84 e2 01 00
     1909    mov byte [es:si+001f3h], 000h             ; 26 c6 84 f3 01 00
    18271910    lea sp, [bp-002h]                         ; 8d 66 fe
    18281911    pop si                                    ; 5e
    18291912    pop bp                                    ; 5d
    18301913    retn                                      ; c3
    1831 ata_reset_:                                  ; 0xf1c71 LB 0xde
     1914ata_reset_:                                  ; 0xf1d7c LB 0xde
    18321915    push bp                                   ; 55
    18331916    mov bp, sp                                ; 89 e5
     
    18421925    mov dx, strict word 0000eh                ; ba 0e 00
    18431926    mov ax, strict word 00040h                ; b8 40 00
    1844     call 0166ch                               ; e8 e7 f9
     1927    call 0166ch                               ; e8 dc f8
    18451928    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    18461929    mov di, ax                                ; 89 c7
     
    18541937    mov es, ax                                ; 8e c0
    18551938    add bx, 00122h                            ; 81 c3 22 01
    1856     mov cx, word [es:bx+001c2h]               ; 26 8b 8f c2 01
    1857     mov si, word [es:bx+001c4h]               ; 26 8b b7 c4 01
     1939    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
     1940    mov si, word [es:bx+00208h]               ; 26 8b b7 08 02
    18581941    lea dx, [si+006h]                         ; 8d 54 06
    18591942    mov AL, strict byte 00eh                  ; b0 0e
     
    18621945    dec bx                                    ; 4b
    18631946    test bx, bx                               ; 85 db
    1864     jbe short 01cc9h                          ; 76 0c
     1947    jbe short 01dd4h                          ; 76 0c
    18651948    mov dx, cx                                ; 89 ca
    18661949    add dx, strict byte 00007h                ; 83 c2 07
     
    18691952    ; sub ah, ah                                ; 2a e4
    18701953    test AL, strict byte 080h                 ; a8 80
    1871     je short 01cb8h                           ; 74 ef
     1954    je short 01dc3h                           ; 74 ef
    18721955    lea dx, [si+006h]                         ; 8d 54 06
    18731956    mov AL, strict byte 00ah                  ; b0 0a
    18741957    out DX, AL                                ; ee
    1875     imul bx, word [bp-010h], strict byte 00018h ; 6b 5e f0 18
     1958    imul bx, word [bp-010h], strict byte 0001ch ; 6b 5e f0 1c
    18761959    mov es, di                                ; 8e c7
    18771960    add bx, word [bp-00eh]                    ; 03 5e f2
    1878     cmp byte [es:bx+01eh], 000h               ; 26 80 7f 1e 00
    1879     je short 01d2bh                           ; 74 4c
     1961    cmp byte [es:bx+022h], 000h               ; 26 80 7f 22 00
     1962    je short 01e36h                           ; 74 4c
    18801963    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    1881     je short 01ceah                           ; 74 05
     1964    je short 01df5h                           ; 74 05
    18821965    mov ax, 000b0h                            ; b8 b0 00
    1883     jmp short 01cedh                          ; eb 03
     1966    jmp short 01df8h                          ; eb 03
    18841967    mov ax, 000a0h                            ; b8 a0 00
    18851968    mov dx, cx                                ; 89 ca
     
    18991982    ; sub ah, ah                                ; 2a e4
    19001983    cmp bl, 001h                              ; 80 fb 01
    1901     jne short 01d2bh                          ; 75 22
     1984    jne short 01e36h                          ; 75 22
    19021985    cmp al, bl                                ; 38 d8
    1903     jne short 01d2bh                          ; 75 1e
     1986    jne short 01e36h                          ; 75 1e
    19041987    mov bx, strict word 0ffffh                ; bb ff ff
    19051988    dec bx                                    ; 4b
    19061989    test bx, bx                               ; 85 db
    1907     jbe short 01d2bh                          ; 76 16
     1990    jbe short 01e36h                          ; 76 16
    19081991    mov dx, cx                                ; 89 ca
    19091992    add dx, strict byte 00007h                ; 83 c2 07
     
    19121995    ; sub ah, ah                                ; 2a e4
    19131996    test AL, strict byte 080h                 ; a8 80
    1914     je short 01d2bh                           ; 74 0a
     1997    je short 01e36h                           ; 74 0a
    19151998    mov ax, strict word 0ffffh                ; b8 ff ff
    19161999    dec ax                                    ; 48
    19172000    test ax, ax                               ; 85 c0
    1918     jnbe short 01d24h                         ; 77 fb
    1919     jmp short 01d10h                          ; eb e5
     2001    jnbe short 01e2fh                         ; 77 fb
     2002    jmp short 01e1bh                          ; eb e5
    19202003    mov bx, strict word 00010h                ; bb 10 00
    19212004    dec bx                                    ; 4b
    19222005    test bx, bx                               ; 85 db
    1923     jbe short 01d3fh                          ; 76 0c
     2006    jbe short 01e4ah                          ; 76 0c
    19242007    mov dx, cx                                ; 89 ca
    19252008    add dx, strict byte 00007h                ; 83 c2 07
     
    19282011    ; sub ah, ah                                ; 2a e4
    19292012    test AL, strict byte 040h                 ; a8 40
    1930     je short 01d2eh                           ; 74 ef
     2013    je short 01e39h                           ; 74 ef
    19312014    lea dx, [si+006h]                         ; 8d 54 06
    19322015    mov AL, strict byte 008h                  ; b0 08
     
    19402023    pop bp                                    ; 5d
    19412024    retn                                      ; c3
    1942 ata_cmd_data_in_:                            ; 0xf1d4f LB 0x258
     2025ata_cmd_data_in_:                            ; 0xf1e5a LB 0x2e2
    19432026    push bp                                   ; 55
    19442027    mov bp, sp                                ; 89 e5
    19452028    push si                                   ; 56
    19462029    push di                                   ; 57
    1947     sub sp, strict byte 0001ch                ; 83 ec 1c
    1948     mov si, ax                                ; 89 c6
    1949     mov word [bp-00ah], dx                    ; 89 56 f6
    1950     mov word [bp-016h], bx                    ; 89 5e ea
    1951     mov word [bp-014h], cx                    ; 89 4e ec
     2030    sub sp, strict byte 00012h                ; 83 ec 12
     2031    push ax                                   ; 50
     2032    push dx                                   ; 52
     2033    push bx                                   ; 53
     2034    push cx                                   ; 51
    19522035    mov es, dx                                ; 8e c2
    1953     movzx ax, byte [es:si+008h]               ; 26 0f b6 44 08
    1954     mov dx, ax                                ; 89 c2
    1955     shr dx, 1                                 ; d1 ea
    1956     mov dh, al                                ; 88 c6
    1957     and dh, 001h                              ; 80 e6 01
    1958     mov byte [bp-008h], dh                    ; 88 76 f8
    1959     movzx di, dl                              ; 0f b6 fa
    1960     imul di, di, strict byte 00006h           ; 6b ff 06
    1961     add di, si                                ; 01 f7
    1962     mov bx, word [es:di+001c2h]               ; 26 8b 9d c2 01
    1963     mov dx, word [es:di+001c4h]               ; 26 8b 95 c4 01
    1964     mov word [bp-01ch], dx                    ; 89 56 e4
    1965     imul ax, ax, strict byte 00018h           ; 6b c0 18
    1966     mov di, si                                ; 89 f7
     2036    mov bx, ax                                ; 89 c3
     2037    mov al, byte [es:bx+00ch]                 ; 26 8a 47 0c
     2038    mov byte [bp-00ah], al                    ; 88 46 f6
     2039    movzx bx, al                              ; 0f b6 d8
     2040    mov ax, bx                                ; 89 d8
     2041    cwd                                       ; 99
     2042    db  02bh, 0c2h
     2043    ; sub ax, dx                                ; 2b c2
     2044    sar ax, 1                                 ; d1 f8
     2045    imul ax, ax, strict byte 00006h           ; 6b c0 06
     2046    mov di, word [bp-018h]                    ; 8b 7e e8
    19672047    add di, ax                                ; 01 c7
    1968     mov al, byte [es:di+022h]                 ; 26 8a 45 22
    1969     mov byte [bp-006h], al                    ; 88 46 fa
    1970     mov ax, word [es:di+024h]                 ; 26 8b 45 24
     2048    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
    19712049    mov word [bp-00ch], ax                    ; 89 46 f4
     2050    mov ax, word [es:di+00208h]               ; 26 8b 85 08 02
     2051    mov word [bp-010h], ax                    ; 89 46 f0
     2052    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     2053    mov di, word [bp-018h]                    ; 8b 7e e8
     2054    add di, bx                                ; 01 df
     2055    mov al, byte [es:di+026h]                 ; 26 8a 45 26
     2056    mov byte [bp-008h], al                    ; 88 46 f8
     2057    mov ax, word [es:di+028h]                 ; 26 8b 45 28
     2058    mov word [bp-00eh], ax                    ; 89 46 f2
    19722059    test ax, ax                               ; 85 c0
    1973     jne short 01db7h                          ; 75 14
    1974     cmp byte [bp-006h], 001h                  ; 80 7e fa 01
    1975     jne short 01db0h                          ; 75 07
    1976     mov word [bp-00ch], 04000h                ; c7 46 f4 00 40
    1977     jmp short 01dc6h                          ; eb 16
    1978     mov word [bp-00ch], 08000h                ; c7 46 f4 00 80
    1979     jmp short 01dc6h                          ; eb 0f
    1980     cmp byte [bp-006h], 001h                  ; 80 7e fa 01
    1981     jne short 01dc3h                          ; 75 06
    1982     shr word [bp-00ch], 002h                  ; c1 6e f4 02
    1983     jmp short 01dc6h                          ; eb 03
    1984     shr word [bp-00ch], 1                     ; d1 6e f4
    1985     lea dx, [bx+007h]                         ; 8d 57 07
     2060    jne short 01ec1h                          ; 75 14
     2061    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
     2062    jne short 01ebah                          ; 75 07
     2063    mov word [bp-00eh], 04000h                ; c7 46 f2 00 40
     2064    jmp short 01ed0h                          ; eb 16
     2065    mov word [bp-00eh], 08000h                ; c7 46 f2 00 80
     2066    jmp short 01ed0h                          ; eb 0f
     2067    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
     2068    jne short 01ecdh                          ; 75 06
     2069    shr word [bp-00eh], 002h                  ; c1 6e f2 02
     2070    jmp short 01ed0h                          ; eb 03
     2071    shr word [bp-00eh], 1                     ; d1 6e f2
     2072    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2073    add dx, strict byte 00007h                ; 83 c2 07
    19862074    in AL, DX                                 ; ec
    19872075    db  02ah, 0e4h
    19882076    ; sub ah, ah                                ; 2a e4
    19892077    test AL, strict byte 080h                 ; a8 80
    1990     je short 01ddfh                           ; 74 0f
    1991     mov dx, word [bp-01ch]                    ; 8b 56 e4
     2078    je short 01eech                           ; 74 0f
     2079    mov dx, word [bp-010h]                    ; 8b 56 f0
    19922080    add dx, strict byte 00006h                ; 83 c2 06
    19932081    mov AL, strict byte 008h                  ; b0 08
    19942082    out DX, AL                                ; ee
    19952083    mov dx, strict word 00001h                ; ba 01 00
    1996     jmp near 01f9eh                           ; e9 bf 01
    1997     mov es, [bp-00ah]                         ; 8e 46 f6
    1998     mov ax, word [es:si]                      ; 26 8b 04
    1999     mov word [bp-020h], ax                    ; 89 46 e0
    2000     mov ax, word [es:si+002h]                 ; 26 8b 44 02
    2001     mov word [bp-01eh], ax                    ; 89 46 e2
    2002     mov di, word [es:si+004h]                 ; 26 8b 7c 04
     2084    jmp near 02133h                           ; e9 47 02
     2085    mov es, [bp-01ah]                         ; 8e 46 e6
     2086    mov di, word [bp-018h]                    ; 8b 7e e8
     2087    mov di, word [es:di+008h]                 ; 26 8b 7d 08
     2088    mov bx, word [bp-018h]                    ; 8b 5e e8
     2089    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
     2090    mov word [bp-012h], ax                    ; 89 46 ee
     2091    mov al, byte [es:bx+016h]                 ; 26 8a 47 16
     2092    mov byte [bp-006h], al                    ; 88 46 fa
     2093    mov ax, word [es:bx+012h]                 ; 26 8b 47 12
     2094    mov word [bp-014h], ax                    ; 89 46 ec
     2095    mov bl, byte [es:bx+014h]                 ; 26 8a 5f 14
     2096    mov al, byte [bp-006h]                    ; 8a 46 fa
     2097    test al, al                               ; 84 c0
     2098    jne near 01ffeh                           ; 0f 85 e3 00
     2099    xor bx, bx                                ; 31 db
     2100    xor dx, dx                                ; 31 d2
     2101    xor ah, ah                                ; 30 e4
     2102    mov word [bp-016h], ax                    ; 89 46 ea
     2103    mov si, word [bp-018h]                    ; 8b 76 e8
     2104    mov cx, word [es:si]                      ; 26 8b 0c
     2105    add cx, word [bp-01eh]                    ; 03 4e e2
     2106    adc bx, word [es:si+002h]                 ; 26 13 5c 02
     2107    adc dx, word [es:si+004h]                 ; 26 13 54 04
    20032108    mov ax, word [es:si+006h]                 ; 26 8b 44 06
    2004     mov word [bp-00eh], ax                    ; 89 46 f2
    2005     mov ax, word [es:si+012h]                 ; 26 8b 44 12
    2006     mov word [bp-010h], ax                    ; 89 46 f0
    2007     mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
    2008     mov word [bp-012h], ax                    ; 89 46 ee
    2009     mov ax, word [es:si+010h]                 ; 26 8b 44 10
    2010     mov word [bp-018h], ax                    ; 89 46 e8
    2011     mov ax, word [bp-010h]                    ; 8b 46 f0
     2109    adc ax, word [bp-016h]                    ; 13 46 ea
    20122110    test ax, ax                               ; 85 c0
    2013     jne short 01e7dh                          ; 75 67
    2014     mov dx, word [bp-020h]                    ; 8b 56 e0
    2015     add dx, word [bp-014h]                    ; 03 56 ec
    2016     adc ax, word [bp-01eh]                    ; 13 46 e2
    2017     cmp ax, 01000h                            ; 3d 00 10
    2018     jnbe short 01e26h                         ; 77 02
    2019     jne short 01e51h                          ; 75 2b
     2111    jnbe short 01f50h                         ; 77 10
     2112    jne short 01fb4h                          ; 75 72
     2113    test dx, dx                               ; 85 d2
     2114    jnbe short 01f50h                         ; 77 0a
     2115    jne short 01fb4h                          ; 75 6c
     2116    cmp bx, 01000h                            ; 81 fb 00 10
     2117    jnbe short 01f50h                         ; 77 02
     2118    jne short 01fb4h                          ; 75 64
     2119    mov bx, si                                ; 89 f3
     2120    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     2121    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     2122    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     2123    mov dx, word [es:si]                      ; 26 8b 14
     2124    mov si, strict word 00018h                ; be 18 00
     2125    call 09d5ah                               ; e8 f3 7d
     2126    xor dh, dh                                ; 30 f6
     2127    mov word [bp-016h], dx                    ; 89 56 ea
     2128    mov bx, word [bp-018h]                    ; 8b 5e e8
     2129    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     2130    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     2131    mov si, word [bp-018h]                    ; 8b 76 e8
     2132    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     2133    mov dx, word [es:si]                      ; 26 8b 14
     2134    mov si, strict word 00020h                ; be 20 00
     2135    call 09d5ah                               ; e8 d3 7d
     2136    mov bx, dx                                ; 89 d3
    20202137    mov ax, word [bp-01eh]                    ; 8b 46 e2
    20212138    xor al, al                                ; 30 c0
    20222139    shr ax, 008h                              ; c1 e8 08
    2023     mov word [bp-010h], ax                    ; 89 46 f0
    2024     mov ax, word [bp-014h]                    ; 8b 46 ec
    2025     xor al, al                                ; 30 c0
     2140    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2141    inc dx                                    ; 42
     2142    inc dx                                    ; 42
     2143    out DX, AL                                ; ee
     2144    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2145    add dx, strict byte 00003h                ; 83 c2 03
     2146    mov al, byte [bp-016h]                    ; 8a 46 ea
     2147    out DX, AL                                ; ee
     2148    mov ax, bx                                ; 89 d8
     2149    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2150    add dx, strict byte 00004h                ; 83 c2 04
     2151    out DX, AL                                ; ee
    20262152    shr ax, 008h                              ; c1 e8 08
    2027     lea dx, [bx+002h]                         ; 8d 57 02
    2028     out DX, AL                                ; ee
    2029     lea dx, [bx+003h]                         ; 8d 57 03
    2030     mov al, byte [bp-010h]                    ; 8a 46 f0
    2031     out DX, AL                                ; ee
    2032     lea dx, [bx+004h]                         ; 8d 57 04
    2033     xor al, al                                ; 30 c0
    2034     out DX, AL                                ; ee
    2035     lea dx, [bx+005h]                         ; 8d 57 05
    2036     out DX, AL                                ; ee
    2037     mov byte [bp-01dh], al                    ; 88 46 e3
    2038     mov ax, word [bp-020h]                    ; 8b 46 e0
    2039     xor ah, ah                                ; 30 e4
    2040     mov word [bp-010h], ax                    ; 89 46 f0
    2041     mov cx, strict word 00008h                ; b9 08 00
    2042     shr word [bp-01eh], 1                     ; d1 6e e2
    2043     rcr word [bp-020h], 1                     ; d1 5e e0
    2044     loop 01e5ch                               ; e2 f8
    2045     mov ax, word [bp-020h]                    ; 8b 46 e0
    2046     mov word [bp-012h], ax                    ; 89 46 ee
    2047     mov ax, word [bp-01eh]                    ; 8b 46 e2
    2048     mov word [bp-020h], ax                    ; 89 46 e0
    2049     mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    2050     and ax, strict word 0000fh                ; 25 0f 00
    2051     or AL, strict byte 040h                   ; 0c 40
    2052     mov word [bp-018h], ax                    ; 89 46 e8
    2053     mov dx, word [bp-01ch]                    ; 8b 56 e4
     2153    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2154    add dx, strict byte 00005h                ; 83 c2 05
     2155    out DX, AL                                ; ee
     2156    mov es, [bp-01ah]                         ; 8e 46 e6
     2157    mov bx, word [bp-018h]                    ; 8b 5e e8
     2158    mov ax, word [es:bx]                      ; 26 8b 07
     2159    mov byte [bp-006h], al                    ; 88 46 fa
     2160    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     2161    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     2162    mov si, word [bp-018h]                    ; 8b 76 e8
     2163    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     2164    mov dx, word [es:si]                      ; 26 8b 14
     2165    mov si, strict word 00008h                ; be 08 00
     2166    call 09d5ah                               ; e8 82 7d
     2167    mov word [bp-014h], dx                    ; 89 56 ec
     2168    mov bx, word [bp-018h]                    ; 8b 5e e8
     2169    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     2170    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     2171    mov si, word [bp-018h]                    ; 8b 76 e8
     2172    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     2173    mov dx, word [es:si]                      ; 26 8b 14
     2174    mov si, strict word 00018h                ; be 18 00
     2175    call 09d5ah                               ; e8 64 7d
     2176    and dx, strict byte 0000fh                ; 83 e2 0f
     2177    or dl, 040h                               ; 80 ca 40
     2178    mov bx, dx                                ; 89 d3
     2179    mov dx, word [bp-010h]                    ; 8b 56 f0
    20542180    add dx, strict byte 00006h                ; 83 c2 06
    20552181    mov AL, strict byte 00ah                  ; b0 0a
    20562182    out DX, AL                                ; ee
    2057     lea dx, [bx+001h]                         ; 8d 57 01
     2183    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2184    inc dx                                    ; 42
    20582185    xor al, al                                ; 30 c0
    20592186    out DX, AL                                ; ee
    2060     lea dx, [bx+002h]                         ; 8d 57 02
    2061     mov al, byte [bp-014h]                    ; 8a 46 ec
    2062     out DX, AL                                ; ee
    2063     lea dx, [bx+003h]                         ; 8d 57 03
    2064     mov al, byte [bp-010h]                    ; 8a 46 f0
    2065     out DX, AL                                ; ee
    2066     mov ax, word [bp-012h]                    ; 8b 46 ee
    2067     lea dx, [bx+004h]                         ; 8d 57 04
     2187    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2188    inc dx                                    ; 42
     2189    inc dx                                    ; 42
     2190    mov al, byte [bp-01eh]                    ; 8a 46 e2
     2191    out DX, AL                                ; ee
     2192    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2193    add dx, strict byte 00003h                ; 83 c2 03
     2194    mov al, byte [bp-006h]                    ; 8a 46 fa
     2195    out DX, AL                                ; ee
     2196    mov ax, word [bp-014h]                    ; 8b 46 ec
     2197    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2198    add dx, strict byte 00004h                ; 83 c2 04
    20682199    out DX, AL                                ; ee
    20692200    shr ax, 008h                              ; c1 e8 08
    2070     lea dx, [bx+005h]                         ; 8d 57 05
    2071     out DX, AL                                ; ee
    2072     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2073     je short 01eb3h                           ; 74 05
     2201    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2202    add dx, strict byte 00005h                ; 83 c2 05
     2203    out DX, AL                                ; ee
     2204    test byte [bp-00ah], 001h                 ; f6 46 f6 01
     2205    je short 02040h                           ; 74 05
    20742206    mov ax, 000b0h                            ; b8 b0 00
    2075     jmp short 01eb6h                          ; eb 03
     2207    jmp short 02043h                          ; eb 03
    20762208    mov ax, 000a0h                            ; b8 a0 00
    2077     movzx dx, byte [bp-018h]                  ; 0f b6 56 e8
     2209    movzx dx, bl                              ; 0f b6 d3
    20782210    or ax, dx                                 ; 09 d0
    2079     lea dx, [bx+006h]                         ; 8d 57 06
    2080     out DX, AL                                ; ee
    2081     lea dx, [bx+007h]                         ; 8d 57 07
    2082     mov al, byte [bp-016h]                    ; 8a 46 ea
    2083     out DX, AL                                ; ee
    2084     mov ax, word [bp-016h]                    ; 8b 46 ea
     2211    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2212    add dx, strict byte 00006h                ; 83 c2 06
     2213    out DX, AL                                ; ee
     2214    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2215    add dx, strict byte 00007h                ; 83 c2 07
     2216    mov al, byte [bp-01ch]                    ; 8a 46 e4
     2217    out DX, AL                                ; ee
     2218    mov ax, word [bp-01ch]                    ; 8b 46 e4
    20852219    cmp ax, 000c4h                            ; 3d c4 00
    2086     je short 01ed4h                           ; 74 05
     2220    je short 02066h                           ; 74 05
    20872221    cmp ax, strict word 00029h                ; 3d 29 00
    2088     jne short 01ee1h                          ; 75 0d
    2089     mov ax, word [bp-014h]                    ; 8b 46 ec
    2090     mov word [bp-01ah], ax                    ; 89 46 e6
    2091     mov word [bp-014h], strict word 00001h    ; c7 46 ec 01 00
    2092     jmp short 01ee6h                          ; eb 05
    2093     mov word [bp-01ah], strict word 00001h    ; c7 46 e6 01 00
    2094     lea dx, [bx+007h]                         ; 8d 57 07
     2222    jne short 02070h                          ; 75 0a
     2223    mov bx, word [bp-01eh]                    ; 8b 5e e2
     2224    mov word [bp-01eh], strict word 00001h    ; c7 46 e2 01 00
     2225    jmp short 02073h                          ; eb 03
     2226    mov bx, strict word 00001h                ; bb 01 00
     2227    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2228    add dx, strict byte 00007h                ; 83 c2 07
    20952229    in AL, DX                                 ; ec
    20962230    db  02ah, 0e4h
     
    20982232    mov dl, al                                ; 88 c2
    20992233    test AL, strict byte 080h                 ; a8 80
    2100     jne short 01ee6h                          ; 75 f4
     2234    jne short 02073h                          ; 75 f1
    21012235    test AL, strict byte 001h                 ; a8 01
    2102     je short 01f05h                           ; 74 0f
    2103     mov dx, word [bp-01ch]                    ; 8b 56 e4
     2236    je short 02095h                           ; 74 0f
     2237    mov dx, word [bp-010h]                    ; 8b 56 f0
    21042238    add dx, strict byte 00006h                ; 83 c2 06
    21052239    mov AL, strict byte 008h                  ; b0 08
    21062240    out DX, AL                                ; ee
    21072241    mov dx, strict word 00002h                ; ba 02 00
    2108     jmp near 01f9eh                           ; e9 99 00
     2242    jmp near 02133h                           ; e9 9e 00
    21092243    test dl, 008h                             ; f6 c2 08
    2110     jne short 01f19h                          ; 75 0f
    2111     mov dx, word [bp-01ch]                    ; 8b 56 e4
     2244    jne short 020a9h                          ; 75 0f
     2245    mov dx, word [bp-010h]                    ; 8b 56 f0
    21122246    add dx, strict byte 00006h                ; 83 c2 06
    21132247    mov AL, strict byte 008h                  ; b0 08
    21142248    out DX, AL                                ; ee
    21152249    mov dx, strict word 00003h                ; ba 03 00
    2116     jmp near 01f9eh                           ; e9 85 00
     2250    jmp near 02133h                           ; e9 8a 00
    21172251    sti                                       ; fb
    21182252    cmp di, 0f800h                            ; 81 ff 00 f8
    2119     jc short 01f2dh                           ; 72 0d
     2253    jc short 020bdh                           ; 72 0d
    21202254    sub di, 00800h                            ; 81 ef 00 08
    2121     mov ax, word [bp-00eh]                    ; 8b 46 f2
     2255    mov ax, word [bp-012h]                    ; 8b 46 ee
    21222256    add ax, 00080h                            ; 05 80 00
    2123     mov word [bp-00eh], ax                    ; 89 46 f2
    2124     cmp byte [bp-006h], 001h                  ; 80 7e fa 01
    2125     jne short 01f40h                          ; 75 0d
    2126     mov dx, bx                                ; 89 da
    2127     mov cx, word [bp-00ch]                    ; 8b 4e f4
    2128     mov es, [bp-00eh]                         ; 8e 46 f2
     2257    mov word [bp-012h], ax                    ; 89 46 ee
     2258    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
     2259    jne short 020d1h                          ; 75 0e
     2260    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2261    mov cx, word [bp-00eh]                    ; 8b 4e f2
     2262    mov es, [bp-012h]                         ; 8e 46 ee
    21292263    db  0f3h, 066h, 06dh
    21302264    ; rep insd                                  ; f3 66 6d
    2131     jmp short 01f4ah                          ; eb 0a
    2132     mov dx, bx                                ; 89 da
    2133     mov cx, word [bp-00ch]                    ; 8b 4e f4
    2134     mov es, [bp-00eh]                         ; 8e 46 f2
     2265    jmp short 020dch                          ; eb 0b
     2266    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2267    mov cx, word [bp-00eh]                    ; 8b 4e f2
     2268    mov es, [bp-012h]                         ; 8e 46 ee
    21352269    rep insw                                  ; f3 6d
    2136     mov ax, word [bp-01ah]                    ; 8b 46 e6
    2137     mov es, [bp-00ah]                         ; 8e 46 f6
    2138     add word [es:si+014h], ax                 ; 26 01 44 14
    2139     dec word [bp-014h]                        ; ff 4e ec
    2140     lea dx, [bx+007h]                         ; 8d 57 07
     2270    mov es, [bp-01ah]                         ; 8e 46 e6
     2271    mov si, word [bp-018h]                    ; 8b 76 e8
     2272    add word [es:si+018h], bx                 ; 26 01 5c 18
     2273    dec word [bp-01eh]                        ; ff 4e e2
     2274    mov dx, word [bp-00ch]                    ; 8b 56 f4
     2275    add dx, strict byte 00007h                ; 83 c2 07
    21412276    in AL, DX                                 ; ec
    21422277    db  02ah, 0e4h
     
    21442279    mov dl, al                                ; 88 c2
    21452280    test AL, strict byte 080h                 ; a8 80
    2146     jne short 01f57h                          ; 75 f4
    2147     cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    2148     jne short 01f7dh                          ; 75 14
     2281    jne short 020e9h                          ; 75 f1
     2282    cmp word [bp-01eh], strict byte 00000h    ; 83 7e e2 00
     2283    jne short 02112h                          ; 75 14
    21492284    and AL, strict byte 0c9h                  ; 24 c9
    21502285    cmp AL, strict byte 040h                  ; 3c 40
    2151     je short 01f93h                           ; 74 24
    2152     mov dx, word [bp-01ch]                    ; 8b 56 e4
     2286    je short 02128h                           ; 74 24
     2287    mov dx, word [bp-010h]                    ; 8b 56 f0
    21532288    add dx, strict byte 00006h                ; 83 c2 06
    21542289    mov AL, strict byte 008h                  ; b0 08
    21552290    out DX, AL                                ; ee
    21562291    mov dx, strict word 00004h                ; ba 04 00
    2157     jmp short 01f9eh                          ; eb 21
     2292    jmp short 02133h                          ; eb 21
    21582293    mov al, dl                                ; 88 d0
    21592294    and AL, strict byte 0c9h                  ; 24 c9
    21602295    cmp AL, strict byte 048h                  ; 3c 48
    2161     je short 01f1ah                           ; 74 95
    2162     mov dx, word [bp-01ch]                    ; 8b 56 e4
     2296    je short 020aah                           ; 74 90
     2297    mov dx, word [bp-010h]                    ; 8b 56 f0
    21632298    add dx, strict byte 00006h                ; 83 c2 06
    21642299    mov AL, strict byte 008h                  ; b0 08
    21652300    out DX, AL                                ; ee
    21662301    mov dx, strict word 00005h                ; ba 05 00
    2167     jmp short 01f9eh                          ; eb 0b
    2168     mov dx, word [bp-01ch]                    ; 8b 56 e4
     2302    jmp short 02133h                          ; eb 0b
     2303    mov dx, word [bp-010h]                    ; 8b 56 f0
    21692304    add dx, strict byte 00006h                ; 83 c2 06
    21702305    mov AL, strict byte 008h                  ; b0 08
     
    21772312    pop bp                                    ; 5d
    21782313    retn                                      ; c3
    2179 _ata_detect:                                 ; 0xf1fa7 LB 0x617
     2314_ata_detect:                                 ; 0xf213c LB 0x65c
    21802315    push bp                                   ; 55
    21812316    mov bp, sp                                ; 89 e5
    21822317    push si                                   ; 56
    21832318    push di                                   ; 57
    2184     sub sp, 0025ch                            ; 81 ec 5c 02
     2319    sub sp, 00260h                            ; 81 ec 60 02
    21852320    mov dx, strict word 0000eh                ; ba 0e 00
    21862321    mov ax, strict word 00040h                ; b8 40 00
    2187     call 0166ch                               ; e8 b3 f6
    2188     mov word [bp-024h], ax                    ; 89 46 dc
     2322    call 0166ch                               ; e8 1e f5
     2323    mov word [bp-020h], ax                    ; 89 46 e0
    21892324    mov di, 00122h                            ; bf 22 01
    21902325    mov es, ax                                ; 8e c0
    2191     mov word [bp-028h], di                    ; 89 7e d8
    2192     mov word [bp-026h], ax                    ; 89 46 da
    2193     mov byte [es:di+001c0h], 000h             ; 26 c6 85 c0 01 00
    2194     db  066h, 026h, 0c7h, 085h, 0c2h, 001h, 0f0h, 001h, 0f0h, 003h
    2195     ; mov dword [es:di+001c2h], strict dword 003f001f0h ; 66 26 c7 85 c2 01 f0 01 f0 03
    2196     mov byte [es:di+001c1h], 00eh             ; 26 c6 85 c1 01 0e
    2197     mov byte [es:di+001c6h], 000h             ; 26 c6 85 c6 01 00
    2198     db  066h, 026h, 0c7h, 085h, 0c8h, 001h, 070h, 001h, 070h, 003h
    2199     ; mov dword [es:di+001c8h], strict dword 003700170h ; 66 26 c7 85 c8 01 70 01 70 03
    2200     mov byte [es:di+001c7h], 00fh             ; 26 c6 85 c7 01 0f
     2326    mov word [bp-022h], di                    ; 89 7e de
     2327    mov word [bp-034h], ax                    ; 89 46 cc
     2328    mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
     2329    db  066h, 026h, 0c7h, 085h, 006h, 002h, 0f0h, 001h, 0f0h, 003h
     2330    ; mov dword [es:di+00206h], strict dword 003f001f0h ; 66 26 c7 85 06 02 f0 01 f0 03
     2331    mov byte [es:di+00205h], 00eh             ; 26 c6 85 05 02 0e
     2332    mov byte [es:di+0020ah], 000h             ; 26 c6 85 0a 02 00
     2333    db  066h, 026h, 0c7h, 085h, 00ch, 002h, 070h, 001h, 070h, 003h
     2334    ; mov dword [es:di+0020ch], strict dword 003700170h ; 66 26 c7 85 0c 02 70 01 70 03
     2335    mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
    22012336    xor al, al                                ; 30 c0
    2202     mov byte [bp-00ah], al                    ; 88 46 f6
    22032337    mov byte [bp-006h], al                    ; 88 46 fa
    2204     mov byte [bp-00eh], al                    ; 88 46 f2
    2205     jmp near 02549h                           ; e9 48 05
     2338    mov byte [bp-010h], al                    ; 88 46 f0
     2339    mov byte [bp-016h], al                    ; 88 46 ea
     2340    jmp near 0271ch                           ; e9 86 05
    22062341    mov ax, 000a0h                            ; b8 a0 00
    22072342    lea dx, [si+006h]                         ; 8d 54 06
     
    22352370    ; sub ah, ah                                ; 2a e4
    22362371    cmp cl, 055h                              ; 80 f9 55
    2237     jne near 020fbh                           ; 0f 85 c0 00
     2372    jne near 0229ah                           ; 0f 85 ca 00
    22382373    cmp AL, strict byte 0aah                  ; 3c aa
    2239     jne near 020fbh                           ; 0f 85 ba 00
    2240     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2241     imul ax, ax, strict byte 00018h           ; 6b c0 18
    2242     les bx, [bp-028h]                         ; c4 5e d8
     2374    jne near 0229ah                           ; 0f 85 c4 00
     2375    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2376    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2377    mov es, [bp-034h]                         ; 8e 46 cc
     2378    mov bx, word [bp-022h]                    ; 8b 5e de
    22432379    add bx, ax                                ; 01 c3
    2244     mov byte [es:bx+01eh], 001h               ; 26 c6 47 1e 01
    2245     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2246     call 01c71h                               ; e8 18 fc
    2247     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2248     je short 02064h                           ; 74 05
     2380    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
     2381    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2382    call 01d7ch                               ; e8 8b fb
     2383    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     2384    je short 021fch                           ; 74 05
    22492385    mov ax, 000b0h                            ; b8 b0 00
    2250     jmp short 02067h                          ; eb 03
     2386    jmp short 021ffh                          ; eb 03
    22512387    mov ax, 000a0h                            ; b8 a0 00
    22522388    lea dx, [si+006h]                         ; 8d 54 06
     
    22622398    ; sub ah, ah                                ; 2a e4
    22632399    cmp bl, 001h                              ; 80 fb 01
    2264     jne near 020fbh                           ; 0f 85 7b 00
     2400    jne near 0229ah                           ; 0f 85 82 00
    22652401    cmp al, bl                                ; 38 d8
    2266     jne near 020fbh                           ; 0f 85 75 00
     2402    jne near 0229ah                           ; 0f 85 7c 00
    22672403    lea dx, [si+004h]                         ; 8d 54 04
    22682404    in AL, DX                                 ; ec
     
    22702406    ; sub ah, ah                                ; 2a e4
    22712407    mov bx, ax                                ; 89 c3
    2272     mov bh, al                                ; 88 c7
     2408    mov byte [bp-018h], al                    ; 88 46 e8
    22732409    lea dx, [si+005h]                         ; 8d 54 05
    22742410    in AL, DX                                 ; ec
     
    22762412    ; sub ah, ah                                ; 2a e4
    22772413    mov cx, ax                                ; 89 c1
    2278     mov byte [bp-00ch], al                    ; 88 46 f4
     2414    mov bh, al                                ; 88 c7
    22792415    lea dx, [si+007h]                         ; 8d 54 07
    22802416    in AL, DX                                 ; ec
     
    22822418    ; sub ah, ah                                ; 2a e4
    22832419    cmp bl, 014h                              ; 80 fb 14
    2284     jne short 020beh                          ; 75 18
     2420    jne short 02259h                          ; 75 1b
    22852421    cmp cl, 0ebh                              ; 80 f9 eb
    2286     jne short 020beh                          ; 75 13
    2287     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2288     imul ax, ax, strict byte 00018h           ; 6b c0 18
    2289     les bx, [bp-028h]                         ; c4 5e d8
     2422    jne short 02259h                          ; 75 16
     2423    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2424    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2425    mov es, [bp-034h]                         ; 8e 46 cc
     2426    mov bx, word [bp-022h]                    ; 8b 5e de
    22902427    add bx, ax                                ; 01 c3
    2291     mov byte [es:bx+01eh], 003h               ; 26 c6 47 1e 03
    2292     jmp short 020fbh                          ; eb 3d
     2428    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
     2429    jmp short 0229ah                          ; eb 41
     2430    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
     2431    jne short 0227bh                          ; 75 1c
    22932432    test bh, bh                               ; 84 ff
    2294     jne short 020e0h                          ; 75 1e
    2295     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    2296     jne short 020e0h                          ; 75 18
     2433    jne short 0227bh                          ; 75 18
    22972434    test al, al                               ; 84 c0
    2298     je short 020e0h                           ; 74 14
    2299     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    2300     imul bx, bx, strict byte 00018h           ; 6b db 18
    2301     mov es, [bp-026h]                         ; 8e 46 da
    2302     add bx, word [bp-028h]                    ; 03 5e d8
    2303     mov byte [es:bx+01eh], 002h               ; 26 c6 47 1e 02
    2304     jmp short 020fbh                          ; eb 1b
    2305     cmp bh, 0ffh                              ; 80 ff ff
    2306     jne short 020fbh                          ; 75 16
    2307     cmp bh, byte [bp-00ch]                    ; 3a 7e f4
    2308     jne short 020fbh                          ; 75 11
    2309     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2310     imul ax, ax, strict byte 00018h           ; 6b c0 18
    2311     les bx, [bp-028h]                         ; c4 5e d8
     2435    je short 0227bh                           ; 74 14
     2436    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
     2437    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     2438    mov es, [bp-034h]                         ; 8e 46 cc
     2439    add bx, word [bp-022h]                    ; 03 5e de
     2440    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
     2441    jmp short 0229ah                          ; eb 1f
     2442    mov al, byte [bp-018h]                    ; 8a 46 e8
     2443    cmp AL, strict byte 0ffh                  ; 3c ff
     2444    jne short 0229ah                          ; 75 18
     2445    cmp bh, al                                ; 38 c7
     2446    jne short 0229ah                          ; 75 14
     2447    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2448    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2449    mov es, [bp-034h]                         ; 8e 46 cc
     2450    mov bx, word [bp-022h]                    ; 8b 5e de
    23122451    add bx, ax                                ; 01 c3
    2313     mov byte [es:bx+01eh], 000h               ; 26 c6 47 1e 00
    2314     mov dx, word [bp-02ch]                    ; 8b 56 d4
     2452    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
     2453    mov dx, word [bp-024h]                    ; 8b 56 dc
    23152454    add dx, strict byte 00006h                ; 83 c2 06
    23162455    mov AL, strict byte 008h                  ; b0 08
    23172456    out DX, AL                                ; ee
    2318     movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    2319     imul si, si, strict byte 00018h           ; 6b f6 18
    2320     mov es, [bp-026h]                         ; 8e 46 da
    2321     add si, word [bp-028h]                    ; 03 76 d8
    2322     mov al, byte [es:si+01eh]                 ; 26 8a 44 1e
    2323     mov byte [bp-010h], al                    ; 88 46 f0
     2457    movzx si, byte [bp-016h]                  ; 0f b6 76 ea
     2458    imul si, si, strict byte 0001ch           ; 6b f6 1c
     2459    mov es, [bp-034h]                         ; 8e 46 cc
     2460    add si, word [bp-022h]                    ; 03 76 de
     2461    mov al, byte [es:si+022h]                 ; 26 8a 44 22
     2462    mov byte [bp-00ah], al                    ; 88 46 f6
    23242463    cmp AL, strict byte 002h                  ; 3c 02
    2325     jne near 02321h                           ; 0f 85 03 02
    2326     mov byte [es:si+01fh], 0ffh               ; 26 c6 44 1f ff
    2327     mov byte [es:si+022h], 000h               ; 26 c6 44 22 00
    2328     lea dx, [bp-00260h]                       ; 8d 96 a0 fd
    2329     mov bx, word [bp-028h]                    ; 8b 5e d8
    2330     mov word [es:bx+004h], dx                 ; 26 89 57 04
    2331     mov [es:bx+006h], ss                      ; 26 8c 57 06
    2332     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2333     mov byte [es:bx+008h], al                 ; 26 88 47 08
     2464    jne near 024e9h                           ; 0f 85 2c 02
     2465    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
     2466    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
     2467    lea dx, [bp-00264h]                       ; 8d 96 9c fd
     2468    mov bx, word [bp-022h]                    ; 8b 5e de
     2469    mov word [es:bx+008h], dx                 ; 26 89 57 08
     2470    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
     2471    mov al, byte [bp-016h]                    ; 8a 46 ea
     2472    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    23342473    mov cx, strict word 00001h                ; b9 01 00
    23352474    mov bx, 000ech                            ; bb ec 00
    2336     mov ax, word [bp-028h]                    ; 8b 46 d8
     2475    mov ax, word [bp-022h]                    ; 8b 46 de
    23372476    mov dx, es                                ; 8c c2
    2338     call 01d4fh                               ; e8 03 fc
     2477    call 01e5ah                               ; e8 6f fb
    23392478    test ax, ax                               ; 85 c0
    2340     je short 0215bh                           ; 74 0b
    2341     push 00104h                               ; 68 04 01
     2479    je short 022fah                           ; 74 0b
     2480    push 00124h                               ; 68 24 01
    23422481    push strict byte 00007h                   ; 6a 07
    2343     call 01972h                               ; e8 1a f8
     2482    call 01972h                               ; e8 7b f6
    23442483    add sp, strict byte 00004h                ; 83 c4 04
    2345     test byte [bp-00260h], 080h               ; f6 86 a0 fd 80
     2484    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
    23462485    db  00fh, 095h, 0c0h
    23472486    ; setne al                                  ; 0f 95 c0
    23482487    xor ah, ah                                ; 30 e4
    23492488    mov byte [bp-014h], al                    ; 88 46 ec
    2350     cmp byte [bp-00200h], 000h                ; 80 be 00 fe 00
     2489    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
    23512490    db  00fh, 095h, 0c0h
    23522491    ; setne al                                  ; 0f 95 c0
    23532492    xor ah, ah                                ; 30 e4
    2354     mov byte [bp-016h], al                    ; 88 46 ea
    2355     mov word [bp-022h], 00200h                ; c7 46 de 00 02
     2493    mov byte [bp-012h], al                    ; 88 46 ee
     2494    mov word [bp-02ah], 00200h                ; c7 46 d6 00 02
     2495    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
     2496    mov word [bp-026h], ax                    ; 89 46 da
    23562497    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
     2498    mov word [bp-01ch], ax                    ; 89 46 e4
     2499    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
    23572500    mov word [bp-01ah], ax                    ; 89 46 e6
    2358     mov ax, word [bp-0025ah]                  ; 8b 86 a6 fd
    2359     mov word [bp-01ch], ax                    ; 89 46 e4
    2360     mov ax, word [bp-00254h]                  ; 8b 86 ac fd
     2501    mov si, word [bp-001ech]                  ; 8b b6 14 fe
     2502    mov ax, word [bp-001eah]                  ; 8b 86 16 fe
     2503    mov word [bp-02ch], ax                    ; 89 46 d4
     2504    xor ax, ax                                ; 31 c0
     2505    mov word [bp-028h], ax                    ; 89 46 d8
    23612506    mov word [bp-01eh], ax                    ; 89 46 e2
    2362     mov ax, word [bp-001e8h]                  ; 8b 86 18 fe
    2363     mov word [bp-020h], ax                    ; 89 46 e0
    2364     mov si, word [bp-001e6h]                  ; 8b b6 1a fe
    2365     cmp si, 00fffh                            ; 81 fe ff 0f
    2366     jne short 021b0h                          ; 75 10
    2367     cmp ax, strict word 0ffffh                ; 3d ff ff
    2368     jne short 021b0h                          ; 75 0b
     2507    cmp word [bp-02ch], 00fffh                ; 81 7e d4 ff 0f
     2508    jne short 02366h                          ; 75 1e
     2509    cmp si, strict byte 0ffffh                ; 83 fe ff
     2510    jne short 02366h                          ; 75 19
     2511    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
     2512    mov word [bp-01eh], ax                    ; 89 46 e2
    23692513    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
    2370     mov word [bp-020h], ax                    ; 89 46 e0
    2371     mov si, word [bp-00196h]                  ; 8b b6 6a fe
    2372     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2514    mov word [bp-028h], ax                    ; 89 46 d8
     2515    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
     2516    mov word [bp-02ch], ax                    ; 89 46 d4
     2517    mov si, word [bp-0019ch]                  ; 8b b6 64 fe
     2518    mov al, byte [bp-016h]                    ; 8a 46 ea
    23732519    cmp AL, strict byte 001h                  ; 3c 01
    2374     jc short 021c3h                           ; 72 0c
    2375     jbe short 021cbh                          ; 76 12
     2520    jc short 02379h                           ; 72 0c
     2521    jbe short 02381h                          ; 76 12
    23762522    cmp AL, strict byte 003h                  ; 3c 03
    2377     je short 021d3h                           ; 74 16
     2523    je short 02389h                           ; 74 16
    23782524    cmp AL, strict byte 002h                  ; 3c 02
    2379     je short 021cfh                           ; 74 0e
    2380     jmp short 02210h                          ; eb 4d
     2525    je short 02385h                           ; 74 0e
     2526    jmp short 023c6h                          ; eb 4d
    23812527    test al, al                               ; 84 c0
    2382     jne short 02210h                          ; 75 49
     2528    jne short 023c6h                          ; 75 49
    23832529    mov BL, strict byte 01eh                  ; b3 1e
    2384     jmp short 021d5h                          ; eb 0a
     2530    jmp short 0238bh                          ; eb 0a
    23852531    mov BL, strict byte 026h                  ; b3 26
    2386     jmp short 021d5h                          ; eb 06
     2532    jmp short 0238bh                          ; eb 06
    23872533    mov BL, strict byte 067h                  ; b3 67
    2388     jmp short 021d5h                          ; eb 02
     2534    jmp short 0238bh                          ; eb 02
    23892535    mov BL, strict byte 070h                  ; b3 70
    23902536    mov al, bl                                ; 88 d8
     
    23922538    ; inc al                                    ; fe c0
    23932539    xor ah, ah                                ; 30 e4
    2394     call 016ach                               ; e8 ce f4
     2540    call 016ach                               ; e8 18 f3
    23952541    xor ah, ah                                ; 30 e4
    23962542    mov dx, ax                                ; 89 c2
    23972543    sal dx, 008h                              ; c1 e2 08
    23982544    movzx ax, bl                              ; 0f b6 c3
    2399     call 016ach                               ; e8 c1 f4
     2545    call 016ach                               ; e8 0b f3
    24002546    xor ah, ah                                ; 30 e4
    24012547    add ax, dx                                ; 01 d0
    2402     mov word [bp-034h], ax                    ; 89 46 cc
     2548    mov word [bp-038h], ax                    ; 89 46 c8
    24032549    mov al, bl                                ; 88 d8
    24042550    add AL, strict byte 002h                  ; 04 02
    24052551    xor ah, ah                                ; 30 e4
    2406     call 016ach                               ; e8 b1 f4
     2552    call 016ach                               ; e8 fb f2
    24072553    xor ah, ah                                ; 30 e4
    2408     mov word [bp-036h], ax                    ; 89 46 ca
     2554    mov word [bp-03ah], ax                    ; 89 46 c6
    24092555    mov al, bl                                ; 88 d8
    24102556    add AL, strict byte 007h                  ; 04 07
    24112557    xor ah, ah                                ; 30 e4
    2412     call 016ach                               ; e8 a3 f4
     2558    call 016ach                               ; e8 ed f2
    24132559    xor ah, ah                                ; 30 e4
    2414     mov word [bp-032h], ax                    ; 89 46 ce
    2415     jmp short 0221dh                          ; eb 0d
    2416     mov bx, word [bp-020h]                    ; 8b 5e e0
    2417     mov cx, si                                ; 89 f1
     2560    mov word [bp-036h], ax                    ; 89 46 ca
     2561    jmp short 023d8h                          ; eb 12
     2562    push word [bp-01eh]                       ; ff 76 e2
     2563    push word [bp-028h]                       ; ff 76 d8
     2564    push word [bp-02ch]                       ; ff 76 d4
     2565    push si                                   ; 56
    24182566    mov dx, ss                                ; 8c d2
    2419     lea ax, [bp-036h]                         ; 8d 46 ca
    2420     call 055b6h                               ; e8 99 33
    2421     mov bx, 00da2h                            ; bb a2 0d
     2567    lea ax, [bp-03ah]                         ; 8d 46 c6
     2568    call 0588bh                               ; e8 b3 34
     2569    mov bx, 00da0h                            ; bb a0 0d
    24222570    mov cx, ds                                ; 8c d9
    24232571    mov ax, strict word 00004h                ; b8 04 00
    2424     call 01931h                               ; e8 09 f7
    2425     mov ax, word [bp-032h]                    ; 8b 46 ce
    2426     push ax                                   ; 50
     2572    call 01931h                               ; e8 4e f5
    24272573    mov ax, word [bp-036h]                    ; 8b 46 ca
    24282574    push ax                                   ; 50
    2429     mov ax, word [bp-034h]                    ; 8b 46 cc
     2575    mov ax, word [bp-03ah]                    ; 8b 46 c6
    24302576    push ax                                   ; 50
    2431     push word [bp-01eh]                       ; ff 76 e2
    2432     push word [bp-01ch]                       ; ff 76 e4
    2433     push word [bp-01ah]                       ; ff 76 e6
     2577    mov ax, word [bp-038h]                    ; 8b 46 c8
     2578    push ax                                   ; 50
     2579    push dword [bp-01ch]                      ; 66 ff 76 e4
     2580    push word [bp-026h]                       ; ff 76 da
     2581    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     2582    push ax                                   ; 50
    24342583    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    24352584    push ax                                   ; 50
    2436     movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    2437     push ax                                   ; 50
    2438     push 0012dh                               ; 68 2d 01
     2585    push 0014dh                               ; 68 4d 01
    24392586    push strict byte 00004h                   ; 6a 04
    2440     call 01972h                               ; e8 23 f7
     2587    call 01972h                               ; e8 6a f5
    24412588    add sp, strict byte 00014h                ; 83 c4 14
    2442     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2443     imul ax, ax, strict byte 00018h           ; 6b c0 18
    2444     les di, [bp-028h]                         ; c4 7e d8
    2445     add di, ax                                ; 01 c7
    2446     mov byte [es:di+01fh], 0ffh               ; 26 c6 45 1f ff
     2589    movzx di, byte [bp-016h]                  ; 0f b6 7e ea
     2590    imul di, di, strict byte 0001ch           ; 6b ff 1c
     2591    mov es, [bp-034h]                         ; 8e 46 cc
     2592    add di, word [bp-022h]                    ; 03 7e de
     2593    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
    24472594    mov al, byte [bp-014h]                    ; 8a 46 ec
    2448     mov byte [es:di+020h], al                 ; 26 88 45 20
    2449     mov al, byte [bp-016h]                    ; 8a 46 ea
    2450     mov byte [es:di+022h], al                 ; 26 88 45 22
    2451     mov ax, word [bp-022h]                    ; 8b 46 de
    2452     mov word [es:di+024h], ax                 ; 26 89 45 24
     2595    mov byte [es:di+024h], al                 ; 26 88 45 24
     2596    mov al, byte [bp-012h]                    ; 8a 46 ee
     2597    mov byte [es:di+026h], al                 ; 26 88 45 26
     2598    mov ax, word [bp-02ah]                    ; 8b 46 d6
     2599    mov word [es:di+028h], ax                 ; 26 89 45 28
    24532600    mov ax, word [bp-01ch]                    ; 8b 46 e4
    2454     mov word [es:di+02ch], ax                 ; 26 89 45 2c
     2601    mov word [es:di+030h], ax                 ; 26 89 45 30
     2602    mov ax, word [bp-026h]                    ; 8b 46 da
     2603    mov word [es:di+032h], ax                 ; 26 89 45 32
    24552604    mov ax, word [bp-01ah]                    ; 8b 46 e6
    2456     mov word [es:di+02eh], ax                 ; 26 89 45 2e
     2605    mov word [es:di+034h], ax                 ; 26 89 45 34
    24572606    mov ax, word [bp-01eh]                    ; 8b 46 e2
    2458     mov word [es:di+030h], ax                 ; 26 89 45 30
    2459     mov ax, word [bp-020h]                    ; 8b 46 e0
    2460     mov word [es:di+032h], ax                 ; 26 89 45 32
    2461     mov word [es:di+034h], si                 ; 26 89 75 34
    2462     lea di, [di+026h]                         ; 8d 7d 26
     2607    mov word [es:di+03ch], ax                 ; 26 89 45 3c
     2608    mov ax, word [bp-028h]                    ; 8b 46 d8
     2609    mov word [es:di+03ah], ax                 ; 26 89 45 3a
     2610    mov ax, word [bp-02ch]                    ; 8b 46 d4
     2611    mov word [es:di+038h], ax                 ; 26 89 45 38
     2612    mov word [es:di+036h], si                 ; 26 89 75 36
     2613    lea di, [di+02ah]                         ; 8d 7d 2a
    24632614    push DS                                   ; 1e
    24642615    push SS                                   ; 16
    24652616    pop DS                                    ; 1f
    2466     lea si, [bp-036h]                         ; 8d 76 ca
     2617    lea si, [bp-03ah]                         ; 8d 76 c6
    24672618    movsw                                     ; a5
    24682619    movsw                                     ; a5
    24692620    movsw                                     ; a5
    24702621    pop DS                                    ; 1f
    2471     mov al, byte [bp-00eh]                    ; 8a 46 f2
     2622    mov al, byte [bp-016h]                    ; 8a 46 ea
    24722623    cmp AL, strict byte 002h                  ; 3c 02
    2473     jnc short 0230ch                          ; 73 60
     2624    jnc short 024d4h                          ; 73 60
    24742625    test al, al                               ; 84 c0
    2475     jne short 022b5h                          ; 75 05
     2626    jne short 0247dh                          ; 75 05
    24762627    mov di, strict word 0003dh                ; bf 3d 00
    2477     jmp short 022b8h                          ; eb 03
     2628    jmp short 02480h                          ; eb 03
    24782629    mov di, strict word 0004dh                ; bf 4d 00
    2479     mov dx, word [bp-024h]                    ; 8b 56 dc
    2480     mov ax, word [bp-034h]                    ; 8b 46 cc
     2630    mov dx, word [bp-020h]                    ; 8b 56 e0
     2631    mov ax, word [bp-038h]                    ; 8b 46 c8
    24812632    mov es, dx                                ; 8e c2
    24822633    mov word [es:di], ax                      ; 26 89 05
    2483     mov al, byte [bp-036h]                    ; 8a 46 ca
     2634    mov al, byte [bp-03ah]                    ; 8a 46 c6
    24842635    mov byte [es:di+002h], al                 ; 26 88 45 02
    24852636    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
    2486     mov al, byte [bp-01eh]                    ; 8a 46 e2
     2637    mov al, byte [bp-01ah]                    ; 8a 46 e6
    24872638    mov byte [es:di+004h], al                 ; 26 88 45 04
    2488     mov ax, word [bp-01ah]                    ; 8b 46 e6
     2639    mov ax, word [bp-026h]                    ; 8b 46 da
    24892640    mov word [es:di+009h], ax                 ; 26 89 45 09
    24902641    mov al, byte [bp-01ch]                    ; 8a 46 e4
    24912642    mov byte [es:di+00bh], al                 ; 26 88 45 0b
    2492     mov al, byte [bp-01eh]                    ; 8a 46 e2
     2643    mov al, byte [bp-01ah]                    ; 8a 46 e6
    24932644    mov byte [es:di+00eh], al                 ; 26 88 45 0e
    24942645    xor al, al                                ; 30 c0
    24952646    xor ah, ah                                ; 30 e4
    2496     jmp short 022f6h                          ; eb 05
     2647    jmp short 024beh                          ; eb 05
    24972648    cmp ah, 00fh                              ; 80 fc 0f
    2498     jnc short 02304h                          ; 73 0e
     2649    jnc short 024cch                          ; 73 0e
    24992650    movzx bx, ah                              ; 0f b6 dc
    25002651    mov es, dx                                ; 8e c2
     
    25032654    db  0feh, 0c4h
    25042655    ; inc ah                                    ; fe c4
    2505     jmp short 022f1h                          ; eb ed
     2656    jmp short 024b9h                          ; eb ed
    25062657    neg al                                    ; f6 d8
    25072658    mov es, dx                                ; 8e c2
    25082659    mov byte [es:di+00fh], al                 ; 26 88 45 0f
    2509     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    2510     mov es, [bp-026h]                         ; 8e 46 da
    2511     add bx, word [bp-028h]                    ; 03 5e d8
    2512     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2513     mov byte [es:bx+0019fh], al               ; 26 88 87 9f 01
    2514     inc byte [bp-006h]                        ; fe 46 fa
    2515     cmp byte [bp-010h], 003h                  ; 80 7e f0 03
    2516     jne near 023c1h                           ; 0f 85 98 00
    2517     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2518     imul ax, ax, strict byte 00018h           ; 6b c0 18
    2519     les bx, [bp-028h]                         ; c4 5e d8
     2660    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
     2661    mov es, [bp-034h]                         ; 8e 46 cc
     2662    add bx, word [bp-022h]                    ; 03 5e de
     2663    mov al, byte [bp-016h]                    ; 8a 46 ea
     2664    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
     2665    inc byte [bp-010h]                        ; fe 46 f0
     2666    cmp byte [bp-00ah], 003h                  ; 80 7e f6 03
     2667    jne near 0258ch                           ; 0f 85 9b 00
     2668    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2669    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2670    mov es, [bp-034h]                         ; 8e 46 cc
     2671    mov bx, word [bp-022h]                    ; 8b 5e de
    25202672    add bx, ax                                ; 01 c3
    2521     mov byte [es:bx+01fh], 005h               ; 26 c6 47 1f 05
    2522     mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    2523     lea dx, [bp-00260h]                       ; 8d 96 a0 fd
    2524     mov bx, word [bp-028h]                    ; 8b 5e d8
    2525     mov word [es:bx+004h], dx                 ; 26 89 57 04
    2526     mov [es:bx+006h], ss                      ; 26 8c 57 06
    2527     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2528     mov byte [es:bx+008h], al                 ; 26 88 47 08
     2673    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
     2674    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
     2675    lea dx, [bp-00264h]                       ; 8d 96 9c fd
     2676    mov bx, word [bp-022h]                    ; 8b 5e de
     2677    mov word [es:bx+008h], dx                 ; 26 89 57 08
     2678    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
     2679    mov al, byte [bp-016h]                    ; 8a 46 ea
     2680    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
    25292681    mov cx, strict word 00001h                ; b9 01 00
    25302682    mov bx, 000a1h                            ; bb a1 00
    2531     mov ax, word [bp-028h]                    ; 8b 46 d8
     2683    mov ax, word [bp-022h]                    ; 8b 46 de
    25322684    mov dx, es                                ; 8c c2
    2533     call 01d4fh                               ; e8 ec f9
     2685    call 01e5ah                               ; e8 2c f9
    25342686    test ax, ax                               ; 85 c0
    2535     je short 02372h                           ; 74 0b
    2536     push 00154h                               ; 68 54 01
     2687    je short 0253dh                           ; 74 0b
     2688    push 00174h                               ; 68 74 01
    25372689    push strict byte 00007h                   ; 6a 07
    2538     call 01972h                               ; e8 03 f6
     2690    call 01972h                               ; e8 38 f4
    25392691    add sp, strict byte 00004h                ; 83 c4 04
    2540     mov cl, byte [bp-0025fh]                  ; 8a 8e a1 fd
    2541     and cl, 01fh                              ; 80 e1 1f
    2542     test byte [bp-00260h], 080h               ; f6 86 a0 fd 80
     2692    mov dl, byte [bp-00263h]                  ; 8a 96 9d fd
     2693    and dl, 01fh                              ; 80 e2 1f
     2694    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
     2695    db  00fh, 095h, 0c0h
     2696    ; setne al                                  ; 0f 95 c0
     2697    movzx bx, al                              ; 0f b6 d8
     2698    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
    25432699    db  00fh, 095h, 0c0h
    25442700    ; setne al                                  ; 0f 95 c0
    25452701    xor ah, ah                                ; 30 e4
    2546     mov dx, ax                                ; 89 c2
    2547     cmp byte [bp-00200h], 000h                ; 80 be 00 fe 00
    2548     db  00fh, 095h, 0c0h
    2549     ; setne al                                  ; 0f 95 c0
    2550     xor ah, ah                                ; 30 e4
    2551     mov bx, ax                                ; 89 c3
    2552     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2553     imul ax, ax, strict byte 00018h           ; 6b c0 18
    2554     les si, [bp-028h]                         ; c4 76 d8
     2702    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
     2703    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
     2704    mov es, [bp-034h]                         ; 8e 46 cc
     2705    mov si, word [bp-022h]                    ; 8b 76 de
     2706    add si, cx                                ; 01 ce
     2707    mov byte [es:si+023h], dl                 ; 26 88 54 23
     2708    mov byte [es:si+024h], bl                 ; 26 88 5c 24
     2709    mov byte [es:si+026h], al                 ; 26 88 44 26
     2710    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
     2711    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     2712    add bx, word [bp-022h]                    ; 03 5e de
     2713    mov al, byte [bp-016h]                    ; 8a 46 ea
     2714    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
     2715    inc byte [bp-006h]                        ; fe 46 fa
     2716    mov al, byte [bp-00ah]                    ; 8a 46 f6
     2717    cmp AL, strict byte 003h                  ; 3c 03
     2718    je short 025c4h                           ; 74 31
     2719    cmp AL, strict byte 002h                  ; 3c 02
     2720    jne near 02627h                           ; 0f 85 8e 00
     2721    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2722    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2723    mov es, [bp-034h]                         ; 8e 46 cc
     2724    mov si, word [bp-022h]                    ; 8b 76 de
    25552725    add si, ax                                ; 01 c6
    2556     mov byte [es:si+01fh], cl                 ; 26 88 4c 1f
    2557     mov byte [es:si+020h], dl                 ; 26 88 54 20
    2558     mov byte [es:si+022h], bl                 ; 26 88 5c 22
    2559     mov word [es:si+024h], 00800h             ; 26 c7 44 24 00 08
    2560     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    2561     add bx, word [bp-028h]                    ; 03 5e d8
    2562     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2563     mov byte [es:bx+001b0h], al               ; 26 88 87 b0 01
    2564     inc byte [bp-00ah]                        ; fe 46 f6
    2565     mov al, byte [bp-010h]                    ; 8a 46 f0
    2566     cmp AL, strict byte 003h                  ; 3c 03
    2567     je short 023f4h                           ; 74 2c
    2568     cmp AL, strict byte 002h                  ; 3c 02
    2569     jne near 02457h                           ; 0f 85 89 00
    2570     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    2571     imul bx, bx, strict byte 00018h           ; 6b db 18
    2572     mov es, [bp-026h]                         ; 8e 46 da
    2573     add bx, word [bp-028h]                    ; 03 5e d8
    2574     mov ax, word [es:bx+032h]                 ; 26 8b 47 32
    2575     mov word [bp-030h], ax                    ; 89 46 d0
    2576     mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    2577     mov word [bp-02eh], ax                    ; 89 46 d2
    2578     mov cx, strict word 0000bh                ; b9 0b 00
    2579     shr word [bp-02eh], 1                     ; d1 6e d2
    2580     rcr word [bp-030h], 1                     ; d1 5e d0
    2581     loop 023ech                               ; e2 f8
    2582     movzx dx, byte [bp-001bfh]                ; 0f b6 96 41 fe
    2583     sal dx, 008h                              ; c1 e2 08
    2584     movzx ax, byte [bp-001c0h]                ; 0f b6 86 40 fe
     2726    mov ax, word [es:si+03ch]                 ; 26 8b 44 3c
     2727    mov bx, word [es:si+03ah]                 ; 26 8b 5c 3a
     2728    mov cx, word [es:si+038h]                 ; 26 8b 4c 38
     2729    mov dx, word [es:si+036h]                 ; 26 8b 54 36
     2730    mov si, strict word 0000bh                ; be 0b 00
     2731    call 09d5ah                               ; e8 9c 77
     2732    mov word [bp-030h], dx                    ; 89 56 d0
     2733    mov word [bp-02eh], cx                    ; 89 4e d2
     2734    movzx ax, byte [bp-001c3h]                ; 0f b6 86 3d fe
     2735    sal ax, 008h                              ; c1 e0 08
     2736    movzx dx, byte [bp-001c4h]                ; 0f b6 96 3c fe
    25852737    or dx, ax                                 ; 09 c2
    2586     mov byte [bp-012h], 00fh                  ; c6 46 ee 0f
    2587     jmp short 02412h                          ; eb 09
    2588     dec byte [bp-012h]                        ; fe 4e ee
    2589     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    2590     jbe short 0241fh                          ; 76 0d
    2591     movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
     2738    mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
     2739    jmp short 025e2h                          ; eb 09
     2740    dec byte [bp-00ch]                        ; fe 4e f4
     2741    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     2742    jbe short 025efh                          ; 76 0d
     2743    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    25922744    mov ax, strict word 00001h                ; b8 01 00
    25932745    sal ax, CL                                ; d3 e0
    25942746    test dx, ax                               ; 85 c2
    2595     je short 02409h                           ; 74 ea
     2747    je short 025d9h                           ; 74 ea
    25962748    xor di, di                                ; 31 ff
    2597     jmp short 02428h                          ; eb 05
     2749    jmp short 025f8h                          ; eb 05
    25982750    cmp di, strict byte 00014h                ; 83 ff 14
    2599     jnl short 0243dh                          ; 7d 15
     2751    jnl short 0260dh                          ; 7d 15
    26002752    mov si, di                                ; 89 fe
    26012753    add si, di                                ; 01 fe
    2602     mov al, byte [bp+si-00229h]               ; 8a 82 d7 fd
    2603     mov byte [bp+si-060h], al                 ; 88 42 a0
    2604     mov al, byte [bp+si-0022ah]               ; 8a 82 d6 fd
    2605     mov byte [bp+si-05fh], al                 ; 88 42 a1
     2754    mov al, byte [bp+si-0022dh]               ; 8a 82 d3 fd
     2755    mov byte [bp+si-064h], al                 ; 88 42 9c
     2756    mov al, byte [bp+si-0022eh]               ; 8a 82 d2 fd
     2757    mov byte [bp+si-063h], al                 ; 88 42 9d
    26062758    inc di                                    ; 47
    2607     jmp short 02423h                          ; eb e6
    2608     mov byte [bp-038h], 000h                  ; c6 46 c8 00
     2759    jmp short 025f3h                          ; eb e6
     2760    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
    26092761    mov di, strict word 00027h                ; bf 27 00
    2610     jmp short 0244bh                          ; eb 05
     2762    jmp short 0261bh                          ; eb 05
    26112763    dec di                                    ; 4f
    26122764    test di, di                               ; 85 ff
    2613     jle short 02457h                          ; 7e 0c
    2614     cmp byte [bp+di-060h], 020h               ; 80 7b a0 20
    2615     jne short 02457h                          ; 75 06
    2616     mov byte [bp+di-060h], 000h               ; c6 43 a0 00
    2617     jmp short 02446h                          ; eb ef
    2618     mov al, byte [bp-010h]                    ; 8a 46 f0
     2765    jle short 02627h                          ; 7e 0c
     2766    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
     2767    jne short 02627h                          ; 75 06
     2768    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
     2769    jmp short 02616h                          ; eb ef
     2770    mov al, byte [bp-00ah]                    ; 8a 46 f6
    26192771    cmp AL, strict byte 003h                  ; 3c 03
    2620     je short 024bah                           ; 74 5c
     2772    je short 0268ah                           ; 74 5c
    26212773    cmp AL, strict byte 002h                  ; 3c 02
    2622     je short 0246bh                           ; 74 09
     2774    je short 0263bh                           ; 74 09
    26232775    cmp AL, strict byte 001h                  ; 3c 01
    2624     je near 02521h                            ; 0f 84 b9 00
    2625     jmp near 02540h                           ; e9 d5 00
    2626     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2627     je short 02476h                           ; 74 05
    2628     mov ax, 0017fh                            ; b8 7f 01
    2629     jmp short 02479h                          ; eb 03
    2630     mov ax, 00186h                            ; b8 86 01
     2776    je near 026f4h                            ; 0f 84 bc 00
     2777    jmp near 02713h                           ; e9 d8 00
     2778    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     2779    je short 02646h                           ; 74 05
     2780    mov ax, 0019fh                            ; b8 9f 01
     2781    jmp short 02649h                          ; eb 03
     2782    mov ax, 001a6h                            ; b8 a6 01
    26312783    push ax                                   ; 50
    2632     movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
     2784    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    26332785    push ax                                   ; 50
    2634     push 0018dh                               ; 68 8d 01
     2786    push 001adh                               ; 68 ad 01
    26352787    push strict byte 00002h                   ; 6a 02
    2636     call 01972h                               ; e8 eb f4
     2788    call 01972h                               ; e8 1b f3
    26372789    add sp, strict byte 00008h                ; 83 c4 08
    26382790    xor di, di                                ; 31 ff
    2639     movzx ax, byte [bp+di-060h]               ; 0f b6 43 a0
     2791    movzx ax, byte [bp+di-064h]               ; 0f b6 43 9c
    26402792    inc di                                    ; 47
    26412793    test ax, ax                               ; 85 c0
    2642     je short 024a3h                           ; 74 0e
     2794    je short 02673h                           ; 74 0e
    26432795    push ax                                   ; 50
    2644     push 00198h                               ; 68 98 01
     2796    push 001b8h                               ; 68 b8 01
    26452797    push strict byte 00002h                   ; 6a 02
    2646     call 01972h                               ; e8 d4 f4
     2798    call 01972h                               ; e8 04 f3
    26472799    add sp, strict byte 00006h                ; 83 c4 06
    2648     jmp short 0248ch                          ; eb e9
     2800    jmp short 0265ch                          ; eb e9
    26492801    push dword [bp-030h]                      ; 66 ff 76 d0
    2650     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     2802    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    26512803    push ax                                   ; 50
    2652     push 0019bh                               ; 68 9b 01
     2804    push 001bbh                               ; 68 bb 01
    26532805    push strict byte 00002h                   ; 6a 02
    2654     call 01972h                               ; e8 be f4
     2806    call 01972h                               ; e8 ee f2
    26552807    add sp, strict byte 0000ah                ; 83 c4 0a
    2656     jmp near 02540h                           ; e9 86 00
    2657     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2658     je short 024c5h                           ; 74 05
    2659     mov ax, 0017fh                            ; b8 7f 01
    2660     jmp short 024c8h                          ; eb 03
    2661     mov ax, 00186h                            ; b8 86 01
     2808    jmp near 02713h                           ; e9 89 00
     2809    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     2810    je short 02695h                           ; 74 05
     2811    mov ax, 0019fh                            ; b8 9f 01
     2812    jmp short 02698h                          ; eb 03
     2813    mov ax, 001a6h                            ; b8 a6 01
    26622814    push ax                                   ; 50
    2663     movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
     2815    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    26642816    push ax                                   ; 50
    2665     push 0018dh                               ; 68 8d 01
     2817    push 001adh                               ; 68 ad 01
    26662818    push strict byte 00002h                   ; 6a 02
    2667     call 01972h                               ; e8 9c f4
     2819    call 01972h                               ; e8 cc f2
    26682820    add sp, strict byte 00008h                ; 83 c4 08
    26692821    xor di, di                                ; 31 ff
    2670     movzx ax, byte [bp+di-060h]               ; 0f b6 43 a0
     2822    movzx ax, byte [bp+di-064h]               ; 0f b6 43 9c
    26712823    inc di                                    ; 47
    26722824    test ax, ax                               ; 85 c0
    2673     je short 024f2h                           ; 74 0e
     2825    je short 026c2h                           ; 74 0e
    26742826    push ax                                   ; 50
    2675     push 00198h                               ; 68 98 01
     2827    push 001b8h                               ; 68 b8 01
    26762828    push strict byte 00002h                   ; 6a 02
    2677     call 01972h                               ; e8 85 f4
     2829    call 01972h                               ; e8 b5 f2
    26782830    add sp, strict byte 00006h                ; 83 c4 06
    2679     jmp short 024dbh                          ; eb e9
    2680     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    2681     imul ax, ax, strict byte 00018h           ; 6b c0 18
    2682     les bx, [bp-028h]                         ; c4 5e d8
     2831    jmp short 026abh                          ; eb e9
     2832    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     2833    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2834    mov es, [bp-034h]                         ; 8e 46 cc
     2835    mov bx, word [bp-022h]                    ; 8b 5e de
    26832836    add bx, ax                                ; 01 c3
    2684     cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    2685     jne short 0250fh                          ; 75 0a
    2686     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     2837    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
     2838    jne short 026e2h                          ; 75 0a
     2839    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    26872840    push ax                                   ; 50
    2688     push 001bbh                               ; 68 bb 01
    2689     jmp short 02517h                          ; eb 08
    2690     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     2841    push 001dbh                               ; 68 db 01
     2842    jmp short 026eah                          ; eb 08
     2843    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    26912844    push ax                                   ; 50
    2692     push 001d5h                               ; 68 d5 01
     2845    push 001f5h                               ; 68 f5 01
    26932846    push strict byte 00002h                   ; 6a 02
    2694     call 01972h                               ; e8 56 f4
     2847    call 01972h                               ; e8 83 f2
    26952848    add sp, strict byte 00006h                ; 83 c4 06
    2696     jmp short 02540h                          ; eb 1f
    2697     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2698     je short 0252ch                           ; 74 05
    2699     mov ax, 0017fh                            ; b8 7f 01
    2700     jmp short 0252fh                          ; eb 03
    2701     mov ax, 00186h                            ; b8 86 01
     2849    jmp short 02713h                          ; eb 1f
     2850    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     2851    je short 026ffh                           ; 74 05
     2852    mov ax, 0019fh                            ; b8 9f 01
     2853    jmp short 02702h                          ; eb 03
     2854    mov ax, 001a6h                            ; b8 a6 01
    27022855    push ax                                   ; 50
    2703     movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
     2856    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    27042857    push ax                                   ; 50
    2705     push 001e7h                               ; 68 e7 01
     2858    push 00207h                               ; 68 07 02
    27062859    push strict byte 00002h                   ; 6a 02
    2707     call 01972h                               ; e8 35 f4
     2860    call 01972h                               ; e8 62 f2
    27082861    add sp, strict byte 00008h                ; 83 c4 08
    2709     inc byte [bp-00eh]                        ; fe 46 f2
    2710     cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
    2711     jnc short 02597h                          ; 73 4e
    2712     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     2862    inc byte [bp-016h]                        ; fe 46 ea
     2863    cmp byte [bp-016h], 008h                  ; 80 7e ea 08
     2864    jnc short 0276eh                          ; 73 52
     2865    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
    27132866    mov ax, bx                                ; 89 d8
    27142867    cwd                                       ; 99
     
    27162869    ; sub ax, dx                                ; 2b c2
    27172870    sar ax, 1                                 ; d1 f8
    2718     mov word [bp-02ah], ax                    ; 89 46 d6
    2719     mov al, byte [bp-02ah]                    ; 8a 46 d6
    2720     mov byte [bp-018h], al                    ; 88 46 e8
     2871    mov cx, ax                                ; 89 c1
     2872    mov byte [bp-008h], al                    ; 88 46 f8
    27212873    mov ax, bx                                ; 89 d8
    27222874    cwd                                       ; 99
    27232875    mov bx, strict word 00002h                ; bb 02 00
    27242876    idiv bx                                   ; f7 fb
    2725     mov cx, dx                                ; 89 d1
    2726     mov byte [bp-008h], dl                    ; 88 56 f8
    2727     movzx ax, byte [bp-02ah]                  ; 0f b6 46 d6
     2877    mov word [bp-032h], dx                    ; 89 56 ce
     2878    mov al, byte [bp-032h]                    ; 8a 46 ce
     2879    mov byte [bp-00eh], al                    ; 88 46 f2
     2880    movzx ax, cl                              ; 0f b6 c1
    27282881    imul ax, ax, strict byte 00006h           ; 6b c0 06
    2729     les bx, [bp-028h]                         ; c4 5e d8
     2882    mov es, [bp-034h]                         ; 8e 46 cc
     2883    mov bx, word [bp-022h]                    ; 8b 5e de
    27302884    add bx, ax                                ; 01 c3
    2731     mov si, word [es:bx+001c2h]               ; 26 8b b7 c2 01
    2732     mov ax, word [es:bx+001c4h]               ; 26 8b 87 c4 01
    2733     mov word [bp-02ch], ax                    ; 89 46 d4
     2885    mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
     2886    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
     2887    mov word [bp-024h], ax                    ; 89 46 dc
    27342888    mov dx, ax                                ; 89 c2
    27352889    add dx, strict byte 00006h                ; 83 c2 06
    27362890    mov AL, strict byte 00ah                  ; b0 0a
    27372891    out DX, AL                                ; ee
    2738     test cl, cl                               ; 84 c9
    2739     je near 02001h                            ; 0f 84 70 fa
     2892    cmp byte [bp-032h], 000h                  ; 80 7e ce 00
     2893    je near 02196h                            ; 0f 84 2e fa
    27402894    mov ax, 000b0h                            ; b8 b0 00
    2741     jmp near 02004h                           ; e9 6d fa
     2895    jmp near 02199h                           ; e9 2b fa
     2896    mov al, byte [bp-010h]                    ; 8a 46 f0
     2897    mov es, [bp-034h]                         ; 8e 46 cc
     2898    mov bx, word [bp-022h]                    ; 8b 5e de
     2899    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
    27422900    mov al, byte [bp-006h]                    ; 8a 46 fa
    2743     les bx, [bp-028h]                         ; c4 5e d8
    2744     mov byte [es:bx+0019eh], al               ; 26 88 87 9e 01
    2745     mov al, byte [bp-00ah]                    ; 8a 46 f6
    2746     mov byte [es:bx+001afh], al               ; 26 88 87 af 01
    2747     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     2901    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
     2902    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
    27482903    mov dx, strict word 00075h                ; ba 75 00
    27492904    mov ax, strict word 00040h                ; b8 40 00
    2750     call 0165eh                               ; e8 a7 f0
     2905    call 0165eh                               ; e8 cd ee
    27512906    lea sp, [bp-004h]                         ; 8d 66 fc
    27522907    pop di                                    ; 5f
     
    27542909    pop bp                                    ; 5d
    27552910    retn                                      ; c3
    2756 ata_cmd_data_out_:                           ; 0xf25be LB 0x21a
     2911ata_cmd_data_out_:                           ; 0xf2798 LB 0x2bc
    27572912    push bp                                   ; 55
    27582913    mov bp, sp                                ; 89 e5
    27592914    push si                                   ; 56
    27602915    push di                                   ; 57
    2761     sub sp, strict byte 0001ah                ; 83 ec 1a
     2916    sub sp, strict byte 00022h                ; 83 ec 22
    27622917    mov di, ax                                ; 89 c7
    2763     mov word [bp-00ah], dx                    ; 89 56 f6
    2764     mov word [bp-01ah], bx                    ; 89 5e e6
    2765     mov word [bp-00eh], cx                    ; 89 4e f2
     2918    mov word [bp-00ch], dx                    ; 89 56 f4
     2919    mov word [bp-024h], bx                    ; 89 5e dc
     2920    mov word [bp-01ah], cx                    ; 89 4e e6
    27662921    mov es, dx                                ; 8e c2
    2767     movzx ax, byte [es:di+008h]               ; 26 0f b6 45 08
     2922    movzx ax, byte [es:di+00ch]               ; 26 0f b6 45 0c
    27682923    mov dx, ax                                ; 89 c2
    27692924    shr dx, 1                                 ; d1 ea
     
    27712926    and dh, 001h                              ; 80 e6 01
    27722927    mov byte [bp-006h], dh                    ; 88 76 fa
    2773     movzx si, dl                              ; 0f b6 f2
    2774     imul si, si, strict byte 00006h           ; 6b f6 06
    2775     add si, di                                ; 01 fe
    2776     mov bx, word [es:si+001c2h]               ; 26 8b 9c c2 01
    2777     mov dx, word [es:si+001c4h]               ; 26 8b 94 c4 01
    2778     mov word [bp-00ch], dx                    ; 89 56 f4
    2779     imul ax, ax, strict byte 00018h           ; 6b c0 18
    2780     mov si, di                                ; 89 fe
    2781     add si, ax                                ; 01 c6
    2782     mov al, byte [es:si+022h]                 ; 26 8a 44 22
     2928    xor dh, dh                                ; 30 f6
     2929    imul dx, dx, strict byte 00006h           ; 6b d2 06
     2930    mov bx, di                                ; 89 fb
     2931    add bx, dx                                ; 01 d3
     2932    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
     2933    mov word [bp-00ah], dx                    ; 89 56 f6
     2934    mov dx, word [es:bx+00208h]               ; 26 8b 97 08 02
     2935    mov word [bp-012h], dx                    ; 89 56 ee
     2936    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     2937    mov bx, di                                ; 89 fb
     2938    add bx, ax                                ; 01 c3
     2939    mov al, byte [es:bx+026h]                 ; 26 8a 47 26
    27832940    mov byte [bp-008h], al                    ; 88 46 f8
    27842941    cmp AL, strict byte 001h                  ; 3c 01
    2785     jne short 02612h                          ; 75 07
    2786     mov word [bp-012h], 00080h                ; c7 46 ee 80 00
    2787     jmp short 02617h                          ; eb 05
    2788     mov word [bp-012h], 00100h                ; c7 46 ee 00 01
    2789     lea dx, [bx+007h]                         ; 8d 57 07
     2942    jne short 027f0h                          ; 75 07
     2943    mov word [bp-020h], 00080h                ; c7 46 e0 80 00
     2944    jmp short 027f5h                          ; eb 05
     2945    mov word [bp-020h], 00100h                ; c7 46 e0 00 01
     2946    mov dx, word [bp-00ah]                    ; 8b 56 f6
     2947    add dx, strict byte 00007h                ; 83 c2 07
    27902948    in AL, DX                                 ; ec
    27912949    db  02ah, 0e4h
    27922950    ; sub ah, ah                                ; 2a e4
    27932951    test AL, strict byte 080h                 ; a8 80
    2794     je short 02630h                           ; 74 0f
    2795     mov dx, word [bp-00ch]                    ; 8b 56 f4
     2952    je short 02811h                           ; 74 0f
     2953    mov dx, word [bp-012h]                    ; 8b 56 ee
    27962954    add dx, strict byte 00006h                ; 83 c2 06
    27972955    mov AL, strict byte 008h                  ; b0 08
    27982956    out DX, AL                                ; ee
    27992957    mov dx, strict word 00001h                ; ba 01 00
    2800     jmp near 027cfh                           ; e9 9f 01
    2801     mov es, [bp-00ah]                         ; 8e 46 f6
     2958    jmp near 02a4bh                           ; e9 3a 02
     2959    mov es, [bp-00ch]                         ; 8e 46 f4
     2960    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     2961    mov word [bp-010h], ax                    ; 89 46 f0
     2962    mov ax, word [es:di+004h]                 ; 26 8b 45 04
     2963    mov word [bp-014h], ax                    ; 89 46 ec
     2964    mov ax, word [es:di+002h]                 ; 26 8b 45 02
     2965    mov word [bp-016h], ax                    ; 89 46 ea
    28022966    mov ax, word [es:di]                      ; 26 8b 05
    28032967    mov word [bp-01eh], ax                    ; 89 46 e2
    2804     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     2968    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     2969    mov word [bp-00eh], ax                    ; 89 46 f2
     2970    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
     2971    mov word [bp-018h], ax                    ; 89 46 e8
     2972    mov ax, word [es:di+016h]                 ; 26 8b 45 16
    28052973    mov word [bp-01ch], ax                    ; 89 46 e4
    2806     mov si, word [es:di+004h]                 ; 26 8b 75 04
    2807     mov ax, word [es:di+006h]                 ; 26 8b 45 06
    2808     mov word [bp-018h], ax                    ; 89 46 e8
    28092974    mov ax, word [es:di+012h]                 ; 26 8b 45 12
    2810     mov word [bp-010h], ax                    ; 89 46 f0
    2811     mov ax, word [es:di+00eh]                 ; 26 8b 45 0e
    2812     mov word [bp-016h], ax                    ; 89 46 ea
    2813     mov ax, word [es:di+010h]                 ; 26 8b 45 10
    2814     mov word [bp-014h], ax                    ; 89 46 ec
     2975    mov word [bp-026h], ax                    ; 89 46 da
     2976    mov ax, word [es:di+014h]                 ; 26 8b 45 14
     2977    mov word [bp-022h], ax                    ; 89 46 de
     2978    mov ax, word [bp-01ch]                    ; 8b 46 e4
     2979    test ax, ax                               ; 85 c0
     2980    jne near 02922h                           ; 0f 85 c7 00
     2981    xor dx, dx                                ; 31 d2
     2982    xor bx, bx                                ; 31 db
     2983    mov si, word [bp-01eh]                    ; 8b 76 e2
     2984    add si, word [bp-01ah]                    ; 03 76 e6
     2985    adc dx, word [bp-016h]                    ; 13 56 ea
     2986    adc bx, word [bp-014h]                    ; 13 5e ec
     2987    adc ax, word [bp-010h]                    ; 13 46 f0
     2988    test ax, ax                               ; 85 c0
     2989    jnbe short 02882h                         ; 77 10
     2990    jne short 028e5h                          ; 75 71
     2991    test bx, bx                               ; 85 db
     2992    jnbe short 02882h                         ; 77 0a
     2993    jne short 028e5h                          ; 75 6b
     2994    cmp dx, 01000h                            ; 81 fa 00 10
     2995    jnbe short 02882h                         ; 77 02
     2996    jne short 028e5h                          ; 75 63
    28152997    mov ax, word [bp-010h]                    ; 8b 46 f0
    2816     test ax, ax                               ; 85 c0
    2817     jne short 026ceh                          ; 75 67
     2998    mov bx, word [bp-014h]                    ; 8b 5e ec
     2999    mov cx, word [bp-016h]                    ; 8b 4e ea
    28183000    mov dx, word [bp-01eh]                    ; 8b 56 e2
    2819     add dx, word [bp-00eh]                    ; 03 56 f2
    2820     adc ax, word [bp-01ch]                    ; 13 46 e4
    2821     cmp ax, 01000h                            ; 3d 00 10
    2822     jnbe short 02677h                         ; 77 02
    2823     jne short 026a2h                          ; 75 2b
    2824     mov ax, word [bp-01ch]                    ; 8b 46 e4
     3001    mov si, strict word 00018h                ; be 18 00
     3002    call 09d5ah                               ; e8 c6 74
     3003    xor dh, dh                                ; 30 f6
     3004    mov word [bp-01ch], dx                    ; 89 56 e4
     3005    mov ax, word [bp-010h]                    ; 8b 46 f0
     3006    mov bx, word [bp-014h]                    ; 8b 5e ec
     3007    mov cx, word [bp-016h]                    ; 8b 4e ea
     3008    mov dx, word [bp-01eh]                    ; 8b 56 e2
     3009    mov si, strict word 00020h                ; be 20 00
     3010    call 09d5ah                               ; e8 af 74
     3011    mov bx, dx                                ; 89 d3
     3012    mov ax, word [bp-01ah]                    ; 8b 46 e6
    28253013    xor al, al                                ; 30 c0
    28263014    shr ax, 008h                              ; c1 e8 08
     3015    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3016    inc dx                                    ; 42
     3017    inc dx                                    ; 42
     3018    out DX, AL                                ; ee
     3019    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3020    add dx, strict byte 00003h                ; 83 c2 03
     3021    mov al, byte [bp-01ch]                    ; 8a 46 e4
     3022    out DX, AL                                ; ee
     3023    mov ax, bx                                ; 89 d8
     3024    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3025    add dx, strict byte 00004h                ; 83 c2 04
     3026    out DX, AL                                ; ee
     3027    shr ax, 008h                              ; c1 e8 08
     3028    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3029    add dx, strict byte 00005h                ; 83 c2 05
     3030    out DX, AL                                ; ee
     3031    xor al, al                                ; 30 c0
     3032    mov byte [bp-015h], al                    ; 88 46 eb
     3033    xor ah, ah                                ; 30 e4
     3034    mov word [bp-014h], ax                    ; 89 46 ec
    28273035    mov word [bp-010h], ax                    ; 89 46 f0
    2828     mov ax, word [bp-00eh]                    ; 8b 46 f2
    2829     xor al, al                                ; 30 c0
    2830     shr ax, 008h                              ; c1 e8 08
    2831     lea dx, [bx+002h]                         ; 8d 57 02
    2832     out DX, AL                                ; ee
    2833     lea dx, [bx+003h]                         ; 8d 57 03
    2834     mov al, byte [bp-010h]                    ; 8a 46 f0
    2835     out DX, AL                                ; ee
    2836     lea dx, [bx+004h]                         ; 8d 57 04
    2837     xor al, al                                ; 30 c0
    2838     out DX, AL                                ; ee
    2839     lea dx, [bx+005h]                         ; 8d 57 05
    2840     out DX, AL                                ; ee
    2841     mov byte [bp-01bh], al                    ; 88 46 e5
    28423036    mov ax, word [bp-01eh]                    ; 8b 46 e2
    28433037    xor ah, ah                                ; 30 e4
     3038    mov word [bp-01ch], ax                    ; 89 46 e4
     3039    mov ax, word [bp-010h]                    ; 8b 46 f0
     3040    mov bx, word [bp-014h]                    ; 8b 5e ec
     3041    mov cx, word [bp-016h]                    ; 8b 4e ea
     3042    mov dx, word [bp-01eh]                    ; 8b 56 e2
     3043    mov si, strict word 00008h                ; be 08 00
     3044    call 09d5ah                               ; e8 5b 74
    28443045    mov word [bp-010h], ax                    ; 89 46 f0
    2845     mov cx, strict word 00008h                ; b9 08 00
    2846     shr word [bp-01ch], 1                     ; d1 6e e4
    2847     rcr word [bp-01eh], 1                     ; d1 5e e2
    2848     loop 026adh                               ; e2 f8
    2849     mov ax, word [bp-01eh]                    ; 8b 46 e2
    2850     mov word [bp-016h], ax                    ; 89 46 ea
    2851     mov ax, word [bp-01ch]                    ; 8b 46 e4
    2852     mov word [bp-01eh], ax                    ; 89 46 e2
    2853     mov word [bp-01ch], strict word 00000h    ; c7 46 e4 00 00
    2854     and ax, strict word 0000fh                ; 25 0f 00
     3046    mov word [bp-014h], bx                    ; 89 5e ec
     3047    mov word [bp-016h], cx                    ; 89 4e ea
     3048    mov word [bp-01eh], dx                    ; 89 56 e2
     3049    mov word [bp-026h], dx                    ; 89 56 da
     3050    mov si, strict word 00010h                ; be 10 00
     3051    call 09d5ah                               ; e8 46 74
     3052    mov word [bp-01eh], dx                    ; 89 56 e2
     3053    mov ax, dx                                ; 89 d0
     3054    xor ah, dh                                ; 30 f4
     3055    and AL, strict byte 00fh                  ; 24 0f
    28553056    or AL, strict byte 040h                   ; 0c 40
    2856     mov word [bp-014h], ax                    ; 89 46 ec
    2857     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3057    mov word [bp-022h], ax                    ; 89 46 de
     3058    mov dx, word [bp-012h]                    ; 8b 56 ee
    28583059    add dx, strict byte 00006h                ; 83 c2 06
    28593060    mov AL, strict byte 00ah                  ; b0 0a
    28603061    out DX, AL                                ; ee
    2861     lea dx, [bx+001h]                         ; 8d 57 01
     3062    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3063    inc dx                                    ; 42
    28623064    xor al, al                                ; 30 c0
    28633065    out DX, AL                                ; ee
    2864     lea dx, [bx+002h]                         ; 8d 57 02
    2865     mov al, byte [bp-00eh]                    ; 8a 46 f2
    2866     out DX, AL                                ; ee
    2867     lea dx, [bx+003h]                         ; 8d 57 03
    2868     mov al, byte [bp-010h]                    ; 8a 46 f0
    2869     out DX, AL                                ; ee
    2870     mov ax, word [bp-016h]                    ; 8b 46 ea
    2871     lea dx, [bx+004h]                         ; 8d 57 04
     3066    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3067    inc dx                                    ; 42
     3068    inc dx                                    ; 42
     3069    mov al, byte [bp-01ah]                    ; 8a 46 e6
     3070    out DX, AL                                ; ee
     3071    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3072    add dx, strict byte 00003h                ; 83 c2 03
     3073    mov al, byte [bp-01ch]                    ; 8a 46 e4
     3074    out DX, AL                                ; ee
     3075    mov ax, word [bp-026h]                    ; 8b 46 da
     3076    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3077    add dx, strict byte 00004h                ; 83 c2 04
    28723078    out DX, AL                                ; ee
    28733079    shr ax, 008h                              ; c1 e8 08
    2874     lea dx, [bx+005h]                         ; 8d 57 05
     3080    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3081    add dx, strict byte 00005h                ; 83 c2 05
    28753082    out DX, AL                                ; ee
    28763083    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    2877     je short 02704h                           ; 74 05
     3084    je short 02964h                           ; 74 05
    28783085    mov ax, 000b0h                            ; b8 b0 00
    2879     jmp short 02707h                          ; eb 03
     3086    jmp short 02967h                          ; eb 03
    28803087    mov ax, 000a0h                            ; b8 a0 00
    2881     movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     3088    movzx dx, byte [bp-022h]                  ; 0f b6 56 de
    28823089    or ax, dx                                 ; 09 d0
    2883     lea dx, [bx+006h]                         ; 8d 57 06
    2884     out DX, AL                                ; ee
    2885     lea dx, [bx+007h]                         ; 8d 57 07
    2886     mov al, byte [bp-01ah]                    ; 8a 46 e6
    2887     out DX, AL                                ; ee
    2888     lea dx, [bx+007h]                         ; 8d 57 07
     3090    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3091    add dx, strict byte 00006h                ; 83 c2 06
     3092    out DX, AL                                ; ee
     3093    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3094    add dx, strict byte 00007h                ; 83 c2 07
     3095    mov al, byte [bp-024h]                    ; 8a 46 dc
     3096    out DX, AL                                ; ee
     3097    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3098    add dx, strict byte 00007h                ; 83 c2 07
    28893099    in AL, DX                                 ; ec
    28903100    db  02ah, 0e4h
     
    28923102    mov dl, al                                ; 88 c2
    28933103    test AL, strict byte 080h                 ; a8 80
    2894     jne short 02718h                          ; 75 f4
     3104    jne short 0297eh                          ; 75 f1
    28953105    test AL, strict byte 001h                 ; a8 01
    2896     je short 02737h                           ; 74 0f
    2897     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3106    je short 029a0h                           ; 74 0f
     3107    mov dx, word [bp-012h]                    ; 8b 56 ee
    28983108    add dx, strict byte 00006h                ; 83 c2 06
    28993109    mov AL, strict byte 008h                  ; b0 08
    29003110    out DX, AL                                ; ee
    29013111    mov dx, strict word 00002h                ; ba 02 00
    2902     jmp near 027cfh                           ; e9 98 00
     3112    jmp near 02a4bh                           ; e9 ab 00
    29033113    test dl, 008h                             ; f6 c2 08
    2904     jne short 0274bh                          ; 75 0f
    2905     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3114    jne short 029b4h                          ; 75 0f
     3115    mov dx, word [bp-012h]                    ; 8b 56 ee
    29063116    add dx, strict byte 00006h                ; 83 c2 06
    29073117    mov AL, strict byte 008h                  ; b0 08
    29083118    out DX, AL                                ; ee
    29093119    mov dx, strict word 00003h                ; ba 03 00
    2910     jmp near 027cfh                           ; e9 84 00
     3120    jmp near 02a4bh                           ; e9 97 00
    29113121    sti                                       ; fb
    2912     cmp si, 0f800h                            ; 81 fe 00 f8
    2913     jc short 0275fh                           ; 72 0d
    2914     sub si, 00800h                            ; 81 ee 00 08
    2915     mov ax, word [bp-018h]                    ; 8b 46 e8
    2916     add ax, 00080h                            ; 05 80 00
    2917     mov word [bp-018h], ax                    ; 89 46 e8
     3122    mov ax, word [bp-00eh]                    ; 8b 46 f2
     3123    cmp ax, 0f800h                            ; 3d 00 f8
     3124    jc short 029cdh                           ; 72 10
     3125    sub ax, 00800h                            ; 2d 00 08
     3126    mov dx, word [bp-018h]                    ; 8b 56 e8
     3127    add dx, 00080h                            ; 81 c2 80 00
     3128    mov word [bp-00eh], ax                    ; 89 46 f2
     3129    mov word [bp-018h], dx                    ; 89 56 e8
    29183130    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    2919     jne short 02773h                          ; 75 0e
    2920     mov dx, bx                                ; 89 da
    2921     mov cx, word [bp-012h]                    ; 8b 4e ee
     3131    jne short 029e5h                          ; 75 12
     3132    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3133    mov cx, word [bp-020h]                    ; 8b 4e e0
     3134    mov si, word [bp-00eh]                    ; 8b 76 f2
    29223135    mov es, [bp-018h]                         ; 8e 46 e8
    29233136    db  0f3h, 066h, 026h, 06fh
    29243137    ; rep es outsd                              ; f3 66 26 6f
    2925     jmp short 0277eh                          ; eb 0b
    2926     mov dx, bx                                ; 89 da
    2927     mov cx, word [bp-012h]                    ; 8b 4e ee
     3138    jmp short 029f4h                          ; eb 0f
     3139    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3140    mov cx, word [bp-020h]                    ; 8b 4e e0
     3141    mov si, word [bp-00eh]                    ; 8b 76 f2
    29283142    mov es, [bp-018h]                         ; 8e 46 e8
    29293143    db  0f3h, 026h, 06fh
    29303144    ; rep es outsw                              ; f3 26 6f
    2931     mov es, [bp-00ah]                         ; 8e 46 f6
    2932     inc word [es:di+014h]                     ; 26 ff 45 14
    2933     dec word [bp-00eh]                        ; ff 4e f2
    2934     lea dx, [bx+007h]                         ; 8d 57 07
     3145    mov word [bp-00eh], si                    ; 89 76 f2
     3146    mov es, [bp-00ch]                         ; 8e 46 f4
     3147    inc word [es:di+018h]                     ; 26 ff 45 18
     3148    dec word [bp-01ah]                        ; ff 4e e6
     3149    mov dx, word [bp-00ah]                    ; 8b 56 f6
     3150    add dx, strict byte 00007h                ; 83 c2 07
    29353151    in AL, DX                                 ; ec
    29363152    db  02ah, 0e4h
     
    29383154    mov dl, al                                ; 88 c2
    29393155    test AL, strict byte 080h                 ; a8 80
    2940     jne short 02788h                          ; 75 f4
    2941     cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    2942     jne short 027aeh                          ; 75 14
     3156    jne short 02a01h                          ; 75 f1
     3157    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
     3158    jne short 02a2ah                          ; 75 14
    29433159    and AL, strict byte 0e9h                  ; 24 e9
    29443160    cmp AL, strict byte 040h                  ; 3c 40
    2945     je short 027c4h                           ; 74 24
    2946     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3161    je short 02a40h                           ; 74 24
     3162    mov dx, word [bp-012h]                    ; 8b 56 ee
    29473163    add dx, strict byte 00006h                ; 83 c2 06
    29483164    mov AL, strict byte 008h                  ; b0 08
    29493165    out DX, AL                                ; ee
    29503166    mov dx, strict word 00006h                ; ba 06 00
    2951     jmp short 027cfh                          ; eb 21
     3167    jmp short 02a4bh                          ; eb 21
    29523168    mov al, dl                                ; 88 d0
    29533169    and AL, strict byte 0c9h                  ; 24 c9
    29543170    cmp AL, strict byte 048h                  ; 3c 48
    2955     je short 0274ch                           ; 74 96
    2956     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3171    je short 029b5h                           ; 74 83
     3172    mov dx, word [bp-012h]                    ; 8b 56 ee
    29573173    add dx, strict byte 00006h                ; 83 c2 06
    29583174    mov AL, strict byte 008h                  ; b0 08
    29593175    out DX, AL                                ; ee
    29603176    mov dx, strict word 00007h                ; ba 07 00
    2961     jmp short 027cfh                          ; eb 0b
    2962     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3177    jmp short 02a4bh                          ; eb 0b
     3178    mov dx, word [bp-012h]                    ; 8b 56 ee
    29633179    add dx, strict byte 00006h                ; 83 c2 06
    29643180    mov AL, strict byte 008h                  ; b0 08
     
    29713187    pop bp                                    ; 5d
    29723188    retn                                      ; c3
    2973 @ata_read_sectors:                           ; 0xf27d8 LB 0x7a
     3189@ata_read_sectors:                           ; 0xf2a54 LB 0xb5
     3190    push bp                                   ; 55
     3191    mov bp, sp                                ; 89 e5
     3192    push si                                   ; 56
     3193    push di                                   ; 57
     3194    sub sp, strict byte 00008h                ; 83 ec 08
     3195    mov si, word [bp+004h]                    ; 8b 76 04
     3196    mov es, [bp+006h]                         ; 8e 46 06
     3197    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
     3198    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
     3199    mov dx, cx                                ; 89 ca
     3200    sal dx, 009h                              ; c1 e2 09
     3201    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
     3202    je short 02a95h                           ; 74 1f
     3203    xor ah, ah                                ; 30 e4
     3204    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     3205    mov [bp-00ah], es                         ; 8c 46 f6
     3206    mov di, si                                ; 89 f7
     3207    add di, ax                                ; 01 c7
     3208    mov word [es:di+028h], dx                 ; 26 89 55 28
     3209    mov bx, 000c4h                            ; bb c4 00
     3210    mov ax, si                                ; 89 f0
     3211    mov dx, es                                ; 8c c2
     3212    call 01e5ah                               ; e8 ca f3
     3213    mov es, [bp-00ah]                         ; 8e 46 f6
     3214    jmp short 02afah                          ; eb 65
     3215    xor bx, bx                                ; 31 db
     3216    mov word [bp-00ah], bx                    ; 89 5e f6
     3217    mov word [bp-00ch], bx                    ; 89 5e f4
     3218    mov di, word [es:si]                      ; 26 8b 3c
     3219    add di, cx                                ; 01 cf
     3220    mov word [bp-008h], di                    ; 89 7e f8
     3221    mov di, word [es:si+002h]                 ; 26 8b 7c 02
     3222    adc di, bx                                ; 11 df
     3223    mov word [bp-006h], di                    ; 89 7e fa
     3224    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     3225    adc bx, word [bp-00ah]                    ; 13 5e f6
     3226    mov di, word [es:si+006h]                 ; 26 8b 7c 06
     3227    adc di, word [bp-00ch]                    ; 13 7e f4
     3228    test di, di                               ; 85 ff
     3229    jnbe short 02ad1h                         ; 77 11
     3230    jne short 02addh                          ; 75 1b
     3231    test bx, bx                               ; 85 db
     3232    jnbe short 02ad1h                         ; 77 0b
     3233    jne short 02addh                          ; 75 15
     3234    cmp word [bp-006h], 01000h                ; 81 7e fa 00 10
     3235    jnbe short 02ad1h                         ; 77 02
     3236    jne short 02addh                          ; 75 0c
     3237    mov bx, strict word 00024h                ; bb 24 00
     3238    mov ax, si                                ; 89 f0
     3239    mov dx, es                                ; 8c c2
     3240    call 01e5ah                               ; e8 7f f3
     3241    jmp short 02b00h                          ; eb 23
     3242    xor ah, ah                                ; 30 e4
     3243    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     3244    mov [bp-006h], es                         ; 8c 46 fa
     3245    mov di, si                                ; 89 f7
     3246    add di, ax                                ; 01 c7
     3247    mov word [es:di+028h], dx                 ; 26 89 55 28
     3248    mov bx, 000c4h                            ; bb c4 00
     3249    mov ax, si                                ; 89 f0
     3250    mov dx, es                                ; 8c c2
     3251    call 01e5ah                               ; e8 63 f3
     3252    mov es, [bp-006h]                         ; 8e 46 fa
     3253    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
     3254    lea sp, [bp-004h]                         ; 8d 66 fc
     3255    pop di                                    ; 5f
     3256    pop si                                    ; 5e
     3257    pop bp                                    ; 5d
     3258    retn 00004h                               ; c2 04 00
     3259@ata_write_sectors:                          ; 0xf2b09 LB 0x5b
    29743260    push bp                                   ; 55
    29753261    mov bp, sp                                ; 89 e5
     
    29773263    push di                                   ; 57
    29783264    push ax                                   ; 50
    2979     mov si, word [bp+004h]                    ; 8b 76 04
    2980     mov es, [bp+006h]                         ; 8e 46 06
    2981     mov bl, byte [es:si+008h]                 ; 26 8a 5c 08
    2982     mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
    2983     mov dx, cx                                ; 89 ca
    2984     sal dx, 009h                              ; c1 e2 09
    2985     mov ax, word [es:si+012h]                 ; 26 8b 44 12
    2986     test ax, ax                               ; 85 c0
    2987     je short 02806h                           ; 74 0d
    2988     movzx di, bl                              ; 0f b6 fb
    2989     imul di, di, strict byte 00018h           ; 6b ff 18
    2990     mov [bp-006h], es                         ; 8c 46 fa
    2991     add di, si                                ; 01 f7
    2992     jmp short 02832h                          ; eb 2c
     3265    les si, [bp+004h]                         ; c4 76 04
     3266    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
     3267    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
     3268    je short 02b29h                           ; 74 0c
     3269    mov bx, strict word 00030h                ; bb 30 00
     3270    mov ax, si                                ; 89 f0
     3271    mov dx, es                                ; 8c c2
     3272    call 02798h                               ; e8 71 fc
     3273    jmp short 02b5bh                          ; eb 32
     3274    xor ax, ax                                ; 31 c0
     3275    xor bx, bx                                ; 31 db
     3276    xor dx, dx                                ; 31 d2
    29933277    mov di, word [es:si]                      ; 26 8b 3c
    29943278    add di, cx                                ; 01 cf
    29953279    mov word [bp-006h], di                    ; 89 7e fa
    29963280    adc ax, word [es:si+002h]                 ; 26 13 44 02
     3281    adc bx, word [es:si+004h]                 ; 26 13 5c 04
     3282    adc dx, word [es:si+006h]                 ; 26 13 54 06
     3283    test dx, dx                               ; 85 d2
     3284    jnbe short 02b56h                         ; 77 0f
     3285    jne short 02b1dh                          ; 75 d4
     3286    test bx, bx                               ; 85 db
     3287    jnbe short 02b56h                         ; 77 09
     3288    jne short 02b1dh                          ; 75 ce
    29973289    cmp ax, 01000h                            ; 3d 00 10
    2998     jnbe short 02819h                         ; 77 02
    2999     jne short 02825h                          ; 75 0c
    3000     mov bx, strict word 00024h                ; bb 24 00
    3001     mov ax, si                                ; 89 f0
    3002     mov dx, es                                ; 8c c2
    3003     call 01d4fh                               ; e8 2c f5
    3004     jmp short 02849h                          ; eb 24
    3005     movzx ax, bl                              ; 0f b6 c3
    3006     imul ax, ax, strict byte 00018h           ; 6b c0 18
    3007     mov [bp-006h], es                         ; 8c 46 fa
    3008     mov di, si                                ; 89 f7
    3009     add di, ax                                ; 01 c7
    3010     mov word [es:di+024h], dx                 ; 26 89 55 24
    3011     mov bx, 000c4h                            ; bb c4 00
    3012     mov ax, si                                ; 89 f0
    3013     mov dx, es                                ; 8c c2
    3014     call 01d4fh                               ; e8 0f f5
    3015     mov es, [bp-006h]                         ; 8e 46 fa
    3016     mov word [es:di+024h], 00200h             ; 26 c7 45 24 00 02
     3290    jnbe short 02b56h                         ; 77 02
     3291    jne short 02b1dh                          ; 75 c7
     3292    mov bx, strict word 00034h                ; bb 34 00
     3293    jmp short 02b20h                          ; eb c5
    30173294    lea sp, [bp-004h]                         ; 8d 66 fc
    30183295    pop di                                    ; 5f
     
    30203297    pop bp                                    ; 5d
    30213298    retn 00004h                               ; c2 04 00
    3022 @ata_write_sectors:                          ; 0xf2852 LB 0x3d
    3023     push bp                                   ; 55
    3024     mov bp, sp                                ; 89 e5
    3025     push si                                   ; 56
    3026     les si, [bp+004h]                         ; c4 76 04
    3027     mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
    3028     cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00
    3029     je short 02870h                           ; 74 0c
    3030     mov bx, strict word 00030h                ; bb 30 00
    3031     mov ax, si                                ; 89 f0
    3032     mov dx, es                                ; 8c c2
    3033     call 025beh                               ; e8 50 fd
    3034     jmp short 02887h                          ; eb 17
    3035     xor ax, ax                                ; 31 c0
    3036     mov dx, word [es:si]                      ; 26 8b 14
    3037     add dx, cx                                ; 01 ca
    3038     adc ax, word [es:si+002h]                 ; 26 13 44 02
    3039     cmp ax, 01000h                            ; 3d 00 10
    3040     jnbe short 02882h                         ; 77 02
    3041     jne short 02864h                          ; 75 e2
    3042     mov bx, strict word 00034h                ; bb 34 00
    3043     jmp short 02867h                          ; eb e0
    3044     lea sp, [bp-002h]                         ; 8d 66 fe
    3045     pop si                                    ; 5e
    3046     pop bp                                    ; 5d
    3047     retn 00004h                               ; c2 04 00
    3048 ata_cmd_packet_:                             ; 0xf288f LB 0x2e8
     3299ata_cmd_packet_:                             ; 0xf2b64 LB 0x2e8
    30493300    push bp                                   ; 55
    30503301    mov bp, sp                                ; 89 e5
     
    30573308    mov dx, strict word 0000eh                ; ba 0e 00
    30583309    mov ax, strict word 00040h                ; b8 40 00
    3059     call 0166ch                               ; e8 c6 ed
     3310    call 0166ch                               ; e8 f1 ea
    30603311    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
    30613312    mov word [bp-00eh], ax                    ; 89 46 f2
     
    30663317    mov byte [bp-006h], ah                    ; 88 66 fa
    30673318    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    3068     jne short 028e1h                          ; 75 1f
    3069     mov bx, 00da2h                            ; bb a2 0d
     3319    jne short 02bb6h                          ; 75 1f
     3320    mov bx, 00da0h                            ; bb a0 0d
    30703321    mov cx, ds                                ; 8c d9
    30713322    mov ax, strict word 00004h                ; b8 04 00
    3072     call 01931h                               ; e8 64 f0
    3073     push 00201h                               ; 68 01 02
    3074     push 00210h                               ; 68 10 02
     3323    call 01931h                               ; e8 8f ed
     3324    push 00221h                               ; 68 21 02
     3325    push 00230h                               ; 68 30 02
    30753326    push strict byte 00004h                   ; 6a 04
    3076     call 01972h                               ; e8 9a f0
     3327    call 01972h                               ; e8 c5 ed
    30773328    add sp, strict byte 00006h                ; 83 c4 06
    30783329    mov dx, strict word 00001h                ; ba 01 00
    3079     jmp near 02b6ch                           ; e9 8b 02
     3330    jmp near 02e41h                           ; e9 8b 02
    30803331    test byte [bp+004h], 001h                 ; f6 46 04 01
    3081     jne short 028dbh                          ; 75 f4
     3332    jne short 02bb0h                          ; 75 f4
    30823333    xor ah, ah                                ; 30 e4
    30833334    imul ax, ax, strict byte 00006h           ; 6b c0 06
     
    30853336    mov si, word [bp-012h]                    ; 8b 76 ee
    30863337    add si, ax                                ; 01 c6
    3087     mov bx, word [es:si+001c2h]               ; 26 8b 9c c2 01
    3088     mov ax, word [es:si+001c4h]               ; 26 8b 84 c4 01
     3338    mov bx, word [es:si+00206h]               ; 26 8b 9c 06 02
     3339    mov ax, word [es:si+00208h]               ; 26 8b 84 08 02
    30893340    mov word [bp-010h], ax                    ; 89 46 f0
    3090     imul si, word [bp-01ah], strict byte 00018h ; 6b 76 e6 18
     3341    imul si, word [bp-01ah], strict byte 0001ch ; 6b 76 e6 1c
    30913342    add si, word [bp-012h]                    ; 03 76 ee
    3092     mov al, byte [es:si+022h]                 ; 26 8a 44 22
     3343    mov al, byte [es:si+026h]                 ; 26 8a 44 26
    30933344    mov byte [bp-00ah], al                    ; 88 46 f6
    30943345    xor ax, ax                                ; 31 c0
     
    30973348    mov al, byte [bp-008h]                    ; 8a 46 f8
    30983349    cmp AL, strict byte 00ch                  ; 3c 0c
    3099     jnc short 02924h                          ; 73 06
     3350    jnc short 02bf9h                          ; 73 06
    31003351    mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
    3101     jmp short 0292ah                          ; eb 06
    3102     jbe short 0292ah                          ; 76 04
     3352    jmp short 02bffh                          ; eb 06
     3353    jbe short 02bffh                          ; 76 04
    31033354    mov byte [bp-008h], 010h                  ; c6 46 f8 10
    31043355    shr byte [bp-008h], 1                     ; d0 6e f8
    31053356    mov es, [bp-00eh]                         ; 8e 46 f2
    31063357    mov si, word [bp-012h]                    ; 8b 76 ee
    3107     db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
    3108     ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00
    3109     mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
     3358    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
     3359    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
     3360    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
    31103361    lea dx, [bx+007h]                         ; 8d 57 07
    31113362    in AL, DX                                 ; ec
     
    31133364    ; sub ah, ah                                ; 2a e4
    31143365    test AL, strict byte 080h                 ; a8 80
    3115     je short 02952h                           ; 74 06
     3366    je short 02c27h                           ; 74 06
    31163367    mov dx, strict word 00002h                ; ba 02 00
    3117     jmp near 02b6ch                           ; e9 1a 02
     3368    jmp near 02e41h                           ; e9 1a 02
    31183369    mov dx, word [bp-010h]                    ; 8b 56 f0
    31193370    add dx, strict byte 00006h                ; 83 c2 06
     
    31273378    out DX, AL                                ; ee
    31283379    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    3129     je short 02972h                           ; 74 05
     3380    je short 02c47h                           ; 74 05
    31303381    mov ax, 000b0h                            ; b8 b0 00
    3131     jmp short 02975h                          ; eb 03
     3382    jmp short 02c4ah                          ; eb 03
    31323383    mov ax, 000a0h                            ; b8 a0 00
    31333384    lea dx, [bx+006h]                         ; 8d 57 06
     
    31423393    mov dl, al                                ; 88 c2
    31433394    test AL, strict byte 080h                 ; a8 80
    3144     jne short 0297fh                          ; 75 f4
     3395    jne short 02c54h                          ; 75 f4
    31453396    test AL, strict byte 001h                 ; a8 01
    3146     je short 0299eh                           ; 74 0f
     3397    je short 02c73h                           ; 74 0f
    31473398    mov dx, word [bp-010h]                    ; 8b 56 f0
    31483399    add dx, strict byte 00006h                ; 83 c2 06
     
    31503401    out DX, AL                                ; ee
    31513402    mov dx, strict word 00003h                ; ba 03 00
    3152     jmp near 02b6ch                           ; e9 ce 01
     3403    jmp near 02e41h                           ; e9 ce 01
    31533404    test dl, 008h                             ; f6 c2 08
    3154     jne short 029b2h                          ; 75 0f
     3405    jne short 02c87h                          ; 75 0f
    31553406    mov dx, word [bp-010h]                    ; 8b 56 f0
    31563407    add dx, strict byte 00006h                ; 83 c2 06
     
    31583409    out DX, AL                                ; ee
    31593410    mov dx, strict word 00004h                ; ba 04 00
    3160     jmp near 02b6ch                           ; e9 ba 01
     3411    jmp near 02e41h                           ; e9 ba 01
    31613412    sti                                       ; fb
    31623413    mov ax, di                                ; 89 f8
     
    31713422    ; rep es outsw                              ; f3 26 6f
    31723423    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
    3173     jne short 029dbh                          ; 75 0b
     3424    jne short 02cb0h                          ; 75 0b
    31743425    lea dx, [bx+007h]                         ; 8d 57 07
    31753426    in AL, DX                                 ; ec
     
    31773428    ; sub ah, ah                                ; 2a e4
    31783429    mov dl, al                                ; 88 c2
    3179     jmp near 02b4dh                           ; e9 72 01
     3430    jmp near 02e22h                           ; e9 72 01
    31803431    lea dx, [bx+007h]                         ; 8d 57 07
    31813432    in AL, DX                                 ; ec
     
    31843435    mov dl, al                                ; 88 c2
    31853436    test AL, strict byte 080h                 ; a8 80
    3186     jne short 029dbh                          ; 75 f4
     3437    jne short 02cb0h                          ; 75 f4
    31873438    test AL, strict byte 088h                 ; a8 88
    3188     je near 02b4dh                            ; 0f 84 60 01
     3439    je near 02e22h                            ; 0f 84 60 01
    31893440    test AL, strict byte 001h                 ; a8 01
    3190     je short 029fch                           ; 74 0b
     3441    je short 02cd1h                           ; 74 0b
    31913442    mov dx, word [bp-010h]                    ; 8b 56 f0
    31923443    add dx, strict byte 00006h                ; 83 c2 06
    31933444    mov AL, strict byte 008h                  ; b0 08
    31943445    out DX, AL                                ; ee
    3195     jmp short 02998h                          ; eb 9c
     3446    jmp short 02c6dh                          ; eb 9c
    31963447    mov al, dl                                ; 88 d0
    31973448    and AL, strict byte 0c9h                  ; 24 c9
    31983449    cmp AL, strict byte 048h                  ; 3c 48
    3199     je short 02a0fh                           ; 74 0b
     3450    je short 02ce4h                           ; 74 0b
    32003451    mov dx, word [bp-010h]                    ; 8b 56 f0
    32013452    add dx, strict byte 00006h                ; 83 c2 06
    32023453    mov AL, strict byte 008h                  ; b0 08
    32033454    out DX, AL                                ; ee
    3204     jmp short 029ach                          ; eb 9d
     3455    jmp short 02c81h                          ; eb 9d
    32053456    mov ax, word [bp+00ch]                    ; 8b 46 0c
    32063457    shr ax, 004h                              ; c1 e8 04
     
    32253476    mov ax, word [bp+004h]                    ; 8b 46 04
    32263477    cmp ax, cx                                ; 39 c8
    3227     jbe short 02a4fh                          ; 76 0c
     3478    jbe short 02d24h                          ; 76 0c
    32283479    mov ax, cx                                ; 89 c8
    32293480    sub word [bp+004h], cx                    ; 29 4e 04
    32303481    xor ax, cx                                ; 31 c8
    32313482    mov word [bp-014h], ax                    ; 89 46 ec
    3232     jmp short 02a59h                          ; eb 0a
     3483    jmp short 02d2eh                          ; eb 0a
    32333484    mov cx, ax                                ; 89 c1
    32343485    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    32363487    xor ax, ax                                ; 31 c0
    32373488    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    3238     jne short 02a82h                          ; 75 21
     3489    jne short 02d57h                          ; 75 21
    32393490    mov dx, word [bp-014h]                    ; 8b 56 ec
    32403491    cmp dx, word [bp+006h]                    ; 3b 56 06
    3241     jbe short 02a82h                          ; 76 19
     3492    jbe short 02d57h                          ; 76 19
    32423493    mov ax, word [bp-014h]                    ; 8b 46 ec
    32433494    sub ax, word [bp+006h]                    ; 2b 46 06
     
    32483499    mov word [bp+006h], ax                    ; 89 46 06
    32493500    mov word [bp+008h], ax                    ; 89 46 08
    3250     jmp short 02a8eh                          ; eb 0c
     3501    jmp short 02d63h                          ; eb 0c
    32513502    mov word [bp-00ch], ax                    ; 89 46 f4
    32523503    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    32563507    mov al, byte [bp-00ah]                    ; 8a 46 f6
    32573508    test cl, 003h                             ; f6 c1 03
    3258     je short 02a9bh                           ; 74 02
     3509    je short 02d70h                           ; 74 02
    32593510    xor al, al                                ; 30 c0
    32603511    test byte [bp-014h], 003h                 ; f6 46 ec 03
    3261     je short 02aa3h                           ; 74 02
     3512    je short 02d78h                           ; 74 02
    32623513    xor al, al                                ; 30 c0
    32633514    test byte [bp-00ch], 003h                 ; f6 46 f4 03
    3264     je short 02aabh                           ; 74 02
     3515    je short 02d80h                           ; 74 02
    32653516    xor al, al                                ; 30 c0
    32663517    test byte [bp-014h], 001h                 ; f6 46 ec 01
    3267     je short 02ac3h                           ; 74 12
     3518    je short 02d98h                           ; 74 12
    32683519    inc word [bp-014h]                        ; ff 46 ec
    32693520    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    3270     jbe short 02ac3h                          ; 76 09
     3521    jbe short 02d98h                          ; 76 09
    32713522    test byte [bp-00ch], 001h                 ; f6 46 f4 01
    3272     je short 02ac3h                           ; 74 03
     3523    je short 02d98h                           ; 74 03
    32733524    dec word [bp-00ch]                        ; ff 4e f4
    32743525    cmp AL, strict byte 001h                  ; 3c 01
    3275     jne short 02ad4h                          ; 75 0d
     3526    jne short 02da9h                          ; 75 0d
    32763527    shr word [bp-014h], 002h                  ; c1 6e ec 02
    32773528    shr cx, 002h                              ; c1 e9 02
    32783529    shr word [bp-00ch], 002h                  ; c1 6e f4 02
    3279     jmp short 02adch                          ; eb 08
     3530    jmp short 02db1h                          ; eb 08
    32803531    shr word [bp-014h], 1                     ; d1 6e ec
    32813532    shr cx, 1                                 ; d1 e9
    32823533    shr word [bp-00ch], 1                     ; d1 6e f4
    32833534    cmp AL, strict byte 001h                  ; 3c 01
    3284     jne short 02b0ch                          ; 75 2c
     3535    jne short 02de1h                          ; 75 2c
    32853536    test cx, cx                               ; 85 c9
    3286     je short 02aeeh                           ; 74 0a
     3537    je short 02dc3h                           ; 74 0a
    32873538    mov dx, bx                                ; 89 da
    32883539    push eax                                  ; 66 50
    32893540    in eax, DX                                ; 66 ed
    3290     loop 02ae8h                               ; e2 fc
     3541    loop 02dbdh                               ; e2 fc
    32913542    pop eax                                   ; 66 58
    32923543    mov dx, bx                                ; 89 da
     
    32973548    mov ax, word [bp-00ch]                    ; 8b 46 f4
    32983549    test ax, ax                               ; 85 c0
    3299     je short 02b2bh                           ; 74 2b
     3550    je short 02e00h                           ; 74 2b
    33003551    mov cx, ax                                ; 89 c1
    33013552    push eax                                  ; 66 50
    33023553    in eax, DX                                ; 66 ed
    3303     loop 02b04h                               ; e2 fc
     3554    loop 02dd9h                               ; e2 fc
    33043555    pop eax                                   ; 66 58
    3305     jmp short 02b2bh                          ; eb 1f
     3556    jmp short 02e00h                          ; eb 1f
    33063557    test cx, cx                               ; 85 c9
    3307     je short 02b15h                           ; 74 05
     3558    je short 02deah                           ; 74 05
    33083559    mov dx, bx                                ; 89 da
    33093560    in ax, DX                                 ; ed
    3310     loop 02b12h                               ; e2 fd
     3561    loop 02de7h                               ; e2 fd
    33113562    mov dx, bx                                ; 89 da
    33123563    mov cx, word [bp-014h]                    ; 8b 4e ec
     
    33153566    mov ax, word [bp-00ch]                    ; 8b 46 f4
    33163567    test ax, ax                               ; 85 c0
    3317     je short 02b2bh                           ; 74 05
     3568    je short 02e00h                           ; 74 05
    33183569    mov cx, ax                                ; 89 c1
    33193570    in ax, DX                                 ; ed
    3320     loop 02b28h                               ; e2 fd
     3571    loop 02dfdh                               ; e2 fd
    33213572    add word [bp+00ch], si                    ; 01 76 0c
    33223573    xor ax, ax                                ; 31 c0
     
    33263577    mov es, [bp-00eh]                         ; 8e 46 f2
    33273578    mov si, word [bp-012h]                    ; 8b 76 ee
    3328     mov word [es:si+016h], ax                 ; 26 89 44 16
     3579    mov word [es:si+01ah], ax                 ; 26 89 44 1a
    33293580    mov ax, word [bp-016h]                    ; 8b 46 ea
    3330     mov word [es:si+018h], ax                 ; 26 89 44 18
    3331     jmp near 029dbh                           ; e9 8e fe
     3581    mov word [es:si+01ch], ax                 ; 26 89 44 1c
     3582    jmp near 02cb0h                           ; e9 8e fe
    33323583    mov al, dl                                ; 88 d0
    33333584    and AL, strict byte 0e9h                  ; 24 e9
    33343585    cmp AL, strict byte 040h                  ; 3c 40
    3335     je short 02b61h                           ; 74 0c
     3586    je short 02e36h                           ; 74 0c
    33363587    mov dx, word [bp-010h]                    ; 8b 56 f0
    33373588    add dx, strict byte 00006h                ; 83 c2 06
    33383589    mov AL, strict byte 008h                  ; b0 08
    33393590    out DX, AL                                ; ee
    3340     jmp near 029ach                           ; e9 4b fe
     3591    jmp near 02c81h                           ; e9 4b fe
    33413592    mov dx, word [bp-010h]                    ; 8b 56 f0
    33423593    add dx, strict byte 00006h                ; 83 c2 06
     
    33503601    pop bp                                    ; 5d
    33513602    retn 0000ch                               ; c2 0c 00
    3352 ata_soft_reset_:                             ; 0xf2b77 LB 0x80
     3603ata_soft_reset_:                             ; 0xf2e4c LB 0x80
    33533604    push bp                                   ; 55
    33543605    mov bp, sp                                ; 89 e5
     
    33603611    mov dx, strict word 0000eh                ; ba 0e 00
    33613612    mov ax, strict word 00040h                ; b8 40 00
    3362     call 0166ch                               ; e8 e3 ea
     3613    call 0166ch                               ; e8 0e e8
    33633614    mov dx, bx                                ; 89 da
    33643615    shr dx, 1                                 ; d1 ea
     
    33693620    mov es, ax                                ; 8e c0
    33703621    add bx, 00122h                            ; 81 c3 22 01
    3371     mov cx, word [es:bx+001c2h]               ; 26 8b 8f c2 01
    3372     mov bx, word [es:bx+001c4h]               ; 26 8b 9f c4 01
     3622    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
     3623    mov bx, word [es:bx+00208h]               ; 26 8b 9f 08 02
    33733624    lea dx, [bx+006h]                         ; 8d 57 06
    33743625    mov AL, strict byte 00ah                  ; b0 0a
    33753626    out DX, AL                                ; ee
    33763627    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3377     je short 02bb9h                           ; 74 05
     3628    je short 02e8eh                           ; 74 05
    33783629    mov ax, 000b0h                            ; b8 b0 00
    3379     jmp short 02bbch                          ; eb 03
     3630    jmp short 02e91h                          ; eb 03
    33803631    mov ax, 000a0h                            ; b8 a0 00
    33813632    mov dx, cx                                ; 89 ca
     
    33923643    ; sub ah, ah                                ; 2a e4
    33933644    test AL, strict byte 080h                 ; a8 80
    3394     jne short 02bcah                          ; 75 f4
     3645    jne short 02e9fh                          ; 75 f4
    33953646    and AL, strict byte 0e9h                  ; 24 e9
    33963647    cmp AL, strict byte 040h                  ; 3c 40
    3397     je short 02be7h                           ; 74 0b
     3648    je short 02ebch                           ; 74 0b
    33983649    lea dx, [bx+006h]                         ; 8d 57 06
    33993650    mov AL, strict byte 008h                  ; b0 08
    34003651    out DX, AL                                ; ee
    34013652    mov ax, strict word 00001h                ; b8 01 00
    3402     jmp short 02befh                          ; eb 08
     3653    jmp short 02ec4h                          ; eb 08
    34033654    lea dx, [bx+006h]                         ; 8d 57 06
    34043655    mov AL, strict byte 008h                  ; b0 08
     
    34113662    pop bp                                    ; 5d
    34123663    retn                                      ; c3
    3413 set_diskette_ret_status_:                    ; 0xf2bf7 LB 0x18
     3664set_diskette_ret_status_:                    ; 0xf2ecc LB 0x18
    34143665    push bp                                   ; 55
    34153666    mov bp, sp                                ; 89 e5
     
    34193670    mov dx, strict word 00041h                ; ba 41 00
    34203671    mov ax, strict word 00040h                ; b8 40 00
    3421     call 0165eh                               ; e8 56 ea
     3672    call 0165eh                               ; e8 81 e7
    34223673    lea sp, [bp-004h]                         ; 8d 66 fc
    34233674    pop dx                                    ; 5a
     
    34253676    pop bp                                    ; 5d
    34263677    retn                                      ; c3
    3427 set_diskette_current_cyl_:                   ; 0xf2c0f LB 0x2d
     3678set_diskette_current_cyl_:                   ; 0xf2ee4 LB 0x2d
    34283679    push bp                                   ; 55
    34293680    mov bp, sp                                ; 89 e5
     
    34313682    mov bl, al                                ; 88 c3
    34323683    cmp AL, strict byte 001h                  ; 3c 01
    3433     jbe short 02c24h                          ; 76 0b
    3434     push 00230h                               ; 68 30 02
     3684    jbe short 02ef9h                          ; 76 0b
     3685    push 00250h                               ; 68 50 02
    34353686    push strict byte 00007h                   ; 6a 07
    3436     call 01972h                               ; e8 51 ed
     3687    call 01972h                               ; e8 7c ea
    34373688    add sp, strict byte 00004h                ; 83 c4 04
    34383689    movzx ax, dl                              ; 0f b6 c2
     
    34413692    mov bx, ax                                ; 89 c3
    34423693    mov ax, strict word 00040h                ; b8 40 00
    3443     call 0165eh                               ; e8 28 ea
     3694    call 0165eh                               ; e8 53 e7
    34443695    lea sp, [bp-002h]                         ; 8d 66 fe
    34453696    pop bx                                    ; 5b
    34463697    pop bp                                    ; 5d
    34473698    retn                                      ; c3
    3448 floppy_wait_for_interrupt_:                  ; 0xf2c3c LB 0x21
     3699floppy_wait_for_interrupt_:                  ; 0xf2f11 LB 0x21
    34493700    push bp                                   ; 55
    34503701    mov bp, sp                                ; 89 e5
     
    34533704    mov dx, strict word 0003eh                ; ba 3e 00
    34543705    mov ax, strict word 00040h                ; b8 40 00
    3455     call 01650h                               ; e8 06 ea
     3706    call 01650h                               ; e8 31 e7
    34563707    test AL, strict byte 080h                 ; a8 80
    3457     je short 02c52h                           ; 74 04
     3708    je short 02f27h                           ; 74 04
    34583709    and AL, strict byte 080h                  ; 24 80
    3459     jmp short 02c57h                          ; eb 05
     3710    jmp short 02f2ch                          ; eb 05
    34603711    sti                                       ; fb
    34613712    hlt                                       ; f4
    34623713    cli                                       ; fa
    3463     jmp short 02c41h                          ; eb ea
     3714    jmp short 02f16h                          ; eb ea
    34643715    lea sp, [bp-002h]                         ; 8d 66 fe
    34653716    pop dx                                    ; 5a
    34663717    pop bp                                    ; 5d
    34673718    retn                                      ; c3
    3468 floppy_wait_for_interrupt_or_timeout_:       ; 0xf2c5d LB 0x46
     3719floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f32 LB 0x46
    34693720    push bp                                   ; 55
    34703721    mov bp, sp                                ; 89 e5
     
    34753726    mov dx, strict word 00040h                ; ba 40 00
    34763727    mov ax, dx                                ; 89 d0
    3477     call 01650h                               ; e8 e4 e9
     3728    call 01650h                               ; e8 0f e7
    34783729    test al, al                               ; 84 c0
    3479     jne short 02c75h                          ; 75 05
     3730    jne short 02f4ah                          ; 75 05
    34803731    sti                                       ; fb
    34813732    xor cl, cl                                ; 30 c9
    3482     jmp short 02c99h                          ; eb 24
     3733    jmp short 02f6eh                          ; eb 24
    34833734    mov dx, strict word 0003eh                ; ba 3e 00
    34843735    mov ax, strict word 00040h                ; b8 40 00
    3485     call 01650h                               ; e8 d2 e9
     3736    call 01650h                               ; e8 fd e6
    34863737    mov cl, al                                ; 88 c1
    34873738    test AL, strict byte 080h                 ; a8 80
    3488     je short 02c94h                           ; 74 10
     3739    je short 02f69h                           ; 74 10
    34893740    and AL, strict byte 07fh                  ; 24 7f
    34903741    movzx bx, al                              ; 0f b6 d8
    34913742    mov dx, strict word 0003eh                ; ba 3e 00
    34923743    mov ax, strict word 00040h                ; b8 40 00
    3493     call 0165eh                               ; e8 cc e9
    3494     jmp short 02c99h                          ; eb 05
     3744    call 0165eh                               ; e8 f7 e6
     3745    jmp short 02f6eh                          ; eb 05
    34953746    sti                                       ; fb
    34963747    hlt                                       ; f4
    34973748    cli                                       ; fa
    3498     jmp short 02c64h                          ; eb cb
     3749    jmp short 02f39h                          ; eb cb
    34993750    mov al, cl                                ; 88 c8
    35003751    lea sp, [bp-006h]                         ; 8d 66 fa
     
    35043755    pop bp                                    ; 5d
    35053756    retn                                      ; c3
    3506 floppy_reset_controller_:                    ; 0xf2ca3 LB 0x2b
     3757floppy_reset_controller_:                    ; 0xf2f78 LB 0x2b
    35073758    push bp                                   ; 55
    35083759    mov bp, sp                                ; 89 e5
     
    35263777    and AL, strict byte 0c0h                  ; 24 c0
    35273778    cmp AL, strict byte 080h                  ; 3c 80
    3528     jne short 02cbbh                          ; 75 f4
     3779    jne short 02f90h                          ; 75 f4
    35293780    lea sp, [bp-004h]                         ; 8d 66 fc
    35303781    pop dx                                    ; 5a
     
    35323783    pop bp                                    ; 5d
    35333784    retn                                      ; c3
    3534 floppy_prepare_controller_:                  ; 0xf2cce LB 0x81
     3785floppy_prepare_controller_:                  ; 0xf2fa3 LB 0x81
    35353786    push bp                                   ; 55
    35363787    mov bp, sp                                ; 89 e5
     
    35423793    mov dx, strict word 0003eh                ; ba 3e 00
    35433794    mov ax, strict word 00040h                ; b8 40 00
    3544     call 01650h                               ; e8 70 e9
     3795    call 01650h                               ; e8 9b e6
    35453796    and AL, strict byte 07fh                  ; 24 7f
    35463797    movzx bx, al                              ; 0f b6 d8
    35473798    mov dx, strict word 0003eh                ; ba 3e 00
    35483799    mov ax, strict word 00040h                ; b8 40 00
    3549     call 0165eh                               ; e8 70 e9
     3800    call 0165eh                               ; e8 9b e6
    35503801    mov dx, 003f2h                            ; ba f2 03
    35513802    in AL, DX                                 ; ec
     
    35553806    mov byte [bp-008h], al                    ; 88 46 f8
    35563807    test cx, cx                               ; 85 c9
    3557     je short 02d01h                           ; 74 04
     3808    je short 02fd6h                           ; 74 04
    35583809    mov AL, strict byte 020h                  ; b0 20
    3559     jmp short 02d03h                          ; eb 02
     3810    jmp short 02fd8h                          ; eb 02
    35603811    mov AL, strict byte 010h                  ; b0 10
    35613812    or AL, strict byte 00ch                   ; 0c 0c
     
    35663817    mov dx, strict word 00040h                ; ba 40 00
    35673818    mov ax, dx                                ; 89 d0
    3568     call 0165eh                               ; e8 48 e9
     3819    call 0165eh                               ; e8 73 e6
    35693820    mov dx, 0008bh                            ; ba 8b 00
    35703821    mov ax, strict word 00040h                ; b8 40 00
    3571     call 01650h                               ; e8 31 e9
     3822    call 01650h                               ; e8 5c e6
    35723823    shr al, 006h                              ; c0 e8 06
    35733824    mov dx, 003f7h                            ; ba f7 03
     
    35793830    and AL, strict byte 0c0h                  ; 24 c0
    35803831    cmp AL, strict byte 080h                  ; 3c 80
    3581     jne short 02d26h                          ; 75 f4
     3832    jne short 02ffbh                          ; 75 f4
    35823833    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3583     jne short 02d47h                          ; 75 0f
    3584     call 02c3ch                               ; e8 01 ff
     3834    jne short 0301ch                          ; 75 0f
     3835    call 02f11h                               ; e8 01 ff
    35853836    movzx bx, al                              ; 0f b6 d8
    35863837    mov dx, strict word 0003eh                ; ba 3e 00
    35873838    mov ax, strict word 00040h                ; b8 40 00
    3588     call 0165eh                               ; e8 17 e9
     3839    call 0165eh                               ; e8 42 e6
    35893840    lea sp, [bp-006h]                         ; 8d 66 fa
    35903841    pop dx                                    ; 5a
     
    35933844    pop bp                                    ; 5d
    35943845    retn                                      ; c3
    3595 floppy_media_known_:                         ; 0xf2d4f LB 0x43
     3846floppy_media_known_:                         ; 0xf3024 LB 0x43
    35963847    push bp                                   ; 55
    35973848    mov bp, sp                                ; 89 e5
     
    36013852    mov dx, strict word 0003eh                ; ba 3e 00
    36023853    mov ax, strict word 00040h                ; b8 40 00
    3603     call 01650h                               ; e8 f1 e8
     3854    call 01650h                               ; e8 1c e6
    36043855    mov ah, al                                ; 88 c4
    36053856    test bx, bx                               ; 85 db
    3606     je short 02d67h                           ; 74 02
     3857    je short 0303ch                           ; 74 02
    36073858    shr al, 1                                 ; d0 e8
    36083859    and AL, strict byte 001h                  ; 24 01
    3609     jne short 02d6fh                          ; 75 04
     3860    jne short 03044h                          ; 75 04
    36103861    xor ah, ah                                ; 30 e4
    3611     jmp short 02d8bh                          ; eb 1c
     3862    jmp short 03060h                          ; eb 1c
    36123863    mov dx, 00090h                            ; ba 90 00
    36133864    test bx, bx                               ; 85 db
    3614     je short 02d79h                           ; 74 03
     3865    je short 0304eh                           ; 74 03
    36153866    mov dx, 00091h                            ; ba 91 00
    36163867    mov ax, strict word 00040h                ; b8 40 00
    3617     call 01650h                               ; e8 d1 e8
     3868    call 01650h                               ; e8 fc e5
    36183869    xor ah, ah                                ; 30 e4
    36193870    sar ax, 004h                              ; c1 f8 04
    36203871    and AL, strict byte 001h                  ; 24 01
    3621     je short 02d6bh                           ; 74 e3
     3872    je short 03040h                           ; 74 e3
    36223873    mov ax, strict word 00001h                ; b8 01 00
    36233874    lea sp, [bp-004h]                         ; 8d 66 fc
     
    36263877    pop bp                                    ; 5d
    36273878    retn                                      ; c3
    3628 floppy_read_id_:                             ; 0xf2d92 LB 0x40
     3879floppy_read_id_:                             ; 0xf3067 LB 0x40
    36293880    push bp                                   ; 55
    36303881    mov bp, sp                                ; 89 e5
     
    36343885    sub sp, strict byte 00008h                ; 83 ec 08
    36353886    mov bx, ax                                ; 89 c3
    3636     call 02cceh                               ; e8 2e ff
     3887    call 02fa3h                               ; e8 2e ff
    36373888    mov AL, strict byte 04ah                  ; b0 4a
    36383889    mov dx, 003f5h                            ; ba f5 03
     
    36403891    mov al, bl                                ; 88 d8
    36413892    out DX, AL                                ; ee
    3642     call 02c3ch                               ; e8 90 fe
     3893    call 02f11h                               ; e8 90 fe
    36433894    xor si, si                                ; 31 f6
    3644     jmp short 02db5h                          ; eb 05
     3895    jmp short 0308ah                          ; eb 05
    36453896    cmp si, strict byte 00007h                ; 83 fe 07
    3646     jnl short 02dc1h                          ; 7d 0c
     3897    jnl short 03096h                          ; 7d 0c
    36473898    mov dx, 003f5h                            ; ba f5 03
    36483899    in AL, DX                                 ; ec
     
    36513902    mov byte [bp+si-00eh], al                 ; 88 42 f2
    36523903    inc si                                    ; 46
    3653     jmp short 02db0h                          ; eb ef
     3904    jmp short 03085h                          ; eb ef
    36543905    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    36553906    db  00fh, 094h, 0c0h
     
    36623913    pop bp                                    ; 5d
    36633914    retn                                      ; c3
    3664 floppy_drive_recal_:                         ; 0xf2dd2 LB 0x48
     3915floppy_drive_recal_:                         ; 0xf30a7 LB 0x48
    36653916    push bp                                   ; 55
    36663917    mov bp, sp                                ; 89 e5
     
    36693920    push dx                                   ; 52
    36703921    mov bx, ax                                ; 89 c3
    3671     call 02cceh                               ; e8 f1 fe
     3922    call 02fa3h                               ; e8 f1 fe
    36723923    mov AL, strict byte 007h                  ; b0 07
    36733924    mov dx, 003f5h                            ; ba f5 03
     
    36753926    mov al, bl                                ; 88 d8
    36763927    out DX, AL                                ; ee
    3677     call 02c3ch                               ; e8 53 fe
     3928    call 02f11h                               ; e8 53 fe
    36783929    test bx, bx                               ; 85 db
    3679     je short 02df4h                           ; 74 07
     3930    je short 030c9h                           ; 74 07
    36803931    or AL, strict byte 002h                   ; 0c 02
    36813932    mov cx, 00095h                            ; b9 95 00
    3682     jmp short 02df9h                          ; eb 05
     3933    jmp short 030ceh                          ; eb 05
    36833934    or AL, strict byte 001h                   ; 0c 01
    36843935    mov cx, 00094h                            ; b9 94 00
     
    36863937    mov dx, strict word 0003eh                ; ba 3e 00
    36873938    mov ax, strict word 00040h                ; b8 40 00
    3688     call 0165eh                               ; e8 59 e8
     3939    call 0165eh                               ; e8 84 e5
    36893940    xor bx, bx                                ; 31 db
    36903941    mov dx, cx                                ; 89 ca
    36913942    mov ax, strict word 00040h                ; b8 40 00
    3692     call 0165eh                               ; e8 4f e8
     3943    call 0165eh                               ; e8 7a e5
    36933944    mov ax, strict word 00001h                ; b8 01 00
    36943945    lea sp, [bp-006h]                         ; 8d 66 fa
     
    36983949    pop bp                                    ; 5d
    36993950    retn                                      ; c3
    3700 floppy_media_sense_:                         ; 0xf2e1a LB 0xf0
     3951floppy_media_sense_:                         ; 0xf30ef LB 0xf0
    37013952    push bp                                   ; 55
    37023953    mov bp, sp                                ; 89 e5
     
    37073958    push di                                   ; 57
    37083959    mov di, ax                                ; 89 c7
    3709     call 02dd2h                               ; e8 ab ff
     3960    call 030a7h                               ; e8 ab ff
    37103961    test ax, ax                               ; 85 c0
    3711     jne short 02e30h                          ; 75 05
     3962    jne short 03105h                          ; 75 05
    37123963    xor cx, cx                                ; 31 c9
    3713     jmp near 02efeh                           ; e9 ce 00
     3964    jmp near 031d3h                           ; e9 ce 00
    37143965    mov ax, strict word 00010h                ; b8 10 00
    3715     call 016ach                               ; e8 76 e8
     3966    call 016ach                               ; e8 a1 e5
    37163967    test di, di                               ; 85 ff
    3717     jne short 02e41h                          ; 75 07
     3968    jne short 03116h                          ; 75 07
    37183969    mov cl, al                                ; 88 c1
    37193970    shr cl, 004h                              ; c0 e9 04
    3720     jmp short 02e46h                          ; eb 05
     3971    jmp short 0311bh                          ; eb 05
    37213972    mov cl, al                                ; 88 c1
    37223973    and cl, 00fh                              ; 80 e1 0f
    37233974    cmp cl, 001h                              ; 80 f9 01
    3724     jne short 02e54h                          ; 75 09
     3975    jne short 03129h                          ; 75 09
    37253976    xor cl, cl                                ; 30 c9
    37263977    mov CH, strict byte 015h                  ; b5 15
    37273978    mov si, strict word 00001h                ; be 01 00
    3728     jmp short 02e92h                          ; eb 3e
     3979    jmp short 03167h                          ; eb 3e
    37293980    cmp cl, 002h                              ; 80 f9 02
    3730     jne short 02e5fh                          ; 75 06
     3981    jne short 03134h                          ; 75 06
    37313982    xor cl, cl                                ; 30 c9
    37323983    mov CH, strict byte 035h                  ; b5 35
    3733     jmp short 02e4fh                          ; eb f0
     3984    jmp short 03124h                          ; eb f0
    37343985    cmp cl, 003h                              ; 80 f9 03
    3735     jne short 02e6ah                          ; 75 06
     3986    jne short 0313fh                          ; 75 06
    37363987    xor cl, cl                                ; 30 c9
    37373988    mov CH, strict byte 017h                  ; b5 17
    3738     jmp short 02e4fh                          ; eb e5
     3989    jmp short 03124h                          ; eb e5
    37393990    cmp cl, 004h                              ; 80 f9 04
    3740     jne short 02e75h                          ; 75 06
     3991    jne short 0314ah                          ; 75 06
    37413992    xor cl, cl                                ; 30 c9
    37423993    mov CH, strict byte 017h                  ; b5 17
    3743     jmp short 02e4fh                          ; eb da
     3994    jmp short 03124h                          ; eb da
    37443995    cmp cl, 005h                              ; 80 f9 05
    3745     jne short 02e80h                          ; 75 06
     3996    jne short 03155h                          ; 75 06
    37463997    mov CL, strict byte 0cch                  ; b1 cc
    37473998    mov CH, strict byte 0d7h                  ; b5 d7
    3748     jmp short 02e4fh                          ; eb cf
     3999    jmp short 03124h                          ; eb cf
    37494000    cmp cl, 00eh                              ; 80 f9 0e
    3750     je short 02e8ah                           ; 74 05
     4001    je short 0315fh                           ; 74 05
    37514002    cmp cl, 00fh                              ; 80 f9 0f
    3752     jne short 02e8ch                          ; 75 02
    3753     jmp short 02e7ah                          ; eb ee
     4003    jne short 03161h                          ; 75 02
     4004    jmp short 0314fh                          ; eb ee
    37544005    xor cl, cl                                ; 30 c9
    37554006    xor ch, ch                                ; 30 ed
     
    37584009    mov dx, 0008bh                            ; ba 8b 00
    37594010    mov ax, strict word 00040h                ; b8 40 00
    3760     call 0165eh                               ; e8 c0 e7
     4011    call 0165eh                               ; e8 eb e4
    37614012    mov ax, di                                ; 89 f8
    3762     call 02d92h                               ; e8 ef fe
     4013    call 03067h                               ; e8 ef fe
    37634014    test ax, ax                               ; 85 c0
    3764     jne short 02ed9h                          ; 75 32
     4015    jne short 031aeh                          ; 75 32
    37654016    mov al, cl                                ; 88 c8
    37664017    and AL, strict byte 0c0h                  ; 24 c0
    37674018    cmp AL, strict byte 080h                  ; 3c 80
    3768     je short 02ed9h                           ; 74 2a
     4019    je short 031aeh                           ; 74 2a
    37694020    mov al, cl                                ; 88 c8
    37704021    and AL, strict byte 0c0h                  ; 24 c0
    37714022    cmp AL, strict byte 0c0h                  ; 3c c0
    3772     je short 02ec6h                           ; 74 0f
     4023    je short 0319bh                           ; 74 0f
    37734024    mov ah, cl                                ; 88 cc
    37744025    and ah, 03fh                              ; 80 e4 3f
    37754026    cmp AL, strict byte 040h                  ; 3c 40
    3776     je short 02ed2h                           ; 74 12
     4027    je short 031a7h                           ; 74 12
    37774028    test al, al                               ; 84 c0
    3778     je short 02ecbh                           ; 74 07
    3779     jmp short 02e92h                          ; eb cc
     4029    je short 031a0h                           ; 74 07
     4030    jmp short 03167h                          ; eb cc
    37804031    and cl, 03fh                              ; 80 e1 3f
    3781     jmp short 02e92h                          ; eb c7
     4032    jmp short 03167h                          ; eb c7
    37824033    mov cl, ah                                ; 88 e1
    37834034    or cl, 040h                               ; 80 c9 40
    3784     jmp short 02e92h                          ; eb c0
     4035    jmp short 03167h                          ; eb c0
    37854036    mov cl, ah                                ; 88 e1
    37864037    or cl, 080h                               ; 80 c9 80
    3787     jmp short 02e92h                          ; eb b9
     4038    jmp short 03167h                          ; eb b9
    37884039    test di, di                               ; 85 ff
    37894040    db  00fh, 095h, 0c0h
     
    37944045    mov dx, 0008bh                            ; ba 8b 00
    37954046    mov ax, strict word 00040h                ; b8 40 00
    3796     call 0165eh                               ; e8 6d e7
     4047    call 0165eh                               ; e8 98 e4
    37974048    movzx bx, ch                              ; 0f b6 dd
    37984049    mov dx, di                                ; 89 fa
    37994050    mov ax, strict word 00040h                ; b8 40 00
    3800     call 0165eh                               ; e8 62 e7
     4051    call 0165eh                               ; e8 8d e4
    38014052    mov cx, si                                ; 89 f1
    38024053    mov ax, cx                                ; 89 c8
     
    38094060    pop bp                                    ; 5d
    38104061    retn                                      ; c3
    3811 floppy_drive_exists_:                        ; 0xf2f0a LB 0x24
     4062floppy_drive_exists_:                        ; 0xf31df LB 0x24
    38124063    push bp                                   ; 55
    38134064    mov bp, sp                                ; 89 e5
     
    38154066    mov dx, ax                                ; 89 c2
    38164067    mov ax, strict word 00010h                ; b8 10 00
    3817     call 016ach                               ; e8 96 e7
     4068    call 016ach                               ; e8 c1 e4
    38184069    test dx, dx                               ; 85 d2
    3819     jne short 02f1fh                          ; 75 05
     4070    jne short 031f4h                          ; 75 05
    38204071    shr al, 004h                              ; c0 e8 04
    3821     jmp short 02f21h                          ; eb 02
     4072    jmp short 031f6h                          ; eb 02
    38224073    and AL, strict byte 00fh                  ; 24 0f
    38234074    test al, al                               ; 84 c0
     
    38294080    pop bp                                    ; 5d
    38304081    retn                                      ; c3
    3831 _int13_diskette_function:                    ; 0xf2f2e LB 0x8f7
     4082_int13_diskette_function:                    ; 0xf3203 LB 0x8f7
    38324083    push bp                                   ; 55
    38334084    mov bp, sp                                ; 89 e5
     
    38474098    mov word [bp-010h], dx                    ; 89 56 f0
    38484099    cmp bl, 008h                              ; 80 fb 08
    3849     jc short 02f95h                           ; 72 38
     4100    jc short 0326ah                           ; 72 38
    38504101    mov dx, word [bp+01ch]                    ; 8b 56 1c
    38514102    or dl, 001h                               ; 80 ca 01
    38524103    cmp bl, 008h                              ; 80 fb 08
    3853     jbe near 034ebh                           ; 0f 86 81 05
     4104    jbe near 037c0h                           ; 0f 86 81 05
    38544105    cmp bl, 016h                              ; 80 fb 16
    3855     jc short 02f8bh                           ; 72 1c
     4106    jc short 03260h                           ; 72 1c
    38564107    or si, 00100h                             ; 81 ce 00 01
    38574108    cmp bl, 016h                              ; 80 fb 16
    3858     jbe near 0361fh                           ; 0f 86 a5 06
     4109    jbe near 038f4h                           ; 0f 86 a5 06
    38594110    cmp bl, 018h                              ; 80 fb 18
    3860     je near 036b5h                            ; 0f 84 34 07
     4111    je near 0398ah                            ; 0f 84 34 07
    38614112    cmp bl, 017h                              ; 80 fb 17
    3862     je near 03643h                            ; 0f 84 bb 06
    3863     jmp near 03802h                           ; e9 77 08
     4113    je near 03918h                            ; 0f 84 bb 06
     4114    jmp near 03ad7h                           ; e9 77 08
    38644115    cmp bl, 015h                              ; 80 fb 15
    3865     je near 035dbh                            ; 0f 84 49 06
    3866     jmp near 03802h                           ; e9 6d 08
     4116    je near 038b0h                            ; 0f 84 49 06
     4117    jmp near 03ad7h                           ; e9 6d 08
    38674118    cmp bl, 001h                              ; 80 fb 01
    3868     jc short 02fafh                           ; 72 15
    3869     jbe near 03028h                           ; 0f 86 8a 00
     4119    jc short 03284h                           ; 72 15
     4120    jbe near 032fdh                           ; 0f 86 8a 00
    38704121    cmp bl, 005h                              ; 80 fb 05
    3871     je near 03365h                            ; 0f 84 c0 03
     4122    je near 0363ah                            ; 0f 84 c0 03
    38724123    cmp bl, 004h                              ; 80 fb 04
    3873     jbe near 03046h                           ; 0f 86 9a 00
    3874     jmp near 03802h                           ; e9 53 08
     4124    jbe near 0331bh                           ; 0f 86 9a 00
     4125    jmp near 03ad7h                           ; e9 53 08
    38754126    test bl, bl                               ; 84 db
    3876     jne near 03802h                           ; 0f 85 4d 08
     4127    jne near 03ad7h                           ; 0f 85 4d 08
    38774128    mov al, byte [bp+00eh]                    ; 8a 46 0e
    38784129    mov byte [bp-008h], al                    ; 88 46 f8
    38794130    cmp AL, strict byte 001h                  ; 3c 01
    3880     jbe short 02fd3h                          ; 76 14
     4131    jbe short 032a8h                          ; 76 14
    38814132    mov ax, word [bp+016h]                    ; 8b 46 16
    38824133    xor ah, ah                                ; 30 e4
     
    38844135    mov word [bp+016h], ax                    ; 89 46 16
    38854136    mov ax, strict word 00001h                ; b8 01 00
    3886     call 02bf7h                               ; e8 27 fc
    3887     jmp near 03341h                           ; e9 6e 03
     4137    call 02ecch                               ; e8 27 fc
     4138    jmp near 03616h                           ; e9 6e 03
    38884139    mov ax, strict word 00010h                ; b8 10 00
    3889     call 016ach                               ; e8 d3 e6
     4140    call 016ach                               ; e8 fe e3
    38904141    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3891     jne short 02fe6h                          ; 75 07
     4142    jne short 032bbh                          ; 75 07
    38924143    mov cl, al                                ; 88 c1
    38934144    shr cl, 004h                              ; c0 e9 04
    3894     jmp short 02febh                          ; eb 05
     4145    jmp short 032c0h                          ; eb 05
    38954146    mov cl, al                                ; 88 c1
    38964147    and cl, 00fh                              ; 80 e1 0f
    38974148    test cl, cl                               ; 84 c9
    3898     jne short 02fffh                          ; 75 10
     4149    jne short 032d4h                          ; 75 10
    38994150    mov ax, word [bp+016h]                    ; 8b 46 16
    39004151    xor ah, ah                                ; 30 e4
     
    39024153    mov word [bp+016h], ax                    ; 89 46 16
    39034154    mov ax, 00080h                            ; b8 80 00
    3904     jmp short 02fcdh                          ; eb ce
     4155    jmp short 032a2h                          ; eb ce
    39054156    xor bx, bx                                ; 31 db
    39064157    mov dx, strict word 0003eh                ; ba 3e 00
    39074158    mov ax, strict word 00040h                ; b8 40 00
    3908     call 0165eh                               ; e8 54 e6
     4159    call 0165eh                               ; e8 7f e3
    39094160    xor al, al                                ; 30 c0
    39104161    mov byte [bp+017h], al                    ; 88 46 17
    39114162    xor ah, ah                                ; 30 e4
    3912     call 02bf7h                               ; e8 e3 fb
     4163    call 02ecch                               ; e8 e3 fb
    39134164    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    39144165    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    39154166    xor dx, dx                                ; 31 d2
    3916     call 02c0fh                               ; e8 ee fb
     4167    call 02ee4h                               ; e8 ee fb
    39174168    lea sp, [bp-004h]                         ; 8d 66 fc
    39184169    pop di                                    ; 5f
     
    39234174    mov dx, 00441h                            ; ba 41 04
    39244175    xor ax, ax                                ; 31 c0
    3925     call 01650h                               ; e8 1c e6
     4176    call 01650h                               ; e8 47 e3
    39264177    movzx dx, al                              ; 0f b6 d0
    39274178    sal dx, 008h                              ; c1 e2 08
     
    39294180    mov word [bp+016h], si                    ; 89 76 16
    39304181    test al, al                               ; 84 c0
    3931     je short 03021h                           ; 74 de
    3932     jmp near 03341h                           ; e9 fb 02
     4182    je short 032f6h                           ; 74 de
     4183    jmp near 03616h                           ; e9 fb 02
    39334184    mov ch, cl                                ; 88 cd
    39344185    mov dl, byte [bp-010h]                    ; 8a 56 f0
     
    39404191    mov byte [bp-008h], al                    ; 88 46 f8
    39414192    cmp AL, strict byte 001h                  ; 3c 01
    3942     jnbe short 0306fh                         ; 77 0e
     4193    jnbe short 03344h                         ; 77 0e
    39434194    cmp dl, 001h                              ; 80 fa 01
    3944     jnbe short 0306fh                         ; 77 09
     4195    jnbe short 03344h                         ; 77 09
    39454196    test cl, cl                               ; 84 c9
    3946     je short 0306fh                           ; 74 05
     4197    je short 03344h                           ; 74 05
    39474198    cmp cl, 048h                              ; 80 f9 48
    3948     jbe short 03099h                          ; 76 2a
    3949     mov bx, 00da2h                            ; bb a2 0d
     4199    jbe short 0336eh                          ; 76 2a
     4200    mov bx, 00da0h                            ; bb a0 0d
    39504201    mov cx, ds                                ; 8c d9
    39514202    mov ax, strict word 00004h                ; b8 04 00
    3952     call 01931h                               ; e8 b7 e8
    3953     push 00255h                               ; 68 55 02
    3954     push 0026dh                               ; 68 6d 02
     4203    call 01931h                               ; e8 e2 e5
     4204    push 00275h                               ; 68 75 02
     4205    push 0028dh                               ; 68 8d 02
    39554206    push strict byte 00004h                   ; 6a 04
    3956     call 01972h                               ; e8 ed e8
     4207    call 01972h                               ; e8 18 e6
    39574208    add sp, strict byte 00006h                ; 83 c4 06
    39584209    mov ax, word [bp+016h]                    ; 8b 46 16
     
    39614212    mov word [bp+016h], ax                    ; 89 46 16
    39624213    mov ax, strict word 00001h                ; b8 01 00
    3963     jmp near 0310fh                           ; e9 76 00
     4214    jmp near 033e4h                           ; e9 76 00
    39644215    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    3965     call 02f0ah                               ; e8 6a fe
     4216    call 031dfh                               ; e8 6a fe
    39664217    test ax, ax                               ; 85 c0
    3967     je near 031a2h                            ; 0f 84 fc 00
     4218    je near 03477h                            ; 0f 84 fc 00
    39684219    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    39694220    mov ax, dx                                ; 89 d0
    3970     call 02d4fh                               ; e8 a0 fc
     4221    call 03024h                               ; e8 a0 fc
    39714222    test ax, ax                               ; 85 c0
    3972     jne short 030cch                          ; 75 19
     4223    jne short 033a1h                          ; 75 19
    39734224    mov ax, dx                                ; 89 d0
    3974     call 02e1ah                               ; e8 62 fd
     4225    call 030efh                               ; e8 62 fd
    39754226    test ax, ax                               ; 85 c0
    3976     jne short 030cch                          ; 75 10
     4227    jne short 033a1h                          ; 75 10
    39774228    mov ax, word [bp+016h]                    ; 8b 46 16
    39784229    xor ah, ah                                ; 30 e4
     
    39804231    mov word [bp+016h], ax                    ; 89 46 16
    39814232    mov ax, strict word 0000ch                ; b8 0c 00
    3982     jmp short 0310fh                          ; eb 43
     4233    jmp short 033e4h                          ; eb 43
    39834234    cmp byte [bp-006h], 002h                  ; 80 7e fa 02
    3984     jne near 03234h                           ; 0f 85 60 01
     4235    jne near 03509h                           ; 0f 85 60 01
    39854236    mov ax, word [bp+006h]                    ; 8b 46 06
    39864237    shr ax, 00ch                              ; c1 e8 0c
     
    39924243    mov word [bp-012h], bx                    ; 89 5e ee
    39934244    cmp dx, bx                                ; 39 da
    3994     jbe short 030f0h                          ; 76 02
     4245    jbe short 033c5h                          ; 76 02
    39954246    db  0feh, 0c1h
    39964247    ; inc cl                                    ; fe c1
     
    40014252    add ax, bx                                ; 01 d8
    40024253    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4003     jnc short 03119h                          ; 73 18
     4254    jnc short 033eeh                          ; 73 18
    40044255    mov ax, word [bp+016h]                    ; 8b 46 16
    40054256    xor ah, ah                                ; 30 e4
     
    40074258    mov word [bp+016h], ax                    ; 89 46 16
    40084259    mov ax, strict word 00009h                ; b8 09 00
    4009     call 02bf7h                               ; e8 e5 fa
     4260    call 02ecch                               ; e8 e5 fa
    40104261    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4011     jmp near 03341h                           ; e9 28 02
     4262    jmp near 03616h                           ; e9 28 02
    40124263    mov AL, strict byte 006h                  ; b0 06
    40134264    mov dx, strict word 0000ah                ; ba 0a 00
     
    40414292    out DX, AL                                ; ee
    40424293    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4043     call 02cceh                               ; e8 70 fb
     4294    call 02fa3h                               ; e8 70 fb
    40444295    mov AL, strict byte 0e6h                  ; b0 e6
    40454296    mov dx, 003f5h                            ; ba f5 03
     
    40694320    mov AL, strict byte 0ffh                  ; b0 ff
    40704321    out DX, AL                                ; ee
    4071     call 02c5dh                               ; e8 c2 fa
     4322    call 02f32h                               ; e8 c2 fa
    40724323    test al, al                               ; 84 c0
    4073     jne short 031b3h                          ; 75 14
    4074     call 02ca3h                               ; e8 01 fb
     4324    jne short 03488h                          ; 75 14
     4325    call 02f78h                               ; e8 01 fb
    40754326    mov ax, word [bp+016h]                    ; 8b 46 16
    40764327    xor ah, ah                                ; 30 e4
     
    40784329    mov word [bp+016h], ax                    ; 89 46 16
    40794330    mov ax, 00080h                            ; b8 80 00
    4080     jmp near 0310fh                           ; e9 5c ff
     4331    jmp near 033e4h                           ; e9 5c ff
    40814332    mov dx, 003f4h                            ; ba f4 03
    40824333    in AL, DX                                 ; ec
     
    40854336    and AL, strict byte 0c0h                  ; 24 c0
    40864337    cmp AL, strict byte 0c0h                  ; 3c c0
    4087     je short 031cdh                           ; 74 0e
    4088     push 00255h                               ; 68 55 02
    4089     push 00288h                               ; 68 88 02
     4338    je short 034a2h                           ; 74 0e
     4339    push 00275h                               ; 68 75 02
     4340    push 002a8h                               ; 68 a8 02
    40904341    push strict byte 00007h                   ; 6a 07
    4091     call 01972h                               ; e8 a8 e7
     4342    call 01972h                               ; e8 d3 e4
    40924343    add sp, strict byte 00006h                ; 83 c4 06
    40934344    xor si, si                                ; 31 f6
    4094     jmp short 031d6h                          ; eb 05
     4345    jmp short 034abh                          ; eb 05
    40954346    cmp si, strict byte 00007h                ; 83 fe 07
    4096     jnl short 031eeh                          ; 7d 18
     4347    jnl short 034c3h                          ; 7d 18
    40974348    mov dx, 003f5h                            ; ba f5 03
    40984349    in AL, DX                                 ; ec
     
    41034354    lea dx, [si+042h]                         ; 8d 54 42
    41044355    mov ax, strict word 00040h                ; b8 40 00
    4105     call 0165eh                               ; e8 73 e4
     4356    call 0165eh                               ; e8 9e e1
    41064357    inc si                                    ; 46
    4107     jmp short 031d1h                          ; eb e3
     4358    jmp short 034a6h                          ; eb e3
    41084359    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4109     je short 03205h                           ; 74 11
     4360    je short 034dah                           ; 74 11
    41104361    mov ax, word [bp+016h]                    ; 8b 46 16
    41114362    xor ah, ah                                ; 30 e4
     
    41134364    mov word [bp+016h], ax                    ; 89 46 16
    41144365    mov ax, strict word 00020h                ; b8 20 00
    4115     jmp near 0310fh                           ; e9 0a ff
     4366    jmp near 033e4h                           ; e9 0a ff
    41164367    movzx ax, ch                              ; 0f b6 c5
    41174368    sal ax, 009h                              ; c1 e0 09
     
    41314382    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    41324383    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4133     call 02c0fh                               ; e8 e2 f9
     4384    call 02ee4h                               ; e8 e2 f9
    41344385    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4135     jmp near 036aeh                           ; e9 7a 04
     4386    jmp near 03983h                           ; e9 7a 04
    41364387    cmp byte [bp-006h], 003h                  ; 80 7e fa 03
    4137     jne near 0334fh                           ; 0f 85 13 01
     4388    jne near 03624h                           ; 0f 85 13 01
    41384389    mov ax, word [bp+006h]                    ; 8b 46 06
    41394390    shr ax, 00ch                              ; c1 e8 0c
     
    41454396    mov word [bp-012h], bx                    ; 89 5e ee
    41464397    cmp dx, bx                                ; 39 da
    4147     jbe short 03258h                          ; 76 02
     4398    jbe short 0352dh                          ; 76 02
    41484399    db  0feh, 0c1h
    41494400    ; inc cl                                    ; fe c1
     
    41544405    add ax, bx                                ; 01 d8
    41554406    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4156     jc near 03101h                            ; 0f 82 96 fe
     4407    jc near 033d6h                            ; 0f 82 96 fe
    41574408    mov AL, strict byte 006h                  ; b0 06
    41584409    mov dx, strict word 0000ah                ; ba 0a 00
     
    41864437    out DX, AL                                ; ee
    41874438    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4188     call 02cceh                               ; e8 1e fa
     4439    call 02fa3h                               ; e8 1e fa
    41894440    mov AL, strict byte 0c5h                  ; b0 c5
    41904441    mov dx, 003f5h                            ; ba f5 03
     
    42144465    mov AL, strict byte 0ffh                  ; b0 ff
    42154466    out DX, AL                                ; ee
    4216     call 02c5dh                               ; e8 70 f9
     4467    call 02f32h                               ; e8 70 f9
    42174468    test al, al                               ; 84 c0
    4218     je near 0319fh                            ; 0f 84 ac fe
     4469    je near 03474h                            ; 0f 84 ac fe
    42194470    mov dx, 003f4h                            ; ba f4 03
    42204471    in AL, DX                                 ; ec
     
    42234474    and AL, strict byte 0c0h                  ; 24 c0
    42244475    cmp AL, strict byte 0c0h                  ; 3c c0
    4225     je short 0330dh                           ; 74 0e
    4226     push 00255h                               ; 68 55 02
    4227     push 00288h                               ; 68 88 02
     4476    je short 035e2h                           ; 74 0e
     4477    push 00275h                               ; 68 75 02
     4478    push 002a8h                               ; 68 a8 02
    42284479    push strict byte 00007h                   ; 6a 07
    4229     call 01972h                               ; e8 68 e6
     4480    call 01972h                               ; e8 93 e3
    42304481    add sp, strict byte 00006h                ; 83 c4 06
    42314482    xor si, si                                ; 31 f6
    4232     jmp short 03316h                          ; eb 05
     4483    jmp short 035ebh                          ; eb 05
    42334484    cmp si, strict byte 00007h                ; 83 fe 07
    4234     jnl short 0332eh                          ; 7d 18
     4485    jnl short 03603h                          ; 7d 18
    42354486    mov dx, 003f5h                            ; ba f5 03
    42364487    in AL, DX                                 ; ec
     
    42414492    lea dx, [si+042h]                         ; 8d 54 42
    42424493    mov ax, strict word 00040h                ; b8 40 00
    4243     call 0165eh                               ; e8 33 e3
     4494    call 0165eh                               ; e8 5e e0
    42444495    inc si                                    ; 46
    4245     jmp short 03311h                          ; eb e3
     4496    jmp short 035e6h                          ; eb e3
    42464497    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4247     je near 03222h                            ; 0f 84 ec fe
     4498    je near 034f7h                            ; 0f 84 ec fe
    42484499    test byte [bp-019h], 002h                 ; f6 46 e7 02
    4249     je short 03348h                           ; 74 0c
     4500    je short 0361dh                           ; 74 0c
    42504501    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    42514502    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4252     jmp near 03021h                           ; e9 d9 fc
     4503    jmp near 032f6h                           ; e9 d9 fc
    42534504    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4254     jmp short 03341h                          ; eb f2
     4505    jmp short 03616h                          ; eb f2
    42554506    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    42564507    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4257     call 02c0fh                               ; e8 b5 f8
     4508    call 02ee4h                               ; e8 b5 f8
    42584509    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    42594510    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4260     jmp near 03021h                           ; e9 bc fc
     4511    jmp near 032f6h                           ; e9 bc fc
    42614512    mov ch, byte [bp+016h]                    ; 8a 6e 16
    42624513    mov ax, word [bp+014h]                    ; 8b 46 14
     
    42694520    mov byte [bp-008h], bl                    ; 88 5e f8
    42704521    cmp bl, 001h                              ; 80 fb 01
    4271     jnbe short 03397h                         ; 77 12
     4522    jnbe short 0366ch                         ; 77 12
    42724523    cmp dl, 001h                              ; 80 fa 01
    4273     jnbe short 03397h                         ; 77 0d
     4524    jnbe short 0366ch                         ; 77 0d
    42744525    cmp AL, strict byte 04fh                  ; 3c 4f
    4275     jnbe short 03397h                         ; 77 09
     4526    jnbe short 0366ch                         ; 77 09
    42764527    test ch, ch                               ; 84 ed
    4277     je short 03397h                           ; 74 05
     4528    je short 0366ch                           ; 74 05
    42784529    cmp ch, 012h                              ; 80 fd 12
    4279     jbe short 033ach                          ; 76 15
     4530    jbe short 03681h                          ; 76 15
    42804531    mov ax, word [bp+016h]                    ; 8b 46 16
    42814532    xor ah, ah                                ; 30 e4
     
    42834534    mov word [bp+016h], ax                    ; 89 46 16
    42844535    mov ax, strict word 00001h                ; b8 01 00
    4285     call 02bf7h                               ; e8 4f f8
     4536    call 02ecch                               ; e8 4f f8
    42864537    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    42874538    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4288     call 02f0ah                               ; e8 57 fb
     4539    call 031dfh                               ; e8 57 fb
    42894540    test ax, ax                               ; 85 c0
    4290     je near 02fefh                            ; 0f 84 36 fc
     4541    je near 032c4h                            ; 0f 84 36 fc
    42914542    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    42924543    mov ax, dx                                ; 89 d0
    4293     call 02d4fh                               ; e8 8d f9
     4544    call 03024h                               ; e8 8d f9
    42944545    test ax, ax                               ; 85 c0
    4295     jne short 033d1h                          ; 75 0b
     4546    jne short 036a6h                          ; 75 0b
    42964547    mov ax, dx                                ; 89 d0
    4297     call 02e1ah                               ; e8 4f fa
     4548    call 030efh                               ; e8 4f fa
    42984549    test ax, ax                               ; 85 c0
    4299     je near 030bch                            ; 0f 84 eb fc
     4550    je near 03391h                            ; 0f 84 eb fc
    43004551    mov ax, word [bp+006h]                    ; 8b 46 06
    43014552    shr ax, 00ch                              ; c1 e8 0c
     
    43074558    mov word [bp-012h], bx                    ; 89 5e ee
    43084559    cmp dx, bx                                ; 39 da
    4309     jbe short 033edh                          ; 76 02
     4560    jbe short 036c2h                          ; 76 02
    43104561    db  0feh, 0c1h
    43114562    ; inc cl                                    ; fe c1
     
    43164567    add ax, bx                                ; 01 d8
    43174568    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4318     jc near 03101h                            ; 0f 82 01 fd
     4569    jc near 033d6h                            ; 0f 82 01 fd
    43194570    mov AL, strict byte 006h                  ; b0 06
    43204571    mov dx, strict word 0000ah                ; ba 0a 00
     
    43484599    out DX, AL                                ; ee
    43494600    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4350     call 02cceh                               ; e8 89 f8
     4601    call 02fa3h                               ; e8 89 f8
    43514602    mov AL, strict byte 00fh                  ; b0 0f
    43524603    mov dx, 003f5h                            ; ba f5 03
     
    43724623    mov AL, strict byte 0f6h                  ; b0 f6
    43734624    out DX, AL                                ; ee
    4374     call 02c5dh                               ; e8 e9 f7
     4625    call 02f32h                               ; e8 e9 f7
    43754626    test al, al                               ; 84 c0
    4376     jne short 0347eh                          ; 75 06
    4377     call 02ca3h                               ; e8 28 f8
    4378     jmp near 02fefh                           ; e9 71 fb
     4627    jne short 03753h                          ; 75 06
     4628    call 02f78h                               ; e8 28 f8
     4629    jmp near 032c4h                           ; e9 71 fb
    43794630    mov dx, 003f4h                            ; ba f4 03
    43804631    in AL, DX                                 ; ec
     
    43834634    and AL, strict byte 0c0h                  ; 24 c0
    43844635    cmp AL, strict byte 0c0h                  ; 3c c0
    4385     je short 03498h                           ; 74 0e
    4386     push 00255h                               ; 68 55 02
    4387     push 00288h                               ; 68 88 02
     4636    je short 0376dh                           ; 74 0e
     4637    push 00275h                               ; 68 75 02
     4638    push 002a8h                               ; 68 a8 02
    43884639    push strict byte 00007h                   ; 6a 07
    4389     call 01972h                               ; e8 dd e4
     4640    call 01972h                               ; e8 08 e2
    43904641    add sp, strict byte 00006h                ; 83 c4 06
    43914642    xor si, si                                ; 31 f6
    4392     jmp short 034a1h                          ; eb 05
     4643    jmp short 03776h                          ; eb 05
    43934644    cmp si, strict byte 00007h                ; 83 fe 07
    4394     jnl short 034b9h                          ; 7d 18
     4645    jnl short 0378eh                          ; 7d 18
    43954646    mov dx, 003f5h                            ; ba f5 03
    43964647    in AL, DX                                 ; ec
     
    44014652    lea dx, [si+042h]                         ; 8d 54 42
    44024653    mov ax, strict word 00040h                ; b8 40 00
    4403     call 0165eh                               ; e8 a8 e1
     4654    call 0165eh                               ; e8 d3 de
    44044655    inc si                                    ; 46
    4405     jmp short 0349ch                          ; eb e3
     4656    jmp short 03771h                          ; eb e3
    44064657    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4407     je short 034d5h                           ; 74 16
     4658    je short 037aah                           ; 74 16
    44084659    test byte [bp-019h], 002h                 ; f6 46 e7 02
    4409     jne near 0333ch                           ; 0f 85 75 fe
    4410     push 00255h                               ; 68 55 02
    4411     push 0029ch                               ; 68 9c 02
     4660    jne near 03611h                           ; 0f 85 75 fe
     4661    push 00275h                               ; 68 75 02
     4662    push 002bch                               ; 68 bc 02
    44124663    push strict byte 00007h                   ; 6a 07
    4413     call 01972h                               ; e8 a0 e4
     4664    call 01972h                               ; e8 cb e1
    44144665    add sp, strict byte 00006h                ; 83 c4 06
    44154666    xor al, al                                ; 30 c0
    44164667    mov byte [bp+017h], al                    ; 88 46 17
    44174668    xor ah, ah                                ; 30 e4
    4418     call 02bf7h                               ; e8 18 f7
     4669    call 02ecch                               ; e8 18 f7
    44194670    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    44204671    xor dx, dx                                ; 31 d2
    4421     call 02c0fh                               ; e8 27 f7
    4422     jmp near 036aeh                           ; e9 c3 01
     4672    call 02ee4h                               ; e8 27 f7
     4673    jmp near 03983h                           ; e9 c3 01
    44234674    mov byte [bp-008h], al                    ; 88 46 f8
    44244675    cmp AL, strict byte 001h                  ; 3c 01
    4425     jbe short 0350fh                          ; 76 1d
     4676    jbe short 037e4h                          ; 76 1d
    44264677    xor ax, ax                                ; 31 c0
    44274678    mov word [bp+016h], ax                    ; 89 46 16
     
    44334684    movzx ax, ch                              ; 0f b6 c5
    44344685    mov word [bp+012h], ax                    ; 89 46 12
    4435     jmp near 0362ch                           ; e9 1d 01
     4686    jmp near 03901h                           ; e9 1d 01
    44364687    mov ax, strict word 00010h                ; b8 10 00
    4437     call 016ach                               ; e8 97 e1
     4688    call 016ach                               ; e8 c2 de
    44384689    mov cl, al                                ; 88 c1
    44394690    xor ch, ch                                ; 30 ed
    44404691    test AL, strict byte 0f0h                 ; a8 f0
    4441     je short 0351fh                           ; 74 02
     4692    je short 037f4h                           ; 74 02
    44424693    mov CH, strict byte 001h                  ; b5 01
    44434694    test cl, 00fh                             ; f6 c1 0f
    4444     je short 03526h                           ; 74 02
     4695    je short 037fbh                           ; 74 02
    44454696    db  0feh, 0c5h
    44464697    ; inc ch                                    ; fe c5
    44474698    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4448     jne short 03531h                          ; 75 05
     4699    jne short 03806h                          ; 75 05
    44494700    shr cl, 004h                              ; c0 e9 04
    4450     jmp short 03534h                          ; eb 03
     4701    jmp short 03809h                          ; eb 03
    44514702    and cl, 00fh                              ; 80 e1 0f
    44524703    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    44634714    mov word [bp+012h], ax                    ; 89 46 12
    44644715    cmp cl, 003h                              ; 80 f9 03
    4465     jc short 03572h                           ; 72 15
    4466     jbe short 03599h                          ; 76 3a
     4716    jc short 03847h                           ; 72 15
     4717    jbe short 0386eh                          ; 76 3a
    44674718    cmp cl, 005h                              ; 80 f9 05
    4468     jc short 035a0h                           ; 72 3c
    4469     jbe short 035a7h                          ; 76 41
     4719    jc short 03875h                           ; 72 3c
     4720    jbe short 0387ch                          ; 76 41
    44704721    cmp cl, 00fh                              ; 80 f9 0f
    4471     je short 035b5h                           ; 74 4a
     4722    je short 0388ah                           ; 74 4a
    44724723    cmp cl, 00eh                              ; 80 f9 0e
    4473     je short 035aeh                           ; 74 3e
    4474     jmp short 035bch                          ; eb 4a
     4724    je short 03883h                           ; 74 3e
     4725    jmp short 03891h                          ; eb 4a
    44754726    cmp cl, 002h                              ; 80 f9 02
    4476     je short 03592h                           ; 74 1b
     4727    je short 03867h                           ; 74 1b
    44774728    cmp cl, 001h                              ; 80 f9 01
    4478     je short 0358bh                           ; 74 0f
     4729    je short 03860h                           ; 74 0f
    44794730    test cl, cl                               ; 84 c9
    4480     jne short 035bch                          ; 75 3c
     4731    jne short 03891h                          ; 75 3c
    44814732    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    44824733    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4483     jmp short 035cah                          ; eb 3f
     4734    jmp short 0389fh                          ; eb 3f
    44844735    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4485     jmp short 035cah                          ; eb 38
     4736    jmp short 0389fh                          ; eb 38
    44864737    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4487     jmp short 035cah                          ; eb 31
     4738    jmp short 0389fh                          ; eb 31
    44884739    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4489     jmp short 035cah                          ; eb 2a
     4740    jmp short 0389fh                          ; eb 2a
    44904741    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4491     jmp short 035cah                          ; eb 23
     4742    jmp short 0389fh                          ; eb 23
    44924743    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4493     jmp short 035cah                          ; eb 1c
     4744    jmp short 0389fh                          ; eb 1c
    44944745    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4495     jmp short 035cah                          ; eb 15
     4746    jmp short 0389fh                          ; eb 15
    44964747    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4497     jmp short 035cah                          ; eb 0e
    4498     push 00255h                               ; 68 55 02
    4499     push 002adh                               ; 68 ad 02
     4748    jmp short 0389fh                          ; eb 0e
     4749    push 00275h                               ; 68 75 02
     4750    push 002cdh                               ; 68 cd 02
    45004751    push strict byte 00007h                   ; 6a 07
    4501     call 01972h                               ; e8 ab e3
     4752    call 01972h                               ; e8 d6 e0
    45024753    add sp, strict byte 00006h                ; 83 c4 06
    45034754    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    45044755    movzx ax, cl                              ; 0f b6 c1
    4505     call 03825h                               ; e8 50 02
     4756    call 03afah                               ; e8 50 02
    45064757    mov word [bp+008h], ax                    ; 89 46 08
    4507     jmp near 036aeh                           ; e9 d3 00
     4758    jmp near 03983h                           ; e9 d3 00
    45084759    mov byte [bp-008h], al                    ; 88 46 f8
    45094760    cmp AL, strict byte 001h                  ; 3c 01
    4510     jbe short 035e7h                          ; 76 05
     4761    jbe short 038bch                          ; 76 05
    45114762    mov word [bp+016h], si                    ; 89 76 16
    4512     jmp short 0362ch                          ; eb 45
     4763    jmp short 03901h                          ; eb 45
    45134764    mov ax, strict word 00010h                ; b8 10 00
    4514     call 016ach                               ; e8 bf e0
     4765    call 016ach                               ; e8 ea dd
    45154766    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4516     jne short 035fah                          ; 75 07
     4767    jne short 038cfh                          ; 75 07
    45174768    mov cl, al                                ; 88 c1
    45184769    shr cl, 004h                              ; c0 e9 04
    4519     jmp short 035ffh                          ; eb 05
     4770    jmp short 038d4h                          ; eb 05
    45204771    mov cl, al                                ; 88 c1
    45214772    and cl, 00fh                              ; 80 e1 0f
     
    45244775    xor dh, dh                                ; 30 f6
    45254776    test cl, cl                               ; 84 c9
    4526     je short 03619h                           ; 74 0d
     4777    je short 038eeh                           ; 74 0d
    45274778    cmp cl, 001h                              ; 80 f9 01
    4528     jbe short 03616h                          ; 76 05
     4779    jbe short 038ebh                          ; 76 05
    45294780    or dh, 002h                               ; 80 ce 02
    4530     jmp short 03619h                          ; eb 03
     4781    jmp short 038eeh                          ; eb 03
    45314782    or dh, 001h                               ; 80 ce 01
    45324783    mov word [bp+016h], dx                    ; 89 56 16
    4533     jmp near 03021h                           ; e9 02 fa
     4784    jmp near 032f6h                           ; e9 02 fa
    45344785    cmp AL, strict byte 001h                  ; 3c 01
    4535     jbe short 03632h                          ; 76 0f
     4786    jbe short 03907h                          ; 76 0f
    45364787    mov word [bp+016h], si                    ; 89 76 16
    45374788    mov ax, strict word 00001h                ; b8 01 00
    4538     call 02bf7h                               ; e8 cb f5
     4789    call 02ecch                               ; e8 cb f5
    45394790    mov word [bp+01ch], dx                    ; 89 56 1c
    4540     jmp near 03021h                           ; e9 ef f9
     4791    jmp near 032f6h                           ; e9 ef f9
    45414792    mov ax, word [bp+016h]                    ; 8b 46 16
    45424793    xor ah, ah                                ; 30 e4
     
    45444795    mov word [bp+016h], ax                    ; 89 46 16
    45454796    mov ax, strict word 00006h                ; b8 06 00
    4546     jmp near 02fcdh                           ; e9 8a f9
     4797    jmp near 032a2h                           ; e9 8a f9
    45474798    mov byte [bp-008h], al                    ; 88 46 f8
    45484799    mov bl, cl                                ; 88 cb
    45494800    cmp AL, strict byte 001h                  ; 3c 01
    4550     jnbe short 03623h                         ; 77 d7
     4801    jnbe short 038f8h                         ; 77 d7
    45514802    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4552     call 02f0ah                               ; e8 b7 f8
     4803    call 031dfh                               ; e8 b7 f8
    45534804    test ax, ax                               ; 85 c0
    4554     je near 02fefh                            ; 0f 84 96 f9
     4805    je near 032c4h                            ; 0f 84 96 f9
    45554806    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    45564807    db  00fh, 095h, 0c0h
     
    45604811    mov word [bp-012h], dx                    ; 89 56 ee
    45614812    mov ax, strict word 00040h                ; b8 40 00
    4562     call 01650h                               ; e8 e0 df
     4813    call 01650h                               ; e8 0b dd
    45634814    and AL, strict byte 00fh                  ; 24 0f
    45644815    cmp bl, 002h                              ; 80 fb 02
    4565     jc short 03686h                           ; 72 0f
    4566     jbe short 03692h                          ; 76 19
     4816    jc short 0395bh                           ; 72 0f
     4817    jbe short 03967h                          ; 76 19
    45674818    cmp bl, 004h                              ; 80 fb 04
    4568     je short 0368eh                           ; 74 10
     4819    je short 03963h                           ; 74 10
    45694820    cmp bl, 003h                              ; 80 fb 03
    4570     je short 03696h                           ; 74 13
    4571     jmp near 02fbfh                           ; e9 39 f9
     4821    je short 0396bh                           ; 74 13
     4822    jmp near 03294h                           ; e9 39 f9
    45724823    cmp bl, 001h                              ; 80 fb 01
    4573     je short 0368eh                           ; 74 03
    4574     jmp near 02fbfh                           ; e9 31 f9
     4824    je short 03963h                           ; 74 03
     4825    jmp near 03294h                           ; e9 31 f9
    45754826    or AL, strict byte 090h                   ; 0c 90
    4576     jmp short 03698h                          ; eb 06
     4827    jmp short 0396dh                          ; eb 06
    45774828    or AL, strict byte 070h                   ; 0c 70
    4578     jmp short 03698h                          ; eb 02
     4829    jmp short 0396dh                          ; eb 02
    45794830    or AL, strict byte 010h                   ; 0c 10
    45804831    movzx bx, al                              ; 0f b6 d8
    45814832    mov dx, word [bp-012h]                    ; 8b 56 ee
    45824833    mov ax, strict word 00040h                ; b8 40 00
    4583     call 0165eh                               ; e8 ba df
     4834    call 0165eh                               ; e8 e5 dc
    45844835    xor al, al                                ; 30 c0
    45854836    mov byte [bp+017h], al                    ; 88 46 17
    45864837    xor ah, ah                                ; 30 e4
    4587     call 02bf7h                               ; e8 49 f5
     4838    call 02ecch                               ; e8 49 f5
    45884839    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4589     jmp near 03021h                           ; e9 6c f9
     4840    jmp near 032f6h                           ; e9 6c f9
    45904841    mov byte [bp-008h], al                    ; 88 46 f8
    45914842    mov ch, ah                                ; 88 e5
     
    45974848    mov byte [bp-00ch], bl                    ; 88 5e f4
    45984849    cmp AL, strict byte 001h                  ; 3c 01
    4599     jnbe near 03623h                          ; 0f 87 51 ff
     4850    jnbe near 038f8h                          ; 0f 87 51 ff
    46004851    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4601     call 02f0ah                               ; e8 31 f8
     4852    call 031dfh                               ; e8 31 f8
    46024853    test ax, ax                               ; 85 c0
    4603     je near 02fefh                            ; 0f 84 10 f9
     4854    je near 032c4h                            ; 0f 84 10 f9
    46044855    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    46054856    mov ax, dx                                ; 89 d0
    4606     call 02d4fh                               ; e8 67 f6
     4857    call 03024h                               ; e8 67 f6
    46074858    test ax, ax                               ; 85 c0
    4608     jne short 03706h                          ; 75 1a
     4859    jne short 039dbh                          ; 75 1a
    46094860    mov ax, dx                                ; 89 d0
    4610     call 02e1ah                               ; e8 29 f7
     4861    call 030efh                               ; e8 29 f7
    46114862    test ax, ax                               ; 85 c0
    4612     jne short 03706h                          ; 75 11
     4863    jne short 039dbh                          ; 75 11
    46134864    mov ax, word [bp+016h]                    ; 8b 46 16
    46144865    xor ah, ah                                ; 30 e4
     
    46164867    mov word [bp+016h], ax                    ; 89 46 16
    46174868    mov ax, strict word 0000ch                ; b8 0c 00
    4618     jmp near 02fcdh                           ; e9 c7 f8
     4869    jmp near 032a2h                           ; e9 c7 f8
    46194870    mov ax, strict word 00010h                ; b8 10 00
    4620     call 016ach                               ; e8 a0 df
     4871    call 016ach                               ; e8 cb dc
    46214872    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4622     jne short 03719h                          ; 75 07
     4873    jne short 039eeh                          ; 75 07
    46234874    mov cl, al                                ; 88 c1
    46244875    shr cl, 004h                              ; c0 e9 04
    4625     jmp short 0371eh                          ; eb 05
     4876    jmp short 039f3h                          ; eb 05
    46264877    mov cl, al                                ; 88 c1
    46274878    and cl, 00fh                              ; 80 e1 0f
     
    46334884    mov word [bp-012h], dx                    ; 89 56 ee
    46344885    mov ax, strict word 00040h                ; b8 40 00
    4635     call 01650h                               ; e8 1b df
     4886    call 01650h                               ; e8 46 dc
    46364887    and AL, strict byte 00fh                  ; 24 0f
    46374888    cmp cl, 003h                              ; 80 f9 03
    4638     jc short 0375ah                           ; 72 1e
     4889    jc short 03a2fh                           ; 72 1e
    46394890    mov dl, al                                ; 88 c2
    46404891    or dl, 090h                               ; 80 ca 90
    46414892    cmp cl, 003h                              ; 80 f9 03
    4642     jbe short 03798h                          ; 76 52
     4893    jbe short 03a6dh                          ; 76 52
    46434894    mov ah, al                                ; 88 c4
    46444895    or ah, 010h                               ; 80 cc 10
    46454896    cmp cl, 005h                              ; 80 f9 05
    4646     je near 037bdh                            ; 0f 84 6b 00
     4897    je near 03a92h                            ; 0f 84 6b 00
    46474898    cmp cl, 004h                              ; 80 f9 04
    4648     je short 037a7h                           ; 74 50
    4649     jmp near 037d8h                           ; e9 7e 00
     4899    je short 03a7ch                           ; 74 50
     4900    jmp near 03aadh                           ; e9 7e 00
    46504901    cmp cl, 002h                              ; 80 f9 02
    4651     je short 0377ah                           ; 74 1b
     4902    je short 03a4fh                           ; 74 1b
    46524903    cmp cl, 001h                              ; 80 f9 01
    4653     jne near 037d8h                           ; 0f 85 72 00
     4904    jne near 03aadh                           ; 0f 85 72 00
    46544905    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
    4655     jne near 037d8h                           ; 0f 85 6a 00
     4906    jne near 03aadh                           ; 0f 85 6a 00
    46564907    cmp ch, 009h                              ; 80 fd 09
    4657     jne near 037d8h                           ; 0f 85 63 00
     4908    jne near 03aadh                           ; 0f 85 63 00
    46584909    or AL, strict byte 090h                   ; 0c 90
    4659     jmp near 037d8h                           ; e9 5e 00
     4910    jmp near 03aadh                           ; e9 5e 00
    46604911    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
    4661     jne short 03789h                          ; 75 09
     4912    jne short 03a5eh                          ; 75 09
    46624913    cmp ch, 009h                              ; 80 fd 09
    4663     jne short 03789h                          ; 75 04
     4914    jne short 03a5eh                          ; 75 04
    46644915    or AL, strict byte 070h                   ; 0c 70
    4665     jmp short 037d8h                          ; eb 4f
     4916    jmp short 03aadh                          ; eb 4f
    46664917    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    4667     jne short 037d8h                          ; 75 49
     4918    jne short 03aadh                          ; 75 49
    46684919    cmp ch, 00fh                              ; 80 fd 0f
    4669     jne short 037d8h                          ; 75 44
     4920    jne short 03aadh                          ; 75 44
    46704921    or AL, strict byte 010h                   ; 0c 10
    4671     jmp short 037d8h                          ; eb 40
     4922    jmp short 03aadh                          ; eb 40
    46724923    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    4673     jne short 037d8h                          ; 75 3a
     4924    jne short 03aadh                          ; 75 3a
    46744925    cmp ch, 009h                              ; 80 fd 09
    4675     jne short 037d8h                          ; 75 35
     4926    jne short 03aadh                          ; 75 35
    46764927    mov al, dl                                ; 88 d0
    4677     jmp short 037d8h                          ; eb 31
     4928    jmp short 03aadh                          ; eb 31
    46784929    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    4679     jne short 037d8h                          ; 75 2b
     4930    jne short 03aadh                          ; 75 2b
    46804931    cmp ch, 009h                              ; 80 fd 09
    4681     jne short 037b4h                          ; 75 02
    4682     jmp short 037a3h                          ; eb ef
     4932    jne short 03a89h                          ; 75 02
     4933    jmp short 03a78h                          ; eb ef
    46834934    cmp ch, 012h                              ; 80 fd 12
    4684     jne short 037d8h                          ; 75 1f
     4935    jne short 03aadh                          ; 75 1f
    46854936    mov al, ah                                ; 88 e0
    4686     jmp short 037d8h                          ; eb 1b
     4937    jmp short 03aadh                          ; eb 1b
    46874938    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    4688     jne short 037d8h                          ; 75 15
     4939    jne short 03aadh                          ; 75 15
    46894940    cmp ch, 009h                              ; 80 fd 09
    4690     jne short 037cah                          ; 75 02
    4691     jmp short 037a3h                          ; eb d9
     4941    jne short 03a9fh                          ; 75 02
     4942    jmp short 03a78h                          ; eb d9
    46924943    cmp ch, 012h                              ; 80 fd 12
    4693     jne short 037d1h                          ; 75 02
    4694     jmp short 037b9h                          ; eb e8
     4944    jne short 03aa6h                          ; 75 02
     4945    jmp short 03a8eh                          ; eb e8
    46954946    cmp ch, 024h                              ; 80 fd 24
    4696     jne short 037d8h                          ; 75 02
     4947    jne short 03aadh                          ; 75 02
    46974948    or AL, strict byte 0d0h                   ; 0c d0
    46984949    movzx dx, al                              ; 0f b6 d0
    46994950    sar dx, 004h                              ; c1 fa 04
    47004951    test dl, 001h                             ; f6 c2 01
    4701     je near 036f5h                            ; 0f 84 10 ff
     4952    je near 039cah                            ; 0f 84 10 ff
    47024953    movzx bx, al                              ; 0f b6 d8
    47034954    mov dx, word [bp-012h]                    ; 8b 56 ee
    47044955    mov ax, strict word 00040h                ; b8 40 00
    4705     call 0165eh                               ; e8 6d de
     4956    call 0165eh                               ; e8 98 db
    47064957    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    47074958    movzx ax, cl                              ; 0f b6 c1
    4708     call 03825h                               ; e8 29 00
     4959    call 03afah                               ; e8 29 00
    47094960    mov word [bp+008h], ax                    ; 89 46 08
    4710     jmp near 036a4h                           ; e9 a2 fe
    4711     mov bx, 00da2h                            ; bb a2 0d
     4961    jmp near 03979h                           ; e9 a2 fe
     4962    mov bx, 00da0h                            ; bb a0 0d
    47124963    mov cx, ds                                ; 8c d9
    47134964    mov ax, strict word 00004h                ; b8 04 00
    4714     call 01931h                               ; e8 24 e1
     4965    call 01931h                               ; e8 4f de
    47154966    mov ax, word [bp+016h]                    ; 8b 46 16
    47164967    shr ax, 008h                              ; c1 e8 08
    47174968    push ax                                   ; 50
    4718     push 00255h                               ; 68 55 02
    4719     push 002c2h                               ; 68 c2 02
     4969    push 00275h                               ; 68 75 02
     4970    push 002e2h                               ; 68 e2 02
    47204971    push strict byte 00004h                   ; 6a 04
    4721     call 01972h                               ; e8 53 e1
     4972    call 01972h                               ; e8 7e de
    47224973    add sp, strict byte 00008h                ; 83 c4 08
    4723     jmp near 02fbfh                           ; e9 9a f7
    4724 get_floppy_dpt_:                             ; 0xf3825 LB 0x2f
     4974    jmp near 03294h                           ; e9 9a f7
     4975get_floppy_dpt_:                             ; 0xf3afa LB 0x2f
    47254976    push bx                                   ; 53
    47264977    push dx                                   ; 52
     
    47294980    mov dl, al                                ; 88 c2
    47304981    xor ax, ax                                ; 31 c0
    4731     jmp short 03836h                          ; eb 06
     4982    jmp short 03b0bh                          ; eb 06
    47324983    inc ax                                    ; 40
    47334984    cmp ax, strict word 00007h                ; 3d 07 00
    4734     jnc short 0384dh                          ; 73 17
     4985    jnc short 03b22h                          ; 73 17
    47354986    mov bx, ax                                ; 89 c3
    47364987    add bx, ax                                ; 01 c3
    47374988    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    4738     jne short 03830h                          ; 75 f0
     4989    jne short 03b05h                          ; 75 f0
    47394990    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
    47404991    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    47414992    add ax, strict word 00000h                ; 05 00 00
    4742     jmp short 03850h                          ; eb 03
     4993    jmp short 03b25h                          ; eb 03
    47434994    mov ax, strict word 00041h                ; b8 41 00
    47444995    pop bp                                    ; 5d
     
    47464997    pop bx                                    ; 5b
    47474998    retn                                      ; c3
    4748 dummy_soft_reset_:                           ; 0xf3854 LB 0x7
     4999dummy_soft_reset_:                           ; 0xf3b29 LB 0x7
    47495000    push bp                                   ; 55
    47505001    mov bp, sp                                ; 89 e5
     
    47525003    pop bp                                    ; 5d
    47535004    retn                                      ; c3
    4754 _cdemu_init:                                 ; 0xf385b LB 0x18
     5005_cdemu_init:                                 ; 0xf3b30 LB 0x18
    47555006    push bp                                   ; 55
    47565007    mov bp, sp                                ; 89 e5
    47575008    mov dx, strict word 0000eh                ; ba 0e 00
    47585009    mov ax, strict word 00040h                ; b8 40 00
    4759     call 0166ch                               ; e8 05 de
     5010    call 0166ch                               ; e8 30 db
    47605011    xor bx, bx                                ; 31 db
    4761     mov dx, 00322h                            ; ba 22 03
    4762     call 0165eh                               ; e8 ef dd
     5012    mov dx, 00366h                            ; ba 66 03
     5013    call 0165eh                               ; e8 1a db
    47635014    mov sp, bp                                ; 89 ec
    47645015    pop bp                                    ; 5d
    47655016    retn                                      ; c3
    4766 _cdemu_isactive:                             ; 0xf3873 LB 0x16
     5017_cdemu_isactive:                             ; 0xf3b48 LB 0x16
    47675018    push bp                                   ; 55
    47685019    mov bp, sp                                ; 89 e5
    47695020    mov dx, strict word 0000eh                ; ba 0e 00
    47705021    mov ax, strict word 00040h                ; b8 40 00
    4771     call 0166ch                               ; e8 ed dd
    4772     mov dx, 00322h                            ; ba 22 03
    4773     call 01650h                               ; e8 cb dd
     5022    call 0166ch                               ; e8 18 db
     5023    mov dx, 00366h                            ; ba 66 03
     5024    call 01650h                               ; e8 f6 da
    47745025    mov sp, bp                                ; 89 ec
    47755026    pop bp                                    ; 5d
    47765027    retn                                      ; c3
    4777 _cdemu_emulated_drive:                       ; 0xf3889 LB 0x16
     5028_cdemu_emulated_drive:                       ; 0xf3b5e LB 0x16
    47785029    push bp                                   ; 55
    47795030    mov bp, sp                                ; 89 e5
    47805031    mov dx, strict word 0000eh                ; ba 0e 00
    47815032    mov ax, strict word 00040h                ; b8 40 00
    4782     call 0166ch                               ; e8 d7 dd
    4783     mov dx, 00324h                            ; ba 24 03
    4784     call 01650h                               ; e8 b5 dd
     5033    call 0166ch                               ; e8 02 db
     5034    mov dx, 00368h                            ; ba 68 03
     5035    call 01650h                               ; e8 e0 da
    47855036    mov sp, bp                                ; 89 ec
    47865037    pop bp                                    ; 5d
    47875038    retn                                      ; c3
    4788 _int13_eltorito:                             ; 0xf389f LB 0x189
     5039_int13_eltorito:                             ; 0xf3b74 LB 0x189
    47895040    push bp                                   ; 55
    47905041    mov bp, sp                                ; 89 e5
     
    47935044    mov dx, strict word 0000eh                ; ba 0e 00
    47945045    mov ax, strict word 00040h                ; b8 40 00
    4795     call 0166ch                               ; e8 bf dd
    4796     mov si, 00322h                            ; be 22 03
     5046    call 0166ch                               ; e8 ea da
     5047    mov si, 00366h                            ; be 66 03
    47975048    mov di, ax                                ; 89 c7
    47985049    mov ax, word [bp+016h]                    ; 8b 46 16
    47995050    shr ax, 008h                              ; c1 e8 08
    48005051    cmp ax, strict word 0004bh                ; 3d 4b 00
    4801     jc short 038c7h                           ; 72 0a
    4802     jbe short 038edh                          ; 76 2e
     5052    jc short 03b9ch                           ; 72 0a
     5053    jbe short 03bc2h                          ; 76 2e
    48035054    cmp ax, strict word 0004dh                ; 3d 4d 00
    4804     jbe short 038ceh                          ; 76 0a
    4805     jmp near 039ech                           ; e9 25 01
     5055    jbe short 03ba3h                          ; 76 0a
     5056    jmp near 03cc1h                           ; e9 25 01
    48065057    cmp ax, strict word 0004ah                ; 3d 4a 00
    4807     jne near 039ech                           ; 0f 85 1e 01
    4808     mov bx, 00da2h                            ; bb a2 0d
     5058    jne near 03cc1h                           ; 0f 85 1e 01
     5059    mov bx, 00da0h                            ; bb a0 0d
    48095060    mov cx, ds                                ; 8c d9
    48105061    mov ax, strict word 00004h                ; b8 04 00
    4811     call 01931h                               ; e8 58 e0
     5062    call 01931h                               ; e8 83 dd
    48125063    push word [bp+016h]                       ; ff 76 16
    4813     push 002dch                               ; 68 dc 02
    4814     push 002ebh                               ; 68 eb 02
     5064    push 002fch                               ; 68 fc 02
     5065    push 0030bh                               ; 68 0b 03
    48155066    push strict byte 00004h                   ; 6a 04
    4816     call 01972h                               ; e8 8b e0
     5067    call 01972h                               ; e8 b6 dd
    48175068    add sp, strict byte 00008h                ; 83 c4 08
    4818     jmp near 03a07h                           ; e9 1a 01
     5069    jmp near 03cdch                           ; e9 1a 01
    48195070    mov dx, word [bp+00ah]                    ; 8b 56 0a
    48205071    mov ax, word [bp+004h]                    ; 8b 46 04
    48215072    mov bx, strict word 00013h                ; bb 13 00
    4822     call 0165eh                               ; e8 65 dd
     5073    call 0165eh                               ; e8 90 da
    48235074    mov es, di                                ; 8e c7
    48245075    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    48265077    inc dx                                    ; 42
    48275078    mov ax, word [bp+004h]                    ; 8b 46 04
    4828     call 0165eh                               ; e8 54 dd
     5079    call 0165eh                               ; e8 7f da
    48295080    mov es, di                                ; 8e c7
    48305081    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    48335084    inc dx                                    ; 42
    48345085    mov ax, word [bp+004h]                    ; 8b 46 04
    4835     call 0165eh                               ; e8 42 dd
     5086    call 0165eh                               ; e8 6d da
    48365087    mov es, di                                ; 8e c7
    48375088    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    48395090    add dx, strict byte 00003h                ; 83 c2 03
    48405091    mov ax, word [bp+004h]                    ; 8b 46 04
    4841     call 0165eh                               ; e8 2f dd
     5092    call 0165eh                               ; e8 5a da
    48425093    mov es, di                                ; 8e c7
    48435094    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    48465097    add dx, strict byte 00004h                ; 83 c2 04
    48475098    mov ax, word [bp+004h]                    ; 8b 46 04
    4848     call 0169ah                               ; e8 55 dd
     5099    call 0169ah                               ; e8 80 da
    48495100    mov es, di                                ; 8e c7
    48505101    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    48525103    add dx, strict byte 00008h                ; 83 c2 08
    48535104    mov ax, word [bp+004h]                    ; 8b 46 04
    4854     call 0167ah                               ; e8 23 dd
     5105    call 0167ah                               ; e8 4e da
    48555106    mov es, di                                ; 8e c7
    48565107    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    48585109    add dx, strict byte 0000ah                ; 83 c2 0a
    48595110    mov ax, word [bp+004h]                    ; 8b 46 04
    4860     call 0167ah                               ; e8 11 dd
     5111    call 0167ah                               ; e8 3c da
    48615112    mov es, di                                ; 8e c7
    48625113    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    48645115    add dx, strict byte 0000ch                ; 83 c2 0c
    48655116    mov ax, word [bp+004h]                    ; 8b 46 04
    4866     call 0167ah                               ; e8 ff dc
     5117    call 0167ah                               ; e8 2a da
    48675118    mov es, di                                ; 8e c7
    48685119    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    48705121    add dx, strict byte 0000eh                ; 83 c2 0e
    48715122    mov ax, word [bp+004h]                    ; 8b 46 04
    4872     call 0167ah                               ; e8 ed dc
     5123    call 0167ah                               ; e8 18 da
    48735124    mov es, di                                ; 8e c7
    48745125    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    48765127    add dx, strict byte 00010h                ; 83 c2 10
    48775128    mov ax, word [bp+004h]                    ; 8b 46 04
    4878     call 0165eh                               ; e8 be dc
     5129    call 0165eh                               ; e8 e9 d9
    48795130    mov es, di                                ; 8e c7
    48805131    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    48825133    add dx, strict byte 00011h                ; 83 c2 11
    48835134    mov ax, word [bp+004h]                    ; 8b 46 04
    4884     call 0165eh                               ; e8 ab dc
     5135    call 0165eh                               ; e8 d6 d9
    48855136    mov es, di                                ; 8e c7
    48865137    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    48885139    add dx, strict byte 00012h                ; 83 c2 12
    48895140    mov ax, word [bp+004h]                    ; 8b 46 04
    4890     call 0165eh                               ; e8 98 dc
     5141    call 0165eh                               ; e8 c3 d9
    48915142    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    4892     jne short 039d2h                          ; 75 06
     5143    jne short 03ca7h                          ; 75 06
    48935144    mov es, di                                ; 8e c7
    48945145    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    48975148    mov dx, strict word 00074h                ; ba 74 00
    48985149    mov ax, strict word 00040h                ; b8 40 00
    4899     call 0165eh                               ; e8 7d dc
     5150    call 0165eh                               ; e8 a8 d9
    49005151    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    49015152    lea sp, [bp-004h]                         ; 8d 66 fc
     
    49045155    pop bp                                    ; 5d
    49055156    retn                                      ; c3
    4906     mov bx, 00da2h                            ; bb a2 0d
     5157    mov bx, 00da0h                            ; bb a0 0d
    49075158    mov cx, ds                                ; 8c d9
    49085159    mov ax, strict word 00004h                ; b8 04 00
    4909     call 01931h                               ; e8 3a df
     5160    call 01931h                               ; e8 65 dc
    49105161    mov ax, word [bp+016h]                    ; 8b 46 16
    49115162    shr ax, 008h                              ; c1 e8 08
    49125163    push ax                                   ; 50
    4913     push 002dch                               ; 68 dc 02
    4914     push 00313h                               ; 68 13 03
    4915     jmp near 038e2h                           ; e9 db fe
     5164    push 002fch                               ; 68 fc 02
     5165    push 00333h                               ; 68 33 03
     5166    jmp near 03bb7h                           ; e9 db fe
    49165167    mov ax, word [bp+016h]                    ; 8b 46 16
    49175168    xor ah, ah                                ; 30 e4
     
    49235174    mov dx, strict word 00074h                ; ba 74 00
    49245175    mov ax, strict word 00040h                ; b8 40 00
    4925     call 0165eh                               ; e8 3c dc
     5176    call 0165eh                               ; e8 67 d9
    49265177    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4927     jmp short 039e5h                          ; eb bd
    4928 device_is_cdrom_:                            ; 0xf3a28 LB 0x35
     5178    jmp short 03cbah                          ; eb bd
     5179device_is_cdrom_:                            ; 0xf3cfd LB 0x35
    49295180    push bp                                   ; 55
    49305181    mov bp, sp                                ; 89 e5
     
    49345185    mov dx, strict word 0000eh                ; ba 0e 00
    49355186    mov ax, strict word 00040h                ; b8 40 00
    4936     call 0166ch                               ; e8 34 dc
     5187    call 0166ch                               ; e8 5f d9
    49375188    cmp bl, 010h                              ; 80 fb 10
    4938     jc short 03a41h                           ; 72 04
     5189    jc short 03d16h                           ; 72 04
    49395190    xor ax, ax                                ; 31 c0
    4940     jmp short 03a56h                          ; eb 15
     5191    jmp short 03d2bh                          ; eb 15
    49415192    xor bh, bh                                ; 30 ff
    4942     imul bx, bx, strict byte 00018h           ; 6b db 18
     5193    imul bx, bx, strict byte 0001ch           ; 6b db 1c
    49435194    mov es, ax                                ; 8e c0
    49445195    add bx, 00122h                            ; 81 c3 22 01
    4945     cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    4946     jne short 03a3dh                          ; 75 ea
     5196    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
     5197    jne short 03d12h                          ; 75 ea
    49475198    mov ax, strict word 00001h                ; b8 01 00
    49485199    lea sp, [bp-004h]                         ; 8d 66 fc
     
    49515202    pop bp                                    ; 5d
    49525203    retn                                      ; c3
    4953 cdrom_boot_:                                 ; 0xf3a5d LB 0x416
     5204cdrom_boot_:                                 ; 0xf3d32 LB 0x416
    49545205    push bp                                   ; 55
    49555206    mov bp, sp                                ; 89 e5
     
    49625213    mov dx, strict word 0000eh                ; ba 0e 00
    49635214    mov ax, strict word 00040h                ; b8 40 00
    4964     call 0166ch                               ; e8 fa db
     5215    call 0166ch                               ; e8 25 d9
    49655216    mov word [bp-018h], ax                    ; 89 46 e8
    4966     mov si, 00322h                            ; be 22 03
     5217    mov si, 00366h                            ; be 66 03
    49675218    mov word [bp-010h], ax                    ; 89 46 f0
    49685219    mov word [bp-014h], 00122h                ; c7 46 ec 22 01
    49695220    mov word [bp-012h], ax                    ; 89 46 ee
    49705221    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    4971     jmp short 03a92h                          ; eb 09
     5222    jmp short 03d67h                          ; eb 09
    49725223    inc byte [bp-00ch]                        ; fe 46 f4
    49735224    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    4974     jnc short 03a9dh                          ; 73 0b
     5225    jnc short 03d72h                          ; 73 0b
    49755226    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4976     call 03a28h                               ; e8 8f ff
     5227    call 03cfdh                               ; e8 8f ff
    49775228    test ax, ax                               ; 85 c0
    4978     je short 03a89h                           ; 74 ec
     5229    je short 03d5eh                           ; 74 ec
    49795230    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    4980     jc short 03aa9h                           ; 72 06
     5231    jc short 03d7eh                           ; 72 06
    49815232    mov ax, strict word 00002h                ; b8 02 00
    4982     jmp near 03e10h                           ; e9 67 03
     5233    jmp near 040e5h                           ; e9 67 03
    49835234    mov cx, strict word 0000ch                ; b9 0c 00
    49845235    xor bx, bx                                ; 31 db
    49855236    mov dx, ss                                ; 8c d2
    49865237    lea ax, [bp-026h]                         ; 8d 46 da
    4987     call 097aah                               ; e8 f4 5c
     5238    call 09d6ah                               ; e8 df 5f
    49885239    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    49895240    mov ax, strict word 00011h                ; b8 11 00
     
    49985249    mov word [bp-01fh], ax                    ; 89 46 e1
    49995250    les bx, [bp-014h]                         ; c4 5e ec
    5000     db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 008h
    5001     ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08
     5251    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 008h
     5252    ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
    50025253    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5003     jmp short 03aeeh                          ; eb 09
     5254    jmp short 03dc3h                          ; eb 09
    50045255    inc byte [bp-00eh]                        ; fe 46 f2
    50055256    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5006     jnbe short 03b25h                         ; 77 37
     5257    jnbe short 03dfah                         ; 77 37
    50075258    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    5008     imul di, di, strict byte 00018h           ; 6b ff 18
     5259    imul di, di, strict byte 0001ch           ; 6b ff 1c
    50095260    mov es, [bp-012h]                         ; 8e 46 ee
    50105261    add di, word [bp-014h]                    ; 03 7e ec
    5011     movzx di, byte [es:di+01eh]               ; 26 0f b6 7d 1e
     5262    movzx di, byte [es:di+022h]               ; 26 0f b6 7d 22
    50125263    add di, di                                ; 01 ff
    50135264    lea dx, [bp-00826h]                       ; 8d 96 da f7
     
    50245275    call word [word di+0006ah]                ; ff 95 6a 00
    50255276    test ax, ax                               ; 85 c0
    5026     jne short 03ae5h                          ; 75 c0
     5277    jne short 03dbah                          ; 75 c0
    50275278    test ax, ax                               ; 85 c0
    5028     je short 03b2fh                           ; 74 06
     5279    je short 03e04h                           ; 74 06
    50295280    mov ax, strict word 00003h                ; b8 03 00
    5030     jmp near 03e10h                           ; e9 e1 02
     5281    jmp near 040e5h                           ; e9 e1 02
    50315282    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5032     je short 03b3ch                           ; 74 06
     5283    je short 03e11h                           ; 74 06
    50335284    mov ax, strict word 00004h                ; b8 04 00
    5034     jmp near 03e10h                           ; e9 d4 02
     5285    jmp near 040e5h                           ; e9 d4 02
    50355286    xor di, di                                ; 31 ff
    5036     jmp short 03b46h                          ; eb 06
     5287    jmp short 03e1bh                          ; eb 06
    50375288    inc di                                    ; 47
    50385289    cmp di, strict byte 00005h                ; 83 ff 05
    5039     jnc short 03b56h                          ; 73 10
     5290    jnc short 03e2bh                          ; 73 10
    50405291    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    5041     cmp al, byte [di+00daah]                  ; 3a 85 aa 0d
    5042     je short 03b40h                           ; 74 f0
     5292    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
     5293    je short 03e15h                           ; 74 f0
    50435294    mov ax, strict word 00005h                ; b8 05 00
    5044     jmp near 03e10h                           ; e9 ba 02
     5295    jmp near 040e5h                           ; e9 ba 02
    50455296    xor di, di                                ; 31 ff
    5046     jmp short 03b60h                          ; eb 06
     5297    jmp short 03e35h                          ; eb 06
    50475298    inc di                                    ; 47
    50485299    cmp di, strict byte 00017h                ; 83 ff 17
    5049     jnc short 03b70h                          ; 73 10
     5300    jnc short 03e45h                          ; 73 10
    50505301    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    5051     cmp al, byte [di+00db0h]                  ; 3a 85 b0 0d
    5052     je short 03b5ah                           ; 74 f0
     5302    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
     5303    je short 03e2fh                           ; 74 f0
    50535304    mov ax, strict word 00006h                ; b8 06 00
    5054     jmp near 03e10h                           ; e9 a0 02
     5305    jmp near 040e5h                           ; e9 a0 02
    50555306    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    50565307    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    50655316    mov word [bp-01fh], ax                    ; 89 46 e1
    50665317    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    5067     imul di, di, strict byte 00018h           ; 6b ff 18
     5318    imul di, di, strict byte 0001ch           ; 6b ff 1c
    50685319    mov es, [bp-012h]                         ; 8e 46 ee
    50695320    add di, word [bp-014h]                    ; 03 7e ec
    5070     movzx di, byte [es:di+01eh]               ; 26 0f b6 7d 1e
     5321    movzx di, byte [es:di+022h]               ; 26 0f b6 7d 22
    50715322    add di, di                                ; 01 ff
    50725323    lea dx, [bp-00826h]                       ; 8d 96 da f7
     
    50835334    call word [word di+0006ah]                ; ff 95 6a 00
    50845335    test ax, ax                               ; 85 c0
    5085     je short 03bcdh                           ; 74 06
     5336    je short 03ea2h                           ; 74 06
    50865337    mov ax, strict word 00007h                ; b8 07 00
    5087     jmp near 03e10h                           ; e9 43 02
     5338    jmp near 040e5h                           ; e9 43 02
    50885339    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5089     je short 03bdah                           ; 74 06
     5340    je short 03eafh                           ; 74 06
    50905341    mov ax, strict word 00008h                ; b8 08 00
    5091     jmp near 03e10h                           ; e9 36 02
     5342    jmp near 040e5h                           ; e9 36 02
    50925343    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5093     je short 03be7h                           ; 74 06
     5344    je short 03ebch                           ; 74 06
    50945345    mov ax, strict word 00009h                ; b8 09 00
    5095     jmp near 03e10h                           ; e9 29 02
     5346    jmp near 040e5h                           ; e9 29 02
    50965347    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5097     je short 03bf4h                           ; 74 06
     5348    je short 03ec9h                           ; 74 06
    50985349    mov ax, strict word 0000ah                ; b8 0a 00
    5099     jmp near 03e10h                           ; e9 1c 02
     5350    jmp near 040e5h                           ; e9 1c 02
    51005351    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5101     jne short 03beeh                          ; 75 f3
     5352    jne short 03ec3h                          ; 75 f3
    51025353    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5103     je short 03c08h                           ; 74 06
     5354    je short 03eddh                           ; 74 06
    51045355    mov ax, strict word 0000bh                ; b8 0b 00
    5105     jmp near 03e10h                           ; e9 08 02
     5356    jmp near 040e5h                           ; e9 08 02
    51065357    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    51075358    mov es, [bp-010h]                         ; 8e 46 f0
    51085359    mov byte [es:si+001h], al                 ; 26 88 44 01
    51095360    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5110     jne short 03c21h                          ; 75 07
     5361    jne short 03ef6h                          ; 75 07
    51115362    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5112     jmp short 03c34h                          ; eb 13
     5363    jmp short 03f09h                          ; eb 13
    51135364    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5114     jnc short 03c2fh                          ; 73 07
     5365    jnc short 03f04h                          ; 73 07
    51155366    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5116     jmp short 03c34h                          ; eb 05
     5367    jmp short 03f09h                          ; eb 05
    51175368    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    51185369    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    51325383    mov word [bp-016h], ax                    ; 89 46 ea
    51335384    test ax, ax                               ; 85 c0
    5134     jne short 03c62h                          ; 75 05
     5385    jne short 03f37h                          ; 75 05
    51355386    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    51365387    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    51415392    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    51425393    test di, di                               ; 85 ff
    5143     je short 03c84h                           ; 74 06
     5394    je short 03f59h                           ; 74 06
    51445395    cmp di, 00400h                            ; 81 ff 00 04
    5145     jbe short 03c8ah                          ; 76 06
     5396    jbe short 03f5fh                          ; 76 06
    51465397    mov ax, strict word 0000ch                ; b8 0c 00
    5147     jmp near 03e10h                           ; e9 86 01
     5398    jmp near 040e5h                           ; e9 86 01
    51485399    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    51495400    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    51635414    mov word [bp-01fh], ax                    ; 89 46 e1
    51645415    les bx, [bp-014h]                         ; c4 5e ec
    5165     mov word [es:bx+00ah], dx                 ; 26 89 57 0a
    5166     mov word [es:bx+00ch], 00200h             ; 26 c7 47 0c 00 02
     5416    mov word [es:bx+00eh], dx                 ; 26 89 57 0e
     5417    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
    51675418    mov ax, di                                ; 89 f8
    51685419    sal ax, 009h                              ; c1 e0 09
     
    51715422    mov ax, dx                                ; 89 d0
    51725423    and ah, 007h                              ; 80 e4 07
    5173     mov word [es:bx+01ch], ax                 ; 26 89 47 1c
     5424    mov word [es:bx+020h], ax                 ; 26 89 47 20
    51745425    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    5175     imul ax, ax, strict byte 00018h           ; 6b c0 18
     5426    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    51765427    add bx, ax                                ; 01 c3
    5177     movzx ax, byte [es:bx+01eh]               ; 26 0f b6 47 1e
     5428    movzx ax, byte [es:bx+022h]               ; 26 0f b6 47 22
    51785429    add ax, ax                                ; 01 c0
    51795430    mov word [bp-01ah], ax                    ; 89 46 e6
     
    51855436    sal ax, 1                                 ; d1 e0
    51865437    rcl di, 1                                 ; d1 d7
    5187     loop 03cf8h                               ; e2 fa
     5438    loop 03fcdh                               ; e2 fa
    51885439    push di                                   ; 57
    51895440    push ax                                   ; 50
     
    51965447    call word [word di+0006ah]                ; ff 95 6a 00
    51975448    les bx, [bp-014h]                         ; c4 5e ec
    5198     mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
     5449    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    51995450    test ax, ax                               ; 85 c0
    5200     je short 03d28h                           ; 74 06
     5451    je short 03ffdh                           ; 74 06
    52015452    mov ax, strict word 0000dh                ; b8 0d 00
    5202     jmp near 03e10h                           ; e9 e8 00
     5453    jmp near 040e5h                           ; e9 e8 00
    52035454    mov es, [bp-010h]                         ; 8e 46 f0
    52045455    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    52055456    cmp AL, strict byte 002h                  ; 3c 02
    5206     jc short 03d40h                           ; 72 0d
    5207     jbe short 03d58h                          ; 76 23
     5457    jc short 04015h                           ; 72 0d
     5458    jbe short 0402dh                          ; 76 23
    52085459    cmp AL, strict byte 004h                  ; 3c 04
    5209     je short 03d6eh                           ; 74 35
     5460    je short 04043h                           ; 74 35
    52105461    cmp AL, strict byte 003h                  ; 3c 03
    5211     je short 03d63h                           ; 74 26
    5212     jmp near 03db9h                           ; e9 79 00
     5462    je short 04038h                           ; 74 26
     5463    jmp near 0408eh                           ; e9 79 00
    52135464    cmp AL, strict byte 001h                  ; 3c 01
    5214     jne short 03db9h                          ; 75 75
     5465    jne short 0408eh                          ; 75 75
    52155466    mov es, [bp-010h]                         ; 8e 46 f0
    52165467    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    52175468    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    52185469    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5219     jmp short 03db9h                          ; eb 61
     5470    jmp short 0408eh                          ; eb 61
    52205471    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    52215472    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    5222     jmp short 03d50h                          ; eb ed
     5473    jmp short 04025h                          ; eb ed
    52235474    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    52245475    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    5225     jmp short 03d50h                          ; eb e2
     5476    jmp short 04025h                          ; eb e2
    52265477    mov dx, 001c4h                            ; ba c4 01
    52275478    mov ax, word [bp-016h]                    ; 8b 46 ea
    5228     call 01650h                               ; e8 d9 d8
     5479    call 01650h                               ; e8 04 d6
    52295480    and AL, strict byte 03fh                  ; 24 3f
    52305481    xor ah, ah                                ; 30 e4
     
    52335484    mov dx, 001c4h                            ; ba c4 01
    52345485    mov ax, word [bp-016h]                    ; 8b 46 ea
    5235     call 01650h                               ; e8 c5 d8
     5486    call 01650h                               ; e8 f0 d5
    52365487    movzx bx, al                              ; 0f b6 d8
    52375488    sal bx, 002h                              ; c1 e3 02
    52385489    mov dx, 001c5h                            ; ba c5 01
    52395490    mov ax, word [bp-016h]                    ; 8b 46 ea
    5240     call 01650h                               ; e8 b6 d8
     5491    call 01650h                               ; e8 e1 d5
    52415492    xor ah, ah                                ; 30 e4
    52425493    add ax, bx                                ; 01 d8
     
    52465497    mov dx, 001c3h                            ; ba c3 01
    52475498    mov ax, word [bp-016h]                    ; 8b 46 ea
    5248     call 01650h                               ; e8 a1 d8
     5499    call 01650h                               ; e8 cc d5
    52495500    xor ah, ah                                ; 30 e4
    52505501    inc ax                                    ; 40
     
    52535504    mov es, [bp-010h]                         ; 8e 46 f0
    52545505    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5255     je short 03df7h                           ; 74 34
     5506    je short 040cch                           ; 74 34
    52565507    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5257     jne short 03de0h                          ; 75 16
     5508    jne short 040b5h                          ; 75 16
    52585509    mov dx, strict word 00010h                ; ba 10 00
    52595510    mov ax, strict word 00040h                ; b8 40 00
    5260     call 01650h                               ; e8 7d d8
     5511    call 01650h                               ; e8 a8 d5
    52615512    or AL, strict byte 041h                   ; 0c 41
    52625513    movzx bx, al                              ; 0f b6 d8
    52635514    mov dx, strict word 00010h                ; ba 10 00
    52645515    mov ax, strict word 00040h                ; b8 40 00
    5265     jmp short 03df4h                          ; eb 14
    5266     mov dx, 002c0h                            ; ba c0 02
     5516    jmp short 040c9h                          ; eb 14
     5517    mov dx, 00304h                            ; ba 04 03
    52675518    mov ax, word [bp-018h]                    ; 8b 46 e8
    5268     call 01650h                               ; e8 67 d8
     5519    call 01650h                               ; e8 92 d5
    52695520    db  0feh, 0c0h
    52705521    ; inc al                                    ; fe c0
    52715522    movzx bx, al                              ; 0f b6 d8
    5272     mov dx, 002c0h                            ; ba c0 02
     5523    mov dx, 00304h                            ; ba 04 03
    52735524    mov ax, word [bp-018h]                    ; 8b 46 e8
    5274     call 0165eh                               ; e8 67 d8
     5525    call 0165eh                               ; e8 92 d5
    52755526    mov es, [bp-010h]                         ; 8e 46 f0
    52765527    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5277     je short 03e05h                           ; 74 04
     5528    je short 040dah                           ; 74 04
    52785529    mov byte [es:si], 001h                    ; 26 c6 04 01
    52795530    mov es, [bp-010h]                         ; 8e 46 f0
     
    52895540    retn                                      ; c3
    52905541    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5291     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 00bh, 042h, 019h
    5292     db  03fh, 063h, 03fh, 08bh, 03fh, 058h, 03fh, 08bh, 03fh, 058h, 03fh, 061h, 041h, 03eh, 03fh, 00bh
    5293     db  042h, 00bh, 042h, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 03eh, 03fh, 002h, 042h, 03eh
    5294     db  03fh, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh
    5295     db  042h, 00bh, 042h, 00bh, 042h, 00bh, 042h, 00bh, 042h
    5296 _int13_cdemu:                                ; 0xf3e73 LB 0x434
     5542    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e0h, 044h, 0eeh
     5543    db  041h, 038h, 042h, 060h, 042h, 02dh, 042h, 060h, 042h, 02dh, 042h, 036h, 044h, 013h, 042h, 0e0h
     5544    db  044h, 0e0h, 044h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 0d7h, 044h, 013h
     5545    db  042h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h
     5546    db  044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h
     5547_int13_cdemu:                                ; 0xf4148 LB 0x434
    52975548    push bp                                   ; 55
    52985549    mov bp, sp                                ; 89 e5
     
    53025553    mov dx, strict word 0000eh                ; ba 0e 00
    53035554    mov ax, strict word 00040h                ; b8 40 00
    5304     call 0166ch                               ; e8 e8 d7
    5305     mov di, 00322h                            ; bf 22 03
     5555    call 0166ch                               ; e8 13 d5
     5556    mov di, 00366h                            ; bf 66 03
    53065557    mov cx, ax                                ; 89 c1
    53075558    mov si, di                                ; 89 fe
     
    53185569    mov dx, strict word 00074h                ; ba 74 00
    53195570    mov ax, strict word 00040h                ; b8 40 00
    5320     call 0165eh                               ; e8 ab d7
     5571    call 0165eh                               ; e8 d6 d4
    53215572    mov es, cx                                ; 8e c1
    53225573    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5323     je short 03ec9h                           ; 74 0e
     5574    je short 0419eh                           ; 74 0e
    53245575    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    53255576    mov ax, word [bp+012h]                    ; 8b 46 12
    53265577    xor ah, ah                                ; 30 e4
    53275578    cmp dx, ax                                ; 39 c2
    5328     je short 03ef2h                           ; 74 29
    5329     mov bx, 00da2h                            ; bb a2 0d
     5579    je short 041c7h                           ; 74 29
     5580    mov bx, 00da0h                            ; bb a0 0d
    53305581    mov cx, ds                                ; 8c d9
    53315582    mov ax, strict word 00004h                ; b8 04 00
    5332     call 01931h                               ; e8 5d da
     5583    call 01931h                               ; e8 88 d7
    53335584    mov ax, word [bp+012h]                    ; 8b 46 12
    53345585    xor ah, ah                                ; 30 e4
     
    53375588    shr ax, 008h                              ; c1 e8 08
    53385589    push ax                                   ; 50
    5339     push 0032ch                               ; 68 2c 03
    5340     push 00338h                               ; 68 38 03
     5590    push 0034ch                               ; 68 4c 03
     5591    push 00358h                               ; 68 58 03
    53415592    push strict byte 00004h                   ; 6a 04
    5342     call 01972h                               ; e8 86 da
     5593    call 01972h                               ; e8 b1 d7
    53435594    add sp, strict byte 0000ah                ; 83 c4 0a
    5344     jmp near 0422bh                           ; e9 39 03
     5595    jmp near 04500h                           ; e9 39 03
    53455596    mov ax, word [bp+016h]                    ; 8b 46 16
    53465597    shr ax, 008h                              ; c1 e8 08
    53475598    cmp ax, strict word 00050h                ; 3d 50 00
    5348     jnbe near 0420bh                          ; 0f 87 0c 03
     5599    jnbe near 044e0h                          ; 0f 87 0c 03
    53495600    push CS                                   ; 0e
    53505601    pop ES                                    ; 07
    53515602    mov cx, strict word 0001eh                ; b9 1e 00
    5352     mov di, 03e1ah                            ; bf 1a 3e
     5603    mov di, 040efh                            ; bf ef 40
    53535604    repne scasb                               ; f2 ae
    53545605    sal cx, 1                                 ; d1 e1
    53555606    mov di, cx                                ; 89 cf
    5356     mov ax, word [cs:di+03e37h]               ; 2e 8b 85 37 3e
     5607    mov ax, word [cs:di+0410ch]               ; 2e 8b 85 0c 41
    53575608    mov bx, word [bp+016h]                    ; 8b 5e 16
    53585609    xor bh, bh                                ; 30 ff
    53595610    jmp ax                                    ; ff e0
    53605611    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    5361     imul bx, bx, strict byte 00018h           ; 6b db 18
     5612    imul bx, bx, strict byte 0001ch           ; 6b db 1c
    53625613    mov es, [bp-00ch]                         ; 8e 46 f4
    53635614    add bx, word [bp-00eh]                    ; 03 5e f2
    5364     movzx bx, byte [es:bx+01eh]               ; 26 0f b6 5f 1e
     5615    movzx bx, byte [es:bx+022h]               ; 26 0f b6 5f 22
    53655616    add bx, bx                                ; 01 db
    53665617    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5367     je near 03f3eh                            ; 0f 84 08 00
     5618    je near 04213h                            ; 0f 84 08 00
    53685619    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    53695620    call word [word bx+00076h]                ; ff 97 76 00
     
    53725623    mov dx, strict word 00074h                ; ba 74 00
    53735624    mov ax, strict word 00040h                ; b8 40 00
    5374     call 0165eh                               ; e8 11 d7
     5625    call 0165eh                               ; e8 3c d4
    53755626    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    53765627    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53825633    xor ah, ah                                ; 30 e4
    53835634    or ah, 003h                               ; 80 cc 03
    5384     jmp near 04233h                           ; e9 d0 02
     5635    jmp near 04508h                           ; e9 d0 02
    53855636    mov dx, strict word 00074h                ; ba 74 00
    53865637    mov ax, strict word 00040h                ; b8 40 00
    5387     call 01650h                               ; e8 e4 d6
     5638    call 01650h                               ; e8 0f d4
    53885639    mov cl, al                                ; 88 c1
    53895640    movzx ax, cl                              ; 0f b6 c1
     
    53945645    mov dx, strict word 00074h                ; ba 74 00
    53955646    mov ax, strict word 00040h                ; b8 40 00
    5396     call 0165eh                               ; e8 da d6
     5647    call 0165eh                               ; e8 05 d4
    53975648    test cl, cl                               ; 84 c9
    5398     je short 03f42h                           ; 74 ba
    5399     jmp near 04247h                           ; e9 bc 02
     5649    je short 04217h                           ; 74 ba
     5650    jmp near 0451ch                           ; e9 bc 02
    54005651    mov es, [bp-008h]                         ; 8e 46 f8
    54015652    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    54215672    mov word [bp-00ah], cx                    ; 89 4e f6
    54225673    test cx, cx                               ; 85 c9
    5423     jne short 03fd8h                          ; 75 03
    5424     jmp near 03f3eh                           ; e9 66 ff
     5674    jne short 042adh                          ; 75 03
     5675    jmp near 04213h                           ; e9 66 ff
    54255676    cmp di, word [bp-010h]                    ; 3b 7e f0
    5426     jc near 0422bh                            ; 0f 82 4c 02
     5677    jc near 04500h                            ; 0f 82 4c 02
    54275678    cmp ax, dx                                ; 39 d0
    5428     jnc near 0422bh                           ; 0f 83 46 02
     5679    jnc near 04500h                           ; 0f 83 46 02
    54295680    cmp si, bx                                ; 39 de
    5430     jnc near 0422bh                           ; 0f 83 40 02
     5681    jnc near 04500h                           ; 0f 83 40 02
    54315682    mov dx, word [bp+016h]                    ; 8b 56 16
    54325683    shr dx, 008h                              ; c1 ea 08
    54335684    cmp dx, strict byte 00004h                ; 83 fa 04
    5434     jne short 03ff9h                          ; 75 03
    5435     jmp near 03f3eh                           ; e9 45 ff
     5685    jne short 042ceh                          ; 75 03
     5686    jmp near 04213h                           ; e9 45 ff
    54365687    mov dx, word [bp+010h]                    ; 8b 56 10
    54375688    shr dx, 004h                              ; c1 ea 04
     
    54445695    xor dl, dl                                ; 30 d2
    54455696    xor cx, cx                                ; 31 c9
    5446     call 09779h                               ; e8 62 57
     5697    call 09d19h                               ; e8 2d 5a
    54475698    xor bx, bx                                ; 31 db
    54485699    add ax, si                                ; 01 f0
     
    54505701    mov bx, di                                ; 89 fb
    54515702    xor cx, cx                                ; 31 c9
    5452     call 09779h                               ; e8 55 57
     5703    call 09d19h                               ; e8 20 5a
    54535704    mov bx, ax                                ; 89 c3
    54545705    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    54855736    mov dx, ss                                ; 8c d2
    54865737    lea ax, [bp-02eh]                         ; 8d 46 d2
    5487     call 097aah                               ; e8 2f 57
     5738    call 09d6ah                               ; e8 1a 5a
    54885739    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    54895740    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    55035754    mov ax, word [bp-00ah]                    ; 8b 46 f6
    55045755    les bx, [bp-00eh]                         ; c4 5e f2
    5505     mov word [es:bx+00ah], ax                 ; 26 89 47 0a
    5506     mov word [es:bx+00ch], 00200h             ; 26 c7 47 0c 00 02
     5756    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
     5757    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
    55075758    mov ax, di                                ; 89 f8
    55085759    sal ax, 009h                              ; c1 e0 09
    5509     mov word [es:bx+01ah], ax                 ; 26 89 47 1a
     5760    mov word [es:bx+01eh], ax                 ; 26 89 47 1e
    55105761    mov dx, word [bp-00ah]                    ; 8b 56 f6
    55115762    xor dh, dh                                ; 30 f6
     
    55185769    and dh, 007h                              ; 80 e6 07
    55195770    mov bx, word [bp-00eh]                    ; 8b 5e f2
    5520     mov word [es:bx+01ch], dx                 ; 26 89 57 1c
     5771    mov word [es:bx+020h], dx                 ; 26 89 57 20
    55215772    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    5522     imul dx, dx, strict byte 00018h           ; 6b d2 18
     5773    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
    55235774    add bx, dx                                ; 01 d3
    5524     movzx dx, byte [es:bx+01eh]               ; 26 0f b6 57 1e
     5775    movzx dx, byte [es:bx+022h]               ; 26 0f b6 57 22
    55255776    add dx, dx                                ; 01 d2
    55265777    mov word [bp-01ah], dx                    ; 89 56 e6
     
    55335784    sal si, 1                                 ; d1 e6
    55345785    rcl di, 1                                 ; d1 d7
    5535     loop 040fbh                               ; e2 fa
     5786    loop 043d0h                               ; e2 fa
    55365787    push di                                   ; 57
    55375788    push si                                   ; 56
     
    55455796    mov dx, ax                                ; 89 c2
    55465797    les bx, [bp-00eh]                         ; c4 5e f2
    5547     db  066h, 026h, 0c7h, 047h, 01ah, 000h, 000h, 000h, 000h
    5548     ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00
     5798    db  066h, 026h, 0c7h, 047h, 01eh, 000h, 000h, 000h, 000h
     5799    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
    55495800    test al, al                               ; 84 c0
    5550     je near 03f3eh                            ; 0f 84 13 fe
    5551     mov bx, 00da2h                            ; bb a2 0d
     5801    je near 04213h                            ; 0f 84 13 fe
     5802    mov bx, 00da0h                            ; bb a0 0d
    55525803    mov cx, ds                                ; 8c d9
    55535804    mov ax, strict word 00004h                ; b8 04 00
    5554     call 01931h                               ; e8 fb d7
     5805    call 01931h                               ; e8 26 d5
    55555806    movzx ax, dl                              ; 0f b6 c2
    55565807    push ax                                   ; 50
     
    55585809    shr ax, 008h                              ; c1 e8 08
    55595810    push ax                                   ; 50
    5560     push 0032ch                               ; 68 2c 03
    5561     push 0036eh                               ; 68 6e 03
     5811    push 0034ch                               ; 68 4c 03
     5812    push 0038eh                               ; 68 8e 03
    55625813    push strict byte 00004h                   ; 6a 04
    5563     call 01972h                               ; e8 26 d8
     5814    call 01972h                               ; e8 51 d5
    55645815    add sp, strict byte 0000ah                ; 83 c4 0a
    55655816    mov ax, word [bp+016h]                    ; 8b 46 16
     
    55685819    mov word [bp+016h], ax                    ; 89 46 16
    55695820    mov byte [bp+016h], 000h                  ; c6 46 16 00
    5570     jmp near 04236h                           ; e9 d5 00
     5821    jmp near 0450bh                           ; e9 d5 00
    55715822    mov es, [bp-008h]                         ; 8e 46 f8
    55725823    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    56075858    mov word [bp+010h], ax                    ; 89 46 10
    56085859    cmp dl, 003h                              ; 80 fa 03
    5609     je short 041e5h                           ; 74 1a
     5860    je short 044bah                           ; 74 1a
    56105861    cmp dl, 002h                              ; 80 fa 02
    5611     je short 041e1h                           ; 74 11
     5862    je short 044b6h                           ; 74 11
    56125863    cmp dl, 001h                              ; 80 fa 01
    5613     jne short 041e9h                          ; 75 14
     5864    jne short 044beh                          ; 75 14
    56145865    mov ax, word [bp+010h]                    ; 8b 46 10
    56155866    xor al, al                                ; 30 c0
    56165867    or AL, strict byte 002h                   ; 0c 02
    56175868    mov word [bp+010h], ax                    ; 89 46 10
    5618     jmp short 041e9h                          ; eb 08
     5869    jmp short 044beh                          ; eb 08
    56195870    or AL, strict byte 004h                   ; 0c 04
    5620     jmp short 041dch                          ; eb f7
     5871    jmp short 044b1h                          ; eb f7
    56215872    or AL, strict byte 005h                   ; 0c 05
    5622     jmp short 041dch                          ; eb f3
     5873    jmp short 044b1h                          ; eb f3
    56235874    mov es, [bp-008h]                         ; 8e 46 f8
    56245875    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    5625     jnc near 03f3eh                           ; 0f 83 49 fd
     5876    jnc near 04213h                           ; 0f 83 49 fd
    56265877    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    56275878    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5628     jmp near 03f3eh                           ; e9 3c fd
     5879    jmp near 04213h                           ; e9 3c fd
    56295880    or bh, 003h                               ; 80 cf 03
    56305881    mov word [bp+016h], bx                    ; 89 5e 16
    5631     jmp near 03f42h                           ; e9 37 fd
    5632     mov bx, 00da2h                            ; bb a2 0d
     5882    jmp near 04217h                           ; e9 37 fd
     5883    mov bx, 00da0h                            ; bb a0 0d
    56335884    mov cx, ds                                ; 8c d9
    56345885    mov ax, strict word 00004h                ; b8 04 00
    5635     call 01931h                               ; e8 1b d7
     5886    call 01931h                               ; e8 46 d4
    56365887    mov ax, word [bp+016h]                    ; 8b 46 16
    56375888    shr ax, 008h                              ; c1 e8 08
    56385889    push ax                                   ; 50
    5639     push 0032ch                               ; 68 2c 03
    5640     push 0038fh                               ; 68 8f 03
     5890    push 0034ch                               ; 68 4c 03
     5891    push 003afh                               ; 68 af 03
    56415892    push strict byte 00004h                   ; 6a 04
    5642     call 01972h                               ; e8 4a d7
     5893    call 01972h                               ; e8 75 d4
    56435894    add sp, strict byte 00008h                ; 83 c4 08
    56445895    mov ax, word [bp+016h]                    ; 8b 46 16
     
    56515902    mov dx, strict word 00074h                ; ba 74 00
    56525903    mov ax, strict word 00040h                ; b8 40 00
    5653     call 0165eh                               ; e8 17 d4
     5904    call 0165eh                               ; e8 42 d1
    56545905    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5655     jmp near 03f51h                           ; e9 03 fd
     5906    jmp near 04226h                           ; e9 03 fd
    56565907    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5657     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0ech, 047h, 068h
    5658     db  045h, 054h, 043h, 0ech, 047h, 049h, 043h, 0ech, 047h, 049h, 043h, 0ech, 047h, 068h, 045h, 0ech
    5659     db  047h, 0ech, 047h, 068h, 045h, 068h, 045h, 068h, 045h, 068h, 045h, 068h, 045h, 07eh, 043h, 068h
    5660     db  045h, 0ech, 047h, 087h, 043h, 09ah, 043h, 049h, 043h, 09ah, 043h, 0c8h, 044h, 082h, 045h, 09ah
    5661     db  043h, 0a9h, 045h, 0a5h, 047h, 0adh, 047h, 0ech, 047h
    5662 _int13_cdrom:                                ; 0xf42a7 LB 0x562
     5908    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c1h, 04ah, 03dh
     5909    db  048h, 029h, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 03dh, 048h, 0c1h
     5910    db  04ah, 0c1h, 04ah, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 053h, 046h, 03dh
     5911    db  048h, 0c1h, 04ah, 05ch, 046h, 06fh, 046h, 01eh, 046h, 06fh, 046h, 09dh, 047h, 057h, 048h, 06fh
     5912    db  046h, 07eh, 048h, 07ah, 04ah, 082h, 04ah, 0c1h, 04ah
     5913_int13_cdrom:                                ; 0xf457c LB 0x562
    56635914    push bp                                   ; 55
    56645915    mov bp, sp                                ; 89 e5
     
    56685919    mov dx, strict word 0000eh                ; ba 0e 00
    56695920    mov ax, strict word 00040h                ; b8 40 00
    5670     call 0166ch                               ; e8 b4 d3
     5921    call 0166ch                               ; e8 df d0
    56715922    mov word [bp-01ah], ax                    ; 89 46 e6
    56725923    mov si, 00122h                            ; be 22 01
     
    56755926    mov dx, strict word 00074h                ; ba 74 00
    56765927    mov ax, strict word 00040h                ; b8 40 00
    5677     call 0165eh                               ; e8 92 d3
     5928    call 0165eh                               ; e8 bd d0
    56785929    mov ax, word [bp+010h]                    ; 8b 46 10
    56795930    xor ah, ah                                ; 30 e4
    56805931    cmp ax, 000e0h                            ; 3d e0 00
    5681     jc short 042dbh                           ; 72 05
     5932    jc short 045b0h                           ; 72 05
    56825933    cmp ax, 000f0h                            ; 3d f0 00
    5683     jc short 042f9h                           ; 72 1e
     5934    jc short 045ceh                           ; 72 1e
    56845935    mov ax, word [bp+010h]                    ; 8b 46 10
    56855936    xor ah, ah                                ; 30 e4
     
    56885939    shr ax, 008h                              ; c1 e8 08
    56895940    push ax                                   ; 50
    5690     push 003bfh                               ; 68 bf 03
    5691     push 003cbh                               ; 68 cb 03
     5941    push 003dfh                               ; 68 df 03
     5942    push 003ebh                               ; 68 eb 03
    56925943    push strict byte 00004h                   ; 6a 04
    5693     call 01972h                               ; e8 7f d6
     5944    call 01972h                               ; e8 aa d3
    56945945    add sp, strict byte 0000ah                ; 83 c4 0a
    5695     jmp near 047c9h                           ; e9 d0 04
     5946    jmp near 04a9eh                           ; e9 d0 04
    56965947    mov ax, word [bp+010h]                    ; 8b 46 10
    56975948    xor ah, ah                                ; 30 e4
     
    56995950    mov bx, si                                ; 89 f3
    57005951    add bx, ax                                ; 01 c3
    5701     mov dl, byte [es:bx+000d0h]               ; 26 8a 97 d0 00
     5952    mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
    57025953    mov byte [bp-008h], dl                    ; 88 56 f8
    57035954    cmp dl, 010h                              ; 80 fa 10
    5704     jc short 04322h                           ; 72 10
     5955    jc short 045f7h                           ; 72 10
    57055956    push ax                                   ; 50
    57065957    mov ax, word [bp+018h]                    ; 8b 46 18
    57075958    shr ax, 008h                              ; c1 e8 08
    57085959    push ax                                   ; 50
    5709     push 003bfh                               ; 68 bf 03
    5710     push 003f6h                               ; 68 f6 03
    5711     jmp short 042eeh                          ; eb cc
     5960    push 003dfh                               ; 68 df 03
     5961    push 00416h                               ; 68 16 04
     5962    jmp short 045c3h                          ; eb cc
    57125963    mov ax, word [bp+018h]                    ; 8b 46 18
    57135964    shr ax, 008h                              ; c1 e8 08
    57145965    cmp ax, strict word 00050h                ; 3d 50 00
    5715     jnbe near 047ech                          ; 0f 87 bd 04
     5966    jnbe near 04ac1h                          ; 0f 87 bd 04
    57165967    push CS                                   ; 0e
    57175968    pop ES                                    ; 07
    57185969    mov cx, strict word 0001eh                ; b9 1e 00
    5719     mov di, 0424eh                            ; bf 4e 42
     5970    mov di, 04523h                            ; bf 23 45
    57205971    repne scasb                               ; f2 ae
    57215972    sal cx, 1                                 ; d1 e1
    57225973    mov di, cx                                ; 89 cf
    5723     mov ax, word [cs:di+0426bh]               ; 2e 8b 85 6b 42
     5974    mov ax, word [cs:di+04540h]               ; 2e 8b 85 40 45
    57245975    mov bx, word [bp+018h]                    ; 8b 5e 18
    57255976    xor bh, bh                                ; 30 ff
     
    57285979    xor ah, ah                                ; 30 e4
    57295980    or ah, 003h                               ; 80 cc 03
    5730     jmp near 047d1h                           ; e9 7d 04
     5981    jmp near 04aa6h                           ; e9 7d 04
    57315982    mov dx, strict word 00074h                ; ba 74 00
    57325983    mov ax, strict word 00040h                ; b8 40 00
    5733     call 01650h                               ; e8 f3 d2
     5984    call 01650h                               ; e8 1e d0
    57345985    mov cl, al                                ; 88 c1
    57355986    movzx ax, cl                              ; 0f b6 c1
     
    57405991    mov dx, strict word 00074h                ; ba 74 00
    57415992    mov ax, strict word 00040h                ; b8 40 00
    5742     call 0165eh                               ; e8 e9 d2
     5993    call 0165eh                               ; e8 14 d0
    57435994    test cl, cl                               ; 84 c9
    5744     je near 0456ch                            ; 0f 84 f1 01
    5745     jmp near 047e5h                           ; e9 67 04
     5995    je near 04841h                            ; 0f 84 f1 01
     5996    jmp near 04abah                           ; e9 67 04
    57465997    or bh, 002h                               ; 80 cf 02
    57475998    mov word [bp+018h], bx                    ; 89 5e 18
    5748     jmp near 047d4h                           ; e9 4d 04
     5999    jmp near 04aa9h                           ; e9 4d 04
    57496000    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    57506001    or bh, 030h                               ; 80 cf 30
    57516002    mov word [bp+018h], bx                    ; 89 5e 18
    57526003    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    5753     jmp near 0456ch                           ; e9 d2 01
     6004    jmp near 04841h                           ; e9 d2 01
    57546005    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    57556006    mov es, [bp+006h]                         ; 8e 46 06
     
    57666017    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    57676018    or di, ax                                 ; 09 c7
    5768     je short 043e2h                           ; 74 18
     6019    je short 046b7h                           ; 74 18
    57696020    mov ax, word [bp+018h]                    ; 8b 46 18
    57706021    shr ax, 008h                              ; c1 e8 08
    57716022    push ax                                   ; 50
    5772     push 003bfh                               ; 68 bf 03
    5773     push 00428h                               ; 68 28 04
     6023    push 003dfh                               ; 68 df 03
     6024    push 00448h                               ; 68 48 04
    57746025    push strict byte 00007h                   ; 6a 07
    5775     call 01972h                               ; e8 96 d5
     6026    call 01972h                               ; e8 c1 d2
    57766027    add sp, strict byte 00008h                ; 83 c4 08
    5777     jmp near 047c9h                           ; e9 e7 03
     6028    jmp near 04a9eh                           ; e9 e7 03
    57786029    les bx, [bp-014h]                         ; c4 5e ec
    57796030    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    57856036    mov word [bp-016h], ax                    ; 89 46 ea
    57866037    cmp ax, strict word 00044h                ; 3d 44 00
    5787     je near 04568h                            ; 0f 84 66 01
     6038    je near 0483dh                            ; 0f 84 66 01
    57886039    cmp ax, strict word 00047h                ; 3d 47 00
    5789     je near 04568h                            ; 0f 84 5f 01
     6040    je near 0483dh                            ; 0f 84 5f 01
    57906041    mov cx, strict word 0000ch                ; b9 0c 00
    57916042    xor bx, bx                                ; 31 db
    57926043    mov dx, ss                                ; 8c d2
    57936044    lea ax, [bp-02ch]                         ; 8d 46 d4
    5794     call 097aah                               ; e8 94 53
     6045    call 09d6ah                               ; e8 7f 56
    57956046    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    57966047    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    58066057    mov ax, word [bp-010h]                    ; 8b 46 f0
    58076058    mov es, [bp-00ch]                         ; 8e 46 f4
    5808     mov word [es:si+00ah], ax                 ; 26 89 44 0a
    5809     mov word [es:si+00ch], 00800h             ; 26 c7 44 0c 00 08
     6059    mov word [es:si+00eh], ax                 ; 26 89 44 0e
     6060    mov word [es:si+010h], 00800h             ; 26 c7 44 10 00 08
    58106061    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    5811     imul bx, bx, strict byte 00018h           ; 6b db 18
     6062    imul bx, bx, strict byte 0001ch           ; 6b db 1c
    58126063    add bx, si                                ; 01 f3
    5813     movzx di, byte [es:bx+01eh]               ; 26 0f b6 7f 1e
     6064    movzx di, byte [es:bx+022h]               ; 26 0f b6 7f 22
    58146065    add di, di                                ; 01 ff
    58156066    push word [bp-01ch]                       ; ff 76 e4
     
    58206071    sal ax, 1                                 ; d1 e0
    58216072    rcl bx, 1                                 ; d1 d3
    5822     loop 04460h                               ; e2 fa
     6073    loop 04735h                               ; e2 fa
    58236074    push bx                                   ; 53
    58246075    push ax                                   ; 50
     
    58316082    mov dx, ax                                ; 89 c2
    58326083    mov es, [bp-00ch]                         ; 8e 46 f4
    5833     mov ax, word [es:si+016h]                 ; 26 8b 44 16
    5834     mov di, word [es:si+018h]                 ; 26 8b 7c 18
     6084    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
     6085    mov di, word [es:si+01ch]                 ; 26 8b 7c 1c
    58356086    mov cx, strict word 0000bh                ; b9 0b 00
    58366087    shr di, 1                                 ; d1 ef
    58376088    rcr ax, 1                                 ; d1 d8
    5838     loop 0448ah                               ; e2 fa
     6089    loop 0475fh                               ; e2 fa
    58396090    les bx, [bp-014h]                         ; c4 5e ec
    58406091    mov word [es:bx+002h], ax                 ; 26 89 47 02
    58416092    test dl, dl                               ; 84 d2
    5842     je near 04568h                            ; 0f 84 cb 00
    5843     mov bx, 00da2h                            ; bb a2 0d
     6093    je near 0483dh                            ; 0f 84 cb 00
     6094    mov bx, 00da0h                            ; bb a0 0d
    58446095    mov cx, ds                                ; 8c d9
    58456096    mov ax, strict word 00004h                ; b8 04 00
    5846     call 01931h                               ; e8 89 d4
     6097    call 01931h                               ; e8 b4 d1
    58476098    movzx ax, dl                              ; 0f b6 c2
    58486099    push ax                                   ; 50
    58496100    push word [bp-016h]                       ; ff 76 ea
    5850     push 003bfh                               ; 68 bf 03
    5851     push 00451h                               ; 68 51 04
     6101    push 003dfh                               ; 68 df 03
     6102    push 00471h                               ; 68 71 04
    58526103    push strict byte 00004h                   ; 6a 04
    5853     call 01972h                               ; e8 b8 d4
     6104    call 01972h                               ; e8 e3 d1
    58546105    add sp, strict byte 0000ah                ; 83 c4 0a
    58556106    mov ax, word [bp+018h]                    ; 8b 46 18
    58566107    xor ah, ah                                ; 30 e4
    58576108    or ah, 00ch                               ; 80 cc 0c
    5858     jmp near 047d1h                           ; e9 09 03
     6109    jmp near 04aa6h                           ; e9 09 03
    58596110    cmp bx, strict byte 00002h                ; 83 fb 02
    5860     jnbe near 047c9h                          ; 0f 87 fa 02
     6111    jnbe near 04a9eh                          ; 0f 87 fa 02
    58616112    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    5862     imul ax, ax, strict byte 00018h           ; 6b c0 18
     6113    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    58636114    mov es, [bp-00ch]                         ; 8e 46 f4
    58646115    mov di, si                                ; 89 f7
    58656116    add di, ax                                ; 01 c7
    5866     mov al, byte [es:di+021h]                 ; 26 8a 45 21
     6117    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    58676118    cmp bx, strict byte 00002h                ; 83 fb 02
    5868     je short 04559h                           ; 74 73
     6119    je short 0482eh                           ; 74 73
    58696120    cmp bx, strict byte 00001h                ; 83 fb 01
    5870     je short 04526h                           ; 74 3b
     6121    je short 047fbh                           ; 74 3b
    58716122    test bx, bx                               ; 85 db
    5872     jne near 04568h                           ; 0f 85 77 00
     6123    jne near 0483dh                           ; 0f 85 77 00
    58736124    cmp AL, strict byte 0ffh                  ; 3c ff
    5874     jne short 04507h                          ; 75 12
     6125    jne short 047dch                          ; 75 12
    58756126    mov ax, word [bp+018h]                    ; 8b 46 18
    58766127    xor ah, ah                                ; 30 e4
     
    58796130    xor al, al                                ; 30 c0
    58806131    or AL, strict byte 001h                   ; 0c 01
    5881     jmp near 047d1h                           ; e9 ca 02
     6132    jmp near 04aa6h                           ; e9 ca 02
    58826133    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    5883     imul dx, dx, strict byte 00018h           ; 6b d2 18
     6134    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
    58846135    db  0feh, 0c0h
    58856136    ; inc al                                    ; fe c0
    58866137    mov es, [bp-00ch]                         ; 8e 46 f4
    58876138    add si, dx                                ; 01 d6
    5888     mov byte [es:si+021h], al                 ; 26 88 44 21
     6139    mov byte [es:si+025h], al                 ; 26 88 44 25
    58896140    mov ax, word [bp+018h]                    ; 8b 46 18
    58906141    xor al, al                                ; 30 c0
    58916142    or AL, strict byte 001h                   ; 0c 01
    58926143    mov word [bp+018h], ax                    ; 89 46 18
    5893     jmp near 04568h                           ; e9 42 00
     6144    jmp near 0483dh                           ; e9 42 00
    58946145    test al, al                               ; 84 c0
    5895     jne short 04536h                          ; 75 0c
     6146    jne short 0480bh                          ; 75 0c
    58966147    or bh, 0b0h                               ; 80 cf b0
    58976148    mov word [bp+018h], bx                    ; 89 5e 18
    58986149    mov byte [bp+018h], al                    ; 88 46 18
    5899     jmp near 047d4h                           ; e9 9e 02
     6150    jmp near 04aa9h                           ; e9 9e 02
    59006151    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    5901     imul dx, dx, strict byte 00018h           ; 6b d2 18
     6152    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
    59026153    db  0feh, 0c8h
    59036154    ; dec al                                    ; fe c8
    59046155    mov es, [bp-00ch]                         ; 8e 46 f4
    59056156    add si, dx                                ; 01 d6
    5906     mov byte [es:si+021h], al                 ; 26 88 44 21
     6157    mov byte [es:si+025h], al                 ; 26 88 44 25
    59076158    test al, al                               ; 84 c0
    59086159    db  00fh, 095h, 0c0h
     
    59126163    xor al, al                                ; 30 c0
    59136164    or ax, dx                                 ; 09 d0
    5914     jmp short 04520h                          ; eb c7
     6165    jmp short 047f5h                          ; eb c7
    59156166    test al, al                               ; 84 c0
    59166167    db  00fh, 095h, 0c0h
     
    59246175    mov dx, strict word 00074h                ; ba 74 00
    59256176    mov ax, strict word 00040h                ; b8 40 00
    5926     call 0165eh                               ; e8 e7 d0
     6177    call 0165eh                               ; e8 12 ce
    59276178    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    59286179    lea sp, [bp-004h]                         ; 8d 66 fc
     
    59326183    retn                                      ; c3
    59336184    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    5934     imul ax, ax, strict byte 00018h           ; 6b c0 18
     6185    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    59356186    mov es, [bp-00ch]                         ; 8e 46 f4
    59366187    add si, ax                                ; 01 c6
    5937     mov al, byte [es:si+021h]                 ; 26 8a 44 21
     6188    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    59386189    test al, al                               ; 84 c0
    5939     je short 0459ch                           ; 74 06
     6190    je short 04871h                           ; 74 06
    59406191    or bh, 0b1h                               ; 80 cf b1
    5941     jmp near 04381h                           ; e9 e5 fd
    5942     je short 04568h                           ; 74 ca
     6192    jmp near 04656h                           ; e9 e5 fd
     6193    je short 0483dh                           ; 74 ca
    59436194    mov ax, word [bp+018h]                    ; 8b 46 18
    59446195    xor ah, ah                                ; 30 e4
    59456196    or ah, 0b1h                               ; 80 cc b1
    5946     jmp near 047d1h                           ; e9 28 02
     6197    jmp near 04aa6h                           ; e9 28 02
    59476198    mov dx, word [bp+00ch]                    ; 8b 56 0c
    59486199    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    59546205    mov word [bp-00eh], ax                    ; 89 46 f2
    59556206    cmp ax, strict word 0001ah                ; 3d 1a 00
    5956     jc near 047c9h                            ; 0f 82 04 02
    5957     jc short 04616h                           ; 72 4f
     6207    jc near 04a9eh                            ; 0f 82 04 02
     6208    jc short 048ebh                           ; 72 4f
    59586209    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    5959     imul ax, ax, strict byte 00018h           ; 6b c0 18
     6210    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    59606211    mov es, [bp-00ch]                         ; 8e 46 f4
    59616212    mov di, si                                ; 89 f7
    59626213    add di, ax                                ; 01 c7
    5963     mov ax, word [es:di+024h]                 ; 26 8b 45 24
     6214    mov ax, word [es:di+028h]                 ; 26 8b 45 28
    59646215    mov es, cx                                ; 8e c1
    59656216    mov di, dx                                ; 89 d7
     
    59786229    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    59796230    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    5980     jc near 046edh                            ; 0f 82 cf 00
     6231    jc near 049c2h                            ; 0f 82 cf 00
    59816232    mov es, [bp-00ah]                         ; 8e 46 f6
    59826233    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
    59836234    mov ax, word [bp-01ah]                    ; 8b 46 e6
    59846235    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    5985     mov word [es:bx+01ah], 00312h             ; 26 c7 47 1a 12 03
     6236    mov word [es:bx+01ah], 00356h             ; 26 c7 47 1a 56 03
    59866237    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    59876238    mov ax, cx                                ; 89 c8
     
    59946245    mov es, [bp-00ch]                         ; 8e 46 f4
    59956246    add di, si                                ; 01 f7
    5996     mov ax, word [es:di+001c2h]               ; 26 8b 85 c2 01
     6247    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
    59976248    mov word [bp-01eh], ax                    ; 89 46 e2
    5998     mov dx, word [es:di+001c4h]               ; 26 8b 95 c4 01
    5999     mov al, byte [es:di+001c1h]               ; 26 8a 85 c1 01
     6249    mov dx, word [es:di+00208h]               ; 26 8b 95 08 02
     6250    mov al, byte [es:di+00205h]               ; 26 8a 85 05 02
    60006251    mov byte [bp-006h], al                    ; 88 46 fa
    6001     imul cx, cx, strict byte 00018h           ; 6b c9 18
     6252    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
    60026253    mov di, si                                ; 89 f7
    60036254    add di, cx                                ; 01 cf
    6004     mov al, byte [es:di+022h]                 ; 26 8a 45 22
     6255    mov al, byte [es:di+026h]                 ; 26 8a 45 26
    60056256    cmp AL, strict byte 001h                  ; 3c 01
    60066257    db  00fh, 094h, 0c0h
     
    60106261    mov di, ax                                ; 89 c7
    60116262    mov ax, word [bp-01eh]                    ; 8b 46 e2
    6012     mov word [es:si+001f0h], ax               ; 26 89 84 f0 01
    6013     mov word [es:si+001f2h], dx               ; 26 89 94 f2 01
     6263    mov word [es:si+00234h], ax               ; 26 89 84 34 02
     6264    mov word [es:si+00236h], dx               ; 26 89 94 36 02
    60146265    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    60156266    cwd                                       ; 99
     
    60196270    mov ax, dx                                ; 89 d0
    60206271    sal ax, 004h                              ; c1 e0 04
    6021     mov byte [es:si+001f4h], al               ; 26 88 84 f4 01
    6022     mov byte [es:si+001f5h], 0cbh             ; 26 c6 84 f5 01 cb
     6272    mov byte [es:si+00238h], al               ; 26 88 84 38 02
     6273    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
    60236274    mov al, byte [bp-006h]                    ; 8a 46 fa
    6024     mov byte [es:si+001f6h], al               ; 26 88 84 f6 01
    6025     mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00
    6026     mov byte [es:si+001f9h], 000h             ; 26 c6 84 f9 01 00
    6027     mov word [es:si+001fah], di               ; 26 89 bc fa 01
    6028     mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00
    6029     mov byte [es:si+001feh], 011h             ; 26 c6 84 fe 01 11
     6275    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
     6276    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
     6277    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
     6278    mov word [es:si+0023eh], di               ; 26 89 bc 3e 02
     6279    mov word [es:si+00240h], strict word 00000h ; 26 c7 84 40 02 00 00
     6280    mov byte [es:si+00242h], 011h             ; 26 c6 84 42 02 11
    60306281    xor cl, cl                                ; 30 c9
    60316282    xor ch, ch                                ; 30 ed
    6032     jmp short 046d0h                          ; eb 05
     6283    jmp short 049a5h                          ; eb 05
    60336284    cmp ch, 00fh                              ; 80 fd 0f
    6034     jnc short 046e3h                          ; 73 13
     6285    jnc short 049b8h                          ; 73 13
    60356286    movzx dx, ch                              ; 0f b6 d5
    6036     add dx, 00312h                            ; 81 c2 12 03
     6287    add dx, 00356h                            ; 81 c2 56 03
    60376288    mov ax, word [bp-01ah]                    ; 8b 46 e6
    6038     call 01650h                               ; e8 73 cf
     6289    call 01650h                               ; e8 9e cc
    60396290    add cl, al                                ; 00 c1
    60406291    db  0feh, 0c5h
    60416292    ; inc ch                                    ; fe c5
    6042     jmp short 046cbh                          ; eb e8
     6293    jmp short 049a0h                          ; eb e8
    60436294    neg cl                                    ; f6 d9
    60446295    mov es, [bp-00ch]                         ; 8e 46 f4
    6045     mov byte [es:si+001ffh], cl               ; 26 88 8c ff 01
     6296    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    60466297    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    6047     jc near 04568h                            ; 0f 82 73 fe
     6298    jc near 0483dh                            ; 0f 82 73 fe
    60486299    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    60496300    cwd                                       ; 99
     
    60556306    mov es, [bp-00ch]                         ; 8e 46 f4
    60566307    add si, ax                                ; 01 c6
    6057     mov al, byte [es:si+001c0h]               ; 26 8a 84 c0 01
    6058     mov dx, word [es:si+001c2h]               ; 26 8b 94 c2 01
     6308    mov al, byte [es:si+00204h]               ; 26 8a 84 04 02
     6309    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
    60596310    mov es, [bp-00ah]                         ; 8e 46 f6
    60606311    mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
     
    60636314    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    60646315    test al, al                               ; 84 c0
    6065     jne short 04736h                          ; 75 09
     6316    jne short 04a0bh                          ; 75 09
    60666317    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    60676318    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    60726323    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    60736324    test al, al                               ; 84 c0
    6074     jne short 04762h                          ; 75 13
     6325    jne short 04a37h                          ; 75 13
    60756326    mov word [es:bx+030h], dx                 ; 26 89 57 30
    60766327    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    60876338    xor al, al                                ; 30 c0
    60886339    mov AH, strict byte 01eh                  ; b4 1e
    6089     jmp short 0478ah                          ; eb 05
     6340    jmp short 04a5fh                          ; eb 05
    60906341    cmp ah, 040h                              ; 80 fc 40
    6091     jnc short 04799h                          ; 73 0f
     6342    jnc short 04a6eh                          ; 73 0f
    60926343    movzx si, ah                              ; 0f b6 f4
    60936344    mov es, [bp-00ah]                         ; 8e 46 f6
     
    60966347    db  0feh, 0c4h
    60976348    ; inc ah                                    ; fe c4
    6098     jmp short 04785h                          ; eb ec
     6349    jmp short 04a5ah                          ; eb ec
    60996350    neg al                                    ; f6 d8
    61006351    mov es, [bp-00ah]                         ; 8e 46 f6
    61016352    mov byte [es:bx+041h], al                 ; 26 88 47 41
    6102     jmp near 04568h                           ; e9 c3 fd
     6353    jmp near 0483dh                           ; e9 c3 fd
    61036354    or bh, 006h                               ; 80 cf 06
    61046355    mov word [bp+018h], bx                    ; 89 5e 18
    6105     jmp short 047e5h                          ; eb 38
     6356    jmp short 04abah                          ; eb 38
    61066357    cmp bx, strict byte 00006h                ; 83 fb 06
    6107     je near 04568h                            ; 0f 84 b4 fd
     6358    je near 0483dh                            ; 0f 84 b4 fd
    61086359    cmp bx, strict byte 00001h                ; 83 fb 01
    6109     jc short 047c9h                           ; 72 10
    6110     jbe near 04568h                           ; 0f 86 ab fd
     6360    jc short 04a9eh                           ; 72 10
     6361    jbe near 0483dh                           ; 0f 86 ab fd
    61116362    cmp bx, strict byte 00003h                ; 83 fb 03
    6112     jc short 047c9h                           ; 72 07
     6363    jc short 04a9eh                           ; 72 07
    61136364    cmp bx, strict byte 00004h                ; 83 fb 04
    6114     jbe near 04568h                           ; 0f 86 9f fd
     6365    jbe near 0483dh                           ; 0f 86 9f fd
    61156366    mov ax, word [bp+018h]                    ; 8b 46 18
    61166367    xor ah, ah                                ; 30 e4
     
    61226373    mov dx, strict word 00074h                ; ba 74 00
    61236374    mov ax, strict word 00040h                ; b8 40 00
    6124     call 0165eh                               ; e8 79 ce
     6375    call 0165eh                               ; e8 a4 cb
    61256376    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6126     jmp near 0457bh                           ; e9 8f fd
    6127     mov bx, 00da2h                            ; bb a2 0d
     6377    jmp near 04850h                           ; e9 8f fd
     6378    mov bx, 00da0h                            ; bb a0 0d
    61286379    mov cx, ds                                ; 8c d9
    61296380    mov ax, strict word 00004h                ; b8 04 00
    6130     call 01931h                               ; e8 3a d1
     6381    call 01931h                               ; e8 65 ce
    61316382    mov ax, word [bp+018h]                    ; 8b 46 18
    61326383    shr ax, 008h                              ; c1 e8 08
    61336384    push ax                                   ; 50
    6134     push 003bfh                               ; 68 bf 03
    6135     push 00313h                               ; 68 13 03
     6385    push 003dfh                               ; 68 df 03
     6386    push 00333h                               ; 68 33 03
    61366387    push strict byte 00004h                   ; 6a 04
    6137     jmp near 043d9h                           ; e9 d0 fb
    6138 print_boot_device_:                          ; 0xf4809 LB 0x4b
     6388    jmp near 046aeh                           ; e9 d0 fb
     6389print_boot_device_:                          ; 0xf4ade LB 0x4b
    61396390    push bp                                   ; 55
    61406391    mov bp, sp                                ; 89 e5
    61416392    push cx                                   ; 51
    61426393    test al, al                               ; 84 c0
    6143     je short 04816h                           ; 74 05
     6394    je short 04aebh                           ; 74 05
    61446395    mov dx, strict word 00002h                ; ba 02 00
    6145     jmp short 04830h                          ; eb 1a
     6396    jmp short 04b05h                          ; eb 1a
    61466397    test dl, dl                               ; 84 d2
    6147     je short 0481fh                           ; 74 05
     6398    je short 04af4h                           ; 74 05
    61486399    mov dx, strict word 00003h                ; ba 03 00
    6149     jmp short 04830h                          ; eb 11
     6400    jmp short 04b05h                          ; eb 11
    61506401    test bl, 080h                             ; f6 c3 80
    6151     jne short 04828h                          ; 75 04
     6402    jne short 04afdh                          ; 75 04
    61526403    xor dh, dh                                ; 30 f6
    6153     jmp short 04830h                          ; eb 08
     6404    jmp short 04b05h                          ; eb 08
    61546405    test bl, 080h                             ; f6 c3 80
    6155     je short 0484eh                           ; 74 21
     6406    je short 04b23h                           ; 74 21
    61566407    mov dx, strict word 00001h                ; ba 01 00
    6157     mov bx, 00da2h                            ; bb a2 0d
     6408    mov bx, 00da0h                            ; bb a0 0d
    61586409    mov cx, ds                                ; 8c d9
    61596410    mov ax, strict word 00004h                ; b8 04 00
    6160     call 01931h                               ; e8 f6 d0
     6411    call 01931h                               ; e8 21 ce
    61616412    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    6162     add dx, 00dc8h                            ; 81 c2 c8 0d
     6413    add dx, 00dc6h                            ; 81 c2 c6 0d
    61636414    push dx                                   ; 52
    6164     push 00474h                               ; 68 74 04
     6415    push 00494h                               ; 68 94 04
    61656416    push strict byte 00004h                   ; 6a 04
    6166     call 01972h                               ; e8 27 d1
     6417    call 01972h                               ; e8 52 ce
    61676418    add sp, strict byte 00006h                ; 83 c4 06
    61686419    lea sp, [bp-002h]                         ; 8d 66 fe
     
    61706421    pop bp                                    ; 5d
    61716422    retn                                      ; c3
    6172 print_boot_failure_:                         ; 0xf4854 LB 0x93
     6423print_boot_failure_:                         ; 0xf4b29 LB 0x93
    61736424    push bp                                   ; 55
    61746425    mov bp, sp                                ; 89 e5
     
    61796430    movzx si, ah                              ; 0f b6 f4
    61806431    test al, al                               ; 84 c0
    6181     je short 04881h                           ; 74 1b
    6182     mov bx, 00da2h                            ; bb a2 0d
     6432    je short 04b56h                           ; 74 1b
     6433    mov bx, 00da0h                            ; bb a0 0d
    61836434    mov cx, ds                                ; 8c d9
    61846435    mov ax, strict word 00004h                ; b8 04 00
    6185     call 01931h                               ; e8 c0 d0
    6186     push 00ddch                               ; 68 dc 0d
    6187     push 00488h                               ; 68 88 04
     6436    call 01931h                               ; e8 eb cd
     6437    push 00ddah                               ; 68 da 0d
     6438    push 004a8h                               ; 68 a8 04
    61886439    push strict byte 00004h                   ; 6a 04
    6189     call 01972h                               ; e8 f6 d0
     6440    call 01972h                               ; e8 21 ce
    61906441    add sp, strict byte 00006h                ; 83 c4 06
    6191     jmp short 048c5h                          ; eb 44
     6442    jmp short 04b9ah                          ; eb 44
    61926443    test dl, dl                               ; 84 d2
    6193     je short 04895h                           ; 74 10
    6194     mov bx, 00da2h                            ; bb a2 0d
     6444    je short 04b6ah                           ; 74 10
     6445    mov bx, 00da0h                            ; bb a0 0d
    61956446    mov cx, ds                                ; 8c d9
    61966447    mov ax, strict word 00004h                ; b8 04 00
    6197     call 01931h                               ; e8 a1 d0
    6198     push 00de6h                               ; 68 e6 0d
    6199     jmp short 04874h                          ; eb df
     6448    call 01931h                               ; e8 cc cd
     6449    push 00de4h                               ; 68 e4 0d
     6450    jmp short 04b49h                          ; eb df
    62006451    test bl, 080h                             ; f6 c3 80
    6201     je short 048abh                           ; 74 11
    6202     mov bx, 00da2h                            ; bb a2 0d
     6452    je short 04b80h                           ; 74 11
     6453    mov bx, 00da0h                            ; bb a0 0d
    62036454    mov cx, ds                                ; 8c d9
    62046455    mov ax, strict word 00004h                ; b8 04 00
    6205     call 01931h                               ; e8 8c d0
     6456    call 01931h                               ; e8 b7 cd
    62066457    push si                                   ; 56
    6207     push 00dd2h                               ; 68 d2 0d
    6208     jmp short 048bah                          ; eb 0f
    6209     mov bx, 00da2h                            ; bb a2 0d
     6458    push 00dd0h                               ; 68 d0 0d
     6459    jmp short 04b8fh                          ; eb 0f
     6460    mov bx, 00da0h                            ; bb a0 0d
    62106461    mov cx, ds                                ; 8c d9
    62116462    mov ax, strict word 00004h                ; b8 04 00
    6212     call 01931h                               ; e8 7b d0
     6463    call 01931h                               ; e8 a6 cd
    62136464    push si                                   ; 56
    6214     push 00dc8h                               ; 68 c8 0d
    6215     push 0049dh                               ; 68 9d 04
     6465    push 00dc6h                               ; 68 c6 0d
     6466    push 004bdh                               ; 68 bd 04
    62166467    push strict byte 00004h                   ; 6a 04
    6217     call 01972h                               ; e8 b0 d0
     6468    call 01972h                               ; e8 db cd
    62186469    add sp, strict byte 00008h                ; 83 c4 08
    62196470    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6220     jne short 048dfh                          ; 75 14
     6471    jne short 04bb4h                          ; 75 14
    62216472    test dh, dh                               ; 84 f6
    6222     jne short 048d4h                          ; 75 05
    6223     push 004b5h                               ; 68 b5 04
    6224     jmp short 048d7h                          ; eb 03
    6225     push 004dfh                               ; 68 df 04
     6473    jne short 04ba9h                          ; 75 05
     6474    push 004d5h                               ; 68 d5 04
     6475    jmp short 04bach                          ; eb 03
     6476    push 004ffh                               ; 68 ff 04
    62266477    push strict byte 00007h                   ; 6a 07
    6227     call 01972h                               ; e8 96 d0
     6478    call 01972h                               ; e8 c1 cd
    62286479    add sp, strict byte 00004h                ; 83 c4 04
    62296480    lea sp, [bp-002h]                         ; 8d 66 fe
     
    62316482    pop bp                                    ; 5d
    62326483    retn 00002h                               ; c2 02 00
    6233 print_cdromboot_failure_:                    ; 0xf48e7 LB 0x27
     6484print_cdromboot_failure_:                    ; 0xf4bbc LB 0x27
    62346485    push bp                                   ; 55
    62356486    mov bp, sp                                ; 89 e5
     
    62386489    push dx                                   ; 52
    62396490    mov dx, ax                                ; 89 c2
    6240     mov bx, 00da2h                            ; bb a2 0d
     6491    mov bx, 00da0h                            ; bb a0 0d
    62416492    mov cx, ds                                ; 8c d9
    62426493    mov ax, strict word 00004h                ; b8 04 00
    6243     call 01931h                               ; e8 37 d0
     6494    call 01931h                               ; e8 62 cd
    62446495    push dx                                   ; 52
    6245     push 00514h                               ; 68 14 05
     6496    push 00534h                               ; 68 34 05
    62466497    push strict byte 00004h                   ; 6a 04
    6247     call 01972h                               ; e8 6f d0
     6498    call 01972h                               ; e8 9a cd
    62486499    add sp, strict byte 00006h                ; 83 c4 06
    62496500    lea sp, [bp-006h]                         ; 8d 66 fa
     
    62536504    pop bp                                    ; 5d
    62546505    retn                                      ; c3
    6255 _int19_function:                             ; 0xf490e LB 0x256
     6506_int19_function:                             ; 0xf4be3 LB 0x256
    62566507    push bp                                   ; 55
    62576508    mov bp, sp                                ; 89 e5
     
    62616512    mov dx, strict word 0000eh                ; ba 0e 00
    62626513    mov ax, strict word 00040h                ; b8 40 00
    6263     call 0166ch                               ; e8 4d cd
     6514    call 0166ch                               ; e8 78 ca
    62646515    mov bx, ax                                ; 89 c3
    62656516    mov word [bp-00eh], ax                    ; 89 46 f2
    62666517    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    62676518    mov ax, strict word 0003dh                ; b8 3d 00
    6268     call 016ach                               ; e8 7e cd
     6519    call 016ach                               ; e8 a9 ca
    62696520    movzx si, al                              ; 0f b6 f0
    62706521    mov ax, strict word 00038h                ; b8 38 00
    6271     call 016ach                               ; e8 75 cd
     6522    call 016ach                               ; e8 a0 ca
    62726523    and AL, strict byte 0f0h                  ; 24 f0
    62736524    xor ah, ah                                ; 30 e4
     
    62756526    or si, ax                                 ; 09 c6
    62766527    mov ax, strict word 0003ch                ; b8 3c 00
    6277     call 016ach                               ; e8 66 cd
     6528    call 016ach                               ; e8 91 ca
    62786529    and AL, strict byte 00fh                  ; 24 0f
    62796530    xor ah, ah                                ; 30 e4
    62806531    sal ax, 00ch                              ; c1 e0 0c
    62816532    or si, ax                                 ; 09 c6
    6282     mov dx, 00339h                            ; ba 39 03
     6533    mov dx, 0037dh                            ; ba 7d 03
    62836534    mov ax, bx                                ; 89 d8
    6284     call 01650h                               ; e8 f9 cc
     6535    call 01650h                               ; e8 24 ca
    62856536    test al, al                               ; 84 c0
    6286     je short 04966h                           ; 74 0b
    6287     mov dx, 00339h                            ; ba 39 03
     6537    je short 04c3bh                           ; 74 0b
     6538    mov dx, 0037dh                            ; ba 7d 03
    62886539    mov ax, bx                                ; 89 d8
    6289     call 01650h                               ; e8 ed cc
     6540    call 01650h                               ; e8 18 ca
    62906541    movzx si, al                              ; 0f b6 f0
    62916542    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6292     jne short 0497ch                          ; 75 10
     6543    jne short 04c51h                          ; 75 10
    62936544    mov ax, strict word 0003ch                ; b8 3c 00
    6294     call 016ach                               ; e8 3a cd
     6545    call 016ach                               ; e8 65 ca
    62956546    and AL, strict byte 0f0h                  ; 24 f0
    62966547    xor ah, ah                                ; 30 e4
    62976548    sar ax, 004h                              ; c1 f8 04
    6298     call 0781eh                               ; e8 a2 2e
     6549    call 07b6bh                               ; e8 1a 2f
    62996550    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6300     jne short 04985h                          ; 75 03
     6551    jne short 04c5ah                          ; 75 03
    63016552    shr si, 004h                              ; c1 ee 04
    63026553    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6303     jne short 0498eh                          ; 75 03
     6554    jne short 04c63h                          ; 75 03
    63046555    shr si, 008h                              ; c1 ee 08
    63056556    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6306     jne short 04997h                          ; 75 03
     6557    jne short 04c6ch                          ; 75 03
    63076558    shr si, 00ch                              ; c1 ee 0c
    63086559    cmp si, strict byte 00010h                ; 83 fe 10
    6309     jnc short 049a0h                          ; 73 04
     6560    jnc short 04c75h                          ; 73 04
    63106561    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    63116562    xor al, al                                ; 30 c0
     
    63136564    mov byte [bp-00ah], al                    ; 88 46 f6
    63146565    mov byte [bp-00ch], al                    ; 88 46 f4
    6315     mov bx, 00da2h                            ; bb a2 0d
     6566    mov bx, 00da0h                            ; bb a0 0d
    63166567    mov cx, ds                                ; 8c d9
    63176568    mov ax, strict word 00004h                ; b8 04 00
    6318     call 01931h                               ; e8 7b cf
     6569    call 01931h                               ; e8 a6 cc
    63196570    push si                                   ; 56
    63206571    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    63216572    push ax                                   ; 50
    6322     push 00534h                               ; 68 34 05
     6573    push 00554h                               ; 68 54 05
    63236574    push strict byte 00004h                   ; 6a 04
    6324     call 01972h                               ; e8 ae cf
     6575    call 01972h                               ; e8 d9 cc
    63256576    add sp, strict byte 00008h                ; 83 c4 08
    63266577    and si, strict byte 0000fh                ; 83 e6 0f
    63276578    cmp si, strict byte 00002h                ; 83 fe 02
    6328     jc short 049ddh                           ; 72 0e
    6329     jbe short 049ech                          ; 76 1b
     6579    jc short 04cb2h                           ; 72 0e
     6580    jbe short 04cc1h                          ; 76 1b
    63306581    cmp si, strict byte 00004h                ; 83 fe 04
    6331     je short 04a0ah                           ; 74 34
     6582    je short 04cdfh                           ; 74 34
    63326583    cmp si, strict byte 00003h                ; 83 fe 03
    6333     je short 04a00h                           ; 74 25
    6334     jmp short 04a37h                          ; eb 5a
     6584    je short 04cd5h                           ; 74 25
     6585    jmp short 04d0ch                          ; eb 5a
    63356586    cmp si, strict byte 00001h                ; 83 fe 01
    6336     jne short 04a37h                          ; 75 55
     6587    jne short 04d0ch                          ; 75 55
    63376588    xor al, al                                ; 30 c0
    63386589    mov byte [bp-006h], al                    ; 88 46 fa
    63396590    mov byte [bp-00ah], al                    ; 88 46 f6
    6340     jmp short 04a4fh                          ; eb 63
    6341     mov dx, 00338h                            ; ba 38 03
     6591    jmp short 04d24h                          ; eb 63
     6592    mov dx, 0037ch                            ; ba 7c 03
    63426593    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6343     call 01650h                               ; e8 5b cc
     6594    call 01650h                               ; e8 86 c9
    63446595    add AL, strict byte 080h                  ; 04 80
    63456596    mov byte [bp-006h], al                    ; 88 46 fa
    63466597    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6347     jmp short 04a4fh                          ; eb 4f
     6598    jmp short 04d24h                          ; eb 4f
    63486599    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    63496600    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6350     jmp short 04a14h                          ; eb 0a
     6601    jmp short 04ce9h                          ; eb 0a
    63516602    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    63526603    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6353     je short 04a4fh                           ; 74 3b
    6354     call 03a5dh                               ; e8 46 f0
     6604    je short 04d24h                           ; 74 3b
     6605    call 03d32h                               ; e8 46 f0
    63556606    mov bx, ax                                ; 89 c3
    63566607    test AL, strict byte 0ffh                 ; a8 ff
    6357     je short 04a3eh                           ; 74 21
    6358     call 048e7h                               ; e8 c7 fe
     6608    je short 04d13h                           ; 74 21
     6609    call 04bbch                               ; e8 c7 fe
    63596610    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    63606611    push ax                                   ; 50
     
    63636614    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    63646615    mov cx, strict word 00001h                ; b9 01 00
    6365     call 04854h                               ; e8 1d fe
     6616    call 04b29h                               ; e8 1d fe
    63666617    xor ax, ax                                ; 31 c0
    63676618    xor dx, dx                                ; 31 d2
    6368     jmp near 04b5dh                           ; e9 1f 01
    6369     mov dx, 0032eh                            ; ba 2e 03
     6619    jmp near 04e32h                           ; e9 1f 01
     6620    mov dx, 00372h                            ; ba 72 03
    63706621    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6371     call 0166ch                               ; e8 25 cc
     6622    call 0166ch                               ; e8 50 c9
    63726623    mov di, ax                                ; 89 c7
    63736624    shr bx, 008h                              ; c1 eb 08
    63746625    mov byte [bp-006h], bl                    ; 88 5e fa
    63756626    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6376     jne near 04acbh                           ; 0f 85 74 00
     6627    jne near 04da0h                           ; 0f 85 74 00
    63776628    xor si, si                                ; 31 f6
    63786629    mov ax, 0e200h                            ; b8 00 e2
    63796630    mov es, ax                                ; 8e c0
    63806631    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6381     jne short 04a20h                          ; 75 bb
     6632    jne short 04cf5h                          ; 75 bb
    63826633    mov cx, ax                                ; 89 c1
    63836634    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    63846635    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6385     jne short 04a20h                          ; 75 ad
     6636    jne short 04cf5h                          ; 75 ad
    63866637    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6387     jne short 04a20h                          ; 75 a6
     6638    jne short 04cf5h                          ; 75 a6
    63886639    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    63896640    mov dx, word [es:di]                      ; 26 8b 15
    63906641    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    63916642    cmp ax, 06568h                            ; 3d 68 65
    6392     jne short 04aa9h                          ; 75 1f
     6643    jne short 04d7eh                          ; 75 1f
    63936644    cmp dx, 07445h                            ; 81 fa 45 74
    6394     jne short 04aa9h                          ; 75 19
     6645    jne short 04d7eh                          ; 75 19
    63956646    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    63966647    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    63976648    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6398     call 04809h                               ; e8 6a fd
     6649    call 04adeh                               ; e8 6a fd
    63996650    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    64006651    mov word [bp-010h], cx                    ; 89 4e f0
    6401     jmp short 04ac5h                          ; eb 1c
     6652    jmp short 04d9ah                          ; eb 1c
    64026653    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    64036654    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    64046655    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6405     call 04809h                               ; e8 51 fd
     6656    call 04adeh                               ; e8 51 fd
    64066657    sti                                       ; fb
    64076658    mov word [bp-010h], cx                    ; 89 4e f0
     
    64106661    mov word [bp-012h], ax                    ; 89 46 ee
    64116662    call far [bp-012h]                        ; ff 5e ee
    6412     jmp near 04a20h                           ; e9 55 ff
     6663    jmp near 04cf5h                           ; e9 55 ff
    64136664    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6414     jne short 04af7h                          ; 75 26
     6665    jne short 04dcch                          ; 75 26
    64156666    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6416     jne short 04af7h                          ; 75 20
     6667    jne short 04dcch                          ; 75 20
    64176668    mov di, 007c0h                            ; bf c0 07
    64186669    mov es, di                                ; 8e c7
     
    64276678    sbb ax, strict byte 00000h                ; 83 d8 00
    64286679    test ax, ax                               ; 85 c0
    6429     jne near 04a20h                           ; 0f 85 29 ff
     6680    jne near 04cf5h                           ; 0f 85 29 ff
    64306681    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    64316682    db  00fh, 094h, 0c1h
    64326683    ; sete cl                                   ; 0f 94 c1
    64336684    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6434     je short 04b06h                           ; 74 02
     6685    je short 04ddbh                           ; 74 02
    64356686    mov CL, strict byte 001h                  ; b1 01
    64366687    xor dx, dx                                ; 31 d2
    64376688    mov ax, di                                ; 89 f8
    6438     call 0166ch                               ; e8 5f cb
     6689    call 0166ch                               ; e8 8a c8
    64396690    mov bx, ax                                ; 89 c3
    64406691    mov dx, strict word 00002h                ; ba 02 00
    64416692    mov ax, di                                ; 89 f8
    6442     call 0166ch                               ; e8 55 cb
     6693    call 0166ch                               ; e8 80 c8
    64436694    cmp bx, ax                                ; 39 c3
    6444     je short 04b2ch                           ; 74 11
     6695    je short 04e01h                           ; 74 11
    64456696    test cl, cl                               ; 84 c9
    6446     jne short 04b42h                          ; 75 23
     6697    jne short 04e17h                          ; 75 23
    64476698    mov dx, 001feh                            ; ba fe 01
    64486699    mov ax, di                                ; 89 f8
    6449     call 0166ch                               ; e8 45 cb
     6700    call 0166ch                               ; e8 70 c8
    64506701    cmp ax, 0aa55h                            ; 3d 55 aa
    6451     je short 04b42h                           ; 74 16
     6702    je short 04e17h                           ; 74 16
    64526703    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    64536704    push ax                                   ; 50
     
    64566707    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    64576708    xor cx, cx                                ; 31 c9
    6458     jmp near 04a34h                           ; e9 f2 fe
     6709    jmp near 04d09h                           ; e9 f2 fe
    64596710    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    64606711    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    64616712    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6462     call 04809h                               ; e8 b8 fc
     6713    call 04adeh                               ; e8 b8 fc
    64636714    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    64646715    xor dx, dx                                ; 31 d2
     
    64716722    pop bp                                    ; 5d
    64726723    retn                                      ; c3
    6473 keyboard_panic_:                             ; 0xf4b64 LB 0x13
     6724keyboard_panic_:                             ; 0xf4e39 LB 0x13
    64746725    push bp                                   ; 55
    64756726    mov bp, sp                                ; 89 e5
    64766727    push ax                                   ; 50
    6477     push 00554h                               ; 68 54 05
     6728    push 00574h                               ; 68 74 05
    64786729    push strict byte 00007h                   ; 6a 07
    6479     call 01972h                               ; e8 02 ce
     6730    call 01972h                               ; e8 2d cb
    64806731    add sp, strict byte 00006h                ; 83 c4 06
    64816732    mov sp, bp                                ; 89 ec
    64826733    pop bp                                    ; 5d
    64836734    retn                                      ; c3
    6484 _keyboard_init:                              ; 0xf4b77 LB 0x26a
     6735_keyboard_init:                              ; 0xf4e4c LB 0x26a
    64856736    push bp                                   ; 55
    64866737    mov bp, sp                                ; 89 e5
     
    64946745    ; sub ah, ah                                ; 2a e4
    64956746    test AL, strict byte 002h                 ; a8 02
    6496     je short 04b9ah                           ; 74 0d
     6747    je short 04e6fh                           ; 74 0d
    64976748    dec bx                                    ; 4b
    64986749    test bx, bx                               ; 85 db
    6499     jbe short 04b9ah                          ; 76 08
     6750    jbe short 04e6fh                          ; 76 08
    65006751    xor al, al                                ; 30 c0
    65016752    mov dx, 00080h                            ; ba 80 00
    65026753    out DX, AL                                ; ee
    6503     jmp short 04b83h                          ; eb e9
     6754    jmp short 04e58h                          ; eb e9
    65046755    test bx, bx                               ; 85 db
    6505     jne short 04ba3h                          ; 75 05
     6756    jne short 04e78h                          ; 75 05
    65066757    xor ax, ax                                ; 31 c0
    6507     call 04b64h                               ; e8 c1 ff
     6758    call 04e39h                               ; e8 c1 ff
    65086759    mov bx, strict word 0ffffh                ; bb ff ff
    65096760    mov dx, strict word 00064h                ; ba 64 00
     
    65126763    ; sub ah, ah                                ; 2a e4
    65136764    test AL, strict byte 001h                 ; a8 01
    6514     jne short 04bbdh                          ; 75 0d
     6765    jne short 04e92h                          ; 75 0d
    65156766    dec bx                                    ; 4b
    65166767    test bx, bx                               ; 85 db
    6517     jbe short 04bbdh                          ; 76 08
     6768    jbe short 04e92h                          ; 76 08
    65186769    mov AL, strict byte 001h                  ; b0 01
    65196770    mov dx, 00080h                            ; ba 80 00
    65206771    out DX, AL                                ; ee
    6521     jmp short 04ba6h                          ; eb e9
     6772    jmp short 04e7bh                          ; eb e9
    65226773    test bx, bx                               ; 85 db
    6523     jne short 04bc7h                          ; 75 06
     6774    jne short 04e9ch                          ; 75 06
    65246775    mov ax, strict word 00001h                ; b8 01 00
    6525     call 04b64h                               ; e8 9d ff
     6776    call 04e39h                               ; e8 9d ff
    65266777    mov dx, strict word 00060h                ; ba 60 00
    65276778    in AL, DX                                 ; ec
     
    65296780    ; sub ah, ah                                ; 2a e4
    65306781    cmp ax, strict word 00055h                ; 3d 55 00
    6531     je short 04bd8h                           ; 74 06
     6782    je short 04eadh                           ; 74 06
    65326783    mov ax, 003dfh                            ; b8 df 03
    6533     call 04b64h                               ; e8 8c ff
     6784    call 04e39h                               ; e8 8c ff
    65346785    mov AL, strict byte 0abh                  ; b0 ab
    65356786    mov dx, strict word 00064h                ; ba 64 00
     
    65416792    ; sub ah, ah                                ; 2a e4
    65426793    test AL, strict byte 002h                 ; a8 02
    6543     je short 04bf8h                           ; 74 0d
     6794    je short 04ecdh                           ; 74 0d
    65446795    dec bx                                    ; 4b
    65456796    test bx, bx                               ; 85 db
    6546     jbe short 04bf8h                          ; 76 08
     6797    jbe short 04ecdh                          ; 76 08
    65476798    mov AL, strict byte 010h                  ; b0 10
    65486799    mov dx, 00080h                            ; ba 80 00
    65496800    out DX, AL                                ; ee
    6550     jmp short 04be1h                          ; eb e9
     6801    jmp short 04eb6h                          ; eb e9
    65516802    test bx, bx                               ; 85 db
    6552     jne short 04c02h                          ; 75 06
     6803    jne short 04ed7h                          ; 75 06
    65536804    mov ax, strict word 0000ah                ; b8 0a 00
    6554     call 04b64h                               ; e8 62 ff
     6805    call 04e39h                               ; e8 62 ff
    65556806    mov bx, strict word 0ffffh                ; bb ff ff
    65566807    mov dx, strict word 00064h                ; ba 64 00
     
    65596810    ; sub ah, ah                                ; 2a e4
    65606811    test AL, strict byte 001h                 ; a8 01
    6561     jne short 04c1ch                          ; 75 0d
     6812    jne short 04ef1h                          ; 75 0d
    65626813    dec bx                                    ; 4b
    65636814    test bx, bx                               ; 85 db
    6564     jbe short 04c1ch                          ; 76 08
     6815    jbe short 04ef1h                          ; 76 08
    65656816    mov AL, strict byte 011h                  ; b0 11
    65666817    mov dx, 00080h                            ; ba 80 00
    65676818    out DX, AL                                ; ee
    6568     jmp short 04c05h                          ; eb e9
     6819    jmp short 04edah                          ; eb e9
    65696820    test bx, bx                               ; 85 db
    6570     jne short 04c26h                          ; 75 06
     6821    jne short 04efbh                          ; 75 06
    65716822    mov ax, strict word 0000bh                ; b8 0b 00
    6572     call 04b64h                               ; e8 3e ff
     6823    call 04e39h                               ; e8 3e ff
    65736824    mov dx, strict word 00060h                ; ba 60 00
    65746825    in AL, DX                                 ; ec
     
    65766827    ; sub ah, ah                                ; 2a e4
    65776828    test ax, ax                               ; 85 c0
    6578     je short 04c36h                           ; 74 06
     6829    je short 04f0bh                           ; 74 06
    65796830    mov ax, 003e0h                            ; b8 e0 03
    6580     call 04b64h                               ; e8 2e ff
     6831    call 04e39h                               ; e8 2e ff
    65816832    mov AL, strict byte 0ffh                  ; b0 ff
    65826833    mov dx, strict word 00060h                ; ba 60 00
     
    65886839    ; sub ah, ah                                ; 2a e4
    65896840    test AL, strict byte 002h                 ; a8 02
    6590     je short 04c56h                           ; 74 0d
     6841    je short 04f2bh                           ; 74 0d
    65916842    dec bx                                    ; 4b
    65926843    test bx, bx                               ; 85 db
    6593     jbe short 04c56h                          ; 76 08
     6844    jbe short 04f2bh                          ; 76 08
    65946845    mov AL, strict byte 020h                  ; b0 20
    65956846    mov dx, 00080h                            ; ba 80 00
    65966847    out DX, AL                                ; ee
    6597     jmp short 04c3fh                          ; eb e9
     6848    jmp short 04f14h                          ; eb e9
    65986849    test bx, bx                               ; 85 db
    6599     jne short 04c60h                          ; 75 06
     6850    jne short 04f35h                          ; 75 06
    66006851    mov ax, strict word 00014h                ; b8 14 00
    6601     call 04b64h                               ; e8 04 ff
     6852    call 04e39h                               ; e8 04 ff
    66026853    mov bx, strict word 0ffffh                ; bb ff ff
    66036854    mov dx, strict word 00064h                ; ba 64 00
     
    66066857    ; sub ah, ah                                ; 2a e4
    66076858    test AL, strict byte 001h                 ; a8 01
    6608     jne short 04c7ah                          ; 75 0d
     6859    jne short 04f4fh                          ; 75 0d
    66096860    dec bx                                    ; 4b
    66106861    test bx, bx                               ; 85 db
    6611     jbe short 04c7ah                          ; 76 08
     6862    jbe short 04f4fh                          ; 76 08
    66126863    mov AL, strict byte 021h                  ; b0 21
    66136864    mov dx, 00080h                            ; ba 80 00
    66146865    out DX, AL                                ; ee
    6615     jmp short 04c63h                          ; eb e9
     6866    jmp short 04f38h                          ; eb e9
    66166867    test bx, bx                               ; 85 db
    6617     jne short 04c84h                          ; 75 06
     6868    jne short 04f59h                          ; 75 06
    66186869    mov ax, strict word 00015h                ; b8 15 00
    6619     call 04b64h                               ; e8 e0 fe
     6870    call 04e39h                               ; e8 e0 fe
    66206871    mov dx, strict word 00060h                ; ba 60 00
    66216872    in AL, DX                                 ; ec
     
    66236874    ; sub ah, ah                                ; 2a e4
    66246875    cmp ax, 000fah                            ; 3d fa 00
    6625     je short 04c95h                           ; 74 06
     6876    je short 04f6ah                           ; 74 06
    66266877    mov ax, 003e1h                            ; b8 e1 03
    6627     call 04b64h                               ; e8 cf fe
     6878    call 04e39h                               ; e8 cf fe
    66286879    mov dx, strict word 00064h                ; ba 64 00
    66296880    in AL, DX                                 ; ec
     
    66316882    ; sub ah, ah                                ; 2a e4
    66326883    test AL, strict byte 001h                 ; a8 01
    6633     jne short 04ca7h                          ; 75 08
     6884    jne short 04f7ch                          ; 75 08
    66346885    mov AL, strict byte 031h                  ; b0 31
    66356886    mov dx, 00080h                            ; ba 80 00
    66366887    out DX, AL                                ; ee
    6637     jmp short 04c95h                          ; eb ee
     6888    jmp short 04f6ah                          ; eb ee
    66386889    mov dx, strict word 00060h                ; ba 60 00
    66396890    in AL, DX                                 ; ec
     
    66416892    ; sub ah, ah                                ; 2a e4
    66426893    cmp ax, 000aah                            ; 3d aa 00
    6643     je short 04cc0h                           ; 74 0e
     6894    je short 04f95h                           ; 74 0e
    66446895    in AL, DX                                 ; ec
    66456896    db  02ah, 0e4h
    66466897    ; sub ah, ah                                ; 2a e4
    66476898    cmp ax, 000aah                            ; 3d aa 00
    6648     je short 04cc0h                           ; 74 06
     6899    je short 04f95h                           ; 74 06
    66496900    mov ax, 003e2h                            ; b8 e2 03
    6650     call 04b64h                               ; e8 a4 fe
     6901    call 04e39h                               ; e8 a4 fe
    66516902    mov AL, strict byte 0f5h                  ; b0 f5
    66526903    mov dx, strict word 00060h                ; ba 60 00
     
    66586909    ; sub ah, ah                                ; 2a e4
    66596910    test AL, strict byte 002h                 ; a8 02
    6660     je short 04ce0h                           ; 74 0d
     6911    je short 04fb5h                           ; 74 0d
    66616912    dec bx                                    ; 4b
    66626913    test bx, bx                               ; 85 db
    6663     jbe short 04ce0h                          ; 76 08
     6914    jbe short 04fb5h                          ; 76 08
    66646915    mov AL, strict byte 040h                  ; b0 40
    66656916    mov dx, 00080h                            ; ba 80 00
    66666917    out DX, AL                                ; ee
    6667     jmp short 04cc9h                          ; eb e9
     6918    jmp short 04f9eh                          ; eb e9
    66686919    test bx, bx                               ; 85 db
    6669     jne short 04ceah                          ; 75 06
     6920    jne short 04fbfh                          ; 75 06
    66706921    mov ax, strict word 00028h                ; b8 28 00
    6671     call 04b64h                               ; e8 7a fe
     6922    call 04e39h                               ; e8 7a fe
    66726923    mov bx, strict word 0ffffh                ; bb ff ff
    66736924    mov dx, strict word 00064h                ; ba 64 00
     
    66766927    ; sub ah, ah                                ; 2a e4
    66776928    test AL, strict byte 001h                 ; a8 01
    6678     jne short 04d04h                          ; 75 0d
     6929    jne short 04fd9h                          ; 75 0d
    66796930    dec bx                                    ; 4b
    66806931    test bx, bx                               ; 85 db
    6681     jbe short 04d04h                          ; 76 08
     6932    jbe short 04fd9h                          ; 76 08
    66826933    mov AL, strict byte 041h                  ; b0 41
    66836934    mov dx, 00080h                            ; ba 80 00
    66846935    out DX, AL                                ; ee
    6685     jmp short 04cedh                          ; eb e9
     6936    jmp short 04fc2h                          ; eb e9
    66866937    test bx, bx                               ; 85 db
    6687     jne short 04d0eh                          ; 75 06
     6938    jne short 04fe3h                          ; 75 06
    66886939    mov ax, strict word 00029h                ; b8 29 00
    6689     call 04b64h                               ; e8 56 fe
     6940    call 04e39h                               ; e8 56 fe
    66906941    mov dx, strict word 00060h                ; ba 60 00
    66916942    in AL, DX                                 ; ec
     
    66936944    ; sub ah, ah                                ; 2a e4
    66946945    cmp ax, 000fah                            ; 3d fa 00
    6695     je short 04d1fh                           ; 74 06
     6946    je short 04ff4h                           ; 74 06
    66966947    mov ax, 003e3h                            ; b8 e3 03
    6697     call 04b64h                               ; e8 45 fe
     6948    call 04e39h                               ; e8 45 fe
    66986949    mov AL, strict byte 060h                  ; b0 60
    66996950    mov dx, strict word 00064h                ; ba 64 00
     
    67056956    ; sub ah, ah                                ; 2a e4
    67066957    test AL, strict byte 002h                 ; a8 02
    6707     je short 04d3fh                           ; 74 0d
     6958    je short 05014h                           ; 74 0d
    67086959    dec bx                                    ; 4b
    67096960    test bx, bx                               ; 85 db
    6710     jbe short 04d3fh                          ; 76 08
     6961    jbe short 05014h                          ; 76 08
    67116962    mov AL, strict byte 050h                  ; b0 50
    67126963    mov dx, 00080h                            ; ba 80 00
    67136964    out DX, AL                                ; ee
    6714     jmp short 04d28h                          ; eb e9
     6965    jmp short 04ffdh                          ; eb e9
    67156966    test bx, bx                               ; 85 db
    6716     jne short 04d49h                          ; 75 06
     6967    jne short 0501eh                          ; 75 06
    67176968    mov ax, strict word 00032h                ; b8 32 00
    6718     call 04b64h                               ; e8 1b fe
     6969    call 04e39h                               ; e8 1b fe
    67196970    mov AL, strict byte 065h                  ; b0 65
    67206971    mov dx, strict word 00060h                ; ba 60 00
     
    67266977    ; sub ah, ah                                ; 2a e4
    67276978    test AL, strict byte 002h                 ; a8 02
    6728     je short 04d69h                           ; 74 0d
     6979    je short 0503eh                           ; 74 0d
    67296980    dec bx                                    ; 4b
    67306981    test bx, bx                               ; 85 db
    6731     jbe short 04d69h                          ; 76 08
     6982    jbe short 0503eh                          ; 76 08
    67326983    mov AL, strict byte 060h                  ; b0 60
    67336984    mov dx, 00080h                            ; ba 80 00
    67346985    out DX, AL                                ; ee
    6735     jmp short 04d52h                          ; eb e9
     6986    jmp short 05027h                          ; eb e9
    67366987    test bx, bx                               ; 85 db
    6737     jne short 04d73h                          ; 75 06
     6988    jne short 05048h                          ; 75 06
    67386989    mov ax, strict word 0003ch                ; b8 3c 00
    6739     call 04b64h                               ; e8 f1 fd
     6990    call 04e39h                               ; e8 f1 fd
    67406991    mov AL, strict byte 0f4h                  ; b0 f4
    67416992    mov dx, strict word 00060h                ; ba 60 00
     
    67476998    ; sub ah, ah                                ; 2a e4
    67486999    test AL, strict byte 002h                 ; a8 02
    6749     je short 04d93h                           ; 74 0d
     7000    je short 05068h                           ; 74 0d
    67507001    dec bx                                    ; 4b
    67517002    test bx, bx                               ; 85 db
    6752     jbe short 04d93h                          ; 76 08
     7003    jbe short 05068h                          ; 76 08
    67537004    mov AL, strict byte 070h                  ; b0 70
    67547005    mov dx, 00080h                            ; ba 80 00
    67557006    out DX, AL                                ; ee
    6756     jmp short 04d7ch                          ; eb e9
     7007    jmp short 05051h                          ; eb e9
    67577008    test bx, bx                               ; 85 db
    6758     jne short 04d9dh                          ; 75 06
     7009    jne short 05072h                          ; 75 06
    67597010    mov ax, strict word 00046h                ; b8 46 00
    6760     call 04b64h                               ; e8 c7 fd
     7011    call 04e39h                               ; e8 c7 fd
    67617012    mov bx, strict word 0ffffh                ; bb ff ff
    67627013    mov dx, strict word 00064h                ; ba 64 00
     
    67657016    ; sub ah, ah                                ; 2a e4
    67667017    test AL, strict byte 001h                 ; a8 01
    6767     jne short 04db7h                          ; 75 0d
     7018    jne short 0508ch                          ; 75 0d
    67687019    dec bx                                    ; 4b
    67697020    test bx, bx                               ; 85 db
    6770     jbe short 04db7h                          ; 76 08
     7021    jbe short 0508ch                          ; 76 08
    67717022    mov AL, strict byte 071h                  ; b0 71
    67727023    mov dx, 00080h                            ; ba 80 00
    67737024    out DX, AL                                ; ee
    6774     jmp short 04da0h                          ; eb e9
     7025    jmp short 05075h                          ; eb e9
    67757026    test bx, bx                               ; 85 db
    6776     jne short 04dc1h                          ; 75 06
     7027    jne short 05096h                          ; 75 06
    67777028    mov ax, strict word 00046h                ; b8 46 00
    6778     call 04b64h                               ; e8 a3 fd
     7029    call 04e39h                               ; e8 a3 fd
    67797030    mov dx, strict word 00060h                ; ba 60 00
    67807031    in AL, DX                                 ; ec
     
    67827033    ; sub ah, ah                                ; 2a e4
    67837034    cmp ax, 000fah                            ; 3d fa 00
    6784     je short 04dd2h                           ; 74 06
     7035    je short 050a7h                           ; 74 06
    67857036    mov ax, 003e4h                            ; b8 e4 03
    6786     call 04b64h                               ; e8 92 fd
     7037    call 04e39h                               ; e8 92 fd
    67877038    mov AL, strict byte 0a8h                  ; b0 a8
    67887039    mov dx, strict word 00064h                ; ba 64 00
    67897040    out DX, AL                                ; ee
    67907041    xor ax, ax                                ; 31 c0
    6791     call 060b6h                               ; e8 d9 12
     7042    call 06403h                               ; e8 51 13
    67927043    mov sp, bp                                ; 89 ec
    67937044    pop bp                                    ; 5d
    67947045    retn                                      ; c3
    6795 enqueue_key_:                                ; 0xf4de1 LB 0x93
     7046enqueue_key_:                                ; 0xf50b6 LB 0x93
    67967047    push bp                                   ; 55
    67977048    mov bp, sp                                ; 89 e5
     
    68057056    mov dx, strict word 0001ah                ; ba 1a 00
    68067057    mov ax, strict word 00040h                ; b8 40 00
    6807     call 0166ch                               ; e8 75 c8
     7058    call 0166ch                               ; e8 a0 c5
    68087059    mov di, ax                                ; 89 c7
    68097060    mov dx, strict word 0001ch                ; ba 1c 00
    68107061    mov ax, strict word 00040h                ; b8 40 00
    6811     call 0166ch                               ; e8 6a c8
     7062    call 0166ch                               ; e8 95 c5
    68127063    mov si, ax                                ; 89 c6
    68137064    lea cx, [si+002h]                         ; 8d 4c 02
    68147065    cmp cx, strict byte 0003eh                ; 83 f9 3e
    6815     jc short 04e0fh                           ; 72 03
     7066    jc short 050e4h                           ; 72 03
    68167067    mov cx, strict word 0001eh                ; b9 1e 00
    68177068    cmp cx, di                                ; 39 f9
    6818     jne short 04e17h                          ; 75 04
     7069    jne short 050ech                          ; 75 04
    68197070    xor ax, ax                                ; 31 c0
    6820     jmp short 04e3ch                          ; eb 25
     7071    jmp short 05111h                          ; eb 25
    68217072    xor bh, bh                                ; 30 ff
    68227073    mov dx, si                                ; 89 f2
    68237074    mov ax, strict word 00040h                ; b8 40 00
    6824     call 0165eh                               ; e8 3d c8
     7075    call 0165eh                               ; e8 68 c5
    68257076    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    68267077    lea dx, [si+001h]                         ; 8d 54 01
    68277078    mov ax, strict word 00040h                ; b8 40 00
    6828     call 0165eh                               ; e8 30 c8
     7079    call 0165eh                               ; e8 5b c5
    68297080    mov bx, cx                                ; 89 cb
    68307081    mov dx, strict word 0001ch                ; ba 1c 00
    68317082    mov ax, strict word 00040h                ; b8 40 00
    6832     call 0167ah                               ; e8 41 c8
     7083    call 0167ah                               ; e8 6c c5
    68337084    mov ax, strict word 00001h                ; b8 01 00
    68347085    lea sp, [bp-008h]                         ; 8d 66 f8
     
    68487099    cmp bh, byte [bx+si]                      ; 3a 38
    68497100    sub bl, byte [ss:di]                      ; 36 2a 1d
    6850     fist word [bx+si+045h]                    ; df 50 45
    6851     dec di                                    ; 4f
    6852     or ax, 00d4fh                             ; 0d 4f 0d
    6853     dec di                                    ; 4f
    6854     ror word [bx-01dh], CL                    ; d3 4f e3
    6855     dec si                                    ; 4e
     7101    mov AH, strict byte 053h                  ; b4 53
     7102    sbb dl, byte [bp+si-01eh]                 ; 1a 52 e2
    68567103    push cx                                   ; 51
    6857     push ax                                   ; 50
    6858     mov word [0c550h], ax                     ; a3 50 c5
    6859     push ax                                   ; 50
    6860     mov [bx+00dh], cs                         ; 8c 4f 0d
    6861     dec di                                    ; 4f
    6862     or ax, 0124fh                             ; 0d 4f 12
    6863     push ax                                   ; 50
    6864     dec word [bp-07ch]                        ; ff 4e 84
    6865     push ax                                   ; 50
    6866     db  0beh
    6867     push ax                                   ; 50
    6868 _int09_function:                             ; 0xf4e74 LB 0x3c7
     7104    loop 05182h                               ; e2 51
     7105    test AL, strict byte 052h                 ; a8 52
     7106    mov ax, 02651h                            ; b8 51 26
     7107    push bx                                   ; 53
     7108    js short 0518ch                           ; 78 53
     7109    call far 0e252h:06153h                    ; 9a 53 61 52 e2
     7110    push cx                                   ; 51
     7111    loop 05192h                               ; e2 51
     7112    out 052h, ax                              ; e7 52
     7113    aam 051h                                  ; d4 51
     7114    pop cx                                    ; 59
     7115    push bx                                   ; 53
     7116    xchg bx, ax                               ; 93
     7117    push bx                                   ; 53
     7118_int09_function:                             ; 0xf5149 LB 0x3c7
    68697119    push bp                                   ; 55
    68707120    mov bp, sp                                ; 89 e5
     
    68747124    mov byte [bp-008h], al                    ; 88 46 f8
    68757125    test al, al                               ; 84 c0
    6876     jne short 04e9eh                          ; 75 19
    6877     mov bx, 00da2h                            ; bb a2 0d
     7126    jne short 05173h                          ; 75 19
     7127    mov bx, 00da0h                            ; bb a0 0d
    68787128    mov cx, ds                                ; 8c d9
    68797129    mov ax, strict word 00004h                ; b8 04 00
    6880     call 01931h                               ; e8 a1 ca
    6881     push 00567h                               ; 68 67 05
     7130    call 01931h                               ; e8 cc c7
     7131    push 00587h                               ; 68 87 05
    68827132    push strict byte 00004h                   ; 6a 04
    6883     call 01972h                               ; e8 da ca
     7133    call 01972h                               ; e8 05 c8
    68847134    add sp, strict byte 00004h                ; 83 c4 04
    6885     jmp near 05235h                           ; e9 97 03
     7135    jmp near 0550ah                           ; e9 97 03
    68867136    mov dx, strict word 00017h                ; ba 17 00
    68877137    mov ax, strict word 00040h                ; b8 40 00
    6888     call 01650h                               ; e8 a9 c7
     7138    call 01650h                               ; e8 d4 c4
    68897139    mov byte [bp-010h], al                    ; 88 46 f0
    68907140    mov byte [bp-00ah], al                    ; 88 46 f6
    68917141    mov dx, strict word 00018h                ; ba 18 00
    68927142    mov ax, strict word 00040h                ; b8 40 00
    6893     call 01650h                               ; e8 9a c7
     7143    call 01650h                               ; e8 c5 c4
    68947144    mov byte [bp-00eh], al                    ; 88 46 f2
    68957145    mov byte [bp-004h], al                    ; 88 46 fc
    68967146    mov dx, 00096h                            ; ba 96 00
    68977147    mov ax, strict word 00040h                ; b8 40 00
    6898     call 01650h                               ; e8 8b c7
     7148    call 01650h                               ; e8 b6 c4
    68997149    mov byte [bp-006h], al                    ; 88 46 fa
    69007150    mov byte [bp-00ch], al                    ; 88 46 f4
     
    69037153    pop ES                                    ; 07
    69047154    mov cx, strict word 00010h                ; b9 10 00
    6905     mov di, 04e45h                            ; bf 45 4e
     7155    mov di, 0511ah                            ; bf 1a 51
    69067156    repne scasb                               ; f2 ae
    69077157    sal cx, 1                                 ; d1 e1
    69087158    mov di, cx                                ; 89 cf
    6909     mov ax, word [cs:di+04e54h]               ; 2e 8b 85 54 4e
     7159    mov ax, word [cs:di+05129h]               ; 2e 8b 85 29 51
    69107160    jmp ax                                    ; ff e0
    69117161    xor byte [bp-00ah], 040h                  ; 80 76 f6 40
     
    69137163    mov dx, strict word 00017h                ; ba 17 00
    69147164    mov ax, strict word 00040h                ; b8 40 00
    6915     call 0165eh                               ; e8 6a c7
     7165    call 0165eh                               ; e8 95 c4
    69167166    or byte [bp-004h], 040h                   ; 80 4e fc 40
    69177167    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    6918     jmp near 05097h                           ; e9 98 01
     7168    jmp near 0536ch                           ; e9 98 01
    69197169    mov al, byte [bp-00eh]                    ; 8a 46 f2
    69207170    and AL, strict byte 0bfh                  ; 24 bf
    69217171    mov byte [bp-004h], al                    ; 88 46 fc
    69227172    movzx bx, al                              ; 0f b6 d8
    6923     jmp near 05097h                           ; e9 8a 01
     7173    jmp near 0536ch                           ; e9 8a 01
    69247174    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    6925     jne near 05217h                           ; 0f 85 02 03
     7175    jne near 054ech                           ; 0f 85 02 03
    69267176    mov al, byte [bp-008h]                    ; 8a 46 f8
    69277177    and AL, strict byte 07fh                  ; 24 7f
     
    69327182    inc dx                                    ; 42
    69337183    test byte [bp-008h], 080h                 ; f6 46 f8 80
    6934     je short 04f32h                           ; 74 09
     7184    je short 05207h                           ; 74 09
    69357185    mov al, dl                                ; 88 d0
    69367186    not al                                    ; f6 d0
    69377187    and byte [bp-00ah], al                    ; 20 46 f6
    6938     jmp short 04f35h                          ; eb 03
     7188    jmp short 0520ah                          ; eb 03
    69397189    or byte [bp-00ah], dl                     ; 08 56 f6
    69407190    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    69417191    mov dx, strict word 00017h                ; ba 17 00
    69427192    mov ax, strict word 00040h                ; b8 40 00
    6943     call 0165eh                               ; e8 1c c7
    6944     jmp near 05217h                           ; e9 d2 02
     7193    call 0165eh                               ; e8 47 c4
     7194    jmp near 054ech                           ; e9 d2 02
    69457195    test byte [bp-006h], 001h                 ; f6 46 fa 01
    6946     jne near 05217h                           ; 0f 85 ca 02
     7196    jne near 054ech                           ; 0f 85 ca 02
    69477197    mov al, byte [bp-010h]                    ; 8a 46 f0
    69487198    or AL, strict byte 004h                   ; 0c 04
     
    69517201    mov dx, strict word 00017h                ; ba 17 00
    69527202    mov ax, strict word 00040h                ; b8 40 00
    6953     call 0165eh                               ; e8 fd c6
     7203    call 0165eh                               ; e8 28 c4
    69547204    mov al, byte [bp-006h]                    ; 8a 46 fa
    69557205    test AL, strict byte 002h                 ; a8 02
    6956     je short 04f75h                           ; 74 0d
     7206    je short 0524ah                           ; 74 0d
    69577207    or AL, strict byte 004h                   ; 0c 04
    69587208    mov byte [bp-00ch], al                    ; 88 46 f4
    69597209    movzx bx, al                              ; 0f b6 d8
    69607210    mov dx, 00096h                            ; ba 96 00
    6961     jmp short 04f83h                          ; eb 0e
     7211    jmp short 05258h                          ; eb 0e
    69627212    mov al, byte [bp-00eh]                    ; 8a 46 f2
    69637213    or AL, strict byte 001h                   ; 0c 01
     
    69667216    mov dx, strict word 00018h                ; ba 18 00
    69677217    mov ax, strict word 00040h                ; b8 40 00
    6968     call 0165eh                               ; e8 d5 c6
    6969     jmp near 05217h                           ; e9 8b 02
     7218    call 0165eh                               ; e8 00 c4
     7219    jmp near 054ech                           ; e9 8b 02
    69707220    test byte [bp-006h], 001h                 ; f6 46 fa 01
    6971     jne near 05217h                           ; 0f 85 83 02
     7221    jne near 054ech                           ; 0f 85 83 02
    69727222    mov al, byte [bp-010h]                    ; 8a 46 f0
    69737223    and AL, strict byte 0fbh                  ; 24 fb
     
    69767226    mov dx, strict word 00017h                ; ba 17 00
    69777227    mov ax, strict word 00040h                ; b8 40 00
    6978     call 0165eh                               ; e8 b6 c6
     7228    call 0165eh                               ; e8 e1 c3
    69797229    mov al, byte [bp-006h]                    ; 8a 46 fa
    69807230    test AL, strict byte 002h                 ; a8 02
    6981     je short 04fbch                           ; 74 0d
     7231    je short 05291h                           ; 74 0d
    69827232    and AL, strict byte 0fbh                  ; 24 fb
    69837233    mov byte [bp-00ch], al                    ; 88 46 f4
    69847234    movzx bx, al                              ; 0f b6 d8
    69857235    mov dx, 00096h                            ; ba 96 00
    6986     jmp short 04fcah                          ; eb 0e
     7236    jmp short 0529fh                          ; eb 0e
    69877237    mov al, byte [bp-00eh]                    ; 8a 46 f2
    69887238    and AL, strict byte 0feh                  ; 24 fe
     
    69917241    mov dx, strict word 00018h                ; ba 18 00
    69927242    mov ax, strict word 00040h                ; b8 40 00
    6993     call 0165eh                               ; e8 8e c6
    6994     jmp near 05217h                           ; e9 44 02
     7243    call 0165eh                               ; e8 b9 c3
     7244    jmp near 054ech                           ; e9 44 02
    69957245    mov al, byte [bp-010h]                    ; 8a 46 f0
    69967246    or AL, strict byte 008h                   ; 0c 08
     
    69997249    mov dx, strict word 00017h                ; ba 17 00
    70007250    mov ax, strict word 00040h                ; b8 40 00
    7001     call 0165eh                               ; e8 77 c6
     7251    call 0165eh                               ; e8 a2 c3
    70027252    mov al, byte [bp-006h]                    ; 8a 46 fa
    70037253    test AL, strict byte 002h                 ; a8 02
    7004     je short 04ffbh                           ; 74 0d
     7254    je short 052d0h                           ; 74 0d
    70057255    or AL, strict byte 008h                   ; 0c 08
    70067256    mov byte [bp-00ch], al                    ; 88 46 f4
    70077257    movzx bx, al                              ; 0f b6 d8
    70087258    mov dx, 00096h                            ; ba 96 00
    7009     jmp short 05009h                          ; eb 0e
     7259    jmp short 052deh                          ; eb 0e
    70107260    mov al, byte [bp-00eh]                    ; 8a 46 f2
    70117261    or AL, strict byte 002h                   ; 0c 02
     
    70147264    mov dx, strict word 00018h                ; ba 18 00
    70157265    mov ax, strict word 00040h                ; b8 40 00
    7016     call 0165eh                               ; e8 4f c6
    7017     jmp near 05217h                           ; e9 05 02
     7266    call 0165eh                               ; e8 7a c3
     7267    jmp near 054ech                           ; e9 05 02
    70187268    mov al, byte [bp-010h]                    ; 8a 46 f0
    70197269    and AL, strict byte 0f7h                  ; 24 f7
     
    70227272    mov dx, strict word 00017h                ; ba 17 00
    70237273    mov ax, strict word 00040h                ; b8 40 00
    7024     call 0165eh                               ; e8 38 c6
     7274    call 0165eh                               ; e8 63 c3
    70257275    mov al, byte [bp-006h]                    ; 8a 46 fa
    70267276    test AL, strict byte 002h                 ; a8 02
    7027     je short 0503ah                           ; 74 0d
     7277    je short 0530fh                           ; 74 0d
    70287278    and AL, strict byte 0f7h                  ; 24 f7
    70297279    mov byte [bp-00ch], al                    ; 88 46 f4
    70307280    movzx bx, al                              ; 0f b6 d8
    70317281    mov dx, 00096h                            ; ba 96 00
    7032     jmp short 05048h                          ; eb 0e
     7282    jmp short 0531dh                          ; eb 0e
    70337283    mov al, byte [bp-00eh]                    ; 8a 46 f2
    70347284    and AL, strict byte 0fdh                  ; 24 fd
     
    70377287    mov dx, strict word 00018h                ; ba 18 00
    70387288    mov ax, strict word 00040h                ; b8 40 00
    7039     call 0165eh                               ; e8 10 c6
    7040     jmp near 05217h                           ; e9 c6 01
     7289    call 0165eh                               ; e8 3b c3
     7290    jmp near 054ech                           ; e9 c6 01
    70417291    test byte [bp-006h], 003h                 ; f6 46 fa 03
    7042     jne near 05217h                           ; 0f 85 be 01
     7292    jne near 054ech                           ; 0f 85 be 01
    70437293    mov al, byte [bp-00eh]                    ; 8a 46 f2
    70447294    or AL, strict byte 020h                   ; 0c 20
     
    70477297    mov dx, strict word 00018h                ; ba 18 00
    70487298    mov ax, strict word 00040h                ; b8 40 00
    7049     call 0165eh                               ; e8 f1 c5
     7299    call 0165eh                               ; e8 1c c3
    70507300    mov al, byte [bp-010h]                    ; 8a 46 f0
    70517301    xor AL, strict byte 020h                  ; 34 20
     
    70547304    mov dx, strict word 00017h                ; ba 17 00
    70557305    mov ax, strict word 00040h                ; b8 40 00
    7056     call 0165eh                               ; e8 dd c5
    7057     jmp near 05217h                           ; e9 93 01
     7306    call 0165eh                               ; e8 08 c3
     7307    jmp near 054ech                           ; e9 93 01
    70587308    test byte [bp-006h], 003h                 ; f6 46 fa 03
    7059     jne near 05217h                           ; 0f 85 8b 01
     7309    jne near 054ech                           ; 0f 85 8b 01
    70607310    mov al, byte [bp-00eh]                    ; 8a 46 f2
    70617311    and AL, strict byte 0dfh                  ; 24 df
     
    70647314    mov dx, strict word 00018h                ; ba 18 00
    70657315    mov ax, strict word 00040h                ; b8 40 00
    7066     call 0165eh                               ; e8 be c5
    7067     jmp near 05217h                           ; e9 74 01
     7316    call 0165eh                               ; e8 e9 c2
     7317    jmp near 054ech                           ; e9 74 01
    70687318    mov al, byte [bp-00eh]                    ; 8a 46 f2
    70697319    or AL, strict byte 010h                   ; 0c 10
     
    70727322    mov dx, strict word 00018h                ; ba 18 00
    70737323    mov ax, strict word 00040h                ; b8 40 00
    7074     call 0165eh                               ; e8 a7 c5
     7324    call 0165eh                               ; e8 d2 c2
    70757325    mov al, byte [bp-010h]                    ; 8a 46 f0
    70767326    xor AL, strict byte 010h                  ; 34 10
    7077     jmp short 05072h                          ; eb b4
     7327    jmp short 05347h                          ; eb b4
    70787328    mov al, byte [bp-00eh]                    ; 8a 46 f2
    70797329    and AL, strict byte 0efh                  ; 24 ef
    7080     jmp short 05091h                          ; eb cc
     7330    jmp short 05366h                          ; eb cc
    70817331    mov al, byte [bp-010h]                    ; 8a 46 f0
    70827332    and AL, strict byte 00ch                  ; 24 0c
    70837333    cmp AL, strict byte 00ch                  ; 3c 0c
    7084     jne short 050dfh                          ; 75 11
     7334    jne short 053b4h                          ; 75 11
    70857335    mov bx, 01234h                            ; bb 34 12
    70867336    mov dx, strict word 00072h                ; ba 72 00
    70877337    mov ax, strict word 00040h                ; b8 40 00
    7088     call 0167ah                               ; e8 a0 c5
     7338    call 0167ah                               ; e8 cb c2
    70897339    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    70907340    mov al, byte [bp-008h]                    ; 8a 46 f8
    70917341    test AL, strict byte 080h                 ; a8 80
    7092     je short 0511dh                           ; 74 37
     7342    je short 053f2h                           ; 74 37
    70937343    cmp AL, strict byte 0fah                  ; 3c fa
    7094     jne short 050fah                          ; 75 10
     7344    jne short 053cfh                          ; 75 10
    70957345    mov dx, 00097h                            ; ba 97 00
    70967346    mov ax, strict word 00040h                ; b8 40 00
    7097     call 01650h                               ; e8 5d c5
     7347    call 01650h                               ; e8 88 c2
    70987348    mov dl, al                                ; 88 c2
    70997349    or dl, 010h                               ; 80 ca 10
    7100     jmp short 0510eh                          ; eb 14
     7350    jmp short 053e3h                          ; eb 14
    71017351    cmp AL, strict byte 0feh                  ; 3c fe
    7102     jne near 05217h                           ; 0f 85 17 01
     7352    jne near 054ech                           ; 0f 85 17 01
    71037353    mov dx, 00097h                            ; ba 97 00
    71047354    mov ax, strict word 00040h                ; b8 40 00
    7105     call 01650h                               ; e8 47 c5
     7355    call 01650h                               ; e8 72 c2
    71067356    mov dl, al                                ; 88 c2
    71077357    or dl, 020h                               ; 80 ca 20
     
    71097359    mov dx, 00097h                            ; ba 97 00
    71107360    mov ax, strict word 00040h                ; b8 40 00
    7111     call 0165eh                               ; e8 44 c5
    7112     jmp near 05217h                           ; e9 fa 00
     7361    call 0165eh                               ; e8 6f c2
     7362    jmp near 054ech                           ; e9 fa 00
    71137363    cmp byte [bp-008h], 058h                  ; 80 7e f8 58
    7114     jbe short 05141h                          ; 76 1e
    7115     mov bx, 00da2h                            ; bb a2 0d
     7364    jbe short 05416h                          ; 76 1e
     7365    mov bx, 00da0h                            ; bb a0 0d
    71167366    mov cx, ds                                ; 8c d9
    71177367    mov ax, strict word 00004h                ; b8 04 00
    7118     call 01931h                               ; e8 03 c8
     7368    call 01931h                               ; e8 2e c5
    71197369    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    71207370    push ax                                   ; 50
    7121     push 00581h                               ; 68 81 05
     7371    push 005a1h                               ; 68 a1 05
    71227372    push strict byte 00004h                   ; 6a 04
    7123     call 01972h                               ; e8 37 c8
     7373    call 01972h                               ; e8 62 c5
    71247374    add sp, strict byte 00006h                ; 83 c4 06
    7125     jmp near 05235h                           ; e9 f4 00
     7375    jmp near 0550ah                           ; e9 f4 00
    71267376    mov al, byte [bp-00ah]                    ; 8a 46 f6
    71277377    test AL, strict byte 008h                 ; a8 08
    7128     je short 0515ah                           ; 74 12
    7129     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    7130     imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7131     mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
    7132     mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
    7133     jmp near 051e8h                           ; e9 8e 00
    7134     test AL, strict byte 004h                 ; a8 04
    7135     je short 05170h                           ; 74 12
     7378    je short 0542fh                           ; 74 12
    71367379    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    71377380    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    71387381    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    71397382    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7140     jmp near 051e8h                           ; e9 78 00
     7383    jmp near 054bdh                           ; e9 8e 00
     7384    test AL, strict byte 004h                 ; a8 04
     7385    je short 05445h                           ; 74 12
     7386    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     7387    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     7388    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     7389    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
     7390    jmp near 054bdh                           ; e9 78 00
    71417391    mov al, byte [bp-00ch]                    ; 8a 46 f4
    71427392    and AL, strict byte 002h                  ; 24 02
    71437393    test al, al                               ; 84 c0
    7144     jbe short 0518eh                          ; 76 15
     7394    jbe short 05463h                          ; 76 15
    71457395    mov al, byte [bp-008h]                    ; 8a 46 f8
    71467396    cmp AL, strict byte 047h                  ; 3c 47
    7147     jc short 0518eh                           ; 72 0e
     7397    jc short 05463h                           ; 72 0e
    71487398    cmp AL, strict byte 053h                  ; 3c 53
    7149     jnbe short 0518eh                         ; 77 0a
     7399    jnbe short 05463h                         ; 77 0a
    71507400    mov DL, strict byte 0e0h                  ; b2 e0
    71517401    movzx bx, al                              ; 0f b6 d8
    71527402    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7153     jmp short 051e4h                          ; eb 56
     7403    jmp short 054b9h                          ; eb 56
    71547404    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7155     je short 051c2h                           ; 74 2e
     7405    je short 05497h                           ; 74 2e
    71567406    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    71577407    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7158     movzx ax, byte [bx+00df8h]                ; 0f b6 87 f8 0d
     7408    movzx ax, byte [bx+00df6h]                ; 0f b6 87 f6 0d
    71597409    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    71607410    test dx, ax                               ; 85 c2
    7161     je short 051b2h                           ; 74 0a
    7162     mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    7163     mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    7164     jmp short 051bah                          ; eb 08
    7165     mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    7166     mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7167     shr ax, 008h                              ; c1 e8 08
    7168     mov byte [bp-008h], al                    ; 88 46 f8
    7169     jmp short 051eeh                          ; eb 2c
    7170     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    7171     imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7172     movzx ax, byte [bx+00df8h]                ; 0f b6 87 f8 0d
    7173     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    7174     test dx, ax                               ; 85 c2
    7175     je short 051e0h                           ; 74 0a
    7176     mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    7177     mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7178     jmp short 051e8h                          ; eb 08
     7411    je short 05487h                           ; 74 0a
     7412    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
     7413    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     7414    jmp short 0548fh                          ; eb 08
    71797415    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    71807416    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    71817417    shr ax, 008h                              ; c1 e8 08
    71827418    mov byte [bp-008h], al                    ; 88 46 f8
     7419    jmp short 054c3h                          ; eb 2c
     7420    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     7421    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     7422    movzx ax, byte [bx+00df6h]                ; 0f b6 87 f6 0d
     7423    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     7424    test dx, ax                               ; 85 c2
     7425    je short 054b5h                           ; 74 0a
     7426    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
     7427    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
     7428    jmp short 054bdh                          ; eb 08
     7429    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
     7430    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     7431    shr ax, 008h                              ; c1 e8 08
     7432    mov byte [bp-008h], al                    ; 88 46 f8
    71837433    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7184     jne short 0520eh                          ; 75 1a
     7434    jne short 054e3h                          ; 75 1a
    71857435    test dl, dl                               ; 84 d2
    7186     jne short 0520eh                          ; 75 16
    7187     mov bx, 00da2h                            ; bb a2 0d
     7436    jne short 054e3h                          ; 75 16
     7437    mov bx, 00da0h                            ; bb a0 0d
    71887438    mov cx, ds                                ; 8c d9
    71897439    mov ax, strict word 00004h                ; b8 04 00
    7190     call 01931h                               ; e8 2e c7
    7191     push 005b8h                               ; 68 b8 05
     7440    call 01931h                               ; e8 59 c4
     7441    push 005d8h                               ; 68 d8 05
    71927442    push strict byte 00004h                   ; 6a 04
    7193     call 01972h                               ; e8 67 c7
     7443    call 01972h                               ; e8 92 c4
    71947444    add sp, strict byte 00004h                ; 83 c4 04
    71957445    xor dh, dh                                ; 30 f6
    71967446    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    7197     call 04de1h                               ; e8 ca fb
     7447    call 050b6h                               ; e8 ca fb
    71987448    mov al, byte [bp-008h]                    ; 8a 46 f8
    71997449    and AL, strict byte 07fh                  ; 24 7f
    72007450    cmp AL, strict byte 01dh                  ; 3c 1d
    7201     je short 05224h                           ; 74 04
     7451    je short 054f9h                           ; 74 04
    72027452    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
    72037453    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
     
    72057455    mov dx, 00096h                            ; ba 96 00
    72067456    mov ax, strict word 00040h                ; b8 40 00
    7207     call 0165eh                               ; e8 29 c4
     7457    call 0165eh                               ; e8 54 c1
    72087458    lea sp, [bp-002h]                         ; 8d 66 fe
    72097459    pop di                                    ; 5f
    72107460    pop bp                                    ; 5d
    72117461    retn                                      ; c3
    7212 dequeue_key_:                                ; 0xf523b LB 0x94
     7462dequeue_key_:                                ; 0xf5510 LB 0x94
    72137463    push bp                                   ; 55
    72147464    mov bp, sp                                ; 89 e5
     
    72237473    mov dx, strict word 0001ah                ; ba 1a 00
    72247474    mov ax, strict word 00040h                ; b8 40 00
    7225     call 0166ch                               ; e8 17 c4
     7475    call 0166ch                               ; e8 42 c1
    72267476    mov bx, ax                                ; 89 c3
    72277477    mov dx, strict word 0001ch                ; ba 1c 00
    72287478    mov ax, strict word 00040h                ; b8 40 00
    7229     call 0166ch                               ; e8 0c c4
     7479    call 0166ch                               ; e8 37 c1
    72307480    cmp bx, ax                                ; 39 c3
    7231     je short 052a1h                           ; 74 3d
     7481    je short 05576h                           ; 74 3d
    72327482    mov dx, bx                                ; 89 da
    72337483    mov ax, strict word 00040h                ; b8 40 00
    7234     call 01650h                               ; e8 e4 c3
     7484    call 01650h                               ; e8 0f c1
    72357485    mov cl, al                                ; 88 c1
    72367486    lea dx, [bx+001h]                         ; 8d 57 01
    72377487    mov ax, strict word 00040h                ; b8 40 00
    7238     call 01650h                               ; e8 d9 c3
     7488    call 01650h                               ; e8 04 c1
    72397489    mov es, [bp-008h]                         ; 8e 46 f8
    72407490    mov byte [es:si], cl                      ; 26 88 0c
     
    72427492    mov byte [es:di], al                      ; 26 88 05
    72437493    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7244     je short 0529ch                           ; 74 13
     7494    je short 05571h                           ; 74 13
    72457495    inc bx                                    ; 43
    72467496    inc bx                                    ; 43
    72477497    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7248     jc short 05293h                           ; 72 03
     7498    jc short 05568h                           ; 72 03
    72497499    mov bx, strict word 0001eh                ; bb 1e 00
    72507500    mov dx, strict word 0001ah                ; ba 1a 00
    72517501    mov ax, strict word 00040h                ; b8 40 00
    7252     call 0167ah                               ; e8 de c3
     7502    call 0167ah                               ; e8 09 c1
    72537503    mov ax, strict word 00001h                ; b8 01 00
    7254     jmp short 052a3h                          ; eb 02
     7504    jmp short 05578h                          ; eb 02
    72557505    xor ax, ax                                ; 31 c0
    72567506    lea sp, [bp-004h]                         ; 8d 66 fc
     
    72637513    or cl, byte [bx+di]                       ; 0a 09
    72647514    add ax, 00102h                            ; 05 02 01
    7265     add byte [di+055h], ch                    ; 00 6d 55
    7266     adc word [bp+di-036h], strict byte 00053h ; 83 53 ca 53
    7267     push SS                                   ; 16
    7268     push sp                                   ; 54
    7269     db  026h, 054h
    7270     ; es push sp                                ; 26 54
    7271     push ax                                   ; 50
    7272     push sp                                   ; 54
    7273     pop cx                                    ; 59
    7274     push sp                                   ; 54
    7275     retf 0fb54h                               ; ca 54 fb
    7276     push sp                                   ; 54
    7277     sub byte [di+062h], dl                    ; 28 55 62
    7278     push bp                                   ; 55
    7279     mov AL, strict byte 055h                  ; b0 55
    7280 _int16_function:                             ; 0xf52cf LB 0x2e7
     7515    add byte [bp+si+058h], al                 ; 00 42 58
     7516    pop ax                                    ; 58
     7517    push si                                   ; 56
     7518    lahf                                      ; 9f
     7519    push si                                   ; 56
     7520    jmp short 055eah                          ; eb 56
     7521    sti                                       ; fb
     7522    push si                                   ; 56
     7523    and ax, 02e57h                            ; 25 57 2e
     7524    push di                                   ; 57
     7525    lahf                                      ; 9f
     7526    push di                                   ; 57
     7527    rcl byte [bx-003h], 1                     ; d0 57 fd
     7528    push di                                   ; 57
     7529    aaa                                       ; 37
     7530    pop ax                                    ; 58
     7531    db  085h
     7532    pop ax                                    ; 58
     7533_int16_function:                             ; 0xf55a4 LB 0x2e7
    72817534    push bp                                   ; 55
    72827535    mov bp, sp                                ; 89 e5
     
    72857538    mov dx, strict word 00017h                ; ba 17 00
    72867539    mov ax, strict word 00040h                ; b8 40 00
    7287     call 01650h                               ; e8 71 c3
     7540    call 01650h                               ; e8 9c c0
    72887541    mov cl, al                                ; 88 c1
    72897542    mov bh, al                                ; 88 c7
    72907543    mov dx, 00097h                            ; ba 97 00
    72917544    mov ax, strict word 00040h                ; b8 40 00
    7292     call 01650h                               ; e8 64 c3
     7545    call 01650h                               ; e8 8f c0
    72937546    mov bl, al                                ; 88 c3
    72947547    movzx dx, cl                              ; 0f b6 d1
     
    72997552    xor al, dl                                ; 30 d0
    73007553    test ax, ax                               ; 85 c0
    7301     je short 05361h                           ; 74 60
     7554    je short 05636h                           ; 74 60
    73027555    cli                                       ; fa
    73037556    mov AL, strict byte 0edh                  ; b0 ed
     
    73097562    ; sub ah, ah                                ; 2a e4
    73107563    test AL, strict byte 001h                 ; a8 01
    7311     jne short 0531ah                          ; 75 08
     7564    jne short 055efh                          ; 75 08
    73127565    mov AL, strict byte 021h                  ; b0 21
    73137566    mov dx, 00080h                            ; ba 80 00
    73147567    out DX, AL                                ; ee
    7315     jmp short 05308h                          ; eb ee
     7568    jmp short 055ddh                          ; eb ee
    73167569    mov dx, strict word 00060h                ; ba 60 00
    73177570    in AL, DX                                 ; ec
     
    73197572    ; sub ah, ah                                ; 2a e4
    73207573    cmp ax, 000fah                            ; 3d fa 00
    7321     jne short 05360h                          ; 75 3b
     7574    jne short 05635h                          ; 75 3b
    73227575    and bl, 0c8h                              ; 80 e3 c8
    73237576    movzx ax, bh                              ; 0f b6 c7
     
    73357588    ; sub ah, ah                                ; 2a e4
    73367589    test AL, strict byte 001h                 ; a8 01
    7337     jne short 0534fh                          ; 75 08
     7590    jne short 05624h                          ; 75 08
    73387591    mov AL, strict byte 021h                  ; b0 21
    73397592    mov dx, 00080h                            ; ba 80 00
    73407593    out DX, AL                                ; ee
    7341     jmp short 0533dh                          ; eb ee
     7594    jmp short 05612h                          ; eb ee
    73427595    mov dx, strict word 00060h                ; ba 60 00
    73437596    in AL, DX                                 ; ec
     
    73477600    mov dx, 00097h                            ; ba 97 00
    73487601    mov ax, strict word 00040h                ; b8 40 00
    7349     call 0165eh                               ; e8 fe c2
     7602    call 0165eh                               ; e8 29 c0
    73507603    sti                                       ; fb
    73517604    mov ax, word [bp+012h]                    ; 8b 46 12
    73527605    shr ax, 008h                              ; c1 e8 08
    73537606    cmp ax, 000a2h                            ; 3d a2 00
    7354     jnbe near 0556dh                          ; 0f 87 ff 01
     7607    jnbe near 05842h                          ; 0f 87 ff 01
    73557608    push CS                                   ; 0e
    73567609    pop ES                                    ; 07
    73577610    mov cx, strict word 0000ch                ; b9 0c 00
    7358     mov di, 052ach                            ; bf ac 52
     7611    mov di, 05581h                            ; bf 81 55
    73597612    repne scasb                               ; f2 ae
    73607613    sal cx, 1                                 ; d1 e1
    73617614    mov di, cx                                ; 89 cf
    7362     mov ax, word [cs:di+052b7h]               ; 2e 8b 85 b7 52
     7615    mov ax, word [cs:di+0558ch]               ; 2e 8b 85 8c 55
    73637616    jmp ax                                    ; ff e0
    73647617    push strict byte 00001h                   ; 6a 01
     
    73677620    mov dx, ss                                ; 8c d2
    73687621    lea ax, [bp-006h]                         ; 8d 46 fa
    7369     call 0523bh                               ; e8 a9 fe
     7622    call 05510h                               ; e8 a9 fe
    73707623    test ax, ax                               ; 85 c0
    7371     jne short 053a1h                          ; 75 0b
    7372     push 005efh                               ; 68 ef 05
     7624    jne short 05676h                          ; 75 0b
     7625    push 0060fh                               ; 68 0f 06
    73737626    push strict byte 00007h                   ; 6a 07
    7374     call 01972h                               ; e8 d4 c5
     7627    call 01972h                               ; e8 ff c2
    73757628    add sp, strict byte 00004h                ; 83 c4 04
    73767629    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7377     je short 053adh                           ; 74 06
     7630    je short 05682h                           ; 74 06
    73787631    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7379     je short 053b3h                           ; 74 06
     7632    je short 05688h                           ; 74 06
    73807633    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7381     jne short 053b7h                          ; 75 04
     7634    jne short 0568ch                          ; 75 04
    73827635    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    73837636    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    73867639    or dx, ax                                 ; 09 c2
    73877640    mov word [bp+012h], dx                    ; 89 56 12
    7388     jmp near 055b0h                           ; e9 e6 01
     7641    jmp near 05885h                           ; e9 e6 01
    73897642    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    73907643    push strict byte 00000h                   ; 6a 00
     
    73937646    mov dx, ss                                ; 8c d2
    73947647    lea ax, [bp-006h]                         ; 8d 46 fa
    7395     call 0523bh                               ; e8 5d fe
     7648    call 05510h                               ; e8 5d fe
    73967649    test ax, ax                               ; 85 c0
    7397     jne short 053e9h                          ; 75 07
     7650    jne short 056beh                          ; 75 07
    73987651    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7399     jmp near 055b0h                           ; e9 c7 01
     7652    jmp near 05885h                           ; e9 c7 01
    74007653    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7401     je short 053f5h                           ; 74 06
     7654    je short 056cah                           ; 74 06
    74027655    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7403     je short 053fbh                           ; 74 06
     7656    je short 056d0h                           ; 74 06
    74047657    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7405     jne short 053ffh                          ; 75 04
     7658    jne short 056d4h                          ; 75 04
    74067659    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    74077660    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    74117664    mov word [bp+012h], dx                    ; 89 56 12
    74127665    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7413     jmp near 055b0h                           ; e9 9a 01
     7666    jmp near 05885h                           ; e9 9a 01
    74147667    mov dx, strict word 00017h                ; ba 17 00
    74157668    mov ax, strict word 00040h                ; b8 40 00
    7416     call 01650h                               ; e8 31 c2
     7669    call 01650h                               ; e8 5c bf
    74177670    mov dx, word [bp+012h]                    ; 8b 56 12
    74187671    mov dl, al                                ; 88 c2
    7419     jmp short 053c4h                          ; eb 9e
     7672    jmp short 05699h                          ; eb 9e
    74207673    mov al, byte [bp+010h]                    ; 8a 46 10
    74217674    movzx dx, al                              ; 0f b6 d0
     
    74237676    shr ax, 008h                              ; c1 e8 08
    74247677    xor ah, ah                                ; 30 e4
    7425     call 04de1h                               ; e8 aa f9
     7678    call 050b6h                               ; e8 aa f9
    74267679    test ax, ax                               ; 85 c0
    7427     jne short 05448h                          ; 75 0d
     7680    jne short 0571dh                          ; 75 0d
    74287681    mov ax, word [bp+012h]                    ; 8b 46 12
    74297682    xor al, al                                ; 30 c0
    74307683    or AL, strict byte 001h                   ; 0c 01
    74317684    mov word [bp+012h], ax                    ; 89 46 12
    7432     jmp near 055b0h                           ; e9 68 01
     7685    jmp near 05885h                           ; e9 68 01
    74337686    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    7434     jmp near 055b0h                           ; e9 60 01
     7687    jmp near 05885h                           ; e9 60 01
    74357688    mov ax, word [bp+012h]                    ; 8b 46 12
    74367689    xor al, al                                ; 30 c0
    74377690    or AL, strict byte 030h                   ; 0c 30
    7438     jmp short 05442h                          ; eb e9
     7691    jmp short 05717h                          ; eb e9
    74397692    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    74407693    xor cx, cx                                ; 31 c9
     
    74497702    ; sub ah, ah                                ; 2a e4
    74507703    test AL, strict byte 001h                 ; a8 01
    7451     jne short 05480h                          ; 75 0d
     7704    jne short 05755h                          ; 75 0d
    74527705    dec bx                                    ; 4b
    74537706    test bx, bx                               ; 85 db
    7454     jbe short 05480h                          ; 76 08
     7707    jbe short 05755h                          ; 76 08
    74557708    mov dx, 00080h                            ; ba 80 00
    74567709    in AL, DX                                 ; ec
    74577710    db  02ah, 0e4h
    74587711    ; sub ah, ah                                ; 2a e4
    7459     jmp short 05469h                          ; eb e9
     7712    jmp short 0573eh                          ; eb e9
    74607713    test bx, bx                               ; 85 db
    7461     jbe short 054c4h                          ; 76 40
     7714    jbe short 05799h                          ; 76 40
    74627715    mov dx, strict word 00060h                ; ba 60 00
    74637716    in AL, DX                                 ; ec
     
    74657718    ; sub ah, ah                                ; 2a e4
    74667719    cmp ax, 000fah                            ; 3d fa 00
    7467     jne short 054c4h                          ; 75 35
     7720    jne short 05799h                          ; 75 35
    74687721    mov bx, strict word 0ffffh                ; bb ff ff
    74697722    mov dx, strict word 00064h                ; ba 64 00
     
    74727725    ; sub ah, ah                                ; 2a e4
    74737726    test AL, strict byte 001h                 ; a8 01
    7474     jne short 054a9h                          ; 75 0d
     7727    jne short 0577eh                          ; 75 0d
    74757728    dec bx                                    ; 4b
    74767729    test bx, bx                               ; 85 db
    7477     jbe short 054a9h                          ; 76 08
     7730    jbe short 0577eh                          ; 76 08
    74787731    mov dx, 00080h                            ; ba 80 00
    74797732    in AL, DX                                 ; ec
    74807733    db  02ah, 0e4h
    74817734    ; sub ah, ah                                ; 2a e4
    7482     jmp short 05492h                          ; eb e9
     7735    jmp short 05767h                          ; eb e9
    74837736    test bx, bx                               ; 85 db
    7484     jbe short 054bbh                          ; 76 0e
     7737    jbe short 05790h                          ; 76 0e
    74857738    shr cx, 008h                              ; c1 e9 08
    74867739    mov dx, strict word 00060h                ; ba 60 00
     
    74927745    dec byte [bp-004h]                        ; fe 4e fc
    74937746    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7494     jnbe short 0548fh                         ; 77 cb
     7747    jnbe short 05764h                         ; 77 cb
    74957748    mov word [bp+00ch], cx                    ; 89 4e 0c
    7496     jmp near 055b0h                           ; e9 e6 00
     7749    jmp near 05885h                           ; e9 e6 00
    74977750    push strict byte 00001h                   ; 6a 01
    74987751    mov cx, ss                                ; 8c d1
     
    75007753    mov dx, ss                                ; 8c d2
    75017754    lea ax, [bp-006h]                         ; 8d 46 fa
    7502     call 0523bh                               ; e8 62 fd
     7755    call 05510h                               ; e8 62 fd
    75037756    test ax, ax                               ; 85 c0
    7504     jne short 054e8h                          ; 75 0b
    7505     push 005efh                               ; 68 ef 05
     7757    jne short 057bdh                          ; 75 0b
     7758    push 0060fh                               ; 68 0f 06
    75067759    push strict byte 00007h                   ; 6a 07
    7507     call 01972h                               ; e8 8d c4
     7760    call 01972h                               ; e8 b8 c1
    75087761    add sp, strict byte 00004h                ; 83 c4 04
    75097762    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7510     je near 053b7h                            ; 0f 84 c7 fe
     7763    je near 0568ch                            ; 0f 84 c7 fe
    75117764    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7512     je near 053b3h                            ; 0f 84 bb fe
    7513     jmp near 053b7h                           ; e9 bc fe
     7765    je near 05688h                            ; 0f 84 bb fe
     7766    jmp near 0568ch                           ; e9 bc fe
    75147767    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    75157768    push strict byte 00000h                   ; 6a 00
     
    75187771    mov dx, ss                                ; 8c d2
    75197772    lea ax, [bp-006h]                         ; 8d 46 fa
    7520     call 0523bh                               ; e8 2c fd
     7773    call 05510h                               ; e8 2c fd
    75217774    test ax, ax                               ; 85 c0
    7522     je near 053e2h                            ; 0f 84 cd fe
     7775    je near 056b7h                            ; 0f 84 cd fe
    75237776    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7524     je near 053ffh                            ; 0f 84 e2 fe
     7777    je near 056d4h                            ; 0f 84 e2 fe
    75257778    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7526     je near 053fbh                            ; 0f 84 d6 fe
    7527     jmp near 053ffh                           ; e9 d7 fe
     7779    je near 056d0h                            ; 0f 84 d6 fe
     7780    jmp near 056d4h                           ; e9 d7 fe
    75287781    mov dx, strict word 00017h                ; ba 17 00
    75297782    mov ax, strict word 00040h                ; b8 40 00
    7530     call 01650h                               ; e8 1f c1
     7783    call 01650h                               ; e8 4a be
    75317784    mov dx, word [bp+012h]                    ; 8b 56 12
    75327785    mov dl, al                                ; 88 c2
     
    75347787    mov dx, strict word 00018h                ; ba 18 00
    75357788    mov ax, strict word 00040h                ; b8 40 00
    7536     call 01650h                               ; e8 0e c1
     7789    call 01650h                               ; e8 39 be
    75377790    mov bh, al                                ; 88 c7
    75387791    and bh, 073h                              ; 80 e7 73
    75397792    mov dx, 00096h                            ; ba 96 00
    75407793    mov ax, strict word 00040h                ; b8 40 00
    7541     call 01650h                               ; e8 00 c1
     7794    call 01650h                               ; e8 2b be
    75427795    and AL, strict byte 00ch                  ; 24 0c
    75437796    or bh, al                                 ; 08 c7
     
    75467799    movzx ax, bh                              ; 0f b6 c7
    75477800    sal ax, 008h                              ; c1 e0 08
    7548     jmp near 053c2h                           ; e9 60 fe
     7801    jmp near 05697h                           ; e9 60 fe
    75497802    mov ax, word [bp+012h]                    ; 8b 46 12
    75507803    xor ah, ah                                ; 30 e4
    75517804    or ah, 080h                               ; 80 cc 80
    7552     jmp near 05442h                           ; e9 d5 fe
    7553     mov bx, 00da2h                            ; bb a2 0d
     7805    jmp near 05717h                           ; e9 d5 fe
     7806    mov bx, 00da0h                            ; bb a0 0d
    75547807    mov cx, ds                                ; 8c d9
    75557808    mov ax, strict word 00004h                ; b8 04 00
    7556     call 01931h                               ; e8 b9 c3
     7809    call 01931h                               ; e8 e4 c0
    75577810    mov ax, word [bp+012h]                    ; 8b 46 12
    75587811    shr ax, 008h                              ; c1 e8 08
    75597812    push ax                                   ; 50
    7560     push 00613h                               ; 68 13 06
     7813    push 00633h                               ; 68 33 06
    75617814    push strict byte 00004h                   ; 6a 04
    7562     call 01972h                               ; e8 eb c3
     7815    call 01972h                               ; e8 16 c1
    75637816    add sp, strict byte 00006h                ; 83 c4 06
    7564     mov bx, 00da2h                            ; bb a2 0d
     7817    mov bx, 00da0h                            ; bb a0 0d
    75657818    mov cx, ds                                ; 8c d9
    75667819    mov ax, strict word 00004h                ; b8 04 00
    7567     call 01931h                               ; e8 9c c3
     7820    call 01931h                               ; e8 c7 c0
    75687821    mov ax, word [bp+00eh]                    ; 8b 46 0e
    75697822    push ax                                   ; 50
     
    75747827    mov ax, word [bp+012h]                    ; 8b 46 12
    75757828    push ax                                   ; 50
    7576     push 0063bh                               ; 68 3b 06
     7829    push 0065bh                               ; 68 5b 06
    75777830    push strict byte 00004h                   ; 6a 04
    7578     call 01972h                               ; e8 c5 c3
     7831    call 01972h                               ; e8 f0 c0
    75797832    add sp, strict byte 0000ch                ; 83 c4 0c
    75807833    lea sp, [bp-002h]                         ; 8d 66 fe
     
    75827835    pop bp                                    ; 5d
    75837836    retn                                      ; c3
    7584 set_geom_lba_:                               ; 0xf55b6 LB 0x9e
     7837set_geom_lba_:                               ; 0xf588b LB 0xe5
     7838    push bx                                   ; 53
     7839    push cx                                   ; 51
    75857840    push si                                   ; 56
    75867841    push di                                   ; 57
    7587     enter 00004h, 000h                        ; c8 04 00 00
    7588     mov si, ax                                ; 89 c6
     7842    enter 00008h, 000h                        ; c8 08 00 00
     7843    mov di, ax                                ; 89 c7
    75897844    mov es, dx                                ; 8e c2
     7845    mov dword [bp-008h], strict dword 0007e0000h ; 66 c7 46 f8 00 00 7e 00
     7846    mov word [bp-002h], 000ffh                ; c7 46 fe ff 00
     7847    mov ax, word [bp+012h]                    ; 8b 46 12
     7848    mov bx, word [bp+010h]                    ; 8b 5e 10
     7849    mov cx, word [bp+00eh]                    ; 8b 4e 0e
     7850    mov dx, word [bp+00ch]                    ; 8b 56 0c
     7851    mov si, strict word 00020h                ; be 20 00
     7852    call 09d5ah                               ; e8 a4 44
     7853    test ax, ax                               ; 85 c0
     7854    jne short 058c6h                          ; 75 0c
     7855    test bx, bx                               ; 85 db
     7856    jne short 058c6h                          ; 75 08
     7857    test cx, cx                               ; 85 c9
     7858    jne short 058c6h                          ; 75 04
     7859    test dx, dx                               ; 85 d2
     7860    je short 058cdh                           ; 74 07
     7861    mov bx, strict word 0ffffh                ; bb ff ff
     7862    mov si, bx                                ; 89 de
     7863    jmp short 058d3h                          ; eb 06
     7864    mov bx, word [bp+00ch]                    ; 8b 5e 0c
     7865    mov si, word [bp+00eh]                    ; 8b 76 0e
    75907866    mov word [bp-004h], bx                    ; 89 5e fc
    7591     mov word [bp-002h], cx                    ; 89 4e fe
    7592     xor ax, ax                                ; 31 c0
    7593     mov dx, strict word 0007eh                ; ba 7e 00
    7594     mov di, 000ffh                            ; bf ff 00
    75957867    xor bx, bx                                ; 31 db
    7596     jmp short 055d7h                          ; eb 05
     7868    jmp short 058dfh                          ; eb 05
    75977869    cmp bx, strict byte 00004h                ; 83 fb 04
    7598     jnl short 055edh                          ; 7d 16
    7599     cmp dx, word [bp-002h]                    ; 3b 56 fe
    7600     jnbe short 055e3h                         ; 77 07
    7601     jne short 055e6h                          ; 75 08
    7602     cmp ax, word [bp-004h]                    ; 3b 46 fc
    7603     jc short 055e6h                           ; 72 03
    7604     inc di                                    ; 47
    7605     shr di, 1                                 ; d1 ef
    7606     shr dx, 1                                 ; d1 ea
    7607     rcr ax, 1                                 ; d1 d8
     7870    jnl short 05902h                          ; 7d 23
     7871    mov ax, word [bp-006h]                    ; 8b 46 fa
     7872    cmp si, ax                                ; 39 c6
     7873    jc short 058f0h                           ; 72 0a
     7874    jne short 058f9h                          ; 75 11
     7875    mov ax, word [bp-004h]                    ; 8b 46 fc
     7876    cmp ax, word [bp-008h]                    ; 3b 46 f8
     7877    jnbe short 058f9h                         ; 77 09
     7878    mov ax, word [bp-002h]                    ; 8b 46 fe
     7879    inc ax                                    ; 40
     7880    shr ax, 1                                 ; d1 e8
     7881    mov word [bp-002h], ax                    ; 89 46 fe
     7882    shr word [bp-006h], 1                     ; d1 6e fa
     7883    rcr word [bp-008h], 1                     ; d1 5e f8
    76087884    inc bx                                    ; 43
    7609     jmp short 055d2h                          ; eb e5
    7610     mov ax, di                                ; 89 f8
     7885    jmp short 058dah                          ; eb d8
     7886    mov ax, word [bp-002h]                    ; 8b 46 fe
    76117887    xor dx, dx                                ; 31 d2
    76127888    mov bx, strict word 0003fh                ; bb 3f 00
    76137889    xor cx, cx                                ; 31 c9
    7614     call 09779h                               ; e8 80 41
     7890    call 09d19h                               ; e8 0a 44
    76157891    mov bx, ax                                ; 89 c3
    76167892    mov cx, dx                                ; 89 d1
    76177893    mov ax, word [bp-004h]                    ; 8b 46 fc
    7618     mov dx, word [bp-002h]                    ; 8b 56 fe
    7619     call 09740h                               ; e8 3a 41
    7620     mov word [es:si+002h], ax                 ; 26 89 44 02
     7894    mov dx, si                                ; 89 f2
     7895    call 09ce0h                               ; e8 c5 43
     7896    mov word [es:di+002h], ax                 ; 26 89 45 02
    76217897    cmp ax, 00400h                            ; 3d 00 04
    7622     jbe short 05615h                          ; 76 06
    7623     mov word [es:si+002h], 00400h             ; 26 c7 44 02 00 04
    7624     mov word [es:si], di                      ; 26 89 3c
    7625     mov word [es:si+004h], strict word 0003fh ; 26 c7 44 04 3f 00
     7898    jbe short 0592ah                          ; 76 06
     7899    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
     7900    mov ax, word [bp-002h]                    ; 8b 46 fe
     7901    mov word [es:di], ax                      ; 26 89 05
     7902    mov word [es:di+004h], strict word 0003fh ; 26 c7 45 04 3f 00
    76267903    leave                                     ; c9
    76277904    pop di                                    ; 5f
    76287905    pop si                                    ; 5e
    7629     retn                                      ; c3
    7630     ficom word [bp+004h]                      ; de 56 04
    7631     push di                                   ; 57
    7632     xor word [bx+031h], dx                    ; 31 57 31
    7633     push di                                   ; 57
    7634     xor word [bx+009h], dx                    ; 31 57 09
    76357906    pop cx                                    ; 59
    7636     aaa                                       ; 37
     7907    pop bx                                    ; 5b
     7908    retn 00008h                               ; c2 08 00
     7909    cli                                       ; fa
     7910    pop cx                                    ; 59
     7911    and byte [bp+si+04dh], bl                 ; 20 5a 4d
    76377912    pop dx                                    ; 5a
    7638     aaa                                       ; 37
     7913    dec bp                                    ; 4d
    76397914    pop dx                                    ; 5a
    7640     and bl, byte [bx+di+014h]                 ; 22 59 14
     7915    dec bp                                    ; 4d
    76417916    pop dx                                    ; 5a
    7642     aaa                                       ; 37
    7643     pop dx                                    ; 5a
    7644     aaa                                       ; 37
    7645     pop dx                                    ; 5a
    7646     adc AL, strict byte 05ah                  ; 14 5a
    7647     adc AL, strict byte 05ah                  ; 14 5a
    7648     aaa                                       ; 37
    7649     pop dx                                    ; 5a
    7650     aaa                                       ; 37
    7651     pop dx                                    ; 5a
    7652     cbw                                       ; 98
    7653     pop cx                                    ; 59
    7654     adc AL, strict byte 05ah                  ; 14 5a
    7655     aaa                                       ; 37
    7656     pop dx                                    ; 5a
    7657     aaa                                       ; 37
    7658     pop dx                                    ; 5a
    7659     adc AL, strict byte 05ah                  ; 14 5a
    7660     enter 03759h, 05ah                        ; c8 59 37 5a
    7661     aaa                                       ; 37
    7662     pop dx                                    ; 5a
    7663     aaa                                       ; 37
    7664     pop dx                                    ; 5a
    7665 _int13_harddisk:                             ; 0xf5654 LB 0x441
     7917    db  02eh, 05ch
     7918    ; cs pop sp                                 ; 2e 5c
     7919    pop sp                                    ; 5c
     7920    pop bp                                    ; 5d
     7921    pop sp                                    ; 5c
     7922    pop bp                                    ; 5d
     7923    inc di                                    ; 47
     7924    pop sp                                    ; 5c
     7925    cmp word [di+05ch], bx                    ; 39 5d 5c
     7926    pop bp                                    ; 5d
     7927    pop sp                                    ; 5c
     7928    pop bp                                    ; 5d
     7929    cmp word [di+039h], bx                    ; 39 5d 39
     7930    pop bp                                    ; 5d
     7931    pop sp                                    ; 5c
     7932    pop bp                                    ; 5d
     7933    pop sp                                    ; 5c
     7934    pop bp                                    ; 5d
     7935    mov bp, 0395ch                            ; bd 5c 39
     7936    pop bp                                    ; 5d
     7937    pop sp                                    ; 5c
     7938    pop bp                                    ; 5d
     7939    pop sp                                    ; 5c
     7940    pop bp                                    ; 5d
     7941    cmp word [di-013h], bx                    ; 39 5d ed
     7942    pop sp                                    ; 5c
     7943    pop sp                                    ; 5c
     7944    pop bp                                    ; 5d
     7945    pop sp                                    ; 5c
     7946    pop bp                                    ; 5d
     7947    pop sp                                    ; 5c
     7948    pop bp                                    ; 5d
     7949_int13_harddisk:                             ; 0xf5970 LB 0x44a
    76667950    push bp                                   ; 55
    76677951    mov bp, sp                                ; 89 e5
     
    76697953    mov dx, strict word 0000eh                ; ba 0e 00
    76707954    mov ax, strict word 00040h                ; b8 40 00
    7671     call 0166ch                               ; e8 09 c0
     7955    call 0166ch                               ; e8 ed bc
    76727956    mov si, 00122h                            ; be 22 01
    76737957    mov word [bp-004h], ax                    ; 89 46 fc
     
    76757959    mov dx, 0008eh                            ; ba 8e 00
    76767960    mov ax, strict word 00040h                ; b8 40 00
    7677     call 0165eh                               ; e8 ea bf
     7961    call 0165eh                               ; e8 ce bc
    76787962    mov ax, word [bp+00eh]                    ; 8b 46 0e
    76797963    xor ah, ah                                ; 30 e4
    76807964    cmp ax, 00080h                            ; 3d 80 00
    7681     jc short 05683h                           ; 72 05
     7965    jc short 0599fh                           ; 72 05
    76827966    cmp ax, 00090h                            ; 3d 90 00
    7683     jc short 056a1h                           ; 72 1e
     7967    jc short 059bdh                           ; 72 1e
    76847968    mov ax, word [bp+00eh]                    ; 8b 46 0e
    76857969    xor ah, ah                                ; 30 e4
     
    76887972    shr ax, 008h                              ; c1 e8 08
    76897973    push ax                                   ; 50
    7690     push 0065eh                               ; 68 5e 06
    7691     push 0066dh                               ; 68 6d 06
     7974    push 0067eh                               ; 68 7e 06
     7975    push 0068dh                               ; 68 8d 06
    76927976    push strict byte 00004h                   ; 6a 04
    7693     call 01972h                               ; e8 d7 c2
     7977    call 01972h                               ; e8 bb bf
    76947978    add sp, strict byte 0000ah                ; 83 c4 0a
    7695     jmp near 05a52h                           ; e9 b1 03
     7979    jmp near 05d77h                           ; e9 ba 03
    76967980    mov ax, word [bp+00eh]                    ; 8b 46 0e
    76977981    xor ah, ah                                ; 30 e4
     
    76997983    mov bx, si                                ; 89 f3
    77007984    add bx, ax                                ; 01 c3
    7701     mov dl, byte [es:bx+0011fh]               ; 26 8a 97 1f 01
     7985    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
    77027986    mov byte [bp-002h], dl                    ; 88 56 fe
    77037987    cmp dl, 010h                              ; 80 fa 10
    7704     jc short 056cah                           ; 72 10
     7988    jc short 059e6h                           ; 72 10
    77057989    push ax                                   ; 50
    77067990    mov ax, word [bp+016h]                    ; 8b 46 16
    77077991    shr ax, 008h                              ; c1 e8 08
    77087992    push ax                                   ; 50
    7709     push 0065eh                               ; 68 5e 06
    7710     push 00698h                               ; 68 98 06
    7711     jmp short 05696h                          ; eb cc
     7993    push 0067eh                               ; 68 7e 06
     7994    push 006b8h                               ; 68 b8 06
     7995    jmp short 059b2h                          ; eb cc
    77127996    mov bx, word [bp+016h]                    ; 8b 5e 16
    77137997    shr bx, 008h                              ; c1 eb 08
    77147998    cmp bx, strict byte 00018h                ; 83 fb 18
    7715     jnbe near 05a37h                          ; 0f 87 60 03
     7999    jnbe near 05d5ch                          ; 0f 87 69 03
    77168000    add bx, bx                                ; 01 db
    7717     jmp word [cs:bx+05622h]                   ; 2e ff a7 22 56
     8001    jmp word [cs:bx+0593eh]                   ; 2e ff a7 3e 59
    77188002    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7719     jnc near 056edh                           ; 0f 83 07 00
     8003    jnc near 05a09h                           ; 0f 83 07 00
    77208004    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7721     call 01c71h                               ; e8 84 c5
     8005    call 01d7ch                               ; e8 73 c3
    77228006    mov byte [bp+017h], 000h                  ; c6 46 17 00
    77238007    xor bx, bx                                ; 31 db
    77248008    mov dx, strict word 00074h                ; ba 74 00
    77258009    mov ax, strict word 00040h                ; b8 40 00
    7726     call 0165eh                               ; e8 62 bf
     8010    call 0165eh                               ; e8 46 bc
    77278011    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    77288012    mov sp, bp                                ; 89 ec
     
    77318015    mov dx, strict word 00074h                ; ba 74 00
    77328016    mov ax, strict word 00040h                ; b8 40 00
    7733     call 01650h                               ; e8 43 bf
     8017    call 01650h                               ; e8 27 bc
    77348018    mov cl, al                                ; 88 c1
    77358019    mov dx, word [bp+016h]                    ; 8b 56 16
     
    77428026    mov dx, strict word 00074h                ; ba 74 00
    77438027    mov ax, strict word 00040h                ; b8 40 00
    7744     call 0165eh                               ; e8 34 bf
     8028    call 0165eh                               ; e8 18 bc
    77458029    test cl, cl                               ; 84 c9
    7746     je short 056f1h                           ; 74 c3
    7747     jmp near 05a6eh                           ; e9 3d 03
     8030    je short 05a0dh                           ; 74 c3
     8031    jmp near 05d93h                           ; e9 46 03
    77488032    mov ax, word [bp+016h]                    ; 8b 46 16
    77498033    xor ah, ah                                ; 30 e4
     
    77658049    mov ax, word [bp-00ch]                    ; 8b 46 f4
    77668050    cmp ax, 00080h                            ; 3d 80 00
    7767     jnbe short 0576ch                         ; 77 04
     8051    jnbe short 05a88h                         ; 77 04
    77688052    test ax, ax                               ; 85 c0
    7769     jne short 0578fh                          ; 75 23
    7770     mov bx, 00da2h                            ; bb a2 0d
     8053    jne short 05aabh                          ; 75 23
     8054    mov bx, 00da0h                            ; bb a0 0d
    77718055    mov cx, ds                                ; 8c d9
    77728056    mov ax, strict word 00004h                ; b8 04 00
    7773     call 01931h                               ; e8 ba c1
     8057    call 01931h                               ; e8 9e be
    77748058    mov ax, word [bp+016h]                    ; 8b 46 16
    77758059    shr ax, 008h                              ; c1 e8 08
    77768060    push ax                                   ; 50
    7777     push 0065eh                               ; 68 5e 06
    7778     push 006cah                               ; 68 ca 06
     8061    push 0067eh                               ; 68 7e 06
     8062    push 006eah                               ; 68 ea 06
    77798063    push strict byte 00004h                   ; 6a 04
    7780     call 01972h                               ; e8 e9 c1
     8064    call 01972h                               ; e8 cd be
    77818065    add sp, strict byte 00008h                ; 83 c4 08
    7782     jmp near 05a52h                           ; e9 c3 02
     8066    jmp near 05d77h                           ; e9 cc 02
    77838067    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7784     imul ax, ax, strict byte 00018h           ; 6b c0 18
     8068    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    77858069    mov es, [bp-004h]                         ; 8e 46 fc
    77868070    mov bx, si                                ; 89 f3
    77878071    add bx, ax                                ; 01 c3
    7788     mov ax, word [es:bx+028h]                 ; 26 8b 47 28
    7789     mov cx, word [es:bx+026h]                 ; 26 8b 4f 26
    7790     mov dx, word [es:bx+02ah]                 ; 26 8b 57 2a
     8072    mov ax, word [es:bx+02ch]                 ; 26 8b 47 2c
     8073    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
     8074    mov dx, word [es:bx+02eh]                 ; 26 8b 57 2e
    77918075    mov word [bp-00ah], dx                    ; 89 56 f6
    77928076    cmp di, ax                                ; 39 c7
    7793     jnc short 057bch                          ; 73 0c
     8077    jnc short 05ad8h                          ; 73 0c
    77948078    cmp cx, word [bp-008h]                    ; 3b 4e f8
    7795     jbe short 057bch                          ; 76 07
     8079    jbe short 05ad8h                          ; 76 07
    77968080    mov ax, word [bp-006h]                    ; 8b 46 fa
    77978081    cmp ax, dx                                ; 39 d0
    7798     jbe short 057eah                          ; 76 2e
    7799     mov bx, 00da2h                            ; bb a2 0d
     8082    jbe short 05b06h                          ; 76 2e
     8083    mov bx, 00da0h                            ; bb a0 0d
    78008084    mov cx, ds                                ; 8c d9
    78018085    mov ax, strict word 00004h                ; b8 04 00
    7802     call 01931h                               ; e8 6a c1
     8086    call 01931h                               ; e8 4e be
    78038087    push dword [bp-008h]                      ; 66 ff 76 f8
    78048088    push di                                   ; 57
     
    78098093    shr ax, 008h                              ; c1 e8 08
    78108094    push ax                                   ; 50
    7811     push 0065eh                               ; 68 5e 06
    7812     push 006f2h                               ; 68 f2 06
     8095    push 0067eh                               ; 68 7e 06
     8096    push 00712h                               ; 68 12 07
    78138097    push strict byte 00004h                   ; 6a 04
    7814     call 01972h                               ; e8 8e c1
     8098    call 01972h                               ; e8 72 be
    78158099    add sp, strict byte 00010h                ; 83 c4 10
    7816     jmp near 05a52h                           ; e9 68 02
     8100    jmp near 05d77h                           ; e9 71 02
    78178101    mov ax, word [bp+016h]                    ; 8b 46 16
    78188102    shr ax, 008h                              ; c1 e8 08
    78198103    cmp ax, strict word 00004h                ; 3d 04 00
    7820     jne short 057f8h                          ; 75 03
    7821     jmp near 056edh                           ; e9 f5 fe
     8104    jne short 05b14h                          ; 75 03
     8105    jmp near 05a09h                           ; e9 f5 fe
    78228106    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    7823     imul bx, bx, strict byte 00018h           ; 6b db 18
     8107    imul bx, bx, strict byte 0001ch           ; 6b db 1c
    78248108    mov es, [bp-004h]                         ; 8e 46 fc
    78258109    add bx, si                                ; 01 f3
    7826     cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    7827     jne short 05819h                          ; 75 0f
    7828     mov ax, word [es:bx+030h]                 ; 26 8b 47 30
     8110    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
     8111    jne short 05b35h                          ; 75 0f
     8112    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    78298113    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    7830     jne short 05819h                          ; 75 06
     8114    jne short 05b35h                          ; 75 06
    78318115    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7832     jc short 05849h                           ; 72 30
     8116    jc short 05b65h                           ; 72 30
    78338117    mov ax, di                                ; 89 f8
    78348118    xor dx, dx                                ; 31 d2
    78358119    mov bx, cx                                ; 89 cb
    78368120    xor cx, cx                                ; 31 c9
    7837     call 09779h                               ; e8 55 3f
     8121    call 09d19h                               ; e8 d9 41
    78388122    xor bx, bx                                ; 31 db
    78398123    add ax, word [bp-008h]                    ; 03 46 f8
     
    78418125    mov bx, word [bp-00ah]                    ; 8b 5e f6
    78428126    xor cx, cx                                ; 31 c9
    7843     call 09779h                               ; e8 46 3f
     8127    call 09d19h                               ; e8 ca 41
    78448128    xor bx, bx                                ; 31 db
    78458129    add ax, word [bp-006h]                    ; 03 46 fa
     
    78518135    mov word [bp-006h], bx                    ; 89 5e fa
    78528136    mov es, [bp-004h]                         ; 8e 46 fc
    7853     db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
    7854     ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00
    7855     mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
     8137    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
     8138    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
     8139    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
    78568140    mov ax, word [bp-010h]                    ; 8b 46 f0
    78578141    mov word [es:si], ax                      ; 26 89 04
    78588142    mov ax, word [bp-00eh]                    ; 8b 46 f2
    78598143    mov word [es:si+002h], ax                 ; 26 89 44 02
     8144    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
     8145    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
    78608146    mov ax, word [bp+010h]                    ; 8b 46 10
    78618147    mov dx, word [bp+006h]                    ; 8b 56 06
    7862     mov word [es:si+004h], ax                 ; 26 89 44 04
    7863     mov word [es:si+006h], dx                 ; 26 89 54 06
     8148    mov word [es:si+008h], ax                 ; 26 89 44 08
     8149    mov word [es:si+00ah], dx                 ; 26 89 54 0a
    78648150    mov ax, word [bp-00ch]                    ; 8b 46 f4
    7865     mov word [es:si+00ah], ax                 ; 26 89 44 0a
    7866     mov word [es:si+00ch], 00200h             ; 26 c7 44 0c 00 02
    7867     mov word [es:si+00eh], di                 ; 26 89 7c 0e
     8151    mov word [es:si+00eh], ax                 ; 26 89 44 0e
     8152    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
     8153    mov word [es:si+012h], di                 ; 26 89 7c 12
    78688154    mov ax, word [bp-008h]                    ; 8b 46 f8
    7869     mov word [es:si+010h], ax                 ; 26 89 44 10
     8155    mov word [es:si+014h], ax                 ; 26 89 44 14
    78708156    mov ax, word [bp-006h]                    ; 8b 46 fa
    7871     mov word [es:si+012h], ax                 ; 26 89 44 12
     8157    mov word [es:si+016h], ax                 ; 26 89 44 16
    78728158    mov al, byte [bp-002h]                    ; 8a 46 fe
    7873     mov byte [es:si+008h], al                 ; 26 88 44 08
     8159    mov byte [es:si+00ch], al                 ; 26 88 44 0c
    78748160    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7875     imul ax, ax, strict byte 00018h           ; 6b c0 18
     8161    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    78768162    mov bx, si                                ; 89 f3
    78778163    add bx, ax                                ; 01 c3
    7878     movzx ax, byte [es:bx+01eh]               ; 26 0f b6 47 1e
     8164    movzx ax, byte [es:bx+022h]               ; 26 0f b6 47 22
    78798165    mov bx, ax                                ; 89 c3
    78808166    sal bx, 002h                              ; c1 e3 02
     
    78908176    xor al, al                                ; 30 c0
    78918177    mov es, [bp-004h]                         ; 8e 46 fc
    7892     mov bx, word [es:si+014h]                 ; 26 8b 5c 14
     8178    mov bx, word [es:si+018h]                 ; 26 8b 5c 18
    78938179    or bx, ax                                 ; 09 c3
    78948180    mov word [bp+016h], bx                    ; 89 5e 16
    78958181    test dl, dl                               ; 84 d2
    7896     je near 056edh                            ; 0f 84 13 fe
    7897     mov bx, 00da2h                            ; bb a2 0d
     8182    je near 05a09h                            ; 0f 84 0a fe
     8183    mov bx, 00da0h                            ; bb a0 0d
    78988184    mov cx, ds                                ; 8c d9
    78998185    mov ax, strict word 00004h                ; b8 04 00
    7900     call 01931h                               ; e8 4c c0
     8186    call 01931h                               ; e8 27 bd
    79018187    movzx ax, dl                              ; 0f b6 c2
    79028188    push ax                                   ; 50
     
    79048190    shr ax, 008h                              ; c1 e8 08
    79058191    push ax                                   ; 50
    7906     push 0065eh                               ; 68 5e 06
    7907     push 00739h                               ; 68 39 07
     8192    push 0067eh                               ; 68 7e 06
     8193    push 00759h                               ; 68 59 07
    79088194    push strict byte 00004h                   ; 6a 04
    7909     call 01972h                               ; e8 77 c0
     8195    call 01972h                               ; e8 52 bd
    79108196    add sp, strict byte 0000ah                ; 83 c4 0a
    79118197    mov ax, word [bp+016h]                    ; 8b 46 16
    79128198    xor ah, ah                                ; 30 e4
    79138199    or ah, 00ch                               ; 80 cc 0c
    7914     jmp near 05a5ah                           ; e9 51 01
    7915     mov bx, 00da2h                            ; bb a2 0d
     8200    jmp near 05d7fh                           ; e9 51 01
     8201    mov bx, 00da0h                            ; bb a0 0d
    79168202    mov cx, ds                                ; 8c d9
    79178203    mov ax, strict word 00004h                ; b8 04 00
    7918     call 01931h                               ; e8 1d c0
    7919     push 0075ah                               ; 68 5a 07
     8204    call 01931h                               ; e8 f8 bc
     8205    push 0077ah                               ; 68 7a 07
    79208206    push strict byte 00004h                   ; 6a 04
    7921     call 01972h                               ; e8 56 c0
     8207    call 01972h                               ; e8 31 bd
    79228208    add sp, strict byte 00004h                ; 83 c4 04
    7923     jmp near 056edh                           ; e9 cb fd
     8209    jmp near 05a09h                           ; e9 c2 fd
    79248210    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7925     imul ax, ax, strict byte 00018h           ; 6b c0 18
     8211    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    79268212    mov es, [bp-004h]                         ; 8e 46 fc
    79278213    mov bx, si                                ; 89 f3
    79288214    add bx, ax                                ; 01 c3
    7929     mov di, word [es:bx+028h]                 ; 26 8b 7f 28
    7930     mov cx, word [es:bx+026h]                 ; 26 8b 4f 26
    7931     mov ax, word [es:bx+02ah]                 ; 26 8b 47 2a
     8215    mov di, word [es:bx+02ch]                 ; 26 8b 7f 2c
     8216    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
     8217    mov ax, word [es:bx+02eh]                 ; 26 8b 47 2e
    79328218    mov word [bp-00ah], ax                    ; 89 46 f6
    7933     movzx ax, byte [es:si+0019eh]             ; 26 0f b6 84 9e 01
     8219    movzx ax, byte [es:si+001e2h]             ; 26 0f b6 84 e2 01
    79348220    mov word [bp-00ch], ax                    ; 89 46 f4
    79358221    mov byte [bp+016h], 000h                  ; c6 46 16 00
     
    79648250    or dx, ax                                 ; 09 c2
    79658251    mov word [bp+012h], dx                    ; 89 56 12
    7966     jmp near 056edh                           ; e9 55 fd
     8252    jmp near 05a09h                           ; e9 4c fd
    79678253    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    79688254    cwd                                       ; 99
     
    79738259    mov es, [bp-004h]                         ; 8e 46 fc
    79748260    add si, ax                                ; 01 c6
    7975     mov dx, word [es:si+001c2h]               ; 26 8b 94 c2 01
     8261    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
    79768262    add dx, strict byte 00007h                ; 83 c2 07
    79778263    in AL, DX                                 ; ec
     
    79808266    and AL, strict byte 0c0h                  ; 24 c0
    79818267    cmp AL, strict byte 040h                  ; 3c 40
    7982     jne short 059bdh                          ; 75 03
    7983     jmp near 056edh                           ; e9 30 fd
     8268    jne short 05ce2h                          ; 75 03
     8269    jmp near 05a09h                           ; e9 27 fd
    79848270    mov ax, word [bp+016h]                    ; 8b 46 16
    79858271    xor ah, ah                                ; 30 e4
    79868272    or ah, 0aah                               ; 80 cc aa
    7987     jmp near 05a5ah                           ; e9 92 00
     8273    jmp near 05d7fh                           ; e9 92 00
    79888274    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7989     imul ax, ax, strict byte 00018h           ; 6b c0 18
     8275    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    79908276    mov es, [bp-004h]                         ; 8e 46 fc
    79918277    add si, ax                                ; 01 c6
    7992     mov di, word [es:si+02eh]                 ; 26 8b 7c 2e
    7993     mov ax, word [es:si+02ch]                 ; 26 8b 44 2c
     8278    mov di, word [es:si+032h]                 ; 26 8b 7c 32
     8279    mov ax, word [es:si+030h]                 ; 26 8b 44 30
    79948280    mov word [bp-008h], ax                    ; 89 46 f8
    7995     mov ax, word [es:si+030h]                 ; 26 8b 44 30
     8281    mov ax, word [es:si+034h]                 ; 26 8b 44 34
    79968282    mov word [bp-006h], ax                    ; 89 46 fa
    79978283    mov ax, di                                ; 89 f8
     
    79998285    mov bx, word [bp-008h]                    ; 8b 5e f8
    80008286    xor cx, cx                                ; 31 c9
    8001     call 09779h                               ; e8 87 3d
     8287    call 09d19h                               ; e8 02 40
    80028288    mov bx, word [bp-006h]                    ; 8b 5e fa
    80038289    xor cx, cx                                ; 31 c9
    8004     call 09779h                               ; e8 7f 3d
     8290    call 09d19h                               ; e8 fa 3f
    80058291    mov word [bp-010h], ax                    ; 89 46 f0
    80068292    mov word [bp-00eh], dx                    ; 89 56 f2
     
    80118297    or ah, 003h                               ; 80 cc 03
    80128298    mov word [bp+016h], ax                    ; 89 46 16
    8013     jmp near 056f1h                           ; e9 dd fc
    8014     mov bx, 00da2h                            ; bb a2 0d
     8299    jmp near 05a0dh                           ; e9 d4 fc
     8300    mov bx, 00da0h                            ; bb a0 0d
    80158301    mov cx, ds                                ; 8c d9
    80168302    mov ax, strict word 00004h                ; b8 04 00
    8017     call 01931h                               ; e8 12 bf
     8303    call 01931h                               ; e8 ed bb
    80188304    mov ax, word [bp+016h]                    ; 8b 46 16
    80198305    shr ax, 008h                              ; c1 e8 08
    80208306    push ax                                   ; 50
    8021     push 0065eh                               ; 68 5e 06
    8022     push 00774h                               ; 68 74 07
     8307    push 0067eh                               ; 68 7e 06
     8308    push 00794h                               ; 68 94 07
    80238309    push strict byte 00004h                   ; 6a 04
    8024     call 01972h                               ; e8 41 bf
     8310    call 01972h                               ; e8 1c bc
    80258311    add sp, strict byte 00008h                ; 83 c4 08
    8026     jmp near 056edh                           ; e9 b6 fc
    8027     mov bx, 00da2h                            ; bb a2 0d
     8312    jmp near 05a09h                           ; e9 ad fc
     8313    mov bx, 00da0h                            ; bb a0 0d
    80288314    mov cx, ds                                ; 8c d9
    80298315    mov ax, strict word 00004h                ; b8 04 00
    8030     call 01931h                               ; e8 ef be
     8316    call 01931h                               ; e8 ca bb
    80318317    mov ax, word [bp+016h]                    ; 8b 46 16
    80328318    shr ax, 008h                              ; c1 e8 08
    80338319    push ax                                   ; 50
    8034     push 0065eh                               ; 68 5e 06
    8035     push 007a7h                               ; 68 a7 07
    8036     jmp near 05784h                           ; e9 32 fd
     8320    push 0067eh                               ; 68 7e 06
     8321    push 007c7h                               ; 68 c7 07
     8322    jmp near 05aa0h                           ; e9 29 fd
    80378323    mov ax, word [bp+016h]                    ; 8b 46 16
    80388324    xor ah, ah                                ; 30 e4
     
    80448330    mov dx, strict word 00074h                ; ba 74 00
    80458331    mov ax, strict word 00040h                ; b8 40 00
    8046     call 0165eh                               ; e8 f0 bb
     8332    call 0165eh                               ; e8 cb b8
    80478333    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8048     jmp near 05700h                           ; e9 8b fc
    8049     xor byte [bp+di+048h], bl                 ; 30 5b 48
    8050     pop bx                                    ; 5b
    8051     dec ax                                    ; 48
    8052     pop bx                                    ; 5b
    8053     dec ax                                    ; 48
    8054     pop bx                                    ; 5b
    8055     neg word [bp-075h]                        ; f7 5e 8b
    8056     pop sp                                    ; 5c
    8057     dec ax                                    ; 48
    8058     pop bx                                    ; 5b
    8059     xchg cx, ax                               ; 91
    8060     pop sp                                    ; 5c
    8061     neg word [bp+046h]                        ; f7 5e 46
     8334    jmp near 05a1ch                           ; e9 82 fc
     8335    pop ax                                    ; 58
     8336    pop si                                    ; 5e
     8337    jo short 05dfch                           ; 70 5e
     8338    jo short 05dfeh                           ; 70 5e
     8339    jo short 05e00h                           ; 70 5e
     8340    inc sp                                    ; 44
     8341    db  062h
     8342    lds bx, [bx+070h]                         ; c5 5f 70
     8343    pop si                                    ; 5e
     8344    retf                                      ; cb
    80628345    pop di                                    ; 5f
    8063     inc si                                    ; 46
    8064     pop di                                    ; 5f
    8065     inc si                                    ; 46
    8066     pop di                                    ; 5f
    8067     inc si                                    ; 46
    8068     pop di                                    ; 5f
    8069     push CS                                   ; 0e
    8070     pop di                                    ; 5f
    8071     inc si                                    ; 46
    8072     pop di                                    ; 5f
    8073     inc si                                    ; 46
    8074     pop di                                    ; 5f
    8075 _int13_harddisk_ext:                         ; 0xf5a95 LB 0x4cc
     8346    inc sp                                    ; 44
     8347    bound dx, [bp+di-06c9eh]                  ; 62 93 62 93
     8348    bound dx, [bp+di-06c9eh]                  ; 62 93 62 93
     8349    bound bx, [bp+di+062h]                    ; 62 5b 62
     8350    xchg bx, ax                               ; 93
     8351    db  062h
     8352    xchg bx, ax                               ; 93
     8353    db  062h
     8354_int13_harddisk_ext:                         ; 0xf5dba LB 0x4f4
    80768355    push bp                                   ; 55
    80778356    mov bp, sp                                ; 89 e5
    8078     sub sp, strict byte 00028h                ; 83 ec 28
     8357    sub sp, strict byte 00026h                ; 83 ec 26
    80798358    mov dx, strict word 0000eh                ; ba 0e 00
    80808359    mov ax, strict word 00040h                ; b8 40 00
    8081     call 0166ch                               ; e8 c8 bb
     8360    call 0166ch                               ; e8 a3 b8
    80828361    mov word [bp-014h], ax                    ; 89 46 ec
    80838362    mov dx, strict word 0000eh                ; ba 0e 00
    80848363    mov ax, strict word 00040h                ; b8 40 00
    8085     call 0166ch                               ; e8 bc bb
    8086     mov si, 00122h                            ; be 22 01
    8087     mov word [bp-026h], ax                    ; 89 46 da
     8364    call 0166ch                               ; e8 97 b8
     8365    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
     8366    mov word [bp-006h], ax                    ; 89 46 fa
    80888367    xor bx, bx                                ; 31 db
    80898368    mov dx, 0008eh                            ; ba 8e 00
    80908369    mov ax, strict word 00040h                ; b8 40 00
    8091     call 0165eh                               ; e8 9d bb
     8370    call 0165eh                               ; e8 76 b8
    80928371    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80938372    xor ah, ah                                ; 30 e4
    80948373    cmp ax, 00080h                            ; 3d 80 00
    8095     jc short 05ad0h                           ; 72 05
     8374    jc short 05df7h                           ; 72 05
    80968375    cmp ax, 00090h                            ; 3d 90 00
    8097     jc short 05aeeh                           ; 72 1e
     8376    jc short 05e15h                           ; 72 1e
    80988377    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80998378    xor ah, ah                                ; 30 e4
     
    81028381    shr ax, 008h                              ; c1 e8 08
    81038382    push ax                                   ; 50
    8104     push 007d5h                               ; 68 d5 07
    8105     push 0066dh                               ; 68 6d 06
     8383    push 007f5h                               ; 68 f5 07
     8384    push 0068dh                               ; 68 8d 06
    81068385    push strict byte 00004h                   ; 6a 04
    8107     call 01972h                               ; e8 8a be
     8386    call 01972h                               ; e8 63 bb
    81088387    add sp, strict byte 0000ah                ; 83 c4 0a
    8109     jmp near 05f24h                           ; e9 36 04
     8388    jmp near 06271h                           ; e9 5c 04
    81108389    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81118390    xor ah, ah                                ; 30 e4
    8112     mov es, [bp-026h]                         ; 8e 46 da
    8113     mov bx, si                                ; 89 f3
     8391    les bx, [bp-008h]                         ; c4 5e f8
    81148392    add bx, ax                                ; 01 c3
    8115     mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
    8116     cmp cl, 010h                              ; 80 f9 10
    8117     jc short 05b14h                           ; 72 10
     8393    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
     8394    mov byte [bp-004h], dl                    ; 88 56 fc
     8395    cmp dl, 010h                              ; 80 fa 10
     8396    jc short 05e3ch                           ; 72 10
    81188397    push ax                                   ; 50
    81198398    mov ax, word [bp+016h]                    ; 8b 46 16
    81208399    shr ax, 008h                              ; c1 e8 08
    81218400    push ax                                   ; 50
    8122     push 007d5h                               ; 68 d5 07
    8123     push 00698h                               ; 68 98 06
    8124     jmp short 05ae3h                          ; eb cf
     8401    push 007f5h                               ; 68 f5 07
     8402    push 006b8h                               ; 68 b8 06
     8403    jmp short 05e0ah                          ; eb ce
    81258404    mov bx, word [bp+016h]                    ; 8b 5e 16
    81268405    shr bx, 008h                              ; c1 eb 08
    81278406    sub bx, strict byte 00041h                ; 83 eb 41
    81288407    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8129     jnbe near 05f46h                          ; 0f 87 22 04
     8408    jnbe near 06293h                          ; 0f 87 47 04
    81308409    add bx, bx                                ; 01 db
    81318410    mov ax, word [bp+016h]                    ; 8b 46 16
    81328411    xor ah, ah                                ; 30 e4
    8133     jmp word [cs:bx+05a75h]                   ; 2e ff a7 75 5a
     8412    jmp word [cs:bx+05d9ah]                   ; 2e ff a7 9a 5d
    81348413    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    81358414    mov ax, word [bp+016h]                    ; 8b 46 16
     
    81388417    mov word [bp+016h], ax                    ; 89 46 16
    81398418    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8140     jmp near 05efbh                           ; e9 b3 03
    8141     mov bx, word [bp+00ah]                    ; 8b 5e 0a
     8419    jmp near 06248h                           ; e9 d8 03
     8420    mov di, word [bp+00ah]                    ; 8b 7e 0a
    81428421    mov es, [bp+004h]                         ; 8e 46 04
    8143     mov di, bx                                ; 89 df
    8144     mov [bp-010h], es                         ; 8c 46 f0
    8145     mov ax, word [es:bx+002h]                 ; 26 8b 47 02
     8422    mov word [bp-01ch], di                    ; 89 7e e4
     8423    mov [bp-01ah], es                         ; 8c 46 e6
     8424    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    81468425    mov word [bp-012h], ax                    ; 89 46 ee
    8147     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     8426    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     8427    mov word [bp-016h], ax                    ; 89 46 ea
     8428    mov ax, word [es:di+004h]                 ; 26 8b 45 04
    81488429    mov word [bp-018h], ax                    ; 89 46 e8
    8149     mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    8150     mov word [bp-016h], ax                    ; 89 46 ea
    8151     mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
    8152     mov word [bp-00ah], ax                    ; 89 46 f6
    8153     mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    8154     or ax, word [bp-00ah]                     ; 0b 46 f6
    8155     je short 05b89h                           ; 74 11
     8430    mov dx, word [es:di+00ch]                 ; 26 8b 55 0c
     8431    mov cx, word [es:di+00eh]                 ; 26 8b 4d 0e
     8432    xor ax, ax                                ; 31 c0
     8433    xor bx, bx                                ; 31 db
     8434    mov si, strict word 00020h                ; be 20 00
     8435    call 09d4ah                               ; e8 a7 3e
     8436    mov word [bp-00eh], bx                    ; 89 5e f2
     8437    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
     8438    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
     8439    or dx, bx                                 ; 09 da
     8440    or cx, di                                 ; 09 f9
     8441    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     8442    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     8443    les di, [bp-008h]                         ; c4 7e f8
     8444    add di, bx                                ; 01 df
     8445    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
     8446    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
     8447    jnbe short 05eeah                         ; 77 22
     8448    jne short 05f0dh                          ; 75 43
     8449    mov si, word [bp-00eh]                    ; 8b 76 f2
     8450    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
     8451    jnbe short 05eeah                         ; 77 17
     8452    mov si, word [bp-00eh]                    ; 8b 76 f2
     8453    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
     8454    jne short 05f0dh                          ; 75 31
     8455    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
     8456    jnbe short 05eeah                         ; 77 08
     8457    jne short 05f0dh                          ; 75 29
     8458    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
     8459    jc short 05f0dh                           ; 72 23
     8460    mov bx, 00da0h                            ; bb a0 0d
     8461    mov cx, ds                                ; 8c d9
     8462    mov ax, strict word 00004h                ; b8 04 00
     8463    call 01931h                               ; e8 3c ba
    81568464    mov ax, word [bp+016h]                    ; 8b 46 16
    81578465    shr ax, 008h                              ; c1 e8 08
    81588466    push ax                                   ; 50
    8159     push 007d5h                               ; 68 d5 07
    8160     push 007e8h                               ; 68 e8 07
    8161     push strict byte 00007h                   ; 6a 07
    8162     jmp short 05bd3h                          ; eb 4a
    8163     mov es, [bp-010h]                         ; 8e 46 f0
    8164     mov ax, word [es:di+008h]                 ; 26 8b 45 08
    8165     mov word [bp-00ah], ax                    ; 89 46 f6
    8166     mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    8167     movzx dx, cl                              ; 0f b6 d1
    8168     imul dx, dx, strict byte 00018h           ; 6b d2 18
    8169     mov es, [bp-026h]                         ; 8e 46 da
    8170     mov bx, si                                ; 89 f3
     8467    push 007f5h                               ; 68 f5 07
     8468    push 00808h                               ; 68 08 08
     8469    push strict byte 00004h                   ; 6a 04
     8470    call 01972h                               ; e8 6b ba
     8471    add sp, strict byte 00008h                ; 83 c4 08
     8472    jmp near 06271h                           ; e9 64 03
     8473    mov di, word [bp+016h]                    ; 8b 7e 16
     8474    shr di, 008h                              ; c1 ef 08
     8475    cmp di, strict byte 00044h                ; 83 ff 44
     8476    je near 06244h                            ; 0f 84 2a 03
     8477    cmp di, strict byte 00047h                ; 83 ff 47
     8478    je near 06244h                            ; 0f 84 23 03
     8479    les si, [bp-008h]                         ; c4 76 f8
     8480    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
     8481    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
     8482    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
     8483    mov word [es:si+006h], ax                 ; 26 89 44 06
     8484    mov ax, word [bp-00eh]                    ; 8b 46 f2
     8485    mov word [es:si+004h], ax                 ; 26 89 44 04
     8486    mov word [es:si+002h], cx                 ; 26 89 4c 02
     8487    mov word [es:si], dx                      ; 26 89 14
     8488    mov ax, word [bp-018h]                    ; 8b 46 e8
     8489    mov word [es:si+008h], ax                 ; 26 89 44 08
     8490    mov ax, word [bp-016h]                    ; 8b 46 ea
     8491    mov word [es:si+00ah], ax                 ; 26 89 44 0a
     8492    mov ax, word [bp-012h]                    ; 8b 46 ee
     8493    mov word [es:si+00eh], ax                 ; 26 89 44 0e
     8494    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
     8495    mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00
     8496    mov al, byte [bp-004h]                    ; 8a 46 fc
     8497    mov byte [es:si+00ch], al                 ; 26 88 44 0c
     8498    mov dx, di                                ; 89 fa
     8499    add dx, di                                ; 01 fa
     8500    movzx ax, bl                              ; 0f b6 c3
     8501    mov bx, ax                                ; 89 c3
     8502    sal bx, 002h                              ; c1 e3 02
    81718503    add bx, dx                                ; 01 d3
    8172     mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
    8173     cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
    8174     jnbe short 05bb9h                         ; 77 0b
    8175     jne short 05bdch                          ; 75 2c
    8176     mov dx, word [bp-00ah]                    ; 8b 56 f6
    8177     cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    8178     jc short 05bdch                           ; 72 23
    8179     mov bx, 00da2h                            ; bb a2 0d
    8180     mov cx, ds                                ; 8c d9
    8181     mov ax, strict word 00004h                ; b8 04 00
    8182     call 01931h                               ; e8 6d bd
    8183     mov ax, word [bp+016h]                    ; 8b 46 16
    8184     shr ax, 008h                              ; c1 e8 08
    8185     push ax                                   ; 50
    8186     push 007d5h                               ; 68 d5 07
    8187     push 00811h                               ; 68 11 08
    8188     push strict byte 00004h                   ; 6a 04
    8189     call 01972h                               ; e8 9c bd
    8190     add sp, strict byte 00008h                ; 83 c4 08
    8191     jmp near 05f24h                           ; e9 48 03
    8192     mov dx, word [bp+016h]                    ; 8b 56 16
    8193     shr dx, 008h                              ; c1 ea 08
    8194     mov word [bp-00ch], dx                    ; 89 56 f4
    8195     cmp dx, strict byte 00044h                ; 83 fa 44
    8196     je near 05ef7h                            ; 0f 84 0b 03
    8197     cmp dx, strict byte 00047h                ; 83 fa 47
    8198     je near 05ef7h                            ; 0f 84 04 03
    8199     mov es, [bp-026h]                         ; 8e 46 da
    8200     db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
    8201     ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00
    8202     mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
    8203     mov dx, word [bp-00ah]                    ; 8b 56 f6
    8204     mov word [es:si], dx                      ; 26 89 14
    8205     mov word [es:si+002h], ax                 ; 26 89 44 02
    8206     mov ax, word [bp-016h]                    ; 8b 46 ea
    8207     mov word [es:si+004h], ax                 ; 26 89 44 04
    8208     mov ax, word [bp-018h]                    ; 8b 46 e8
    8209     mov word [es:si+006h], ax                 ; 26 89 44 06
    8210     mov ax, word [bp-012h]                    ; 8b 46 ee
    8211     mov word [es:si+00ah], ax                 ; 26 89 44 0a
    8212     mov word [es:si+00ch], 00200h             ; 26 c7 44 0c 00 02
    8213     mov word [es:si+012h], strict word 00000h ; 26 c7 44 12 00 00
    8214     mov byte [es:si+008h], cl                 ; 26 88 4c 08
    8215     mov bx, word [bp-00ch]                    ; 8b 5e f4
    8216     add bx, bx                                ; 01 db
    8217     movzx ax, ch                              ; 0f b6 c5
    8218     sal ax, 002h                              ; c1 e0 02
    8219     add bx, ax                                ; 01 c3
    82208504    push ES                                   ; 06
    82218505    push si                                   ; 56
    82228506    call word [word bx-00002h]                ; ff 97 fe ff
    82238507    mov dx, ax                                ; 89 c2
    8224     mov es, [bp-026h]                         ; 8e 46 da
    8225     mov ax, word [es:si+014h]                 ; 26 8b 44 14
     8508    mov es, [bp-006h]                         ; 8e 46 fa
     8509    mov bx, si                                ; 89 f3
     8510    mov ax, word [es:bx+018h]                 ; 26 8b 47 18
    82268511    mov word [bp-012h], ax                    ; 89 46 ee
    8227     mov es, [bp-010h]                         ; 8e 46 f0
    8228     mov word [es:di+002h], ax                 ; 26 89 45 02
     8512    les bx, [bp-01ch]                         ; c4 5e e4
     8513    mov word [es:bx+002h], ax                 ; 26 89 47 02
    82298514    test dl, dl                               ; 84 d2
    8230     je near 05ef7h                            ; 0f 84 97 02
    8231     mov bx, 00da2h                            ; bb a2 0d
     8515    je near 06244h                            ; 0f 84 a8 02
     8516    mov bx, 00da0h                            ; bb a0 0d
    82328517    mov cx, ds                                ; 8c d9
    82338518    mov ax, strict word 00004h                ; b8 04 00
    8234     call 01931h                               ; e8 c6 bc
     8519    call 01931h                               ; e8 8a b9
    82358520    movzx ax, dl                              ; 0f b6 c2
    82368521    push ax                                   ; 50
    8237     push word [bp-00ch]                       ; ff 76 f4
    8238     push 007d5h                               ; 68 d5 07
    8239     push 00739h                               ; 68 39 07
     8522    push di                                   ; 57
     8523    push 007f5h                               ; 68 f5 07
     8524    push 00759h                               ; 68 59 07
    82408525    push strict byte 00004h                   ; 6a 04
    8241     call 01972h                               ; e8 f5 bc
     8526    call 01972h                               ; e8 bb b9
    82428527    add sp, strict byte 0000ah                ; 83 c4 0a
    82438528    mov ax, word [bp+016h]                    ; 8b 46 16
    82448529    xor ah, ah                                ; 30 e4
    82458530    or ah, 00ch                               ; 80 cc 0c
    8246     jmp near 05f2ch                           ; e9 a1 02
     8531    jmp near 06279h                           ; e9 b4 02
    82478532    or ah, 0b2h                               ; 80 cc b2
    8248     jmp near 05f2ch                           ; e9 9b 02
     8533    jmp near 06279h                           ; e9 ae 02
    82498534    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    82508535    mov ax, word [bp+004h]                    ; 8b 46 04
    8251     mov word [bp-006h], ax                    ; 89 46 fa
    8252     mov word [bp-004h], ax                    ; 89 46 fc
     8536    mov word [bp-00ch], ax                    ; 89 46 f4
     8537    mov di, bx                                ; 89 df
     8538    mov word [bp-00ah], ax                    ; 89 46 f6
    82538539    mov es, ax                                ; 8e c0
    8254     mov di, bx                                ; 89 df
    8255     mov ax, word [es:di]                      ; 26 8b 05
    8256     mov word [bp-00eh], ax                    ; 89 46 f2
     8540    mov ax, word [es:bx]                      ; 26 8b 07
     8541    mov word [bp-010h], ax                    ; 89 46 f0
    82578542    cmp ax, strict word 0001ah                ; 3d 1a 00
    8258     jc near 05f24h                            ; 0f 82 76 02
    8259     jc near 05d35h                            ; 0f 82 83 00
    8260     movzx ax, cl                              ; 0f b6 c1
    8261     imul ax, ax, strict byte 00018h           ; 6b c0 18
    8262     mov es, [bp-026h]                         ; 8e 46 da
    8263     mov di, si                                ; 89 f7
    8264     add di, ax                                ; 01 c7
    8265     mov ax, word [es:di+02eh]                 ; 26 8b 45 2e
    8266     mov word [bp-028h], ax                    ; 89 46 d8
    8267     mov ax, word [es:di+02ch]                 ; 26 8b 45 2c
    8268     mov word [bp-01eh], ax                    ; 89 46 e2
    8269     mov ax, word [es:di+030h]                 ; 26 8b 45 30
     8543    jc near 06271h                            ; 0f 82 89 02
     8544    jc near 06087h                            ; 0f 82 9b 00
     8545    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     8546    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     8547    les bx, [bp-008h]                         ; c4 5e f8
     8548    add bx, ax                                ; 01 c3
     8549    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
     8550    mov word [bp-026h], ax                    ; 89 46 da
     8551    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
     8552    mov word [bp-020h], ax                    ; 89 46 e0
     8553    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    82708554    mov word [bp-024h], ax                    ; 89 46 dc
    8271     mov ax, word [es:di+032h]                 ; 26 8b 45 32
    8272     mov word [bp-00ah], ax                    ; 89 46 f6
    8273     mov ax, word [es:di+034h]                 ; 26 8b 45 34
    8274     mov dx, word [es:di+024h]                 ; 26 8b 55 24
    8275     mov word [bp-022h], dx                    ; 89 56 de
    8276     mov es, [bp-006h]                         ; 8e 46 fa
    8277     mov di, bx                                ; 89 df
    8278     db  066h, 026h, 0c7h, 005h, 01ah, 000h, 002h, 000h
    8279     ; mov dword [es:di], strict dword 00002001ah ; 66 26 c7 05 1a 00 02 00
    8280     mov dx, word [bp-028h]                    ; 8b 56 d8
    8281     mov word [es:di+004h], dx                 ; 26 89 55 04
    8282     mov word [es:di+006h], strict word 00000h ; 26 c7 45 06 00 00
    8283     mov dx, word [bp-01eh]                    ; 8b 56 e2
    8284     mov word [es:di+008h], dx                 ; 26 89 55 08
    8285     mov word [es:di+00ah], strict word 00000h ; 26 c7 45 0a 00 00
    8286     mov dx, word [bp-024h]                    ; 8b 56 dc
    8287     mov word [es:di+00ch], dx                 ; 26 89 55 0c
    8288     mov word [es:di+00eh], strict word 00000h ; 26 c7 45 0e 00 00
    8289     mov dx, word [bp-022h]                    ; 8b 56 de
    8290     mov word [es:di+018h], dx                 ; 26 89 55 18
    8291     mov dx, word [bp-00ah]                    ; 8b 56 f6
    8292     mov word [es:di+010h], dx                 ; 26 89 55 10
    8293     mov word [es:di+012h], ax                 ; 26 89 45 12
    8294     db  066h, 026h, 0c7h, 045h, 014h, 000h, 000h, 000h, 000h
    8295     ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
    8296     cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    8297     jc near 05e41h                            ; 0f 82 04 01
    8298     mov es, [bp-004h]                         ; 8e 46 fc
    8299     mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     8555    mov ax, word [es:bx+03ch]                 ; 26 8b 47 3c
     8556    mov dx, word [es:bx+03ah]                 ; 26 8b 57 3a
     8557    mov word [bp-00eh], dx                    ; 89 56 f2
     8558    mov cx, word [es:bx+038h]                 ; 26 8b 4f 38
     8559    mov dx, word [es:bx+036h]                 ; 26 8b 57 36
     8560    mov bx, word [es:bx+028h]                 ; 26 8b 5f 28
     8561    mov word [bp-022h], bx                    ; 89 5e de
     8562    mov es, [bp-00ch]                         ; 8e 46 f4
     8563    mov bx, di                                ; 89 fb
     8564    db  066h, 026h, 0c7h, 007h, 01ah, 000h, 002h, 000h
     8565    ; mov dword [es:bx], strict dword 00002001ah ; 66 26 c7 07 1a 00 02 00
     8566    mov bx, word [bp-026h]                    ; 8b 5e da
     8567    mov si, di                                ; 89 fe
     8568    mov word [es:si+004h], bx                 ; 26 89 5c 04
     8569    mov bx, si                                ; 89 f3
     8570    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
     8571    mov bx, word [bp-020h]                    ; 8b 5e e0
     8572    mov word [es:si+008h], bx                 ; 26 89 5c 08
     8573    mov bx, si                                ; 89 f3
     8574    mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
     8575    mov bx, word [bp-024h]                    ; 8b 5e dc
     8576    mov word [es:si+00ch], bx                 ; 26 89 5c 0c
     8577    mov bx, si                                ; 89 f3
     8578    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
     8579    mov bx, word [bp-022h]                    ; 8b 5e de
     8580    mov word [es:si+018h], bx                 ; 26 89 5c 18
     8581    mov bx, si                                ; 89 f3
     8582    mov word [es:bx+010h], dx                 ; 26 89 57 10
     8583    mov word [es:bx+012h], cx                 ; 26 89 4f 12
     8584    mov bx, word [bp-00eh]                    ; 8b 5e f2
     8585    mov si, strict word 00020h                ; be 20 00
     8586    call 09d5ah                               ; e8 dd 3c
     8587    mov bx, di                                ; 89 fb
     8588    mov word [es:bx+014h], dx                 ; 26 89 57 14
     8589    mov word [es:bx+016h], cx                 ; 26 89 4f 16
     8590    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
     8591    jc near 0618ch                            ; 0f 82 fd 00
     8592    mov es, [bp-00ah]                         ; 8e 46 f6
     8593    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
    83008594    mov ax, word [bp-014h]                    ; 8b 46 ec
    8301     mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    8302     mov word [es:bx+01ah], 00312h             ; 26 c7 47 1a 12 03
    8303     movzx ax, cl                              ; 0f b6 c1
    8304     mov word [bp-020h], ax                    ; 89 46 e0
     8595    mov word [es:di+01ch], ax                 ; 26 89 45 1c
     8596    mov word [es:di+01ah], 00356h             ; 26 c7 45 1a 56 03
     8597    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
     8598    mov ax, cx                                ; 89 c8
    83058599    cwd                                       ; 99
    83068600    db  02bh, 0c2h
    83078601    ; sub ax, dx                                ; 2b c2
    83088602    sar ax, 1                                 ; d1 f8
    8309     movzx di, al                              ; 0f b6 f8
    8310     imul di, di, strict byte 00006h           ; 6b ff 06
    8311     mov es, [bp-026h]                         ; 8e 46 da
    8312     add di, si                                ; 01 f7
    8313     mov ax, word [es:di+001c2h]               ; 26 8b 85 c2 01
    8314     mov word [bp-01ah], ax                    ; 89 46 e6
    8315     mov ax, word [es:di+001c4h]               ; 26 8b 85 c4 01
    8316     mov word [bp-01ch], ax                    ; 89 46 e4
    8317     mov ch, byte [es:di+001c1h]               ; 26 8a ad c1 01
    8318     imul di, word [bp-020h], strict byte 00018h ; 6b 7e e0 18
    8319     add di, si                                ; 01 f7
    8320     mov ah, byte [es:di+022h]                 ; 26 8a 65 22
    8321     mov al, byte [es:di+023h]                 ; 26 8a 45 23
     8603    movzx bx, al                              ; 0f b6 d8
     8604    imul bx, bx, strict byte 00006h           ; 6b db 06
     8605    mov es, [bp-006h]                         ; 8e 46 fa
     8606    add bx, word [bp-008h]                    ; 03 5e f8
     8607    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
     8608    mov word [bp-01eh], ax                    ; 89 46 e2
     8609    mov dx, word [es:bx+00208h]               ; 26 8b 97 08 02
     8610    mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
     8611    mov byte [bp-002h], al                    ; 88 46 fe
     8612    imul bx, cx, strict byte 0001ch           ; 6b d9 1c
     8613    add bx, word [bp-008h]                    ; 03 5e f8
     8614    mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
     8615    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    83228616    test al, al                               ; 84 c0
    8323     jne short 05d93h                          ; 75 04
    8324     xor dx, dx                                ; 31 d2
    8325     jmp short 05d96h                          ; eb 03
    8326     mov dx, strict word 00008h                ; ba 08 00
    8327     or dl, 010h                               ; 80 ca 10
    8328     mov word [bp-008h], dx                    ; 89 56 f8
     8617    jne short 060e6h                          ; 75 04
     8618    xor bx, bx                                ; 31 db
     8619    jmp short 060e9h                          ; eb 03
     8620    mov bx, strict word 00008h                ; bb 08 00
     8621    or bl, 010h                               ; 80 cb 10
    83298622    cmp ah, 001h                              ; 80 fc 01
    83308623    db  00fh, 094h, 0c4h
    83318624    ; sete ah                                   ; 0f 94 c4
    8332     movzx dx, ah                              ; 0f b6 d4
    8333     or word [bp-008h], dx                     ; 09 56 f8
     8625    movzx cx, ah                              ; 0f b6 cc
     8626    or bx, cx                                 ; 09 cb
    83348627    cmp AL, strict byte 001h                  ; 3c 01
    83358628    db  00fh, 094h, 0c4h
    83368629    ; sete ah                                   ; 0f 94 c4
    8337     movzx dx, ah                              ; 0f b6 d4
    8338     or word [bp-008h], dx                     ; 09 56 f8
     8630    movzx cx, ah                              ; 0f b6 cc
     8631    or bx, cx                                 ; 09 cb
    83398632    cmp AL, strict byte 003h                  ; 3c 03
    8340     jne short 05dbch                          ; 75 05
     8633    jne short 0610ah                          ; 75 05
    83418634    mov ax, strict word 00003h                ; b8 03 00
    8342     jmp short 05dbeh                          ; eb 02
     8635    jmp short 0610ch                          ; eb 02
    83438636    xor ax, ax                                ; 31 c0
    8344     or word [bp-008h], ax                     ; 09 46 f8
    8345     mov ax, word [bp-01ah]                    ; 8b 46 e6
    8346     mov es, [bp-026h]                         ; 8e 46 da
    8347     mov word [es:si+001f0h], ax               ; 26 89 84 f0 01
    8348     mov ax, word [bp-01ch]                    ; 8b 46 e4
    8349     mov word [es:si+001f2h], ax               ; 26 89 84 f2 01
    8350     movzx ax, cl                              ; 0f b6 c1
     8637    or bx, ax                                 ; 09 c3
     8638    mov ax, word [bp-01eh]                    ; 8b 46 e2
     8639    les si, [bp-008h]                         ; c4 76 f8
     8640    mov word [es:si+00234h], ax               ; 26 89 84 34 02
     8641    mov word [es:si+00236h], dx               ; 26 89 94 36 02
     8642    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    83518643    cwd                                       ; 99
    8352     mov di, strict word 00002h                ; bf 02 00
    8353     idiv di                                   ; f7 ff
     8644    mov cx, strict word 00002h                ; b9 02 00
     8645    idiv cx                                   ; f7 f9
    83548646    or dl, 00eh                               ; 80 ca 0e
    8355     sal dx, 004h                              ; c1 e2 04
    8356     mov byte [es:si+001f4h], dl               ; 26 88 94 f4 01
    8357     mov byte [es:si+001f5h], 0cbh             ; 26 c6 84 f5 01 cb
    8358     mov byte [es:si+001f6h], ch               ; 26 88 ac f6 01
    8359     mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00
    8360     mov byte [es:si+001f9h], 000h             ; 26 c6 84 f9 01 00
    8361     mov ax, word [bp-008h]                    ; 8b 46 f8
    8362     mov word [es:si+001fah], ax               ; 26 89 84 fa 01
    8363     mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00
    8364     mov byte [es:si+001feh], 011h             ; 26 c6 84 fe 01 11
    8365     xor ch, ch                                ; 30 ed
    8366     mov byte [bp-002h], ch                    ; 88 6e fe
    8367     jmp short 05e22h                          ; eb 06
    8368     cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
    8369     jnc short 05e37h                          ; 73 15
    8370     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    8371     add dx, 00312h                            ; 81 c2 12 03
     8647    mov ax, dx                                ; 89 d0
     8648    sal ax, 004h                              ; c1 e0 04
     8649    mov byte [es:si+00238h], al               ; 26 88 84 38 02
     8650    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
     8651    mov al, byte [bp-002h]                    ; 8a 46 fe
     8652    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
     8653    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
     8654    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
     8655    mov word [es:si+0023eh], bx               ; 26 89 9c 3e 02
     8656    mov bx, si                                ; 89 f3
     8657    mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00
     8658    mov byte [es:bx+00242h], 011h             ; 26 c6 87 42 02 11
     8659    xor bl, bl                                ; 30 db
     8660    xor bh, bh                                ; 30 ff
     8661    jmp short 0616fh                          ; eb 05
     8662    cmp bh, 00fh                              ; 80 ff 0f
     8663    jnc short 06182h                          ; 73 13
     8664    movzx dx, bh                              ; 0f b6 d7
     8665    add dx, 00356h                            ; 81 c2 56 03
    83728666    mov ax, word [bp-014h]                    ; 8b 46 ec
    8373     call 01650h                               ; e8 20 b8
    8374     add ch, al                                ; 00 c5
    8375     inc byte [bp-002h]                        ; fe 46 fe
    8376     jmp short 05e1ch                          ; eb e5
    8377     neg ch                                    ; f6 dd
    8378     mov es, [bp-026h]                         ; 8e 46 da
    8379     mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
    8380     cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    8381     jc near 05ef7h                            ; 0f 82 ae 00
    8382     movzx ax, cl                              ; 0f b6 c1
     8667    call 01650h                               ; e8 d4 b4
     8668    add bl, al                                ; 00 c3
     8669    db  0feh, 0c7h
     8670    ; inc bh                                    ; fe c7
     8671    jmp short 0616ah                          ; eb e8
     8672    neg bl                                    ; f6 db
     8673    les si, [bp-008h]                         ; c4 76 f8
     8674    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
     8675    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
     8676    jc near 06244h                            ; 0f 82 b0 00
     8677    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    83838678    cwd                                       ; 99
    83848679    db  02bh, 0c2h
     
    83878682    xor ah, ah                                ; 30 e4
    83888683    imul ax, ax, strict byte 00006h           ; 6b c0 06
    8389     mov es, [bp-026h]                         ; 8e 46 da
    8390     add si, ax                                ; 01 c6
    8391     mov al, byte [es:si+001c0h]               ; 26 8a 84 c0 01
    8392     mov dx, word [es:si+001c2h]               ; 26 8b 94 c2 01
    8393     mov es, [bp-004h]                         ; 8e 46 fc
    8394     mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
    8395     db  066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h
    8396     ; mov dword [es:bx+01eh], strict dword 00024beddh ; 66 26 c7 47 1e dd be 24 00
    8397     mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
     8684    les bx, [bp-008h]                         ; c4 5e f8
     8685    add bx, ax                                ; 01 c3
     8686    mov al, byte [es:bx+00204h]               ; 26 8a 87 04 02
     8687    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
     8688    mov es, [bp-00ah]                         ; 8e 46 f6
     8689    mov word [es:di], strict word 00042h      ; 26 c7 05 42 00
     8690    db  066h, 026h, 0c7h, 045h, 01eh, 0ddh, 0beh, 024h, 000h
     8691    ; mov dword [es:di+01eh], strict dword 00024beddh ; 66 26 c7 45 1e dd be 24 00
     8692    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    83988693    test al, al                               ; 84 c0
    8399     jne short 05e89h                          ; 75 09
    8400     db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    8401     ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
    8402     mov es, [bp-004h]                         ; 8e 46 fc
    8403     db  066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h
    8404     ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20
    8405     db  066h, 026h, 0c7h, 047h, 02ch, 020h, 020h, 020h, 020h
    8406     ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
     8694    jne short 061d5h                          ; 75 09
     8695    db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
     8696    ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
     8697    mov es, [bp-00ah]                         ; 8e 46 f6
     8698    db  066h, 026h, 0c7h, 045h, 028h, 041h, 054h, 041h, 020h
     8699    ; mov dword [es:di+028h], strict dword 020415441h ; 66 26 c7 45 28 41 54 41 20
     8700    db  066h, 026h, 0c7h, 045h, 02ch, 020h, 020h, 020h, 020h
     8701    ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
    84078702    test al, al                               ; 84 c0
    8408     jne short 05eb5h                          ; 75 13
    8409     mov word [es:bx+030h], dx                 ; 26 89 57 30
    8410     db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
    8411     ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
    8412     mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
    8413     mov al, cl                                ; 88 c8
     8703    jne short 06201h                          ; 75 13
     8704    mov word [es:di+030h], dx                 ; 26 89 55 30
     8705    db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
     8706    ; mov dword [es:di+032h], strict dword 000000000h ; 66 26 c7 45 32 00 00 00 00
     8707    mov word [es:di+036h], strict word 00000h ; 26 c7 45 36 00 00
     8708    mov al, byte [bp-004h]                    ; 8a 46 fc
    84148709    and AL, strict byte 001h                  ; 24 01
    84158710    xor ah, ah                                ; 30 e4
    8416     mov es, [bp-004h]                         ; 8e 46 fc
    8417     mov word [es:bx+038h], ax                 ; 26 89 47 38
    8418     db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
    8419     ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00
    8420     mov word [es:bx+03eh], strict word 00000h ; 26 c7 47 3e 00 00
    8421     xor cl, cl                                ; 30 c9
    8422     mov CH, strict byte 01eh                  ; b5 1e
    8423     jmp short 05edch                          ; eb 05
    8424     cmp ch, 040h                              ; 80 fd 40
    8425     jnc short 05eeeh                          ; 73 12
    8426     movzx dx, ch                              ; 0f b6 d5
     8711    mov es, [bp-00ah]                         ; 8e 46 f6
     8712    mov word [es:di+038h], ax                 ; 26 89 45 38
     8713    db  066h, 026h, 0c7h, 045h, 03ah, 000h, 000h, 000h, 000h
     8714    ; mov dword [es:di+03ah], strict dword 000000000h ; 66 26 c7 45 3a 00 00 00 00
     8715    mov word [es:di+03eh], strict word 00000h ; 26 c7 45 3e 00 00
     8716    xor bl, bl                                ; 30 db
     8717    mov BH, strict byte 01eh                  ; b7 1e
     8718    jmp short 06229h                          ; eb 05
     8719    cmp bh, 040h                              ; 80 ff 40
     8720    jnc short 0623bh                          ; 73 12
     8721    movzx dx, bh                              ; 0f b6 d7
    84278722    add dx, word [bp+00ah]                    ; 03 56 0a
    84288723    mov ax, word [bp+004h]                    ; 8b 46 04
    8429     call 01650h                               ; e8 68 b7
    8430     add cl, al                                ; 00 c1
    8431     db  0feh, 0c5h
    8432     ; inc ch                                    ; fe c5
    8433     jmp short 05ed7h                          ; eb e9
    8434     neg cl                                    ; f6 d9
    8435     mov es, [bp-004h]                         ; 8e 46 fc
    8436     mov byte [es:bx+041h], cl                 ; 26 88 4f 41
     8724    call 01650h                               ; e8 1b b4
     8725    add bl, al                                ; 00 c3
     8726    db  0feh, 0c7h
     8727    ; inc bh                                    ; fe c7
     8728    jmp short 06224h                          ; eb e9
     8729    neg bl                                    ; f6 db
     8730    mov es, [bp-00ah]                         ; 8e 46 f6
     8731    mov byte [es:di+041h], bl                 ; 26 88 5d 41
    84378732    mov byte [bp+017h], 000h                  ; c6 46 17 00
    84388733    xor bx, bx                                ; 31 db
    84398734    mov dx, strict word 00074h                ; ba 74 00
    84408735    mov ax, strict word 00040h                ; b8 40 00
    8441     call 0165eh                               ; e8 58 b7
     8736    call 0165eh                               ; e8 0b b4
    84428737    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    84438738    mov sp, bp                                ; 89 ec
     
    84458740    retn                                      ; c3
    84468741    cmp ax, strict word 00006h                ; 3d 06 00
    8447     je short 05ef7h                           ; 74 e4
     8742    je short 06244h                           ; 74 e4
    84488743    cmp ax, strict word 00001h                ; 3d 01 00
    8449     jc short 05f24h                           ; 72 0c
    8450     jbe short 05ef7h                          ; 76 dd
     8744    jc short 06271h                           ; 72 0c
     8745    jbe short 06244h                          ; 76 dd
    84518746    cmp ax, strict word 00003h                ; 3d 03 00
    8452     jc short 05f24h                           ; 72 05
     8747    jc short 06271h                           ; 72 05
    84538748    cmp ax, strict word 00004h                ; 3d 04 00
    8454     jbe short 05ef7h                          ; 76 d3
     8749    jbe short 06244h                          ; 76 d3
    84558750    mov ax, word [bp+016h]                    ; 8b 46 16
    84568751    xor ah, ah                                ; 30 e4
     
    84628757    mov dx, strict word 00074h                ; ba 74 00
    84638758    mov ax, strict word 00040h                ; b8 40 00
    8464     call 0165eh                               ; e8 1e b7
     8759    call 0165eh                               ; e8 d1 b3
    84658760    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8466     jmp short 05f0ah                          ; eb c4
    8467     mov bx, 00da2h                            ; bb a2 0d
     8761    jmp short 06257h                          ; eb c4
     8762    mov bx, 00da0h                            ; bb a0 0d
    84688763    mov cx, ds                                ; 8c d9
    84698764    mov ax, strict word 00004h                ; b8 04 00
    8470     call 01931h                               ; e8 e0 b9
     8765    call 01931h                               ; e8 93 b6
    84718766    mov ax, word [bp+016h]                    ; 8b 46 16
    84728767    shr ax, 008h                              ; c1 e8 08
    84738768    push ax                                   ; 50
    8474     push 007d5h                               ; 68 d5 07
    8475     push 007a7h                               ; 68 a7 07
    8476     jmp near 05bd1h                           ; e9 70 fc
    8477 _int14_function:                             ; 0xf5f61 LB 0x155
     8769    push 007f5h                               ; 68 f5 07
     8770    push 007c7h                               ; 68 c7 07
     8771    jmp near 05f02h                           ; e9 54 fc
     8772_int14_function:                             ; 0xf62ae LB 0x155
    84788773    push bp                                   ; 55
    84798774    mov bp, sp                                ; 89 e5
     
    84838778    add dx, dx                                ; 01 d2
    84848779    mov ax, strict word 00040h                ; b8 40 00
    8485     call 0166ch                               ; e8 fb b6
     8780    call 0166ch                               ; e8 ae b3
    84868781    mov si, ax                                ; 89 c6
    84878782    mov bx, ax                                ; 89 c3
     
    84898784    add dx, strict byte 0007ch                ; 83 c2 7c
    84908785    mov ax, strict word 00040h                ; b8 40 00
    8491     call 01650h                               ; e8 cf b6
     8786    call 01650h                               ; e8 82 b3
    84928787    mov cl, al                                ; 88 c1
    84938788    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8494     jnc near 060ach                           ; 0f 83 21 01
     8789    jnc near 063f9h                           ; 0f 83 21 01
    84958790    test si, si                               ; 85 f6
    8496     jbe near 060ach                           ; 0f 86 1b 01
     8791    jbe near 063f9h                           ; 0f 86 1b 01
    84978792    mov al, byte [bp+013h]                    ; 8a 46 13
    84988793    cmp AL, strict byte 001h                  ; 3c 01
    8499     jc short 05fa9h                           ; 72 11
    8500     jbe short 05ffdh                          ; 76 63
     8794    jc short 062f6h                           ; 72 11
     8795    jbe short 0634ah                          ; 76 63
    85018796    cmp AL, strict byte 003h                  ; 3c 03
    8502     je near 06095h                            ; 0f 84 f5 00
     8797    je near 063e2h                            ; 0f 84 f5 00
    85038798    cmp AL, strict byte 002h                  ; 3c 02
    8504     je near 0604bh                            ; 0f 84 a5 00
    8505     jmp near 060a6h                           ; e9 fd 00
     8799    je near 06398h                            ; 0f 84 a5 00
     8800    jmp near 063f3h                           ; e9 fd 00
    85068801    test al, al                               ; 84 c0
    8507     jne near 060a6h                           ; 0f 85 f7 00
     8802    jne near 063f3h                           ; 0f 85 f7 00
    85088803    lea dx, [bx+003h]                         ; 8d 57 03
    85098804    in AL, DX                                 ; ec
     
    85378832    ; sub ah, ah                                ; 2a e4
    85388833    mov byte [bp+012h], al                    ; 88 46 12
    8539     jmp near 06087h                           ; e9 97 00
     8834    jmp near 063d4h                           ; e9 97 00
    85408835    mov AL, strict byte 017h                  ; b0 17
    85418836    mov dx, bx                                ; 89 da
     
    85448839    mov AL, strict byte 004h                  ; b0 04
    85458840    out DX, AL                                ; ee
    8546     jmp short 05fd2h                          ; eb d5
     8841    jmp short 0631fh                          ; eb d5
    85478842    mov dx, strict word 0006ch                ; ba 6c 00
    85488843    mov ax, strict word 00040h                ; b8 40 00
    8549     call 0166ch                               ; e8 66 b6
     8844    call 0166ch                               ; e8 19 b3
    85508845    mov si, ax                                ; 89 c6
    85518846    lea dx, [bx+005h]                         ; 8d 57 05
     
    85558850    and ax, strict word 00060h                ; 25 60 00
    85568851    cmp ax, strict word 00060h                ; 3d 60 00
    8557     je short 0602dh                           ; 74 17
     8852    je short 0637ah                           ; 74 17
    85588853    test cl, cl                               ; 84 c9
    8559     je short 0602dh                           ; 74 13
     8854    je short 0637ah                           ; 74 13
    85608855    mov dx, strict word 0006ch                ; ba 6c 00
    85618856    mov ax, strict word 00040h                ; b8 40 00
    8562     call 0166ch                               ; e8 49 b6
     8857    call 0166ch                               ; e8 fc b2
    85638858    cmp ax, si                                ; 39 f0
    8564     je short 06008h                           ; 74 e1
     8859    je short 06355h                           ; 74 e1
    85658860    mov si, ax                                ; 89 c6
    85668861    db  0feh, 0c9h
    85678862    ; dec cl                                    ; fe c9
    8568     jmp short 06008h                          ; eb db
     8863    jmp short 06355h                          ; eb db
    85698864    test cl, cl                               ; 84 c9
    8570     je short 06037h                           ; 74 06
     8865    je short 06384h                           ; 74 06
    85718866    mov al, byte [bp+012h]                    ; 8a 46 12
    85728867    mov dx, bx                                ; 89 da
     
    85788873    mov byte [bp+013h], al                    ; 88 46 13
    85798874    test cl, cl                               ; 84 c9
    8580     jne short 06087h                          ; 75 43
     8875    jne short 063d4h                          ; 75 43
    85818876    or AL, strict byte 080h                   ; 0c 80
    85828877    mov byte [bp+013h], al                    ; 88 46 13
    8583     jmp short 06087h                          ; eb 3c
     8878    jmp short 063d4h                          ; eb 3c
    85848879    mov dx, strict word 0006ch                ; ba 6c 00
    85858880    mov ax, strict word 00040h                ; b8 40 00
    8586     call 0166ch                               ; e8 18 b6
     8881    call 0166ch                               ; e8 cb b2
    85878882    mov si, ax                                ; 89 c6
    85888883    lea dx, [bx+005h]                         ; 8d 57 05
     
    85918886    ; sub ah, ah                                ; 2a e4
    85928887    test AL, strict byte 001h                 ; a8 01
    8593     jne short 06077h                          ; 75 17
     8888    jne short 063c4h                          ; 75 17
    85948889    test cl, cl                               ; 84 c9
    8595     je short 06077h                           ; 74 13
     8890    je short 063c4h                           ; 74 13
    85968891    mov dx, strict word 0006ch                ; ba 6c 00
    85978892    mov ax, strict word 00040h                ; b8 40 00
    8598     call 0166ch                               ; e8 ff b5
     8893    call 0166ch                               ; e8 b2 b2
    85998894    cmp ax, si                                ; 39 f0
    8600     je short 06056h                           ; 74 e5
     8895    je short 063a3h                           ; 74 e5
    86018896    mov si, ax                                ; 89 c6
    86028897    db  0feh, 0c9h
    86038898    ; dec cl                                    ; fe c9
    8604     jmp short 06056h                          ; eb df
     8899    jmp short 063a3h                          ; eb df
    86058900    test cl, cl                               ; 84 c9
    8606     je short 0608dh                           ; 74 12
     8901    je short 063dah                           ; 74 12
    86078902    mov byte [bp+013h], 000h                  ; c6 46 13 00
    86088903    mov dx, bx                                ; 89 da
     
    86128907    mov byte [bp+012h], al                    ; 88 46 12
    86138908    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8614     jmp short 060b0h                          ; eb 23
     8909    jmp short 063fdh                          ; eb 23
    86158910    lea dx, [bx+005h]                         ; 8d 57 05
    86168911    in AL, DX                                 ; ec
    86178912    db  02ah, 0e4h
    86188913    ; sub ah, ah                                ; 2a e4
    8619     jmp short 06046h                          ; eb b1
     8914    jmp short 06393h                          ; eb b1
    86208915    lea dx, [si+005h]                         ; 8d 54 05
    86218916    in AL, DX                                 ; ec
     
    86278922    db  02ah, 0e4h
    86288923    ; sub ah, ah                                ; 2a e4
    8629     jmp short 06084h                          ; eb de
     8924    jmp short 063d1h                          ; eb de
    86308925    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8631     jmp short 060b0h                          ; eb 04
     8926    jmp short 063fdh                          ; eb 04
    86328927    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    86338928    lea sp, [bp-002h]                         ; 8d 66 fe
     
    86358930    pop bp                                    ; 5d
    86368931    retn                                      ; c3
    8637 set_enable_a20_:                             ; 0xf60b6 LB 0x2c
     8932set_enable_a20_:                             ; 0xf6403 LB 0x2c
    86388933    push bp                                   ; 55
    86398934    mov bp, sp                                ; 89 e5
     
    86488943    mov cl, al                                ; 88 c1
    86498944    test bx, bx                               ; 85 db
    8650     je short 060cfh                           ; 74 05
     8945    je short 0641ch                           ; 74 05
    86518946    or AL, strict byte 002h                   ; 0c 02
    86528947    out DX, AL                                ; ee
    8653     jmp short 060d2h                          ; eb 03
     8948    jmp short 0641fh                          ; eb 03
    86548949    and AL, strict byte 0fdh                  ; 24 fd
    86558950    out DX, AL                                ; ee
     
    86648959    pop bp                                    ; 5d
    86658960    retn                                      ; c3
    8666 set_e820_range_:                             ; 0xf60e2 LB 0x8c
     8961set_e820_range_:                             ; 0xf642f LB 0x8c
    86678962    push si                                   ; 56
    86688963    push bp                                   ; 55
     
    86938988    retn 0000ah                               ; c2 0a 00
    86948989    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
    8695     db  000h, 00dh, 066h, 0adh, 061h, 0c0h, 061h, 055h, 062h, 05bh, 062h, 060h, 062h, 065h, 062h, 007h
    8696     db  063h, 0a4h, 064h, 0cah, 064h, 04eh, 062h, 04eh, 062h, 097h, 065h, 0bfh, 065h, 0d2h, 065h, 0e1h
    8697     db  065h, 055h, 062h, 0e8h, 065h
    8698 _int15_function:                             ; 0xf616e LB 0x4cd
     8990    db  000h, 05ah, 069h, 0fah, 064h, 00dh, 065h, 0a2h, 065h, 0a8h, 065h, 0adh, 065h, 0b2h, 065h, 054h
     8991    db  066h, 0f1h, 067h, 017h, 068h, 09bh, 065h, 09bh, 065h, 0e4h, 068h, 00ch, 069h, 01fh, 069h, 02eh
     8992    db  069h, 0a2h, 065h, 035h, 069h
     8993_int15_function:                             ; 0xf64bb LB 0x4cd
    86998994    push bp                                   ; 55
    87008995    mov bp, sp                                ; 89 e5
     
    87069001    shr ax, 008h                              ; c1 e8 08
    87079002    cmp ax, 000ech                            ; 3d ec 00
    8708     jnbe near 0660dh                          ; 0f 87 8b 04
     9003    jnbe near 0695ah                          ; 0f 87 8b 04
    87099004    push CS                                   ; 0e
    87109005    pop ES                                    ; 07
    87119006    mov cx, strict word 00012h                ; b9 12 00
    8712     mov di, 06139h                            ; bf 39 61
     9007    mov di, 06486h                            ; bf 86 64
    87139008    repne scasb                               ; f2 ae
    87149009    sal cx, 1                                 ; d1 e1
    87159010    mov di, cx                                ; 89 cf
    8716     mov si, word [cs:di+0614ah]               ; 2e 8b b5 4a 61
     9011    mov si, word [cs:di+06497h]               ; 2e 8b b5 97 64
    87179012    mov ax, word [bp+012h]                    ; 8b 46 12
    87189013    xor ah, ah                                ; 30 e4
     
    87279022    xor ah, ah                                ; 30 e4
    87289023    cmp ax, 000c0h                            ; 3d c0 00
    8729     jne near 0660dh                           ; 0f 85 54 04
     9024    jne near 0695ah                           ; 0f 85 54 04
    87309025    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8731     jmp near 065b6h                           ; e9 f6 03
     9026    jmp near 06903h                           ; e9 f6 03
    87329027    mov dx, ax                                ; 89 c2
    87339028    cmp ax, strict word 00001h                ; 3d 01 00
    8734     jc short 061d5h                           ; 72 0e
    8735     jbe short 061e9h                          ; 76 20
     9029    jc short 06522h                           ; 72 0e
     9030    jbe short 06536h                          ; 76 20
    87369031    cmp ax, strict word 00003h                ; 3d 03 00
    8737     je short 06216h                           ; 74 48
     9032    je short 06563h                           ; 74 48
    87389033    cmp ax, strict word 00002h                ; 3d 02 00
    8739     je short 061f9h                           ; 74 26
    8740     jmp short 06223h                          ; eb 4e
     9034    je short 06546h                           ; 74 26
     9035    jmp short 06570h                          ; eb 4e
    87419036    test ax, ax                               ; 85 c0
    8742     jne short 06223h                          ; 75 4a
     9037    jne short 06570h                          ; 75 4a
    87439038    xor ax, ax                                ; 31 c0
    8744     call 060b6h                               ; e8 d8 fe
     9039    call 06403h                               ; e8 d8 fe
    87459040    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    87469041    mov byte [bp+013h], 000h                  ; c6 46 13 00
    8747     jmp near 0624eh                           ; e9 65 00
     9042    jmp near 0659bh                           ; e9 65 00
    87489043    mov ax, strict word 00001h                ; b8 01 00
    8749     call 060b6h                               ; e8 c7 fe
     9044    call 06403h                               ; e8 c7 fe
    87509045    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    87519046    mov byte [bp+013h], dh                    ; 88 76 13
    8752     jmp near 0624eh                           ; e9 55 00
     9047    jmp near 0659bh                           ; e9 55 00
    87539048    mov dx, 00092h                            ; ba 92 00
    87549049    in AL, DX                                 ; ec
     
    87629057    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    87639058    mov byte [bp+013h], ah                    ; 88 66 13
    8764     jmp near 0624eh                           ; e9 38 00
     9059    jmp near 0659bh                           ; e9 38 00
    87659060    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    87669061    mov byte [bp+013h], ah                    ; 88 66 13
    87679062    mov word [bp+00ch], ax                    ; 89 46 0c
    8768     jmp near 0624eh                           ; e9 2b 00
    8769     mov bx, 00da2h                            ; bb a2 0d
     9063    jmp near 0659bh                           ; e9 2b 00
     9064    mov bx, 00da0h                            ; bb a0 0d
    87709065    mov cx, ds                                ; 8c d9
    87719066    mov ax, strict word 00004h                ; b8 04 00
    8772     call 01931h                               ; e8 03 b7
     9067    call 01931h                               ; e8 b6 b3
    87739068    mov ax, word [bp+012h]                    ; 8b 46 12
    87749069    xor ah, ah                                ; 30 e4
    87759070    push ax                                   ; 50
    8776     push 00836h                               ; 68 36 08
     9071    push 0082eh                               ; 68 2e 08
    87779072    push strict byte 00004h                   ; 6a 04
    8778     call 01972h                               ; e8 36 b7
     9073    call 01972h                               ; e8 e9 b3
    87799074    add sp, strict byte 00006h                ; 83 c4 06
    87809075    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    87899084    retn                                      ; c3
    87909085    mov word [bp+018h], bx                    ; 89 5e 18
    8791     jmp near 06301h                           ; e9 a6 00
     9086    jmp near 0664eh                           ; e9 a6 00
    87929087    mov word [bp+018h], bx                    ; 89 5e 18
    8793     jmp short 0624eh                          ; eb ee
     9088    jmp short 0659bh                          ; eb ee
    87949089    mov word [bp+018h], cx                    ; 89 4e 18
    8795     jmp short 0624bh                          ; eb e6
     9090    jmp short 06598h                          ; eb e6
    87969091    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8797     je short 062d7h                           ; 74 6c
     9092    je short 06624h                           ; 74 6c
    87989093    mov dx, 000a0h                            ; ba a0 00
    87999094    mov ax, strict word 00040h                ; b8 40 00
    8800     call 01650h                               ; e8 dc b3
     9095    call 01650h                               ; e8 8f b0
    88019096    test AL, strict byte 001h                 ; a8 01
    8802     jne near 065adh                           ; 0f 85 33 03
     9097    jne near 068fah                           ; 0f 85 33 03
    88039098    mov bx, strict word 00001h                ; bb 01 00
    88049099    mov dx, 000a0h                            ; ba a0 00
    88059100    mov ax, strict word 00040h                ; b8 40 00
    8806     call 0165eh                               ; e8 d8 b3
     9101    call 0165eh                               ; e8 8b b0
    88079102    mov bx, word [bp+014h]                    ; 8b 5e 14
    88089103    mov dx, 00098h                            ; ba 98 00
    88099104    mov ax, strict word 00040h                ; b8 40 00
    8810     call 0167ah                               ; e8 e8 b3
     9105    call 0167ah                               ; e8 9b b0
    88119106    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    88129107    mov dx, 0009ah                            ; ba 9a 00
    88139108    mov ax, strict word 00040h                ; b8 40 00
    8814     call 0167ah                               ; e8 dc b3
     9109    call 0167ah                               ; e8 8f b0
    88159110    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    88169111    mov dx, 0009ch                            ; ba 9c 00
    88179112    mov ax, strict word 00040h                ; b8 40 00
    8818     call 0167ah                               ; e8 d0 b3
     9113    call 0167ah                               ; e8 83 b0
    88199114    mov bx, word [bp+010h]                    ; 8b 5e 10
    88209115    mov dx, 0009eh                            ; ba 9e 00
    88219116    mov ax, strict word 00040h                ; b8 40 00
    8822     call 0167ah                               ; e8 c4 b3
     9117    call 0167ah                               ; e8 77 b0
    88239118    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    88249119    mov dx, 000a1h                            ; ba a1 00
     
    88299124    out DX, AL                                ; ee
    88309125    mov ax, strict word 0000bh                ; b8 0b 00
    8831     call 016ach                               ; e8 e3 b3
     9126    call 016ach                               ; e8 96 b0
    88329127    or AL, strict byte 040h                   ; 0c 40
    88339128    movzx dx, al                              ; 0f b6 d0
    88349129    mov ax, strict word 0000bh                ; b8 0b 00
    8835     call 016c9h                               ; e8 f5 b3
    8836     jmp near 0624eh                           ; e9 77 ff
     9130    call 016c9h                               ; e8 a8 b0
     9131    jmp near 0659bh                           ; e9 77 ff
    88379132    cmp ax, strict word 00001h                ; 3d 01 00
    8838     jne short 062f5h                          ; 75 19
     9133    jne short 06642h                          ; 75 19
    88399134    xor bx, bx                                ; 31 db
    88409135    mov dx, 000a0h                            ; ba a0 00
    88419136    mov ax, strict word 00040h                ; b8 40 00
    8842     call 0165eh                               ; e8 77 b3
     9137    call 0165eh                               ; e8 2a b0
    88439138    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    88449139    mov ax, strict word 0000bh                ; b8 0b 00
    8845     call 016ach                               ; e8 bb b3
     9140    call 016ach                               ; e8 6e b0
    88469141    and AL, strict byte 0bfh                  ; 24 bf
    8847     jmp short 062cbh                          ; eb d6
     9142    jmp short 06618h                          ; eb d6
    88489143    mov word [bp+018h], bx                    ; 89 5e 18
    88499144    mov ax, dx                                ; 89 d0
     
    88539148    or dx, ax                                 ; 09 c2
    88549149    mov word [bp+012h], dx                    ; 89 56 12
    8855     jmp near 0624eh                           ; e9 47 ff
     9150    jmp near 0659bh                           ; e9 47 ff
    88569151    cli                                       ; fa
    88579152    mov ax, strict word 00001h                ; b8 01 00
    8858     call 060b6h                               ; e8 a8 fd
     9153    call 06403h                               ; e8 a8 fd
    88599154    mov di, ax                                ; 89 c7
    88609155    mov ax, word [bp+014h]                    ; 8b 46 14
     
    88669161    mov byte [bp-006h], dl                    ; 88 56 fa
    88679162    cmp cx, ax                                ; 39 c1
    8868     jnc short 0632dh                          ; 73 05
     9163    jnc short 0667ah                          ; 73 05
    88699164    db  0feh, 0c2h
    88709165    ; inc dl                                    ; fe c2
     
    88749169    mov ax, word [bp+014h]                    ; 8b 46 14
    88759170    mov bx, strict word 0002fh                ; bb 2f 00
    8876     call 0167ah                               ; e8 3e b3
     9171    call 0167ah                               ; e8 f1 af
    88779172    mov dx, word [bp+006h]                    ; 8b 56 06
    88789173    add dx, strict byte 0000ah                ; 83 c2 0a
    88799174    mov ax, word [bp+014h]                    ; 8b 46 14
    88809175    mov bx, cx                                ; 89 cb
    8881     call 0167ah                               ; e8 30 b3
     9176    call 0167ah                               ; e8 e3 af
    88829177    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    88839178    mov dx, word [bp+006h]                    ; 8b 56 06
    88849179    add dx, strict byte 0000ch                ; 83 c2 0c
    88859180    mov ax, word [bp+014h]                    ; 8b 46 14
    8886     call 0165eh                               ; e8 04 b3
     9181    call 0165eh                               ; e8 b7 af
    88879182    mov dx, word [bp+006h]                    ; 8b 56 06
    88889183    add dx, strict byte 0000dh                ; 83 c2 0d
    88899184    mov ax, word [bp+014h]                    ; 8b 46 14
    88909185    mov bx, 00093h                            ; bb 93 00
    8891     call 0165eh                               ; e8 f5 b2
     9186    call 0165eh                               ; e8 a8 af
    88929187    mov dx, word [bp+006h]                    ; 8b 56 06
    88939188    add dx, strict byte 0000eh                ; 83 c2 0e
    88949189    mov ax, word [bp+014h]                    ; 8b 46 14
    88959190    xor bx, bx                                ; 31 db
    8896     call 0167ah                               ; e8 03 b3
     9191    call 0167ah                               ; e8 b6 af
    88979192    mov dx, word [bp+006h]                    ; 8b 56 06
    88989193    add dx, strict byte 00020h                ; 83 c2 20
    88999194    mov ax, word [bp+014h]                    ; 8b 46 14
    89009195    mov bx, strict word 0ffffh                ; bb ff ff
    8901     call 0167ah                               ; e8 f4 b2
     9196    call 0167ah                               ; e8 a7 af
    89029197    mov dx, word [bp+006h]                    ; 8b 56 06
    89039198    add dx, strict byte 00022h                ; 83 c2 22
    89049199    mov ax, word [bp+014h]                    ; 8b 46 14
    89059200    xor bx, bx                                ; 31 db
    8906     call 0167ah                               ; e8 e6 b2
     9201    call 0167ah                               ; e8 99 af
    89079202    mov dx, word [bp+006h]                    ; 8b 56 06
    89089203    add dx, strict byte 00024h                ; 83 c2 24
    89099204    mov ax, word [bp+014h]                    ; 8b 46 14
    89109205    mov bx, strict word 0000fh                ; bb 0f 00
    8911     call 0165eh                               ; e8 bb b2
     9206    call 0165eh                               ; e8 6e af
    89129207    mov dx, word [bp+006h]                    ; 8b 56 06
    89139208    add dx, strict byte 00025h                ; 83 c2 25
    89149209    mov ax, word [bp+014h]                    ; 8b 46 14
    89159210    mov bx, 0009bh                            ; bb 9b 00
    8916     call 0165eh                               ; e8 ac b2
     9211    call 0165eh                               ; e8 5f af
    89179212    mov dx, word [bp+006h]                    ; 8b 56 06
    89189213    add dx, strict byte 00026h                ; 83 c2 26
    89199214    mov ax, word [bp+014h]                    ; 8b 46 14
    89209215    xor bx, bx                                ; 31 db
    8921     call 0167ah                               ; e8 ba b2
     9216    call 0167ah                               ; e8 6d af
    89229217    mov ax, ss                                ; 8c d0
    89239218    mov cx, ax                                ; 89 c1
     
    89299224    mov ax, word [bp+014h]                    ; 8b 46 14
    89309225    mov bx, strict word 0ffffh                ; bb ff ff
    8931     call 0167ah                               ; e8 9e b2
     9226    call 0167ah                               ; e8 51 af
    89329227    mov dx, word [bp+006h]                    ; 8b 56 06
    89339228    add dx, strict byte 0002ah                ; 83 c2 2a
    89349229    mov ax, word [bp+014h]                    ; 8b 46 14
    89359230    mov bx, cx                                ; 89 cb
    8936     call 0167ah                               ; e8 90 b2
     9231    call 0167ah                               ; e8 43 af
    89379232    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    89389233    mov dx, word [bp+006h]                    ; 8b 56 06
    89399234    add dx, strict byte 0002ch                ; 83 c2 2c
    89409235    mov ax, word [bp+014h]                    ; 8b 46 14
    8941     call 0165eh                               ; e8 64 b2
     9236    call 0165eh                               ; e8 17 af
    89429237    mov dx, word [bp+006h]                    ; 8b 56 06
    89439238    add dx, strict byte 0002dh                ; 83 c2 2d
    89449239    mov ax, word [bp+014h]                    ; 8b 46 14
    89459240    mov bx, 00093h                            ; bb 93 00
    8946     call 0165eh                               ; e8 55 b2
     9241    call 0165eh                               ; e8 08 af
    89479242    mov dx, word [bp+006h]                    ; 8b 56 06
    89489243    add dx, strict byte 0002eh                ; 83 c2 2e
    89499244    mov ax, word [bp+014h]                    ; 8b 46 14
    89509245    xor bx, bx                                ; 31 db
    8951     call 0167ah                               ; e8 63 b2
     9246    call 0167ah                               ; e8 16 af
    89529247    mov si, word [bp+006h]                    ; 8b 76 06
    89539248    mov es, [bp+014h]                         ; 8e 46 14
     
    89609255    mov word [00467h], sp                     ; 89 26 67 04
    89619256    mov [00469h], ss                          ; 8c 16 69 04
    8962     call 06433h                               ; e8 00 00
     9257    call 06780h                               ; e8 00 00
    89639258    pop di                                    ; 5f
    89649259    add di, strict byte 0001bh                ; 83 c7 1b
     
    89839278    cld                                       ; fc
    89849279    rep movsw                                 ; f3 a5
    8985     call 06467h                               ; e8 00 00
     9280    call 067b4h                               ; e8 00 00
    89869281    pop ax                                    ; 58
    89879282    push 0f000h                               ; 68 00 f0
     
    90049299    pop DS                                    ; 1f
    90059300    mov ax, di                                ; 89 f8
    9006     call 060b6h                               ; e8 1e fc
     9301    call 06403h                               ; e8 1e fc
    90079302    sti                                       ; fb
    90089303    mov byte [bp+013h], 000h                  ; c6 46 13 00
    90099304    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9010     jmp near 0624eh                           ; e9 aa fd
     9305    jmp near 0659bh                           ; e9 aa fd
    90119306    mov ax, strict word 00031h                ; b8 31 00
    9012     call 016ach                               ; e8 02 b2
     9307    call 016ach                               ; e8 b5 ae
    90139308    xor ah, ah                                ; 30 e4
    90149309    mov dx, ax                                ; 89 c2
    90159310    sal dx, 008h                              ; c1 e2 08
    90169311    mov ax, strict word 00030h                ; b8 30 00
    9017     call 016ach                               ; e8 f5 b1
     9312    call 016ach                               ; e8 a8 ae
    90189313    xor ah, ah                                ; 30 e4
    90199314    or dx, ax                                 ; 09 c2
    90209315    mov word [bp+012h], dx                    ; 89 56 12
    90219316    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9022     jbe short 0649dh                          ; 76 da
     9317    jbe short 067eah                          ; 76 da
    90239318    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    9024     jmp short 0649dh                          ; eb d3
     9319    jmp short 067eah                          ; eb d3
    90259320    cli                                       ; fa
    90269321    mov ax, strict word 00001h                ; b8 01 00
    9027     call 060b6h                               ; e8 e5 fb
     9322    call 06403h                               ; e8 e5 fb
    90289323    mov dx, word [bp+006h]                    ; 8b 56 06
    90299324    add dx, strict byte 00038h                ; 83 c2 38
    90309325    mov ax, word [bp+014h]                    ; 8b 46 14
    90319326    mov bx, strict word 0ffffh                ; bb ff ff
    9032     call 0167ah                               ; e8 9a b1
     9327    call 0167ah                               ; e8 4d ae
    90339328    mov dx, word [bp+006h]                    ; 8b 56 06
    90349329    add dx, strict byte 0003ah                ; 83 c2 3a
    90359330    mov ax, word [bp+014h]                    ; 8b 46 14
    90369331    xor bx, bx                                ; 31 db
    9037     call 0167ah                               ; e8 8c b1
     9332    call 0167ah                               ; e8 3f ae
    90389333    mov dx, word [bp+006h]                    ; 8b 56 06
    90399334    add dx, strict byte 0003ch                ; 83 c2 3c
    90409335    mov ax, word [bp+014h]                    ; 8b 46 14
    90419336    mov bx, strict word 0000fh                ; bb 0f 00
    9042     call 0165eh                               ; e8 61 b1
     9337    call 0165eh                               ; e8 14 ae
    90439338    mov dx, word [bp+006h]                    ; 8b 56 06
    90449339    add dx, strict byte 0003dh                ; 83 c2 3d
    90459340    mov ax, word [bp+014h]                    ; 8b 46 14
    90469341    mov bx, 0009bh                            ; bb 9b 00
    9047     call 0165eh                               ; e8 52 b1
     9342    call 0165eh                               ; e8 05 ae
    90489343    mov dx, word [bp+006h]                    ; 8b 56 06
    90499344    add dx, strict byte 0003eh                ; 83 c2 3e
    90509345    mov ax, word [bp+014h]                    ; 8b 46 14
    90519346    xor bx, bx                                ; 31 db
    9052     call 0167ah                               ; e8 60 b1
     9347    call 0167ah                               ; e8 13 ae
    90539348    mov AL, strict byte 011h                  ; b0 11
    90549349    mov dx, strict word 00020h                ; ba 20 00
     
    90809375    out DX, AL                                ; ee
    90819376    mov si, word [bp+006h]                    ; 8b 76 06
    9082     call 0655bh                               ; e8 00 00
     9377    call 068a8h                               ; e8 00 00
    90839378    pop di                                    ; 5f
    90849379    add di, strict byte 00018h                ; 83 c7 18
     
    91089403    push cx                                   ; 51
    91099404    retf                                      ; cb
    9110     jmp near 0624eh                           ; e9 b7 fc
    9111     mov bx, 00da2h                            ; bb a2 0d
     9405    jmp near 0659bh                           ; e9 b7 fc
     9406    mov bx, 00da0h                            ; bb a0 0d
    91129407    mov cx, ds                                ; 8c d9
    91139408    mov ax, strict word 00004h                ; b8 04 00
    9114     call 01931h                               ; e8 8f b3
    9115     push 00876h                               ; 68 76 08
     9409    call 01931h                               ; e8 42 b0
     9410    push 0086eh                               ; 68 6e 08
    91169411    push strict byte 00004h                   ; 6a 04
    9117     call 01972h                               ; e8 c8 b3
     9412    call 01972h                               ; e8 7b b0
    91189413    add sp, strict byte 00004h                ; 83 c4 04
    91199414    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    91229417    or ah, 086h                               ; 80 cc 86
    91239418    mov word [bp+012h], ax                    ; 89 46 12
    9124     jmp near 0624eh                           ; e9 8f fc
     9419    jmp near 0659bh                           ; e9 8f fc
    91259420    mov word [bp+018h], cx                    ; 89 4e 18
    91269421    mov word [bp+012h], ax                    ; 89 46 12
    91279422    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    91289423    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9129     jmp near 0624eh                           ; e9 7c fc
     9424    jmp near 0659bh                           ; e9 7c fc
    91309425    mov dx, strict word 0000eh                ; ba 0e 00
    91319426    mov ax, strict word 00040h                ; b8 40 00
    9132     call 0166ch                               ; e8 91 b0
     9427    call 0166ch                               ; e8 44 ad
    91339428    mov word [bp+014h], ax                    ; 89 46 14
    9134     jmp near 0649dh                           ; e9 bc fe
    9135     push 008a5h                               ; 68 a5 08
     9429    jmp near 067eah                           ; e9 bc fe
     9430    push 0089dh                               ; 68 9d 08
    91369431    push strict byte 00008h                   ; 6a 08
    9137     jmp short 065a7h                          ; eb bf
     9432    jmp short 068f4h                          ; eb bf
    91389433    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9139     jne short 0660dh                          ; 75 1f
     9434    jne short 0695ah                          ; 75 1f
    91409435    mov word [bp+012h], ax                    ; 89 46 12
    91419436    mov ax, word [bp+00ch]                    ; 8b 46 0c
    91429437    xor ah, ah                                ; 30 e4
    91439438    cmp ax, strict word 00001h                ; 3d 01 00
    9144     jc short 06606h                           ; 72 0b
     9439    jc short 06953h                           ; 72 0b
    91459440    cmp ax, strict word 00003h                ; 3d 03 00
    9146     jnbe short 06606h                         ; 77 06
     9441    jnbe short 06953h                         ; 77 06
    91479442    mov word [bp+018h], cx                    ; 89 4e 18
    9148     jmp near 0624eh                           ; e9 48 fc
     9443    jmp near 0659bh                           ; e9 48 fc
    91499444    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9150     jmp near 0624eh                           ; e9 41 fc
    9151     mov bx, 00da2h                            ; bb a2 0d
     9445    jmp near 0659bh                           ; e9 41 fc
     9446    mov bx, 00da0h                            ; bb a0 0d
    91529447    mov cx, ds                                ; 8c d9
    91539448    mov ax, strict word 00004h                ; b8 04 00
    9154     call 01931h                               ; e8 19 b3
     9449    call 01931h                               ; e8 cc af
    91559450    push word [bp+00ch]                       ; ff 76 0c
    91569451    push word [bp+012h]                       ; ff 76 12
    9157     push 008bch                               ; 68 bc 08
     9452    push 008b4h                               ; 68 b4 08
    91589453    push strict byte 00004h                   ; 6a 04
    9159     call 01972h                               ; e8 4c b3
     9454    call 01972h                               ; e8 ff af
    91609455    add sp, strict byte 00008h                ; 83 c4 08
    9161     jmp short 065adh                          ; eb 82
    9162     in AL, strict byte 067h                   ; e4 67
    9163     push ES                                   ; 06
    9164     push 06829h                               ; 68 29 68
    9165     dec bx                                    ; 4b
    9166     push 0686bh                               ; 68 6b 68
    9167     mov [bx+si-035h], gs                      ; 8c 68 cb
    9168     push 068f7h                               ; 68 f7 68
    9169 _int15_function32:                           ; 0xf663b LB 0x37e
     9456    jmp short 068fah                          ; eb 82
     9457    xor word [bp+di+053h], bp                 ; 31 6b 53
     9458    imul si, word [bp+06bh], strict byte 0ff98h ; 6b 76 6b 98
     9459    imul di, word [bx+si-02695h], strict byte 0006bh ; 6b b8 6b d9 6b
     9460    sbb byte [si+044h], ch                    ; 18 6c 44
     9461    insb                                      ; 6c
     9462_int15_function32:                           ; 0xf6988 LB 0x37e
    91709463    push bp                                   ; 55
    91719464    mov bp, sp                                ; 89 e5
     
    91799472    xor ah, ah                                ; 30 e4
    91809473    cmp dx, 000e8h                            ; 81 fa e8 00
    9181     je near 06708h                            ; 0f 84 ad 00
     9474    je near 06a55h                            ; 0f 84 ad 00
    91829475    cmp dx, 000d0h                            ; 81 fa d0 00
    9183     je short 066a3h                           ; 74 42
     9476    je short 069f0h                           ; 74 42
    91849477    cmp dx, 00086h                            ; 81 fa 86 00
    9185     jne near 06989h                           ; 0f 85 20 03
     9478    jne near 06cd6h                           ; 0f 85 20 03
    91869479    sti                                       ; fb
    91879480    mov ax, word [bp+01ch]                    ; 8b 46 1c
     
    92029495    db  066h, 00bh, 0c9h
    92039496    ; or ecx, ecx                               ; 66 0b c9
    9204     je near 066a0h                            ; 0f 84 0e 00
     9497    je near 069edh                            ; 0f 84 0e 00
    92059498    in AL, strict byte 061h                   ; e4 61
    92069499    and AL, strict byte 010h                  ; 24 10
    92079500    db  03ah, 0c4h
    92089501    ; cmp al, ah                                ; 3a c4
    9209     je short 06692h                           ; 74 f8
     9502    je short 069dfh                           ; 74 f8
    92109503    db  08ah, 0e0h
    92119504    ; mov ah, al                                ; 8a e0
    92129505    dec ecx                                   ; 66 49
    9213     jne short 06692h                          ; 75 f2
    9214     jmp near 069b3h                           ; e9 10 03
     9506    jne short 069dfh                          ; 75 f2
     9507    jmp near 06d00h                           ; e9 10 03
    92159508    cmp ax, strict word 0004fh                ; 3d 4f 00
    9216     jne near 06989h                           ; 0f 85 df 02
     9509    jne near 06cd6h                           ; 0f 85 df 02
    92179510    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9218     jne near 06989h                           ; 0f 85 d6 02
     9511    jne near 06cd6h                           ; 0f 85 d6 02
    92199512    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9220     jne near 06989h                           ; 0f 85 cd 02
     9513    jne near 06cd6h                           ; 0f 85 cd 02
    92219514    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9222     jne near 06989h                           ; 0f 85 c4 02
     9515    jne near 06cd6h                           ; 0f 85 c4 02
    92239516    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9224     jne near 06989h                           ; 0f 85 bb 02
     9517    jne near 06cd6h                           ; 0f 85 bb 02
    92259518    mov ax, word [bp+00ah]                    ; 8b 46 0a
    92269519    or ax, word [bp+008h]                     ; 0b 46 08
    9227     jne near 06989h                           ; 0f 85 b1 02
     9520    jne near 06cd6h                           ; 0f 85 b1 02
    92289521    mov ax, word [bp+006h]                    ; 8b 46 06
    92299522    or ax, word [bp+004h]                     ; 0b 46 04
    9230     jne near 06989h                           ; 0f 85 a7 02
     9523    jne near 06cd6h                           ; 0f 85 a7 02
    92319524    mov word [bp+028h], bx                    ; 89 5e 28
    92329525    mov ax, word [bp+014h]                    ; 8b 46 14
     
    92399532    mov word [bp+006h], ax                    ; 89 46 06
    92409533    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9241     jmp near 069b3h                           ; e9 ab 02
     9534    jmp near 06d00h                           ; e9 ab 02
    92429535    cmp ax, strict word 00020h                ; 3d 20 00
    9243     je short 06717h                           ; 74 0a
     9536    je short 06a64h                           ; 74 0a
    92449537    cmp ax, strict word 00001h                ; 3d 01 00
    9245     je near 0693eh                            ; 0f 84 2a 02
    9246     jmp near 06989h                           ; e9 72 02
     9538    je near 06c8bh                            ; 0f 84 2a 02
     9539    jmp near 06cd6h                           ; e9 72 02
    92479540    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9248     jne near 06989h                           ; 0f 85 69 02
     9541    jne near 06cd6h                           ; 0f 85 69 02
    92499542    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9250     jne near 06989h                           ; 0f 85 60 02
     9543    jne near 06cd6h                           ; 0f 85 60 02
    92519544    mov ax, strict word 00035h                ; b8 35 00
    9252     call 016ach                               ; e8 7d af
     9545    call 016ach                               ; e8 30 ac
    92539546    movzx bx, al                              ; 0f b6 d8
    92549547    xor dx, dx                                ; 31 d2
     
    92569549    sal bx, 1                                 ; d1 e3
    92579550    rcl dx, 1                                 ; d1 d2
    9258     loop 06737h                               ; e2 fa
     9551    loop 06a84h                               ; e2 fa
    92599552    mov ax, strict word 00034h                ; b8 34 00
    9260     call 016ach                               ; e8 69 af
     9553    call 016ach                               ; e8 1c ac
    92619554    xor ah, ah                                ; 30 e4
    92629555    mov dx, bx                                ; 89 da
     
    92669559    adc dx, 00100h                            ; 81 d2 00 01
    92679560    cmp dx, 00100h                            ; 81 fa 00 01
    9268     jc short 0675dh                           ; 72 06
    9269     jne short 0678ah                          ; 75 31
     9561    jc short 06aaah                           ; 72 06
     9562    jne short 06ad7h                          ; 75 31
    92709563    test bx, bx                               ; 85 db
    9271     jnbe short 0678ah                         ; 77 2d
     9564    jnbe short 06ad7h                         ; 77 2d
    92729565    mov ax, strict word 00031h                ; b8 31 00
    9273     call 016ach                               ; e8 49 af
     9566    call 016ach                               ; e8 fc ab
    92749567    movzx bx, al                              ; 0f b6 d8
    92759568    xor dx, dx                                ; 31 d2
     
    92779570    sal bx, 1                                 ; d1 e3
    92789571    rcl dx, 1                                 ; d1 d2
    9279     loop 0676bh                               ; e2 fa
     9572    loop 06ab8h                               ; e2 fa
    92809573    mov ax, strict word 00030h                ; b8 30 00
    9281     call 016ach                               ; e8 35 af
     9574    call 016ach                               ; e8 e8 ab
    92829575    xor ah, ah                                ; 30 e4
    92839576    or bx, ax                                 ; 09 c3
     
    92859578    sal bx, 1                                 ; d1 e3
    92869579    rcl dx, 1                                 ; d1 d2
    9287     loop 0677eh                               ; e2 fa
     9580    loop 06acbh                               ; e2 fa
    92889581    add bx, strict byte 00000h                ; 83 c3 00
    92899582    adc dx, strict byte 00010h                ; 83 d2 10
    92909583    mov ax, strict word 00062h                ; b8 62 00
    9291     call 016ach                               ; e8 1c af
     9584    call 016ach                               ; e8 cf ab
    92929585    xor ah, ah                                ; 30 e4
    92939586    mov word [bp-00ah], ax                    ; 89 46 f6
     
    92979590    sal word [bp-00ah], 1                     ; d1 66 f6
    92989591    rcl word [bp-008h], 1                     ; d1 56 f8
    9299     loop 0679dh                               ; e2 f8
     9592    loop 06aeah                               ; e2 f8
    93009593    mov ax, strict word 00061h                ; b8 61 00
    9301     call 016ach                               ; e8 01 af
     9594    call 016ach                               ; e8 b4 ab
    93029595    xor ah, ah                                ; 30 e4
    93039596    or word [bp-00ah], ax                     ; 09 46 f6
     
    93069599    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    93079600    mov ax, strict word 00063h                ; b8 63 00
    9308     call 016ach                               ; e8 eb ae
     9601    call 016ach                               ; e8 9e ab
    93099602    mov byte [bp-004h], al                    ; 88 46 fc
    93109603    mov byte [bp-006h], al                    ; 88 46 fa
    93119604    mov ax, word [bp+014h]                    ; 8b 46 14
    93129605    cmp ax, strict word 00007h                ; 3d 07 00
    9313     jnbe near 06989h                          ; 0f 87 b8 01
     9606    jnbe near 06cd6h                          ; 0f 87 b8 01
    93149607    mov si, ax                                ; 89 c6
    93159608    add si, ax                                ; 01 c6
     
    93189611    mov ax, dx                                ; 89 d0
    93199612    adc ax, strict word 0ffffh                ; 15 ff ff
    9320     jmp word [cs:si+0662bh]                   ; 2e ff a4 2b 66
     9613    jmp word [cs:si+06978h]                   ; 2e ff a4 78 69
    93219614    push strict byte 00001h                   ; 6a 01
    93229615    push dword 000000000h                     ; 66 6a 00
     
    93279620    xor bx, bx                                ; 31 db
    93289621    xor cx, cx                                ; 31 c9
    9329     call 060e2h                               ; e8 e7 f8
     9622    call 0642fh                               ; e8 e7 f8
    93309623    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9331     jmp near 06928h                           ; e9 22 01
     9624    jmp near 06c75h                           ; e9 22 01
    93329625    push strict byte 00002h                   ; 6a 02
    93339626    push dword 000000000h                     ; 66 6a 00
     
    93389631    mov bx, 0fc00h                            ; bb 00 fc
    93399632    mov cx, strict word 00009h                ; b9 09 00
    9340     call 060e2h                               ; e8 c4 f8
     9633    call 0642fh                               ; e8 c4 f8
    93419634    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9342     jmp near 06928h                           ; e9 ff 00
     9635    jmp near 06c75h                           ; e9 ff 00
    93439636    push strict byte 00002h                   ; 6a 02
    93449637    push dword 000000000h                     ; 66 6a 00
     
    93499642    xor bx, bx                                ; 31 db
    93509643    mov cx, strict word 0000fh                ; b9 0f 00
    9351     call 060e2h                               ; e8 a2 f8
     9644    call 0642fh                               ; e8 a2 f8
    93529645    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9353     jmp near 06928h                           ; e9 dd 00
     9646    jmp near 06c75h                           ; e9 dd 00
    93549647    push strict byte 00001h                   ; 6a 01
    93559648    push dword 000000000h                     ; 66 6a 00
     
    93609653    xor bx, bx                                ; 31 db
    93619654    mov cx, strict word 00010h                ; b9 10 00
    9362     call 060e2h                               ; e8 82 f8
     9655    call 0642fh                               ; e8 82 f8
    93639656    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9364     jmp near 06928h                           ; e9 bd 00
     9657    jmp near 06c75h                           ; e9 bd 00
    93659658    push strict byte 00003h                   ; 6a 03
    93669659    push dword 000000000h                     ; 66 6a 00
     
    93729665    mov cx, ax                                ; 89 c1
    93739666    mov ax, si                                ; 89 f0
    9374     call 060e2h                               ; e8 61 f8
     9667    call 0642fh                               ; e8 61 f8
    93759668    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9376     jmp near 06928h                           ; e9 9c 00
     9669    jmp near 06c75h                           ; e9 9c 00
    93779670    push strict byte 00002h                   ; 6a 02
    93789671    push dword 000000000h                     ; 66 6a 00
     
    93829675    xor bx, bx                                ; 31 db
    93839676    mov cx, strict word 0fffch                ; b9 fc ff
    9384     call 060e2h                               ; e8 40 f8
     9677    call 0642fh                               ; e8 40 f8
    93859678    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9386     jne short 068afh                          ; 75 07
     9679    jne short 06bfch                          ; 75 07
    93879680    mov ax, word [bp-008h]                    ; 8b 46 f8
    93889681    test ax, ax                               ; 85 c0
    9389     je short 068c3h                           ; 74 14
     9682    je short 06c10h                           ; 74 14
    93909683    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9391     jmp short 06928h                          ; eb 6f
     9684    jmp short 06c75h                          ; eb 6f
    93929685    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9393     jmp short 06928h                          ; eb 65
     9686    jmp short 06c75h                          ; eb 65
    93949687    mov word [bp+014h], ax                    ; 89 46 14
    93959688    mov word [bp+016h], ax                    ; 89 46 16
    9396     jmp short 06928h                          ; eb 5d
     9689    jmp short 06c75h                          ; eb 5d
    93979690    push strict byte 00002h                   ; 6a 02
    93989691    push dword 000000000h                     ; 66 6a 00
     
    94029695    xor bx, bx                                ; 31 db
    94039696    xor cx, cx                                ; 31 c9
    9404     call 060e2h                               ; e8 02 f8
     9697    call 0642fh                               ; e8 02 f8
    94059698    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9406     jne short 068edh                          ; 75 07
     9699    jne short 06c3ah                          ; 75 07
    94079700    mov ax, word [bp-008h]                    ; 8b 46 f8
    94089701    test ax, ax                               ; 85 c0
    9409     je short 068efh                           ; 74 02
    9410     jmp short 068afh                          ; eb c0
     9702    je short 06c3ch                           ; 74 02
     9703    jmp short 06bfch                          ; eb c0
    94119704    mov word [bp+014h], ax                    ; 89 46 14
    94129705    mov word [bp+016h], ax                    ; 89 46 16
    9413     jmp short 06928h                          ; eb 31
     9706    jmp short 06c75h                          ; eb 31
    94149707    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9415     jne short 06903h                          ; 75 06
     9708    jne short 06c50h                          ; 75 06
    94169709    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9417     je short 06928h                           ; 74 25
     9710    je short 06c75h                           ; 74 25
    94189711    push strict byte 00001h                   ; 6a 01
    94199712    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    94289721    xor bx, bx                                ; 31 db
    94299722    xor cx, cx                                ; 31 c9
    9430     call 060e2h                               ; e8 c2 f7
     9723    call 0642fh                               ; e8 c2 f7
    94319724    xor ax, ax                                ; 31 c0
    94329725    mov word [bp+014h], ax                    ; 89 46 14
     
    94359728    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    94369729    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9437     jmp short 069b3h                          ; eb 75
     9730    jmp short 06d00h                          ; eb 75
    94389731    mov word [bp+028h], bx                    ; 89 5e 28
    94399732    mov ax, strict word 00031h                ; b8 31 00
    9440     call 016ach                               ; e8 65 ad
     9733    call 016ach                               ; e8 18 aa
    94419734    movzx dx, al                              ; 0f b6 d0
    94429735    sal dx, 008h                              ; c1 e2 08
    94439736    mov ax, strict word 00030h                ; b8 30 00
    9444     call 016ach                               ; e8 59 ad
     9737    call 016ach                               ; e8 0c aa
    94459738    xor ah, ah                                ; 30 e4
    94469739    or dx, ax                                 ; 09 c2
    94479740    mov word [bp+01ch], dx                    ; 89 56 1c
    94489741    cmp dx, 03c00h                            ; 81 fa 00 3c
    9449     jbe short 06965h                          ; 76 05
     9742    jbe short 06cb2h                          ; 76 05
    94509743    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    94519744    mov ax, strict word 00035h                ; b8 35 00
    9452     call 016ach                               ; e8 41 ad
     9745    call 016ach                               ; e8 f4 a9
    94539746    movzx dx, al                              ; 0f b6 d0
    94549747    sal dx, 008h                              ; c1 e2 08
    94559748    mov ax, strict word 00034h                ; b8 34 00
    9456     call 016ach                               ; e8 35 ad
     9749    call 016ach                               ; e8 e8 a9
    94579750    xor ah, ah                                ; 30 e4
    94589751    or dx, ax                                 ; 09 c2
     
    94619754    mov word [bp+020h], ax                    ; 89 46 20
    94629755    mov word [bp+014h], dx                    ; 89 56 14
    9463     jmp short 069b3h                          ; eb 2a
    9464     mov bx, 00da2h                            ; bb a2 0d
     9756    jmp short 06d00h                          ; eb 2a
     9757    mov bx, 00da0h                            ; bb a0 0d
    94659758    mov cx, ds                                ; 8c d9
    94669759    mov ax, strict word 00004h                ; b8 04 00
    9467     call 01931h                               ; e8 9d af
     9760    call 01931h                               ; e8 50 ac
    94689761    push word [bp+014h]                       ; ff 76 14
    94699762    push word [bp+020h]                       ; ff 76 20
    9470     push 008bch                               ; 68 bc 08
     9763    push 008b4h                               ; 68 b4 08
    94719764    push strict byte 00004h                   ; 6a 04
    9472     call 01972h                               ; e8 d0 af
     9765    call 01972h                               ; e8 83 ac
    94739766    add sp, strict byte 00008h                ; 83 c4 08
    94749767    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    94819774    pop bp                                    ; 5d
    94829775    retn                                      ; c3
    9483 _inv_op_handler:                             ; 0xf69b9 LB 0x195
     9776_inv_op_handler:                             ; 0xf6d06 LB 0x195
    94849777    push bp                                   ; 55
    94859778    mov bp, sp                                ; 89 e5
     
    94909783    les bx, [bp+018h]                         ; c4 5e 18
    94919784    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    9492     jne short 069cfh                          ; 75 06
     9785    jne short 06d1ch                          ; 75 06
    94939786    inc word [bp+018h]                        ; ff 46 18
    9494     jmp near 06b47h                           ; e9 78 01
     9787    jmp near 06e94h                           ; e9 78 01
    94959788    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    9496     jne near 06b43h                           ; 0f 85 6b 01
     9789    jne near 06e90h                           ; 0f 85 6b 01
    94979790    mov si, 00800h                            ; be 00 08
    94989791    xor ax, ax                                ; 31 c0
     
    95229815    sal ax, 1                                 ; d1 e0
    95239816    rcl dx, 1                                 ; d1 d2
    9524     loop 06a28h                               ; e2 fa
     9817    loop 06d75h                               ; e2 fa
    95259818    cmp bx, dx                                ; 39 d3
    9526     jne short 06a36h                          ; 75 04
     9819    jne short 06d83h                          ; 75 04
    95279820    cmp di, ax                                ; 39 c7
    9528     je short 06a3bh                           ; 74 05
     9821    je short 06d88h                           ; 74 05
    95299822    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    95309823    mov es, [bp-006h]                         ; 8e 46 fa
     
    95369829    sal ax, 1                                 ; d1 e0
    95379830    rcl dx, 1                                 ; d1 d2
    9538     loop 06a50h                               ; e2 fa
     9831    loop 06d9dh                               ; e2 fa
    95399832    cmp di, dx                                ; 39 d7
    9540     jne short 06a5eh                          ; 75 04
     9833    jne short 06dabh                          ; 75 04
    95419834    cmp bx, ax                                ; 39 c3
    9542     je short 06a62h                           ; 74 04
     9835    je short 06dafh                           ; 74 04
    95439836    or byte [bp-008h], 002h                   ; 80 4e f8 02
    95449837    push strict byte 00000h                   ; 6a 00
     
    95909883    mov ax, strict word 00008h                ; b8 08 00
    95919884    test cx, strict word 00001h               ; f7 c1 01 00
    9592     je near 06b00h                            ; 0f 84 02 00
     9885    je near 06e4dh                            ; 0f 84 02 00
    95939886    mov es, ax                                ; 8e c0
    95949887    test cx, strict word 00002h               ; f7 c1 02 00
    9595     je near 06b28h                            ; 0f 84 20 00
     9888    je near 06e75h                            ; 0f 84 20 00
    95969889    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    95979890    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    96109903    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    96119904    iret                                      ; cf
    9612     jmp short 06b47h                          ; eb 04
     9905    jmp short 06e94h                          ; eb 04
    96139906    sti                                       ; fb
    96149907    hlt                                       ; f4
    9615     jmp short 06b44h                          ; eb fd
     9908    jmp short 06e91h                          ; eb fd
    96169909    lea sp, [bp-004h]                         ; 8d 66 fc
    96179910    pop di                                    ; 5f
     
    96199912    pop bp                                    ; 5d
    96209913    retn                                      ; c3
    9621 init_rtc_:                                   ; 0xf6b4e LB 0x28
     9914init_rtc_:                                   ; 0xf6e9b LB 0x28
    96229915    push bp                                   ; 55
    96239916    mov bp, sp                                ; 89 e5
     
    96259918    mov dx, strict word 00026h                ; ba 26 00
    96269919    mov ax, strict word 0000ah                ; b8 0a 00
    9627     call 016c9h                               ; e8 6e ab
     9920    call 016c9h                               ; e8 21 a8
    96289921    mov dx, strict word 00002h                ; ba 02 00
    96299922    mov ax, strict word 0000bh                ; b8 0b 00
    9630     call 016c9h                               ; e8 65 ab
     9923    call 016c9h                               ; e8 18 a8
    96319924    mov ax, strict word 0000ch                ; b8 0c 00
    9632     call 016ach                               ; e8 42 ab
     9925    call 016ach                               ; e8 f5 a7
    96339926    mov ax, strict word 0000dh                ; b8 0d 00
    9634     call 016ach                               ; e8 3c ab
     9927    call 016ach                               ; e8 ef a7
    96359928    lea sp, [bp-002h]                         ; 8d 66 fe
    96369929    pop dx                                    ; 5a
    96379930    pop bp                                    ; 5d
    96389931    retn                                      ; c3
    9639 rtc_updating_:                               ; 0xf6b76 LB 0x21
     9932rtc_updating_:                               ; 0xf6ec3 LB 0x21
    96409933    push bp                                   ; 55
    96419934    mov bp, sp                                ; 89 e5
     
    96439936    mov dx, 061a8h                            ; ba a8 61
    96449937    dec dx                                    ; 4a
    9645     je short 06b8eh                           ; 74 0e
     9938    je short 06edbh                           ; 74 0e
    96469939    mov ax, strict word 0000ah                ; b8 0a 00
    9647     call 016ach                               ; e8 26 ab
     9940    call 016ach                               ; e8 d9 a7
    96489941    test AL, strict byte 080h                 ; a8 80
    9649     jne short 06b7dh                          ; 75 f3
     9942    jne short 06ecah                          ; 75 f3
    96509943    xor ax, ax                                ; 31 c0
    9651     jmp short 06b91h                          ; eb 03
     9944    jmp short 06edeh                          ; eb 03
    96529945    mov ax, strict word 00001h                ; b8 01 00
    96539946    lea sp, [bp-002h]                         ; 8d 66 fe
     
    96559948    pop bp                                    ; 5d
    96569949    retn                                      ; c3
    9657 _int70_function:                             ; 0xf6b97 LB 0xbe
     9950_int70_function:                             ; 0xf6ee4 LB 0xbe
    96589951    push bp                                   ; 55
    96599952    mov bp, sp                                ; 89 e5
     
    96619954    push ax                                   ; 50
    96629955    mov ax, strict word 0000bh                ; b8 0b 00
    9663     call 016ach                               ; e8 0a ab
     9956    call 016ach                               ; e8 bd a7
    96649957    mov dl, al                                ; 88 c2
    96659958    mov byte [bp-004h], al                    ; 88 46 fc
    96669959    mov ax, strict word 0000ch                ; b8 0c 00
    9667     call 016ach                               ; e8 ff aa
     9960    call 016ach                               ; e8 b2 a7
    96689961    mov dh, al                                ; 88 c6
    96699962    test dl, 060h                             ; f6 c2 60
    9670     je near 06c3ch                            ; 0f 84 86 00
     9963    je near 06f89h                            ; 0f 84 86 00
    96719964    test AL, strict byte 020h                 ; a8 20
    9672     je short 06bbeh                           ; 74 04
     9965    je short 06f0bh                           ; 74 04
    96739966    sti                                       ; fb
    96749967    int 04ah                                  ; cd 4a
    96759968    cli                                       ; fa
    96769969    test dh, 040h                             ; f6 c6 40
    9677     je near 06c3ch                            ; 0f 84 77 00
     9970    je near 06f89h                            ; 0f 84 77 00
    96789971    mov dx, 000a0h                            ; ba a0 00
    96799972    mov ax, strict word 00040h                ; b8 40 00
    9680     call 01650h                               ; e8 82 aa
     9973    call 01650h                               ; e8 35 a7
    96819974    test al, al                               ; 84 c0
    9682     je short 06c3ch                           ; 74 6a
     9975    je short 06f89h                           ; 74 6a
    96839976    mov dx, 0009ch                            ; ba 9c 00
    96849977    mov ax, strict word 00040h                ; b8 40 00
    9685     call 01688h                               ; e8 ad aa
     9978    call 01688h                               ; e8 60 a7
    96869979    test dx, dx                               ; 85 d2
    9687     jne short 06c28h                          ; 75 49
     9980    jne short 06f75h                          ; 75 49
    96889981    cmp ax, 003d1h                            ; 3d d1 03
    9689     jnc short 06c28h                          ; 73 44
     9982    jnc short 06f75h                          ; 73 44
    96909983    mov dx, 00098h                            ; ba 98 00
    96919984    mov ax, strict word 00040h                ; b8 40 00
    9692     call 0166ch                               ; e8 7f aa
     9985    call 0166ch                               ; e8 32 a7
    96939986    mov si, ax                                ; 89 c6
    96949987    mov dx, 0009ah                            ; ba 9a 00
    96959988    mov ax, strict word 00040h                ; b8 40 00
    9696     call 0166ch                               ; e8 74 aa
     9989    call 0166ch                               ; e8 27 a7
    96979990    mov cx, ax                                ; 89 c1
    96989991    xor bx, bx                                ; 31 db
    96999992    mov dx, 000a0h                            ; ba a0 00
    97009993    mov ax, strict word 00040h                ; b8 40 00
    9701     call 0165eh                               ; e8 59 aa
     9994    call 0165eh                               ; e8 0c a7
    97029995    mov al, byte [bp-004h]                    ; 8a 46 fc
    97039996    and AL, strict byte 037h                  ; 24 37
    97049997    movzx dx, al                              ; 0f b6 d0
    97059998    mov ax, strict word 0000bh                ; b8 0b 00
    9706     call 016c9h                               ; e8 b6 aa
     9999    call 016c9h                               ; e8 69 a7
    970710000    mov dx, cx                                ; 89 ca
    970810001    mov ax, si                                ; 89 f0
    9709     call 01650h                               ; e8 36 aa
     10002    call 01650h                               ; e8 e9 a6
    971010003    or AL, strict byte 080h                   ; 0c 80
    971110004    movzx bx, al                              ; 0f b6 d8
    971210005    mov dx, cx                                ; 89 ca
    971310006    mov ax, si                                ; 89 f0
    9714     call 0165eh                               ; e8 38 aa
    9715     jmp short 06c3ch                          ; eb 14
     10007    call 0165eh                               ; e8 eb a6
     10008    jmp short 06f89h                          ; eb 14
    971610009    mov bx, ax                                ; 89 c3
    971710010    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    972010013    mov dx, 0009ch                            ; ba 9c 00
    972110014    mov ax, strict word 00040h                ; b8 40 00
    9722     call 0169ah                               ; e8 5e aa
    9723     call 0e030h                               ; e8 f1 73
     10015    call 0169ah                               ; e8 11 a7
     10016    call 0e030h                               ; e8 a4 70
    972410017    lea sp, [bp-002h]                         ; 8d 66 fe
    972510018    pop si                                    ; 5e
    972610019    pop bp                                    ; 5d
    972710020    retn                                      ; c3
    9728     insb                                      ; 6c
    9729     insb                                      ; 6c
    9730     xchg bp, ax                               ; 95
    9731     insb                                      ; 6c
    9732     mov dx, 0ec6ch                            ; ba 6c ec
    9733     insb                                      ; 6c
    9734     cmp bp, word [di+073h]                    ; 3b 6d 73
    9735     insw                                      ; 6d
    9736     mov DH, strict byte 06dh                  ; b6 6d
    9737     db  00dh
    9738     outsb                                     ; 6e
    9739 _int1a_function:                             ; 0xf6c55 LB 0x1c8
     10021    mov cx, 0e26fh                            ; b9 6f e2
     10022    outsw                                     ; 6f
     10023    pop ES                                    ; 07
     10024    jo short 06fd2h                           ; 70 39
     10025    jo short 06f23h                           ; 70 88
     10026    jo short 06f5dh                           ; 70 c0
     10027    jo short 06fa2h                           ; 70 03
     10028    jno short 06ffbh                          ; 71 5a
     10029    db  071h
     10030_int1a_function:                             ; 0xf6fa2 LB 0x1c8
    974010031    push bp                                   ; 55
    974110032    mov bp, sp                                ; 89 e5
     
    974310034    mov al, byte [bp+013h]                    ; 8a 46 13
    974410035    cmp AL, strict byte 007h                  ; 3c 07
    9745     jnbe near 06c91h                          ; 0f 87 2f 00
     10036    jnbe near 06fdeh                          ; 0f 87 2f 00
    974610037    movzx bx, al                              ; 0f b6 d8
    974710038    add bx, bx                                ; 01 db
    9748     jmp word [cs:bx+06c45h]                   ; 2e ff a7 45 6c
     10039    jmp word [cs:bx+06f92h]                   ; 2e ff a7 92 6f
    974910040    cli                                       ; fa
    975010041    mov bx, 0046eh                            ; bb 6e 04
     
    977710068    sti                                       ; fb
    977810069    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9779     jmp short 06c91h                          ; eb d7
    9780     call 06b76h                               ; e8 b9 fe
     10070    jmp short 06fdeh                          ; eb d7
     10071    call 06ec3h                               ; e8 b9 fe
    978110072    test ax, ax                               ; 85 c0
    9782     je short 06cc3h                           ; 74 02
    9783     jmp short 06c91h                          ; eb ce
     10073    je short 07010h                           ; 74 02
     10074    jmp short 06fdeh                          ; eb ce
    978410075    xor ax, ax                                ; 31 c0
    9785     call 016ach                               ; e8 e4 a9
     10076    call 016ach                               ; e8 97 a6
    978610077    mov byte [bp+00fh], al                    ; 88 46 0f
    978710078    mov ax, strict word 00002h                ; b8 02 00
    9788     call 016ach                               ; e8 db a9
     10079    call 016ach                               ; e8 8e a6
    978910080    mov byte [bp+010h], al                    ; 88 46 10
    979010081    mov ax, strict word 00004h                ; b8 04 00
    9791     call 016ach                               ; e8 d2 a9
     10082    call 016ach                               ; e8 85 a6
    979210083    mov bl, al                                ; 88 c3
    979310084    mov byte [bp+011h], al                    ; 88 46 11
    979410085    mov ax, strict word 0000bh                ; b8 0b 00
    9795     call 016ach                               ; e8 c7 a9
     10086    call 016ach                               ; e8 7a a6
    979610087    and AL, strict byte 001h                  ; 24 01
    979710088    mov byte [bp+00eh], al                    ; 88 46 0e
    9798     jmp short 06d31h                          ; eb 45
    9799     call 06b76h                               ; e8 87 fe
     10089    jmp short 0707eh                          ; eb 45
     10090    call 06ec3h                               ; e8 87 fe
    980010091    test ax, ax                               ; 85 c0
    9801     je short 06cf6h                           ; 74 03
    9802     call 06b4eh                               ; e8 58 fe
     10092    je short 07043h                           ; 74 03
     10093    call 06e9bh                               ; e8 58 fe
    980310094    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    980410095    xor ax, ax                                ; 31 c0
    9805     call 016c9h                               ; e8 ca a9
     10096    call 016c9h                               ; e8 7d a6
    980610097    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    980710098    mov ax, strict word 00002h                ; b8 02 00
    9808     call 016c9h                               ; e8 c0 a9
     10099    call 016c9h                               ; e8 73 a6
    980910100    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    981010101    mov ax, strict word 00004h                ; b8 04 00
    9811     call 016c9h                               ; e8 b6 a9
     10102    call 016c9h                               ; e8 69 a6
    981210103    mov ax, strict word 0000bh                ; b8 0b 00
    9813     call 016ach                               ; e8 93 a9
     10104    call 016ach                               ; e8 46 a6
    981410105    mov bl, al                                ; 88 c3
    981510106    and bl, 060h                              ; 80 e3 60
     
    982010111    movzx dx, bl                              ; 0f b6 d3
    982110112    mov ax, strict word 0000bh                ; b8 0b 00
    9822     call 016c9h                               ; e8 98 a9
     10113    call 016c9h                               ; e8 4b a6
    982310114    mov byte [bp+013h], 000h                  ; c6 46 13 00
    982410115    mov byte [bp+012h], bl                    ; 88 5e 12
    9825     jmp near 06c91h                           ; e9 56 ff
     10116    jmp near 06fdeh                           ; e9 56 ff
    982610117    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9827     call 06b76h                               ; e8 34 fe
     10118    call 06ec3h                               ; e8 34 fe
    982810119    test ax, ax                               ; 85 c0
    9829     je short 06d49h                           ; 74 03
    9830     jmp near 06c91h                           ; e9 48 ff
     10120    je short 07096h                           ; 74 03
     10121    jmp near 06fdeh                           ; e9 48 ff
    983110122    mov ax, strict word 00009h                ; b8 09 00
    9832     call 016ach                               ; e8 5d a9
     10123    call 016ach                               ; e8 10 a6
    983310124    mov byte [bp+010h], al                    ; 88 46 10
    983410125    mov ax, strict word 00008h                ; b8 08 00
    9835     call 016ach                               ; e8 54 a9
     10126    call 016ach                               ; e8 07 a6
    983610127    mov byte [bp+00fh], al                    ; 88 46 0f
    983710128    mov ax, strict word 00007h                ; b8 07 00
    9838     call 016ach                               ; e8 4b a9
     10129    call 016ach                               ; e8 fe a5
    983910130    mov byte [bp+00eh], al                    ; 88 46 0e
    984010131    mov ax, strict word 00032h                ; b8 32 00
    9841     call 016ach                               ; e8 42 a9
     10132    call 016ach                               ; e8 f5 a5
    984210133    mov byte [bp+011h], al                    ; 88 46 11
    984310134    mov byte [bp+012h], al                    ; 88 46 12
    9844     jmp near 06c91h                           ; e9 1e ff
    9845     call 06b76h                               ; e8 00 fe
     10135    jmp near 06fdeh                           ; e9 1e ff
     10136    call 06ec3h                               ; e8 00 fe
    984610137    test ax, ax                               ; 85 c0
    9847     je short 06d80h                           ; 74 06
    9848     call 06b4eh                               ; e8 d1 fd
    9849     jmp near 06c91h                           ; e9 11 ff
     10138    je short 070cdh                           ; 74 06
     10139    call 06e9bh                               ; e8 d1 fd
     10140    jmp near 06fdeh                           ; e9 11 ff
    985010141    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    985110142    mov ax, strict word 00009h                ; b8 09 00
    9852     call 016c9h                               ; e8 3f a9
     10143    call 016c9h                               ; e8 f2 a5
    985310144    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    985410145    mov ax, strict word 00008h                ; b8 08 00
    9855     call 016c9h                               ; e8 35 a9
     10146    call 016c9h                               ; e8 e8 a5
    985610147    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    985710148    mov ax, strict word 00007h                ; b8 07 00
    9858     call 016c9h                               ; e8 2b a9
     10149    call 016c9h                               ; e8 de a5
    985910150    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    986010151    mov ax, strict word 00032h                ; b8 32 00
    9861     call 016c9h                               ; e8 21 a9
     10152    call 016c9h                               ; e8 d4 a5
    986210153    mov ax, strict word 0000bh                ; b8 0b 00
    9863     call 016ach                               ; e8 fe a8
     10154    call 016ach                               ; e8 b1 a5
    986410155    mov bl, al                                ; 88 c3
    986510156    and bl, 07fh                              ; 80 e3 7f
    9866     jmp near 06d28h                           ; e9 72 ff
     10157    jmp near 07075h                           ; e9 72 ff
    986710158    mov ax, strict word 0000bh                ; b8 0b 00
    9868     call 016ach                               ; e8 f0 a8
     10159    call 016ach                               ; e8 a3 a5
    986910160    mov bl, al                                ; 88 c3
    987010161    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    987110162    test AL, strict byte 020h                 ; a8 20
    9872     je short 06dcah                           ; 74 03
    9873     jmp near 06c91h                           ; e9 c7 fe
    9874     call 06b76h                               ; e8 a9 fd
     10163    je short 07117h                           ; 74 03
     10164    jmp near 06fdeh                           ; e9 c7 fe
     10165    call 06ec3h                               ; e8 a9 fd
    987510166    test ax, ax                               ; 85 c0
    9876     je short 06dd4h                           ; 74 03
    9877     call 06b4eh                               ; e8 7a fd
     10167    je short 07121h                           ; 74 03
     10168    call 06e9bh                               ; e8 7a fd
    987810169    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    987910170    mov ax, strict word 00001h                ; b8 01 00
    9880     call 016c9h                               ; e8 eb a8
     10171    call 016c9h                               ; e8 9e a5
    988110172    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    988210173    mov ax, strict word 00003h                ; b8 03 00
    9883     call 016c9h                               ; e8 e1 a8
     10174    call 016c9h                               ; e8 94 a5
    988410175    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    988510176    mov ax, strict word 00005h                ; b8 05 00
    9886     call 016c9h                               ; e8 d7 a8
     10177    call 016c9h                               ; e8 8a a5
    988710178    mov dx, 000a1h                            ; ba a1 00
    988810179    in AL, DX                                 ; ec
     
    989610187    movzx dx, al                              ; 0f b6 d0
    989710188    mov ax, strict word 0000bh                ; b8 0b 00
    9898     call 016c9h                               ; e8 bf a8
    9899     jmp near 06c91h                           ; e9 84 fe
     10189    call 016c9h                               ; e8 72 a5
     10190    jmp near 06fdeh                           ; e9 84 fe
    990010191    mov ax, strict word 0000bh                ; b8 0b 00
    9901     call 016ach                               ; e8 99 a8
     10192    call 016ach                               ; e8 4c a5
    990210193    mov bl, al                                ; 88 c3
    990310194    and AL, strict byte 057h                  ; 24 57
    990410195    movzx dx, al                              ; 0f b6 d0
    9905     jmp near 06d2bh                           ; e9 0e ff
    9906 send_to_mouse_ctrl_:                         ; 0xf6e1d LB 0x34
     10196    jmp near 07078h                           ; e9 0e ff
     10197send_to_mouse_ctrl_:                         ; 0xf716a LB 0x34
    990710198    push bp                                   ; 55
    990810199    mov bp, sp                                ; 89 e5
     
    991510206    ; sub ah, ah                                ; 2a e4
    991610207    test AL, strict byte 002h                 ; a8 02
    9917     je short 06e3ch                           ; 74 0e
    9918     push 008f6h                               ; 68 f6 08
    9919     push 0116ah                               ; 68 6a 11
     10208    je short 07189h                           ; 74 0e
     10209    push 008eeh                               ; 68 ee 08
     10210    push 01168h                               ; 68 68 11
    992010211    push strict byte 00007h                   ; 6a 07
    9921     call 01972h                               ; e8 39 ab
     10212    call 01972h                               ; e8 ec a7
    992210213    add sp, strict byte 00006h                ; 83 c4 06
    992310214    mov AL, strict byte 0d4h                  ; b0 d4
     
    993310224    pop bp                                    ; 5d
    993410225    retn                                      ; c3
    9935 get_mouse_data_:                             ; 0xf6e51 LB 0x3b
     10226get_mouse_data_:                             ; 0xf719e LB 0x3b
    993610227    push bp                                   ; 55
    993710228    mov bp, sp                                ; 89 e5
     
    994710238    and ax, strict word 00021h                ; 25 21 00
    994810239    cmp ax, strict word 00021h                ; 3d 21 00
    9949     je short 06e72h                           ; 74 07
     10240    je short 071bfh                           ; 74 07
    995010241    test cx, cx                               ; 85 c9
    9951     je short 06e72h                           ; 74 03
     10242    je short 071bfh                           ; 74 03
    995210243    dec cx                                    ; 49
    9953     jmp short 06e5dh                          ; eb eb
     10244    jmp short 071aah                          ; eb eb
    995410245    test cx, cx                               ; 85 c9
    9955     jne short 06e7ah                          ; 75 04
     10246    jne short 071c7h                          ; 75 04
    995610247    mov AL, strict byte 001h                  ; b0 01
    9957     jmp short 06e85h                          ; eb 0b
     10248    jmp short 071d2h                          ; eb 0b
    995810249    mov dx, strict word 00060h                ; ba 60 00
    995910250    in AL, DX                                 ; ec
     
    996710258    pop bp                                    ; 5d
    996810259    retn                                      ; c3
    9969 set_kbd_command_byte_:                       ; 0xf6e8c LB 0x32
     10260set_kbd_command_byte_:                       ; 0xf71d9 LB 0x32
    997010261    push bp                                   ; 55
    997110262    mov bp, sp                                ; 89 e5
     
    997810269    ; sub ah, ah                                ; 2a e4
    997910270    test AL, strict byte 002h                 ; a8 02
    9980     je short 06eabh                           ; 74 0e
    9981     push 00900h                               ; 68 00 09
    9982     push 0116ah                               ; 68 6a 11
     10271    je short 071f8h                           ; 74 0e
     10272    push 008f8h                               ; 68 f8 08
     10273    push 01168h                               ; 68 68 11
    998310274    push strict byte 00007h                   ; 6a 07
    9984     call 01972h                               ; e8 ca aa
     10275    call 01972h                               ; e8 7d a7
    998510276    add sp, strict byte 00006h                ; 83 c4 06
    998610277    mov AL, strict byte 060h                  ; b0 60
     
    999510286    pop bp                                    ; 5d
    999610287    retn                                      ; c3
    9997 _int74_function:                             ; 0xf6ebe LB 0xca
     10288_int74_function:                             ; 0xf720b LB 0xca
    999810289    push bp                                   ; 55
    999910290    mov bp, sp                                ; 89 e5
     
    1000110292    mov dx, strict word 0000eh                ; ba 0e 00
    1000210293    mov ax, strict word 00040h                ; b8 40 00
    10003     call 0166ch                               ; e8 9f a7
     10294    call 0166ch                               ; e8 52 a4
    1000410295    mov cx, ax                                ; 89 c1
    1000510296    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1001010301    and AL, strict byte 021h                  ; 24 21
    1001110302    cmp AL, strict byte 021h                  ; 3c 21
    10012     jne near 06f74h                           ; 0f 85 92 00
     10303    jne near 072c1h                           ; 0f 85 92 00
    1001310304    mov dx, strict word 00060h                ; ba 60 00
    1001410305    in AL, DX                                 ; ec
     
    1001810309    mov dx, strict word 00026h                ; ba 26 00
    1001910310    mov ax, cx                                ; 89 c8
    10020     call 01650h                               ; e8 5e a7
     10311    call 01650h                               ; e8 11 a4
    1002110312    mov byte [bp-006h], al                    ; 88 46 fa
    1002210313    mov dx, strict word 00027h                ; ba 27 00
    1002310314    mov ax, cx                                ; 89 c8
    10024     call 01650h                               ; e8 53 a7
     10315    call 01650h                               ; e8 06 a4
    1002510316    mov byte [bp-008h], al                    ; 88 46 f8
    1002610317    test AL, strict byte 080h                 ; a8 80
    10027     je short 06f74h                           ; 74 70
     10318    je short 072c1h                           ; 74 70
    1002810319    mov al, byte [bp-008h]                    ; 8a 46 f8
    1002910320    and AL, strict byte 007h                  ; 24 07
     
    1003610327    add dx, strict byte 00028h                ; 83 c2 28
    1003710328    mov ax, cx                                ; 89 c8
    10038     call 0165eh                               ; e8 3d a7
     10329    call 0165eh                               ; e8 f0 a3
    1003910330    mov al, byte [bp-004h]                    ; 8a 46 fc
    1004010331    cmp al, byte [bp-002h]                    ; 3a 46 fe
    10041     jc short 06f65h                           ; 72 3c
     10332    jc short 072b2h                           ; 72 3c
    1004210333    mov dx, strict word 00028h                ; ba 28 00
    1004310334    mov ax, cx                                ; 89 c8
    10044     call 01650h                               ; e8 1f a7
     10335    call 01650h                               ; e8 d2 a3
    1004510336    xor ah, ah                                ; 30 e4
    1004610337    mov word [bp+00ch], ax                    ; 89 46 0c
    1004710338    mov dx, strict word 00029h                ; ba 29 00
    1004810339    mov ax, cx                                ; 89 c8
    10049     call 01650h                               ; e8 12 a7
     10340    call 01650h                               ; e8 c5 a3
    1005010341    xor ah, ah                                ; 30 e4
    1005110342    mov word [bp+00ah], ax                    ; 89 46 0a
    1005210343    mov dx, strict word 0002ah                ; ba 2a 00
    1005310344    mov ax, cx                                ; 89 c8
    10054     call 01650h                               ; e8 05 a7
     10345    call 01650h                               ; e8 b8 a3
    1005510346    xor ah, ah                                ; 30 e4
    1005610347    mov word [bp+008h], ax                    ; 89 46 08
     
    1005910350    mov byte [bp-006h], ah                    ; 88 66 fa
    1006010351    test byte [bp-008h], 080h                 ; f6 46 f8 80
    10061     je short 06f68h                           ; 74 0a
     10352    je short 072b5h                           ; 74 0a
    1006210353    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10063     jmp short 06f68h                          ; eb 03
     10354    jmp short 072b5h                          ; eb 03
    1006410355    inc byte [bp-006h]                        ; fe 46 fa
    1006510356    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1006610357    mov dx, strict word 00026h                ; ba 26 00
    1006710358    mov ax, cx                                ; 89 c8
    10068     call 0165eh                               ; e8 ea a6
     10359    call 0165eh                               ; e8 9d a3
    1006910360    mov sp, bp                                ; 89 ec
    1007010361    pop bp                                    ; 5d
    1007110362    retn                                      ; c3
    10072     int3                                      ; cc
    10073     outsw                                     ; 6f
    10074     inc dx                                    ; 42
    10075     jo short 06f42h                           ; 70 c5
    10076     jo short 06fd5h                           ; 70 56
    10077     jno short 06f45h                          ; 71 c4
    10078     jno short 06f9bh                          ; 71 18
    10079     jo short 06f71h                           ; 70 ec
    10080     jno short 06f38h                          ; 71 b1
    10081     db  072h
    10082 _int15_function_mouse:                       ; 0xf6f88 LB 0x38b
     10363    sbb word [bp+di-071h], si                 ; 19 73 8f
     10364    jnc short 072dch                          ; 73 12
     10365    je short 0726fh                           ; 74 a3
     10366    je short 072dfh                           ; 74 11
     10367    jne short 07335h                          ; 75 65
     10368    jnc short 0730bh                          ; 73 39
     10369    jne short 072d2h                          ; 75 fe
     10370    db  075h
     10371_int15_function_mouse:                       ; 0xf72d5 LB 0x38b
    1008310372    push bp                                   ; 55
    1008410373    mov bp, sp                                ; 89 e5
     
    1008710376    mov dx, strict word 0000eh                ; ba 0e 00
    1008810377    mov ax, strict word 00040h                ; b8 40 00
    10089     call 0166ch                               ; e8 d4 a6
     10378    call 0166ch                               ; e8 87 a3
    1009010379    mov cx, ax                                ; 89 c1
    1009110380    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10092     jbe short 06fabh                          ; 76 0b
     10381    jbe short 072f8h                          ; 76 0b
    1009310382    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1009410383    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10095     jmp near 0730dh                           ; e9 62 03
     10384    jmp near 0765ah                           ; e9 62 03
    1009610385    mov ax, strict word 00065h                ; b8 65 00
    10097     call 06e8ch                               ; e8 db fe
     10386    call 071d9h                               ; e8 db fe
    1009810387    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1009910388    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1010010389    mov al, byte [bp+012h]                    ; 8a 46 12
    1010110390    cmp AL, strict byte 007h                  ; 3c 07
    10102     jnbe near 072f4h                          ; 0f 87 32 03
     10391    jnbe near 07641h                          ; 0f 87 32 03
    1010310392    movzx si, al                              ; 0f b6 f0
    1010410393    add si, si                                ; 01 f6
    10105     jmp word [cs:si+06f78h]                   ; 2e ff a4 78 6f
     10394    jmp word [cs:si+072c5h]                   ; 2e ff a4 c5 72
    1010610395    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10107     jnbe near 072ffh                          ; 0f 87 2b 03
     10396    jnbe near 0764ch                          ; 0f 87 2b 03
    1010810397    mov dx, strict word 00027h                ; ba 27 00
    1010910398    mov ax, cx                                ; 89 c8
    10110     call 01650h                               ; e8 74 a6
     10399    call 01650h                               ; e8 27 a3
    1011110400    test AL, strict byte 080h                 ; a8 80
    10112     jne short 06febh                          ; 75 0b
     10401    jne short 07338h                          ; 75 0b
    1011310402    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1011410403    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10115     jmp near 07307h                           ; e9 1c 03
     10404    jmp near 07654h                           ; e9 1c 03
    1011610405    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    1011710406    db  00fh, 094h, 0c0h
     
    1011910408    add AL, strict byte 0f4h                  ; 04 f4
    1012010409    xor ah, ah                                ; 30 e4
    10121     call 06e1dh                               ; e8 24 fe
     10410    call 0716ah                               ; e8 24 fe
    1012210411    test al, al                               ; 84 c0
    10123     jne near 0728dh                           ; 0f 85 8e 02
     10412    jne near 075dah                           ; 0f 85 8e 02
    1012410413    mov dx, ss                                ; 8c d2
    1012510414    lea ax, [bp-008h]                         ; 8d 46 f8
    10126     call 06e51h                               ; e8 4a fe
     10415    call 0719eh                               ; e8 4a fe
    1012710416    test al, al                               ; 84 c0
    10128     je near 07307h                            ; 0f 84 fa 02
     10417    je near 07654h                            ; 0f 84 fa 02
    1012910418    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10130     jne near 0728dh                           ; 0f 85 78 02
    10131     jmp near 07307h                           ; e9 ef 02
     10419    jne near 075dah                           ; 0f 85 78 02
     10420    jmp near 07654h                           ; e9 ef 02
    1013210421    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1013310422    cmp AL, strict byte 001h                  ; 3c 01
    10134     jc short 07023h                           ; 72 04
     10423    jc short 07370h                           ; 72 04
    1013510424    cmp AL, strict byte 008h                  ; 3c 08
    10136     jbe short 07026h                          ; 76 03
    10137     jmp near 071b9h                           ; e9 93 01
     10425    jbe short 07373h                          ; 76 03
     10426    jmp near 07506h                           ; e9 93 01
    1013810427    mov dx, strict word 00027h                ; ba 27 00
    1013910428    mov ax, cx                                ; 89 c8
    10140     call 01650h                               ; e8 22 a6
     10429    call 01650h                               ; e8 d5 a2
    1014110430    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1014210431    db  0feh, 0cch
     
    1014710436    mov dx, strict word 00027h                ; ba 27 00
    1014810437    mov ax, cx                                ; 89 c8
    10149     call 0165eh                               ; e8 1c a6
     10438    call 0165eh                               ; e8 cf a2
    1015010439    mov dx, strict word 00026h                ; ba 26 00
    1015110440    mov ax, cx                                ; 89 c8
    10152     call 01650h                               ; e8 06 a6
     10441    call 01650h                               ; e8 b9 a2
    1015310442    and AL, strict byte 0f8h                  ; 24 f8
    1015410443    movzx bx, al                              ; 0f b6 d8
    1015510444    mov dx, strict word 00026h                ; ba 26 00
    1015610445    mov ax, cx                                ; 89 c8
    10157     call 0165eh                               ; e8 07 a6
     10446    call 0165eh                               ; e8 ba a2
    1015810447    mov ax, 000ffh                            ; b8 ff 00
    10159     call 06e1dh                               ; e8 c0 fd
     10448    call 0716ah                               ; e8 c0 fd
    1016010449    test al, al                               ; 84 c0
    10161     jne near 0728dh                           ; 0f 85 2a 02
     10450    jne near 075dah                           ; 0f 85 2a 02
    1016210451    mov dx, ss                                ; 8c d2
    1016310452    lea ax, [bp-004h]                         ; 8d 46 fc
    10164     call 06e51h                               ; e8 e6 fd
     10453    call 0719eh                               ; e8 e6 fd
    1016510454    mov cl, al                                ; 88 c1
    1016610455    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10167     jne short 0707eh                          ; 75 0b
     10456    jne short 073cbh                          ; 75 0b
    1016810457    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1016910458    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10170     jmp near 07307h                           ; e9 89 02
     10459    jmp near 07654h                           ; e9 89 02
    1017110460    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10172     je short 07094h                           ; 74 10
     10461    je short 073e1h                           ; 74 10
    1017310462    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1017410463    push ax                                   ; 50
    10175     push 0090bh                               ; 68 0b 09
     10464    push 00903h                               ; 68 03 09
    1017610465    push strict byte 00007h                   ; 6a 07
    10177     call 01972h                               ; e8 e1 a8
     10466    call 01972h                               ; e8 94 a5
    1017810467    add sp, strict byte 00006h                ; 83 c4 06
    1017910468    test cl, cl                               ; 84 c9
    10180     jne near 0728dh                           ; 0f 85 f3 01
     10469    jne near 075dah                           ; 0f 85 f3 01
    1018110470    mov dx, ss                                ; 8c d2
    1018210471    lea ax, [bp-008h]                         ; 8d 46 f8
    10183     call 06e51h                               ; e8 af fd
     10472    call 0719eh                               ; e8 af fd
    1018410473    test al, al                               ; 84 c0
    10185     jne near 0728dh                           ; 0f 85 e5 01
     10474    jne near 075dah                           ; 0f 85 e5 01
    1018610475    mov dx, ss                                ; 8c d2
    1018710476    lea ax, [bp-006h]                         ; 8d 46 fa
    10188     call 06e51h                               ; e8 a1 fd
     10477    call 0719eh                               ; e8 a1 fd
    1018910478    test al, al                               ; 84 c0
    10190     jne near 0728dh                           ; 0f 85 d7 01
     10479    jne near 075dah                           ; 0f 85 d7 01
    1019110480    mov al, byte [bp-008h]                    ; 8a 46 f8
    1019210481    mov byte [bp+00ch], al                    ; 88 46 0c
    1019310482    mov al, byte [bp-006h]                    ; 8a 46 fa
    1019410483    mov byte [bp+00dh], al                    ; 88 46 0d
    10195     jmp near 07307h                           ; e9 42 02
     10484    jmp near 07654h                           ; e9 42 02
    1019610485    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1019710486    cmp AL, strict byte 003h                  ; 3c 03
    10198     jc short 070dch                           ; 72 10
    10199     jbe short 070fah                          ; 76 2c
     10487    jc short 07429h                           ; 72 10
     10488    jbe short 07447h                          ; 76 2c
    1020010489    cmp AL, strict byte 006h                  ; 3c 06
    10201     je short 0710ch                           ; 74 3a
     10490    je short 07459h                           ; 74 3a
    1020210491    cmp AL, strict byte 005h                  ; 3c 05
    10203     je short 07106h                           ; 74 30
     10492    je short 07453h                           ; 74 30
    1020410493    cmp AL, strict byte 004h                  ; 3c 04
    10205     je short 07100h                           ; 74 26
    10206     jmp short 07112h                          ; eb 36
     10494    je short 0744dh                           ; 74 26
     10495    jmp short 0745fh                          ; eb 36
    1020710496    cmp AL, strict byte 002h                  ; 3c 02
    10208     je short 070f4h                           ; 74 14
     10497    je short 07441h                           ; 74 14
    1020910498    cmp AL, strict byte 001h                  ; 3c 01
    10210     je short 070eeh                           ; 74 0a
     10499    je short 0743bh                           ; 74 0a
    1021110500    test al, al                               ; 84 c0
    10212     jne short 07112h                          ; 75 2a
     10501    jne short 0745fh                          ; 75 2a
    1021310502    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10214     jmp short 07116h                          ; eb 28
     10503    jmp short 07463h                          ; eb 28
    1021510504    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10216     jmp short 07116h                          ; eb 22
     10505    jmp short 07463h                          ; eb 22
    1021710506    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10218     jmp short 07116h                          ; eb 1c
     10507    jmp short 07463h                          ; eb 1c
    1021910508    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10220     jmp short 07116h                          ; eb 16
     10509    jmp short 07463h                          ; eb 16
    1022110510    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10222     jmp short 07116h                          ; eb 10
     10511    jmp short 07463h                          ; eb 10
    1022310512    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10224     jmp short 07116h                          ; eb 0a
     10513    jmp short 07463h                          ; eb 0a
    1022510514    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10226     jmp short 07116h                          ; eb 04
     10515    jmp short 07463h                          ; eb 04
    1022710516    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1022810517    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10229     jbe short 0714bh                          ; 76 2f
     10518    jbe short 07498h                          ; 76 2f
    1023010519    mov ax, 000f3h                            ; b8 f3 00
    10231     call 06e1dh                               ; e8 fb fc
     10520    call 0716ah                               ; e8 fb fc
    1023210521    test al, al                               ; 84 c0
    10233     jne short 07140h                          ; 75 1a
     10522    jne short 0748dh                          ; 75 1a
    1023410523    mov dx, ss                                ; 8c d2
    1023510524    lea ax, [bp-006h]                         ; 8d 46 fa
    10236     call 06e51h                               ; e8 23 fd
     10525    call 0719eh                               ; e8 23 fd
    1023710526    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10238     call 06e1dh                               ; e8 e8 fc
     10527    call 0716ah                               ; e8 e8 fc
    1023910528    mov dx, ss                                ; 8c d2
    1024010529    lea ax, [bp-006h]                         ; 8d 46 fa
    10241     call 06e51h                               ; e8 14 fd
    10242     jmp near 07307h                           ; e9 c7 01
     10530    call 0719eh                               ; e8 14 fd
     10531    jmp near 07654h                           ; e9 c7 01
    1024310532    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1024410533    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10245     jmp near 07307h                           ; e9 bc 01
     10534    jmp near 07654h                           ; e9 bc 01
    1024610535    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1024710536    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10248     jmp near 07307h                           ; e9 b1 01
     10537    jmp near 07654h                           ; e9 b1 01
    1024910538    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10250     jnc short 071b9h                          ; 73 5d
     10539    jnc short 07506h                          ; 73 5d
    1025110540    mov ax, 000e8h                            ; b8 e8 00
    10252     call 06e1dh                               ; e8 bb fc
     10541    call 0716ah                               ; e8 bb fc
    1025310542    test al, al                               ; 84 c0
    10254     jne short 071aeh                          ; 75 48
     10543    jne short 074fbh                          ; 75 48
    1025510544    mov dx, ss                                ; 8c d2
    1025610545    lea ax, [bp-008h]                         ; 8d 46 f8
    10257     call 06e51h                               ; e8 e3 fc
     10546    call 0719eh                               ; e8 e3 fc
    1025810547    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10259     je short 07184h                           ; 74 10
     10548    je short 074d1h                           ; 74 10
    1026010549    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1026110550    push ax                                   ; 50
    10262     push 00936h                               ; 68 36 09
     10551    push 0092eh                               ; 68 2e 09
    1026310552    push strict byte 00007h                   ; 6a 07
    10264     call 01972h                               ; e8 f1 a7
     10553    call 01972h                               ; e8 a4 a4
    1026510554    add sp, strict byte 00006h                ; 83 c4 06
    1026610555    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10267     call 06e1dh                               ; e8 92 fc
     10556    call 0716ah                               ; e8 92 fc
    1026810557    mov dx, ss                                ; 8c d2
    1026910558    lea ax, [bp-008h]                         ; 8d 46 f8
    10270     call 06e51h                               ; e8 be fc
     10559    call 0719eh                               ; e8 be fc
    1027110560    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10272     je near 07307h                            ; 0f 84 6c 01
     10561    je near 07654h                            ; 0f 84 6c 01
    1027310562    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1027410563    push ax                                   ; 50
    10275     push 00936h                               ; 68 36 09
     10564    push 0092eh                               ; 68 2e 09
    1027610565    push strict byte 00007h                   ; 6a 07
    10277     call 01972h                               ; e8 ca a7
     10566    call 01972h                               ; e8 7d a4
    1027810567    add sp, strict byte 00006h                ; 83 c4 06
    10279     jmp near 07307h                           ; e9 59 01
     10568    jmp near 07654h                           ; e9 59 01
    1028010569    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1028110570    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10282     jmp near 07307h                           ; e9 4e 01
     10571    jmp near 07654h                           ; e9 4e 01
    1028310572    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1028410573    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10285     jmp near 07307h                           ; e9 43 01
     10574    jmp near 07654h                           ; e9 43 01
    1028610575    mov ax, 000f2h                            ; b8 f2 00
    10287     call 06e1dh                               ; e8 53 fc
     10576    call 0716ah                               ; e8 53 fc
    1028810577    test al, al                               ; 84 c0
    10289     jne short 071e1h                          ; 75 13
     10578    jne short 0752eh                          ; 75 13
    1029010579    mov dx, ss                                ; 8c d2
    1029110580    lea ax, [bp-008h]                         ; 8d 46 f8
    10292     call 06e51h                               ; e8 7b fc
     10581    call 0719eh                               ; e8 7b fc
    1029310582    mov dx, ss                                ; 8c d2
    1029410583    lea ax, [bp-006h]                         ; 8d 46 fa
    10295     call 06e51h                               ; e8 73 fc
    10296     jmp near 070bch                           ; e9 db fe
     10584    call 0719eh                               ; e8 73 fc
     10585    jmp near 07409h                           ; e9 db fe
    1029710586    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1029810587    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10299     jmp near 07307h                           ; e9 1b 01
     10588    jmp near 07654h                           ; e9 1b 01
    1030010589    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1030110590    test al, al                               ; 84 c0
    10302     jbe short 071fah                          ; 76 07
     10591    jbe short 07547h                          ; 76 07
    1030310592    cmp AL, strict byte 002h                  ; 3c 02
    10304     jbe short 07263h                          ; 76 6c
    10305     jmp near 07297h                           ; e9 9d 00
     10593    jbe short 075b0h                          ; 76 6c
     10594    jmp near 075e4h                           ; e9 9d 00
    1030610595    mov ax, 000e9h                            ; b8 e9 00
    10307     call 06e1dh                               ; e8 1d fc
     10596    call 0716ah                               ; e8 1d fc
    1030810597    test al, al                               ; 84 c0
    10309     jne near 0728dh                           ; 0f 85 87 00
     10598    jne near 075dah                           ; 0f 85 87 00
    1031010599    mov dx, ss                                ; 8c d2
    1031110600    lea ax, [bp-008h]                         ; 8d 46 f8
    10312     call 06e51h                               ; e8 43 fc
     10601    call 0719eh                               ; e8 43 fc
    1031310602    mov cl, al                                ; 88 c1
    1031410603    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10315     je short 07226h                           ; 74 10
     10604    je short 07573h                           ; 74 10
    1031610605    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1031710606    push ax                                   ; 50
    10318     push 00936h                               ; 68 36 09
     10607    push 0092eh                               ; 68 2e 09
    1031910608    push strict byte 00007h                   ; 6a 07
    10320     call 01972h                               ; e8 4f a7
     10609    call 01972h                               ; e8 02 a4
    1032110610    add sp, strict byte 00006h                ; 83 c4 06
    1032210611    test cl, cl                               ; 84 c9
    10323     jne short 0728dh                          ; 75 63
     10612    jne short 075dah                          ; 75 63
    1032410613    mov dx, ss                                ; 8c d2
    1032510614    lea ax, [bp-008h]                         ; 8d 46 f8
    10326     call 06e51h                               ; e8 1f fc
     10615    call 0719eh                               ; e8 1f fc
    1032710616    test al, al                               ; 84 c0
    10328     jne short 0728dh                          ; 75 57
     10617    jne short 075dah                          ; 75 57
    1032910618    mov dx, ss                                ; 8c d2
    1033010619    lea ax, [bp-006h]                         ; 8d 46 fa
    10331     call 06e51h                               ; e8 13 fc
     10620    call 0719eh                               ; e8 13 fc
    1033210621    test al, al                               ; 84 c0
    10333     jne short 0728dh                          ; 75 4b
     10622    jne short 075dah                          ; 75 4b
    1033410623    mov dx, ss                                ; 8c d2
    1033510624    lea ax, [bp-004h]                         ; 8d 46 fc
    10336     call 06e51h                               ; e8 07 fc
     10625    call 0719eh                               ; e8 07 fc
    1033710626    test al, al                               ; 84 c0
    10338     jne short 0728dh                          ; 75 3f
     10627    jne short 075dah                          ; 75 3f
    1033910628    mov al, byte [bp-008h]                    ; 8a 46 f8
    1034010629    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1034310632    mov al, byte [bp-004h]                    ; 8a 46 fc
    1034410633    mov byte [bp+00eh], al                    ; 88 46 0e
    10345     jmp near 07307h                           ; e9 a4 00
     10634    jmp near 07654h                           ; e9 a4 00
    1034610635    cmp AL, strict byte 001h                  ; 3c 01
    10347     jne short 0726ch                          ; 75 05
     10636    jne short 075b9h                          ; 75 05
    1034810637    mov ax, 000e6h                            ; b8 e6 00
    10349     jmp short 0726fh                          ; eb 03
     10638    jmp short 075bch                          ; eb 03
    1035010639    mov ax, 000e7h                            ; b8 e7 00
    10351     call 06e1dh                               ; e8 ab fb
     10640    call 0716ah                               ; e8 ab fb
    1035210641    mov cl, al                                ; 88 c1
    1035310642    test cl, cl                               ; 84 c9
    10354     jne short 07287h                          ; 75 0f
     10643    jne short 075d4h                          ; 75 0f
    1035510644    mov dx, ss                                ; 8c d2
    1035610645    lea ax, [bp-008h]                         ; 8d 46 f8
    10357     call 06e51h                               ; e8 d1 fb
     10646    call 0719eh                               ; e8 d1 fb
    1035810647    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1035910648    db  00fh, 095h, 0c1h
    1036010649    ; setne cl                                  ; 0f 95 c1
    1036110650    test cl, cl                               ; 84 c9
    10362     je near 07307h                            ; 0f 84 7a 00
     10651    je near 07654h                            ; 0f 84 7a 00
    1036310652    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1036410653    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10365     jmp short 07307h                          ; eb 70
     10654    jmp short 07654h                          ; eb 70
    1036610655    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1036710656    push ax                                   ; 50
    10368     push 00962h                               ; 68 62 09
     10657    push 0095ah                               ; 68 5a 09
    1036910658    push strict byte 00007h                   ; 6a 07
    10370     call 01972h                               ; e8 ce a6
     10659    call 01972h                               ; e8 81 a3
    1037110660    add sp, strict byte 00006h                ; 83 c4 06
    1037210661    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1037310662    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10374     jmp short 07307h                          ; eb 56
     10663    jmp short 07654h                          ; eb 56
    1037510664    mov si, word [bp+00ch]                    ; 8b 76 0c
    1037610665    mov bx, si                                ; 89 f3
    1037710666    mov dx, strict word 00022h                ; ba 22 00
    1037810667    mov ax, cx                                ; 89 c8
    10379     call 0167ah                               ; e8 bc a3
     10668    call 0167ah                               ; e8 6f a0
    1038010669    mov bx, word [bp+014h]                    ; 8b 5e 14
    1038110670    mov dx, strict word 00024h                ; ba 24 00
    1038210671    mov ax, cx                                ; 89 c8
    10383     call 0167ah                               ; e8 b1 a3
     10672    call 0167ah                               ; e8 64 a0
    1038410673    mov dx, strict word 00027h                ; ba 27 00
    1038510674    mov ax, cx                                ; 89 c8
    10386     call 01650h                               ; e8 7f a3
     10675    call 01650h                               ; e8 32 a0
    1038710676    mov ah, al                                ; 88 c4
    1038810677    test si, si                               ; 85 f6
    10389     jne short 072e5h                          ; 75 0e
     10678    jne short 07632h                          ; 75 0e
    1039010679    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    10391     jne short 072e5h                          ; 75 08
     10680    jne short 07632h                          ; 75 08
    1039210681    test AL, strict byte 080h                 ; a8 80
    10393     je short 072e7h                           ; 74 06
     10682    je short 07634h                           ; 74 06
    1039410683    and AL, strict byte 07fh                  ; 24 7f
    10395     jmp short 072e7h                          ; eb 02
     10684    jmp short 07634h                          ; eb 02
    1039610685    or AL, strict byte 080h                   ; 0c 80
    1039710686    movzx bx, al                              ; 0f b6 d8
    1039810687    mov dx, strict word 00027h                ; ba 27 00
    1039910688    mov ax, cx                                ; 89 c8
    10400     call 0165eh                               ; e8 6c a3
    10401     jmp short 07307h                          ; eb 13
    10402     push 0097ch                               ; 68 7c 09
     10689    call 0165eh                               ; e8 1f a0
     10690    jmp short 07654h                          ; eb 13
     10691    push 00974h                               ; 68 74 09
    1040310692    push strict byte 00007h                   ; 6a 07
    10404     call 01972h                               ; e8 76 a6
     10693    call 01972h                               ; e8 29 a3
    1040510694    add sp, strict byte 00004h                ; 83 c4 04
    1040610695    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1040710696    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1040810697    mov ax, strict word 00047h                ; b8 47 00
    10409     call 06e8ch                               ; e8 7f fb
     10698    call 071d9h                               ; e8 7f fb
    1041010699    lea sp, [bp-002h]                         ; 8d 66 fe
    1041110700    pop si                                    ; 5e
    1041210701    pop bp                                    ; 5d
    1041310702    retn                                      ; c3
    10414 _int17_function:                             ; 0xf7313 LB 0xb3
     10703_int17_function:                             ; 0xf7660 LB 0xb3
    1041510704    push bp                                   ; 55
    1041610705    mov bp, sp                                ; 89 e5
     
    1042210711    add dx, strict byte 00008h                ; 83 c2 08
    1042310712    mov ax, strict word 00040h                ; b8 40 00
    10424     call 0166ch                               ; e8 45 a3
     10713    call 0166ch                               ; e8 f8 9f
    1042510714    mov bx, ax                                ; 89 c3
    1042610715    mov si, ax                                ; 89 c6
    1042710716    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    10428     jnc near 073bch                           ; 0f 83 89 00
     10717    jnc near 07709h                           ; 0f 83 89 00
    1042910718    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1043010719    cmp ax, strict word 00003h                ; 3d 03 00
    10431     jnc near 073bch                           ; 0f 83 7f 00
     10720    jnc near 07709h                           ; 0f 83 7f 00
    1043210721    test bx, bx                               ; 85 db
    10433     jbe near 073bch                           ; 0f 86 79 00
     10722    jbe near 07709h                           ; 0f 86 79 00
    1043410723    mov dx, ax                                ; 89 c2
    1043510724    add dx, strict byte 00078h                ; 83 c2 78
    1043610725    mov ax, strict word 00040h                ; b8 40 00
    10437     call 01650h                               ; e8 02 a3
     10726    call 01650h                               ; e8 b5 9f
    1043810727    movzx cx, al                              ; 0f b6 c8
    1043910728    sal cx, 008h                              ; c1 e1 08
    1044010729    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    10441     jne short 07387h                          ; 75 2d
     10730    jne short 076d4h                          ; 75 2d
    1044210731    mov al, byte [bp+012h]                    ; 8a 46 12
    1044310732    mov dx, bx                                ; 89 da
     
    1045910748    ; sub ah, ah                                ; 2a e4
    1046010749    test AL, strict byte 040h                 ; a8 40
    10461     je short 07387h                           ; 74 07
     10750    je short 076d4h                           ; 74 07
    1046210751    test cx, cx                               ; 85 c9
    10463     je short 07387h                           ; 74 03
     10752    je short 076d4h                           ; 74 03
    1046410753    dec cx                                    ; 49
    10465     jmp short 07376h                          ; eb ef
     10754    jmp short 076c3h                          ; eb ef
    1046610755    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    10467     jne short 073a3h                          ; 75 16
     10756    jne short 076f0h                          ; 75 16
    1046810757    lea dx, [si+002h]                         ; 8d 54 02
    1046910758    in AL, DX                                 ; ec
     
    1048410773    mov byte [bp+013h], al                    ; 88 46 13
    1048510774    test cx, cx                               ; 85 c9
    10486     jne short 073b6h                          ; 75 04
     10775    jne short 07703h                          ; 75 04
    1048710776    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1048810777    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    10489     jmp short 073c0h                          ; eb 04
     10778    jmp short 0770dh                          ; eb 04
    1049010779    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1049110780    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1049310782    pop bp                                    ; 5d
    1049410783    retn                                      ; c3
    10495 wait_:                                       ; 0xf73c6 LB 0xb2
     10784wait_:                                       ; 0xf7713 LB 0xb2
    1049610785    push bp                                   ; 55
    1049710786    mov bp, sp                                ; 89 e5
     
    1051110800    mov dx, 0046ch                            ; ba 6c 04
    1051210801    xor ax, ax                                ; 31 c0
    10513     call 01688h                               ; e8 9f a2
     10802    call 01688h                               ; e8 52 9f
    1051410803    mov word [bp-00eh], ax                    ; 89 46 f2
    1051510804    mov bx, dx                                ; 89 d3
     
    1051710806    mov dx, 0046ch                            ; ba 6c 04
    1051810807    xor ax, ax                                ; 31 c0
    10519     call 01688h                               ; e8 91 a2
     10808    call 01688h                               ; e8 44 9f
    1052010809    mov word [bp-012h], ax                    ; 89 46 ee
    1052110810    mov di, dx                                ; 89 d7
    1052210811    cmp dx, bx                                ; 39 da
    10523     jnbe short 07407h                         ; 77 07
    10524     jne short 0740eh                          ; 75 0c
     10812    jnbe short 07754h                         ; 77 07
     10813    jne short 0775bh                          ; 75 0c
    1052510814    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10526     jbe short 0740eh                          ; 76 07
     10815    jbe short 0775bh                          ; 76 07
    1052710816    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1052810817    sbb dx, bx                                ; 19 da
    10529     jmp short 07419h                          ; eb 0b
     10818    jmp short 07766h                          ; eb 0b
    1053010819    cmp dx, bx                                ; 39 da
    10531     jc short 07419h                           ; 72 07
    10532     jne short 0741dh                          ; 75 09
     10820    jc short 07766h                           ; 72 07
     10821    jne short 0776ah                          ; 75 09
    1053310822    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10534     jnc short 0741dh                          ; 73 04
     10823    jnc short 0776ah                          ; 73 04
    1053510824    sub si, ax                                ; 29 c6
    1053610825    sbb cx, dx                                ; 19 d1
     
    1054010829    mov ax, 00100h                            ; b8 00 01
    1054110830    int 016h                                  ; cd 16
    10542     je near 07433h                            ; 0f 84 05 00
     10831    je near 07780h                            ; 0f 84 05 00
    1054310832    mov AL, strict byte 001h                  ; b0 01
    10544     jmp near 07435h                           ; e9 02 00
     10833    jmp near 07782h                           ; e9 02 00
    1054510834    db  032h, 0c0h
    1054610835    ; xor al, al                                ; 32 c0
    1054710836    test al, al                               ; 84 c0
    10548     je short 0745dh                           ; 74 24
     10837    je short 077aah                           ; 74 24
    1054910838    db  033h, 0c0h
    1055010839    ; xor ax, ax                                ; 33 c0
     
    1055510844    movzx ax, dl                              ; 0f b6 c2
    1055610845    push ax                                   ; 50
    10557     push 0099eh                               ; 68 9e 09
     10846    push 00996h                               ; 68 96 09
    1055810847    push strict byte 00004h                   ; 6a 04
    10559     call 01972h                               ; e8 22 a5
     10848    call 01972h                               ; e8 d5 a1
    1056010849    add sp, strict byte 00006h                ; 83 c4 06
    1056110850    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10562     je short 0745dh                           ; 74 04
     10851    je short 077aah                           ; 74 04
    1056310852    mov al, dl                                ; 88 d0
    10564     jmp short 0746fh                          ; eb 12
     10853    jmp short 077bch                          ; eb 12
    1056510854    test cx, cx                               ; 85 c9
    10566     jnle short 073eeh                         ; 7f 8d
    10567     jne short 07467h                          ; 75 04
     10855    jnle short 0773bh                         ; 7f 8d
     10856    jne short 077b4h                          ; 75 04
    1056810857    test si, si                               ; 85 f6
    10569     jnbe short 073eeh                         ; 77 87
     10858    jnbe short 0773bh                         ; 77 87
    1057010859    mov ax, word [bp-010h]                    ; 8b 46 f0
    1057110860    push ax                                   ; 50
     
    1057910868    pop bp                                    ; 5d
    1058010869    retn                                      ; c3
    10581 read_logo_byte_:                             ; 0xf7478 LB 0x16
     10870read_logo_byte_:                             ; 0xf77c5 LB 0x16
    1058210871    push bp                                   ; 55
    1058310872    mov bp, sp                                ; 89 e5
     
    1059410883    pop bp                                    ; 5d
    1059510884    retn                                      ; c3
    10596 read_logo_word_:                             ; 0xf748e LB 0x14
     10885read_logo_word_:                             ; 0xf77db LB 0x14
    1059710886    push bp                                   ; 55
    1059810887    mov bp, sp                                ; 89 e5
     
    1060710896    pop bp                                    ; 5d
    1060810897    retn                                      ; c3
    10609 print_detected_harddisks_:                   ; 0xf74a2 LB 0x130
     10898print_detected_harddisks_:                   ; 0xf77ef LB 0x130
    1061010899    push bp                                   ; 55
    1061110900    mov bp, sp                                ; 89 e5
     
    1061910908    mov dx, strict word 0000eh                ; ba 0e 00
    1062010909    mov ax, strict word 00040h                ; b8 40 00
    10621     call 0166ch                               ; e8 b7 a1
     10910    call 0166ch                               ; e8 6a 9e
    1062210911    mov si, ax                                ; 89 c6
    1062310912    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1062410913    xor cl, cl                                ; 30 c9
    1062510914    xor ch, ch                                ; 30 ed
    10626     mov dx, 002c0h                            ; ba c0 02
    10627     call 01650h                               ; e8 8b a1
     10915    mov dx, 00304h                            ; ba 04 03
     10916    call 01650h                               ; e8 3e 9e
    1062810917    mov byte [bp-00eh], al                    ; 88 46 f2
    1062910918    xor bl, bl                                ; 30 db
    1063010919    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    10631     jnc near 075a4h                           ; 0f 83 d3 00
     10920    jnc near 078f1h                           ; 0f 83 d3 00
    1063210921    movzx dx, bl                              ; 0f b6 d3
    10633     add dx, 002c1h                            ; 81 c2 c1 02
     10922    add dx, 00305h                            ; 81 c2 05 03
    1063410923    mov ax, si                                ; 89 f0
    10635     call 01650h                               ; e8 73 a1
     10924    call 01650h                               ; e8 26 9e
    1063610925    mov bh, al                                ; 88 c7
    1063710926    cmp AL, strict byte 00ch                  ; 3c 0c
    10638     jc short 07507h                           ; 72 24
     10927    jc short 07854h                           ; 72 24
    1063910928    test cl, cl                               ; 84 c9
    10640     jne short 074f4h                          ; 75 0d
    10641     push 009afh                               ; 68 af 09
     10929    jne short 07841h                          ; 75 0d
     10930    push 009a7h                               ; 68 a7 09
    1064210931    push strict byte 00002h                   ; 6a 02
    10643     call 01972h                               ; e8 83 a4
     10932    call 01972h                               ; e8 36 a1
    1064410933    add sp, strict byte 00004h                ; 83 c4 04
    1064510934    mov CL, strict byte 001h                  ; b1 01
     
    1064710936    inc ax                                    ; 40
    1064810937    push ax                                   ; 50
    10649     push 009c4h                               ; 68 c4 09
     10938    push 009bch                               ; 68 bc 09
    1065010939    push strict byte 00002h                   ; 6a 02
    10651     call 01972h                               ; e8 71 a4
     10940    call 01972h                               ; e8 24 a1
    1065210941    add sp, strict byte 00006h                ; 83 c4 06
    10653     jmp near 0759fh                           ; e9 98 00
     10942    jmp near 078ech                           ; e9 98 00
    1065410943    cmp AL, strict byte 008h                  ; 3c 08
    10655     jc short 0751eh                           ; 72 13
     10944    jc short 0786bh                           ; 72 13
    1065610945    test ch, ch                               ; 84 ed
    10657     jne short 0751ch                          ; 75 0d
    10658     push 009d7h                               ; 68 d7 09
     10946    jne short 07869h                          ; 75 0d
     10947    push 009cfh                               ; 68 cf 09
    1065910948    push strict byte 00002h                   ; 6a 02
    10660     call 01972h                               ; e8 5b a4
     10949    call 01972h                               ; e8 0e a1
    1066110950    add sp, strict byte 00004h                ; 83 c4 04
    1066210951    mov CH, strict byte 001h                  ; b5 01
    10663     jmp short 074f4h                          ; eb d6
     10952    jmp short 07841h                          ; eb d6
    1066410953    cmp AL, strict byte 004h                  ; 3c 04
    10665     jnc short 07539h                          ; 73 17
     10954    jnc short 07886h                          ; 73 17
    1066610955    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10667     jne short 07539h                          ; 75 11
    10668     push 009ech                               ; 68 ec 09
     10956    jne short 07886h                          ; 75 11
     10957    push 009e4h                               ; 68 e4 09
    1066910958    push strict byte 00002h                   ; 6a 02
    10670     call 01972h                               ; e8 42 a4
     10959    call 01972h                               ; e8 f5 a0
    1067110960    add sp, strict byte 00004h                ; 83 c4 04
    1067210961    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    10673     jmp short 0754fh                          ; eb 16
     10962    jmp short 0789ch                          ; eb 16
    1067410963    cmp bh, 004h                              ; 80 ff 04
    10675     jc short 0754fh                           ; 72 11
     10964    jc short 0789ch                           ; 72 11
    1067610965    test cl, cl                               ; 84 c9
    10677     jne short 0754fh                          ; 75 0d
    10678     push 009feh                               ; 68 fe 09
     10966    jne short 0789ch                          ; 75 0d
     10967    push 009f6h                               ; 68 f6 09
    1067910968    push strict byte 00002h                   ; 6a 02
    10680     call 01972h                               ; e8 28 a4
     10969    call 01972h                               ; e8 db a0
    1068110970    add sp, strict byte 00004h                ; 83 c4 04
    1068210971    mov CL, strict byte 001h                  ; b1 01
     
    1068410973    inc ax                                    ; 40
    1068510974    push ax                                   ; 50
    10686     push 00a12h                               ; 68 12 0a
     10975    push 00a0ah                               ; 68 0a 0a
    1068710976    push strict byte 00002h                   ; 6a 02
    10688     call 01972h                               ; e8 16 a4
     10977    call 01972h                               ; e8 c9 a0
    1068910978    add sp, strict byte 00006h                ; 83 c4 06
    1069010979    cmp bh, 004h                              ; 80 ff 04
    10691     jc short 07567h                           ; 72 03
     10980    jc short 078b4h                           ; 72 03
    1069210981    sub bh, 004h                              ; 80 ef 04
    1069310982    movzx ax, bh                              ; 0f b6 c7
     
    1069710986    sar ax, 1                                 ; d1 f8
    1069810987    test ax, ax                               ; 85 c0
    10699     je short 07578h                           ; 74 05
    10700     push 00a1ch                               ; 68 1c 0a
    10701     jmp short 0757bh                          ; eb 03
    10702     push 00a27h                               ; 68 27 0a
     10988    je short 078c5h                           ; 74 05
     10989    push 00a14h                               ; 68 14 0a
     10990    jmp short 078c8h                          ; eb 03
     10991    push 00a1fh                               ; 68 1f 0a
    1070310992    push strict byte 00002h                   ; 6a 02
    10704     call 01972h                               ; e8 f2 a3
     10993    call 01972h                               ; e8 a5 a0
    1070510994    add sp, strict byte 00004h                ; 83 c4 04
    1070610995    movzx ax, bh                              ; 0f b6 c7
     
    1070910998    idiv di                                   ; f7 ff
    1071010999    test dx, dx                               ; 85 d2
    10711     je short 07595h                           ; 74 05
    10712     push 00a30h                               ; 68 30 0a
    10713     jmp short 07598h                          ; eb 03
    10714     push 00a36h                               ; 68 36 0a
     11000    je short 078e2h                           ; 74 05
     11001    push 00a28h                               ; 68 28 0a
     11002    jmp short 078e5h                          ; eb 03
     11003    push 00a2eh                               ; 68 2e 0a
    1071511004    push di                                   ; 57
    10716     call 01972h                               ; e8 d6 a3
     11005    call 01972h                               ; e8 89 a0
    1071711006    add sp, strict byte 00004h                ; 83 c4 04
    1071811007    db  0feh, 0c3h
    1071911008    ; inc bl                                    ; fe c3
    10720     jmp near 074cah                           ; e9 26 ff
     11009    jmp near 07817h                           ; e9 26 ff
    1072111010    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10722     jne short 075bdh                          ; 75 13
     11011    jne short 0790ah                          ; 75 13
    1072311012    test cl, cl                               ; 84 c9
    10724     jne short 075bdh                          ; 75 0f
     11013    jne short 0790ah                          ; 75 0f
    1072511014    test ch, ch                               ; 84 ed
    10726     jne short 075bdh                          ; 75 0b
    10727     push 00a3dh                               ; 68 3d 0a
     11015    jne short 0790ah                          ; 75 0b
     11016    push 00a35h                               ; 68 35 0a
    1072811017    push strict byte 00002h                   ; 6a 02
    10729     call 01972h                               ; e8 b8 a3
     11018    call 01972h                               ; e8 6b a0
    1073011019    add sp, strict byte 00004h                ; 83 c4 04
    10731     push 00a51h                               ; 68 51 0a
     11020    push 00a49h                               ; 68 49 0a
    1073211021    push strict byte 00002h                   ; 6a 02
    10733     call 01972h                               ; e8 ad a3
     11022    call 01972h                               ; e8 60 a0
    1073411023    add sp, strict byte 00004h                ; 83 c4 04
    1073511024    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1074111030    pop bp                                    ; 5d
    1074211031    retn                                      ; c3
    10743 get_boot_drive_:                             ; 0xf75d2 LB 0x28
     11032get_boot_drive_:                             ; 0xf791f LB 0x28
    1074411033    push bp                                   ; 55
    1074511034    mov bp, sp                                ; 89 e5
     
    1074911038    mov dx, strict word 0000eh                ; ba 0e 00
    1075011039    mov ax, strict word 00040h                ; b8 40 00
    10751     call 0166ch                               ; e8 8a a0
    10752     mov dx, 002c0h                            ; ba c0 02
    10753     call 01650h                               ; e8 68 a0
     11040    call 0166ch                               ; e8 3d 9d
     11041    mov dx, 00304h                            ; ba 04 03
     11042    call 01650h                               ; e8 1b 9d
    1075411043    sub bl, 002h                              ; 80 eb 02
    1075511044    cmp bl, al                                ; 38 c3
    10756     jc short 075f1h                           ; 72 02
     11045    jc short 0793eh                           ; 72 02
    1075711046    mov BL, strict byte 0ffh                  ; b3 ff
    1075811047    mov al, bl                                ; 88 d8
     
    1076211051    pop bp                                    ; 5d
    1076311052    retn                                      ; c3
    10764 show_logo_:                                  ; 0xf75fa LB 0x224
     11053show_logo_:                                  ; 0xf7947 LB 0x224
    1076511054    push bp                                   ; 55
    1076611055    mov bp, sp                                ; 89 e5
     
    1077311062    mov dx, strict word 0000eh                ; ba 0e 00
    1077411063    mov ax, strict word 00040h                ; b8 40 00
    10775     call 0166ch                               ; e8 5e a0
     11064    call 0166ch                               ; e8 11 9d
    1077611065    mov si, ax                                ; 89 c6
    1077711066    xor cl, cl                                ; 30 c9
     
    1078411073    out strict byte 040h, AL                  ; e6 40
    1078511074    movzx ax, dl                              ; 0f b6 c2
    10786     call 0748eh                               ; e8 68 fe
     11075    call 077dbh                               ; e8 68 fe
    1078711076    cmp ax, 066bbh                            ; 3d bb 66
    10788     jne near 076feh                           ; 0f 85 d1 00
     11077    jne near 07a4bh                           ; 0f 85 d1 00
    1078911078    push SS                                   ; 16
    1079011079    pop ES                                    ; 07
     
    1079411083    mov word [es:di], bx                      ; 26 89 1d
    1079511084    cmp ax, strict word 0004fh                ; 3d 4f 00
    10796     jne near 076feh                           ; 0f 85 bd 00
     11085    jne near 07a4bh                           ; 0f 85 bd 00
    1079711086    mov al, dl                                ; 88 d0
    1079811087    add AL, strict byte 004h                  ; 04 04
    1079911088    xor ah, ah                                ; 30 e4
    10800     call 07478h                               ; e8 2e fe
     11089    call 077c5h                               ; e8 2e fe
    1080111090    mov ch, al                                ; 88 c5
    1080211091    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1080411093    add AL, strict byte 005h                  ; 04 05
    1080511094    xor ah, ah                                ; 30 e4
    10806     call 07478h                               ; e8 20 fe
     11095    call 077c5h                               ; e8 20 fe
    1080711096    mov dh, al                                ; 88 c6
    1080811097    mov byte [bp-010h], al                    ; 88 46 f0
     
    1081011099    add AL, strict byte 002h                  ; 04 02
    1081111100    xor ah, ah                                ; 30 e4
    10812     call 0748eh                               ; e8 28 fe
     11101    call 077dbh                               ; e8 28 fe
    1081311102    mov bx, ax                                ; 89 c3
    1081411103    mov word [bp-014h], ax                    ; 89 46 ec
     
    1081611105    add AL, strict byte 006h                  ; 04 06
    1081711106    xor ah, ah                                ; 30 e4
    10818     call 07478h                               ; e8 04 fe
     11107    call 077c5h                               ; e8 04 fe
    1081911108    mov byte [bp-012h], al                    ; 88 46 ee
    1082011109    test ch, ch                               ; 84 ed
    10821     jne short 07685h                          ; 75 0a
     11110    jne short 079d2h                          ; 75 0a
    1082211111    test dh, dh                               ; 84 f6
    10823     jne short 07685h                          ; 75 06
     11112    jne short 079d2h                          ; 75 06
    1082411113    test bx, bx                               ; 85 db
    10825     je near 076feh                            ; 0f 84 79 00
     11114    je near 07a4bh                            ; 0f 84 79 00
    1082611115    mov bx, 00142h                            ; bb 42 01
    1082711116    mov ax, 04f02h                            ; b8 02 4f
    1082811117    int 010h                                  ; cd 10
    1082911118    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10830     je short 076b6h                           ; 74 23
     11119    je short 07a03h                           ; 74 23
    1083111120    xor bx, bx                                ; 31 db
    10832     jmp short 0769dh                          ; eb 06
     11121    jmp short 079eah                          ; eb 06
    1083311122    inc bx                                    ; 43
    1083411123    cmp bx, strict byte 00010h                ; 83 fb 10
    10835     jnbe short 076bdh                         ; 77 20
     11124    jnbe short 07a0ah                         ; 77 20
    1083611125    mov ax, bx                                ; 89 d8
    1083711126    or ah, 002h                               ; 80 cc 02
     
    1084011129    xor dx, dx                                ; 31 d2
    1084111130    mov ax, strict word 00001h                ; b8 01 00
    10842     call 073c6h                               ; e8 18 fd
     11131    call 07713h                               ; e8 18 fd
    1084311132    cmp AL, strict byte 086h                  ; 3c 86
    10844     jne short 07697h                          ; 75 e5
     11133    jne short 079e4h                          ; 75 e5
    1084511134    mov CL, strict byte 001h                  ; b1 01
    10846     jmp short 076bdh                          ; eb 07
     11135    jmp short 07a0ah                          ; eb 07
    1084711136    mov ax, 00210h                            ; b8 10 02
    1084811137    mov dx, 003b8h                            ; ba b8 03
    1084911138    out DX, ax                                ; ef
    1085011139    test cl, cl                               ; 84 c9
    10851     jne short 076d3h                          ; 75 12
     11140    jne short 07a20h                          ; 75 12
    1085211141    mov ax, word [bp-014h]                    ; 8b 46 ec
    1085311142    shr ax, 004h                              ; c1 e8 04
    1085411143    mov dx, strict word 00001h                ; ba 01 00
    10855     call 073c6h                               ; e8 f9 fc
     11144    call 07713h                               ; e8 f9 fc
    1085611145    cmp AL, strict byte 086h                  ; 3c 86
    10857     jne short 076d3h                          ; 75 02
     11146    jne short 07a20h                          ; 75 02
    1085811147    mov CL, strict byte 001h                  ; b1 01
    1085911148    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10860     je short 076feh                           ; 74 25
     11149    je short 07a4bh                           ; 74 25
    1086111150    test cl, cl                               ; 84 c9
    10862     jne short 076feh                          ; 75 21
     11151    jne short 07a4bh                          ; 75 21
    1086311152    mov bx, strict word 00010h                ; bb 10 00
    10864     jmp short 076e7h                          ; eb 05
     11153    jmp short 07a34h                          ; eb 05
    1086511154    dec bx                                    ; 4b
    1086611155    test bx, bx                               ; 85 db
    10867     jbe short 076feh                          ; 76 17
     11156    jbe short 07a4bh                          ; 76 17
    1086811157    mov ax, bx                                ; 89 d8
    1086911158    or ah, 002h                               ; 80 cc 02
     
    1087211161    xor dx, dx                                ; 31 d2
    1087311162    mov ax, strict word 00001h                ; b8 01 00
    10874     call 073c6h                               ; e8 ce fc
     11163    call 07713h                               ; e8 ce fc
    1087511164    cmp AL, strict byte 086h                  ; 3c 86
    10876     jne short 076e2h                          ; 75 e6
     11165    jne short 07a2fh                          ; 75 e6
    1087711166    mov CL, strict byte 001h                  ; b1 01
    1087811167    xor bx, bx                                ; 31 db
    10879     mov dx, 00339h                            ; ba 39 03
     11168    mov dx, 0037dh                            ; ba 7d 03
    1088011169    mov ax, si                                ; 89 f0
    10881     call 0165eh                               ; e8 56 9f
     11170    call 0165eh                               ; e8 09 9c
    1088211171    mov AL, strict byte 003h                  ; b0 03
    1088311172    mov AH, strict byte 000h                  ; b4 00
    1088411173    int 010h                                  ; cd 10
    1088511174    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    10886     je near 077ffh                            ; 0f 84 e9 00
     11175    je near 07b4ch                            ; 0f 84 e9 00
    1088711176    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10888     jne short 0774ch                          ; 75 30
     11177    jne short 07a99h                          ; 75 30
    1088911178    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10890     jne short 0774ch                          ; 75 2a
     11179    jne short 07a99h                          ; 75 2a
    1089111180    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    10892     jne short 0774ch                          ; 75 24
     11181    jne short 07a99h                          ; 75 24
    1089311182    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    10894     jne short 07739h                          ; 75 0b
    10895     push 00a53h                               ; 68 53 0a
     11183    jne short 07a86h                          ; 75 0b
     11184    push 00a4bh                               ; 68 4b 0a
    1089611185    push strict byte 00002h                   ; 6a 02
    10897     call 01972h                               ; e8 3c a2
     11186    call 01972h                               ; e8 ef 9e
    1089811187    add sp, strict byte 00004h                ; 83 c4 04
    1089911188    test cl, cl                               ; 84 c9
    10900     jne short 0774ch                          ; 75 0f
     11189    jne short 07a99h                          ; 75 0f
    1090111190    mov dx, strict word 00001h                ; ba 01 00
    1090211191    mov ax, 000c0h                            ; b8 c0 00
    10903     call 073c6h                               ; e8 80 fc
     11192    call 07713h                               ; e8 80 fc
    1090411193    cmp AL, strict byte 086h                  ; 3c 86
    10905     jne short 0774ch                          ; 75 02
     11194    jne short 07a99h                          ; 75 02
    1090611195    mov CL, strict byte 001h                  ; b1 01
    1090711196    test cl, cl                               ; 84 c9
    10908     je near 077ffh                            ; 0f 84 ad 00
     11197    je near 07b4ch                            ; 0f 84 ad 00
    1090911198    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1091011199    mov ax, 00100h                            ; b8 00 01
     
    1092311212    ; xor dx, dx                                ; 33 d2
    1092411213    int 010h                                  ; cd 10
    10925     push 00a75h                               ; 68 75 0a
     11214    push 00a6dh                               ; 68 6d 0a
    1092611215    push strict byte 00002h                   ; 6a 02
    10927     call 01972h                               ; e8 f7 a1
     11216    call 01972h                               ; e8 aa 9e
    1092811217    add sp, strict byte 00004h                ; 83 c4 04
    10929     call 074a2h                               ; e8 21 fd
    10930     push 00ab9h                               ; 68 b9 0a
     11218    call 077efh                               ; e8 21 fd
     11219    push 00ab1h                               ; 68 b1 0a
    1093111220    push strict byte 00002h                   ; 6a 02
    10932     call 01972h                               ; e8 e9 a1
     11221    call 01972h                               ; e8 9c 9e
    1093311222    add sp, strict byte 00004h                ; 83 c4 04
    1093411223    mov dx, strict word 00001h                ; ba 01 00
    1093511224    mov ax, strict word 00040h                ; b8 40 00
    10936     call 073c6h                               ; e8 31 fc
     11225    call 07713h                               ; e8 31 fc
    1093711226    mov bl, al                                ; 88 c3
    1093811227    test al, al                               ; 84 c0
    10939     je short 0778ch                           ; 74 f1
     11228    je short 07ad9h                           ; 74 f1
    1094011229    cmp AL, strict byte 030h                  ; 3c 30
    10941     je short 077edh                           ; 74 4e
     11230    je short 07b3ah                           ; 74 4e
    1094211231    cmp bl, 002h                              ; 80 fb 02
    10943     jc short 077c6h                           ; 72 22
     11232    jc short 07b13h                           ; 72 22
    1094411233    cmp bl, 009h                              ; 80 fb 09
    10945     jnbe short 077c6h                         ; 77 1d
     11234    jnbe short 07b13h                         ; 77 1d
    1094611235    movzx ax, bl                              ; 0f b6 c3
    10947     call 075d2h                               ; e8 23 fe
     11236    call 0791fh                               ; e8 23 fe
    1094811237    cmp AL, strict byte 0ffh                  ; 3c ff
    10949     jne short 077b5h                          ; 75 02
    10950     jmp short 0778ch                          ; eb d7
     11238    jne short 07b02h                          ; 75 02
     11239    jmp short 07ad9h                          ; eb d7
    1095111240    movzx bx, al                              ; 0f b6 d8
    10952     mov dx, 00338h                            ; ba 38 03
     11241    mov dx, 0037ch                            ; ba 7c 03
    1095311242    mov ax, si                                ; 89 f0
    10954     call 0165eh                               ; e8 9e 9e
     11243    call 0165eh                               ; e8 51 9b
    1095511244    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    10956     jmp short 077edh                          ; eb 27
     11245    jmp short 07b3ah                          ; eb 27
    1095711246    cmp bl, 02eh                              ; 80 fb 2e
    10958     je short 077dbh                           ; 74 10
     11247    je short 07b28h                           ; 74 10
    1095911248    cmp bl, 026h                              ; 80 fb 26
    10960     je short 077e1h                           ; 74 11
     11249    je short 07b2eh                           ; 74 11
    1096111250    cmp bl, 021h                              ; 80 fb 21
    10962     jne short 077e7h                          ; 75 12
     11251    jne short 07b34h                          ; 75 12
    1096311252    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    10964     jmp short 077edh                          ; eb 12
     11253    jmp short 07b3ah                          ; eb 12
    1096511254    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    10966     jmp short 077edh                          ; eb 0c
     11255    jmp short 07b3ah                          ; eb 0c
    1096711256    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    10968     jmp short 077edh                          ; eb 06
     11257    jmp short 07b3ah                          ; eb 06
    1096911258    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    10970     je short 0778ch                           ; 74 9f
     11259    je short 07ad9h                           ; 74 9f
    1097111260    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    10972     mov dx, 00339h                            ; ba 39 03
     11261    mov dx, 0037dh                            ; ba 7d 03
    1097311262    mov ax, si                                ; 89 f0
    10974     call 0165eh                               ; e8 65 9e
     11263    call 0165eh                               ; e8 18 9b
    1097511264    mov AL, strict byte 003h                  ; b0 03
    1097611265    mov AH, strict byte 000h                  ; b4 00
     
    1098511274    push DS                                   ; 1e
    1098611275    mov ds, ax                                ; 8e d8
    10987     call 0edbfh                               ; e8 ae 75
     11276    call 0edbfh                               ; e8 61 72
    1098811277    pop DS                                    ; 1f
    1098911278    popad                                     ; 66 61
     
    1099611285    pop bp                                    ; 5d
    1099711286    retn                                      ; c3
    10998 delay_boot_:                                 ; 0xf781e LB 0x67
     11287delay_boot_:                                 ; 0xf7b6b LB 0x67
    1099911288    push bp                                   ; 55
    1100011289    mov bp, sp                                ; 89 e5
     
    1100311292    mov dx, ax                                ; 89 c2
    1100411293    test ax, ax                               ; 85 c0
    11005     je short 0787eh                           ; 74 55
     11294    je short 07bcbh                           ; 74 55
    1100611295    mov AL, strict byte 034h                  ; b0 34
    1100711296    out strict byte 043h, AL                  ; e6 43
     
    1101111300    out strict byte 040h, AL                  ; e6 40
    1101211301    push dx                                   ; 52
    11013     push 00b03h                               ; 68 03 0b
     11302    push 00afbh                               ; 68 fb 0a
    1101411303    push strict byte 00002h                   ; 6a 02
    11015     call 01972h                               ; e8 34 a1
     11304    call 01972h                               ; e8 e7 9d
    1101611305    add sp, strict byte 00006h                ; 83 c4 06
    1101711306    mov bx, dx                                ; 89 d3
    1101811307    test bx, bx                               ; 85 db
    11019     jbe short 0785eh                          ; 76 17
     11308    jbe short 07babh                          ; 76 17
    1102011309    push bx                                   ; 53
    11021     push 00b21h                               ; 68 21 0b
     11310    push 00b19h                               ; 68 19 0b
    1102211311    push strict byte 00002h                   ; 6a 02
    11023     call 01972h                               ; e8 22 a1
     11312    call 01972h                               ; e8 d5 9d
    1102411313    add sp, strict byte 00006h                ; 83 c4 06
    1102511314    xor dx, dx                                ; 31 d2
    1102611315    mov ax, strict word 00040h                ; b8 40 00
    11027     call 073c6h                               ; e8 6b fb
     11316    call 07713h                               ; e8 6b fb
    1102811317    dec bx                                    ; 4b
    11029     jmp short 07843h                          ; eb e5
    11030     push 00a51h                               ; 68 51 0a
     11318    jmp short 07b90h                          ; eb e5
     11319    push 00a49h                               ; 68 49 0a
    1103111320    push strict byte 00002h                   ; 6a 02
    11032     call 01972h                               ; e8 0c a1
     11321    call 01972h                               ; e8 bf 9d
    1103311322    add sp, strict byte 00004h                ; 83 c4 04
    1103411323    mov AL, strict byte 034h                  ; b0 34
     
    1104111330    push DS                                   ; 1e
    1104211331    mov ds, ax                                ; 8e d8
    11043     call 0edbfh                               ; e8 44 75
     11332    call 0edbfh                               ; e8 f7 71
    1104411333    pop DS                                    ; 1f
    1104511334    popad                                     ; 66 61
     
    1104911338    pop bp                                    ; 5d
    1105011339    retn                                      ; c3
    11051 scsi_cmd_data_in_:                           ; 0xf7885 LB 0xc9
     11340scsi_cmd_data_in_:                           ; 0xf7bd2 LB 0xdb
    1105211341    push bp                                   ; 55
    1105311342    mov bp, sp                                ; 89 e5
     
    1105711346    mov si, ax                                ; 89 c6
    1105811347    mov byte [bp-006h], dl                    ; 88 56 fa
    11059     mov word [bp-008h], bx                    ; 89 5e f8
    11060     mov word [bp-00ah], cx                    ; 89 4e f6
     11348    mov word [bp-00ah], bx                    ; 89 5e f6
     11349    mov word [bp-008h], cx                    ; 89 4e f8
    1106111350    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1106211351    mov dx, si                                ; 89 f2
     
    1106511354    ; sub ah, ah                                ; 2a e4
    1106611355    test AL, strict byte 001h                 ; a8 01
    11067     jne short 0789bh                          ; 75 f7
     11356    jne short 07be8h                          ; 75 f7
    1106811357    mov ax, bx                                ; 89 d8
    1106911358    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1107111360    shr dx, 1                                 ; d1 ea
    1107211361    rcr ax, 1                                 ; d1 d8
    11073     loop 078ach                               ; e2 fa
    11074     and ax, 000f0h                            ; 25 f0 00
     11362    loop 07bf9h                               ; e2 fa
     11363    mov cx, ax                                ; 89 c1
     11364    and cx, 000f0h                            ; 81 e1 f0 00
     11365    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
     11366    db  00fh, 094h, 0c0h
     11367    ; sete al                                   ; 0f 94 c0
     11368    xor ah, ah                                ; 30 e4
     11369    cwd                                       ; 99
     11370    or ax, cx                                 ; 09 c8
     11371    or ax, dx                                 ; 09 d0
     11372    je short 07c19h                           ; 74 04
     11373    xor cx, cx                                ; 31 c9
     11374    jmp short 07c1dh                          ; eb 04
    1107511375    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
    11076     or cx, ax                                 ; 09 c1
    1107711376    mov al, byte [bp-006h]                    ; 8a 46 fa
    1107811377    mov dx, si                                ; 89 f2
     
    1108911388    shr dx, 1                                 ; d1 ea
    1109011389    rcr ax, 1                                 ; d1 d8
    11091     loop 078d2h                               ; e2 fa
     11390    loop 07c34h                               ; e2 fa
    1109211391    mov dx, si                                ; 89 f2
    1109311392    out DX, AL                                ; ee
     
    1109511394    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1109611395    cmp cx, ax                                ; 39 c1
    11097     jnc short 078f6h                          ; 73 11
    11098     mov es, [bp-00ah]                         ; 8e 46 f6
    11099     mov di, word [bp-008h]                    ; 8b 7e f8
     11396    jnc short 07c55h                          ; 73 0e
     11397    les di, [bp-00ah]                         ; c4 7e f6
    1110011398    add di, cx                                ; 01 cf
    1110111399    mov al, byte [es:di]                      ; 26 8a 05
     
    1110311401    out DX, AL                                ; ee
    1110411402    inc cx                                    ; 41
    11105     jmp short 078ddh                          ; eb e7
     11403    jmp short 07c3fh                          ; eb ea
    1110611404    mov dx, si                                ; 89 f2
    1110711405    in AL, DX                                 ; ec
     
    1110911407    ; sub ah, ah                                ; 2a e4
    1111011408    test AL, strict byte 001h                 ; a8 01
    11111     jne short 078f6h                          ; 75 f7
     11409    jne short 07c55h                          ; 75 f7
    1111211410    test AL, strict byte 002h                 ; a8 02
    11113     je short 07911h                           ; 74 0e
     11411    je short 07c70h                           ; 74 0e
    1111411412    lea dx, [si+003h]                         ; 8d 54 03
    1111511413    xor al, al                                ; 30 c0
     
    1111911417    ; sub ah, ah                                ; 2a e4
    1112011418    mov di, strict word 00004h                ; bf 04 00
    11121     jmp short 07943h                          ; eb 32
     11419    jmp short 07ca2h                          ; eb 32
    1112211420    lea dx, [si+001h]                         ; 8d 54 01
    1112311421    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11124     jne short 07920h                          ; 75 06
     11422    jne short 07c7fh                          ; 75 06
    1112511423    cmp bx, 08000h                            ; 81 fb 00 80
    11126     jbe short 0793ah                          ; 76 1a
     11424    jbe short 07c99h                          ; 76 1a
    1112711425    mov cx, 08000h                            ; b9 00 80
    1112811426    les di, [bp+006h]                         ; c4 7e 06
     
    1113311431    add ax, 00800h                            ; 05 00 08
    1113411432    mov word [bp+008h], ax                    ; 89 46 08
    11135     jmp short 07911h                          ; eb d7
     11433    jmp short 07c70h                          ; eb d7
    1113611434    mov cx, bx                                ; 89 d9
    1113711435    les di, [bp+006h]                         ; c4 7e 06
     
    1114411442    pop bp                                    ; 5d
    1114511443    retn 0000ah                               ; c2 0a 00
    11146 scsi_cmd_data_out_:                          ; 0xf794e LB 0xc9
     11444scsi_cmd_data_out_:                          ; 0xf7cad LB 0xdb
    1114711445    push bp                                   ; 55
    1114811446    mov bp, sp                                ; 89 e5
     
    1115211450    mov di, ax                                ; 89 c7
    1115311451    mov byte [bp-006h], dl                    ; 88 56 fa
    11154     mov word [bp-008h], bx                    ; 89 5e f8
    11155     mov word [bp-00ah], cx                    ; 89 4e f6
     11452    mov word [bp-00ah], bx                    ; 89 5e f6
     11453    mov word [bp-008h], cx                    ; 89 4e f8
    1115611454    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1115711455    mov dx, di                                ; 89 fa
     
    1116011458    ; sub ah, ah                                ; 2a e4
    1116111459    test AL, strict byte 001h                 ; a8 01
    11162     jne short 07964h                          ; 75 f7
     11460    jne short 07cc3h                          ; 75 f7
    1116311461    mov ax, bx                                ; 89 d8
    1116411462    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1116611464    shr dx, 1                                 ; d1 ea
    1116711465    rcr ax, 1                                 ; d1 d8
    11168     loop 07975h                               ; e2 fa
    11169     and ax, 000f0h                            ; 25 f0 00
     11466    loop 07cd4h                               ; e2 fa
     11467    mov cx, ax                                ; 89 c1
     11468    and cx, 000f0h                            ; 81 e1 f0 00
     11469    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
     11470    db  00fh, 094h, 0c0h
     11471    ; sete al                                   ; 0f 94 c0
     11472    xor ah, ah                                ; 30 e4
     11473    cwd                                       ; 99
     11474    or ax, cx                                 ; 09 c8
     11475    or ax, dx                                 ; 09 d0
     11476    je short 07cf4h                           ; 74 04
     11477    xor cx, cx                                ; 31 c9
     11478    jmp short 07cf8h                          ; eb 04
    1117011479    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
    11171     or cx, ax                                 ; 09 c1
    1117211480    mov al, byte [bp-006h]                    ; 8a 46 fa
    1117311481    mov dx, di                                ; 89 fa
     
    1118411492    shr dx, 1                                 ; d1 ea
    1118511493    rcr ax, 1                                 ; d1 d8
    11186     loop 0799bh                               ; e2 fa
     11494    loop 07d0fh                               ; e2 fa
    1118711495    mov dx, di                                ; 89 fa
    1118811496    out DX, AL                                ; ee
     
    1119011498    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1119111499    cmp cx, ax                                ; 39 c1
    11192     jnc short 079bfh                          ; 73 11
    11193     mov es, [bp-00ah]                         ; 8e 46 f6
    11194     mov si, word [bp-008h]                    ; 8b 76 f8
     11500    jnc short 07d30h                          ; 73 0e
     11501    les si, [bp-00ah]                         ; c4 76 f6
    1119511502    add si, cx                                ; 01 ce
    1119611503    mov al, byte [es:si]                      ; 26 8a 04
     
    1119811505    out DX, AL                                ; ee
    1119911506    inc cx                                    ; 41
    11200     jmp short 079a6h                          ; eb e7
     11507    jmp short 07d1ah                          ; eb ea
    1120111508    lea dx, [di+001h]                         ; 8d 55 01
    1120211509    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11203     jne short 079ceh                          ; 75 06
     11510    jne short 07d3fh                          ; 75 06
    1120411511    cmp bx, 08000h                            ; 81 fb 00 80
    11205     jbe short 079e9h                          ; 76 1b
     11512    jbe short 07d5ah                          ; 76 1b
    1120611513    mov cx, 08000h                            ; b9 00 80
    1120711514    les si, [bp+006h]                         ; c4 76 06
     
    1121311520    add ax, 00800h                            ; 05 00 08
    1121411521    mov word [bp+008h], ax                    ; 89 46 08
    11215     jmp short 079bfh                          ; eb d6
     11522    jmp short 07d30h                          ; eb d6
    1121611523    mov cx, bx                                ; 89 d9
    1121711524    les si, [bp+006h]                         ; c4 76 06
     
    1122311530    ; sub ah, ah                                ; 2a e4
    1122411531    test AL, strict byte 001h                 ; a8 01
    11225     jne short 079f1h                          ; 75 f7
     11532    jne short 07d62h                          ; 75 f7
    1122611533    test AL, strict byte 002h                 ; a8 02
    11227     je short 07a0ch                           ; 74 0e
     11534    je short 07d7dh                           ; 74 0e
    1122811535    lea dx, [di+003h]                         ; 8d 55 03
    1122911536    xor al, al                                ; 30 c0
     
    1123311540    ; sub ah, ah                                ; 2a e4
    1123411541    mov ax, strict word 00004h                ; b8 04 00
    11235     jmp short 07a0eh                          ; eb 02
     11542    jmp short 07d7fh                          ; eb 02
    1123611543    xor ax, ax                                ; 31 c0
    1123711544    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1124011547    pop bp                                    ; 5d
    1124111548    retn 0000ah                               ; c2 0a 00
    11242 @scsi_read_sectors:                          ; 0xf7a17 LB 0xb9
     11549@scsi_read_sectors:                          ; 0xf7d88 LB 0xdb
    1124311550    push bp                                   ; 55
    1124411551    mov bp, sp                                ; 89 e5
    1124511552    push si                                   ; 56
    1124611553    push di                                   ; 57
    11247     sub sp, strict byte 0000eh                ; 83 ec 0e
     11554    sub sp, strict byte 00016h                ; 83 ec 16
    1124811555    mov si, word [bp+004h]                    ; 8b 76 04
    1124911556    mov es, [bp+006h]                         ; 8e 46 06
    11250     mov bl, byte [es:si+008h]                 ; 26 8a 5c 08
    11251     sub bl, 008h                              ; 80 eb 08
    11252     cmp bl, 004h                              ; 80 fb 04
    11253     jbe short 07a43h                          ; 76 12
    11254     movzx ax, bl                              ; 0f b6 c3
     11557    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
     11558    sub AL, strict byte 008h                  ; 2c 08
     11559    mov byte [bp-006h], al                    ; 88 46 fa
     11560    cmp AL, strict byte 004h                  ; 3c 04
     11561    jbe short 07db6h                          ; 76 13
     11562    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1125511563    push ax                                   ; 50
    11256     push 00b26h                               ; 68 26 0b
    11257     push 00b38h                               ; 68 38 0b
     11564    push 00b1eh                               ; 68 1e 0b
     11565    push 00b30h                               ; 68 30 0b
    1125811566    push strict byte 00007h                   ; 6a 07
    11259     call 01972h                               ; e8 32 9f
     11567    call 01972h                               ; e8 bf 9b
    1126011568    add sp, strict byte 00008h                ; 83 c4 08
    1126111569    mov es, [bp+006h]                         ; 8e 46 06
    11262     mov di, word [es:si+00ah]                 ; 26 8b 7c 0a
    11263     mov word [bp-012h], strict word 00028h    ; c7 46 ee 28 00
    11264     mov ax, word [es:si]                      ; 26 8b 04
    11265     mov dx, word [es:si+002h]                 ; 26 8b 54 02
     11570    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
     11571    mov word [bp-01ah], 00088h                ; c7 46 e6 88 00
     11572    mov ax, word [es:si+006h]                 ; 26 8b 44 06
     11573    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     11574    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     11575    mov dx, word [es:si]                      ; 26 8b 14
     11576    xchg ah, al                               ; 86 c4
     11577    xchg bh, bl                               ; 86 df
     11578    xchg ch, cl                               ; 86 cd
     11579    xchg dh, dl                               ; 86 d6
     11580    xchg dx, ax                               ; 92
     11581    xchg bx, cx                               ; 87 cb
     11582    mov word [bp-012h], ax                    ; 89 46 ee
     11583    mov word [bp-014h], bx                    ; 89 5e ec
     11584    mov word [bp-016h], cx                    ; 89 4e ea
     11585    mov word [bp-018h], dx                    ; 89 56 e8
     11586    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     11587    mov ax, di                                ; 89 f8
     11588    xor dx, dx                                ; 31 d2
    1126611589    xchg ah, al                               ; 86 c4
    1126711590    xchg dh, dl                               ; 86 d6
     
    1126911592    mov word [bp-010h], ax                    ; 89 46 f0
    1127011593    mov word [bp-00eh], dx                    ; 89 56 f2
    11271     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    11272     mov ax, di                                ; 89 f8
    11273     xchg ah, al                               ; 86 c4
    11274     mov word [bp-00bh], ax                    ; 89 46 f5
    11275     mov byte [bp-009h], 000h                  ; c6 46 f7 00
    11276     xor bh, bh                                ; 30 ff
    11277     sal bx, 002h                              ; c1 e3 02
    11278     add bx, si                                ; 01 f3
    11279     mov ax, word [es:bx+001d8h]               ; 26 8b 87 d8 01
    11280     mov dl, byte [es:bx+001dah]               ; 26 8a 97 da 01
    11281     mov word [bp-008h], di                    ; 89 7e f8
    11282     mov word [bp-006h], strict word 00000h    ; c7 46 fa 00 00
     11594    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
     11595    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     11596    sal ax, 002h                              ; c1 e0 02
     11597    mov bx, si                                ; 89 f3
     11598    add bx, ax                                ; 01 c3
     11599    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
     11600    mov dl, byte [es:bx+0021eh]               ; 26 8a 97 1e 02
     11601    mov word [bp-00ah], di                    ; 89 7e f6
     11602    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    1128311603    mov cx, strict word 00009h                ; b9 09 00
    11284     sal word [bp-008h], 1                     ; d1 66 f8
    11285     rcl word [bp-006h], 1                     ; d1 56 fa
    11286     loop 07a8ch                               ; e2 f8
    11287     push dword [bp-008h]                      ; 66 ff 76 f8
    11288     db  066h, 026h, 0ffh, 074h, 004h
    11289     ; push dword [es:si+004h]                   ; 66 26 ff 74 04
    11290     push strict byte 0000ah                   ; 6a 0a
     11604    sal word [bp-00ah], 1                     ; d1 66 f6
     11605    rcl word [bp-008h], 1                     ; d1 56 f8
     11606    loop 07e1fh                               ; e2 f8
     11607    push dword [bp-00ah]                      ; 66 ff 76 f6
     11608    db  066h, 026h, 0ffh, 074h, 008h
     11609    ; push dword [es:si+008h]                   ; 66 26 ff 74 08
     11610    push strict byte 00010h                   ; 6a 10
    1129111611    xor dh, dh                                ; 30 f6
    1129211612    mov cx, ss                                ; 8c d1
    11293     lea bx, [bp-012h]                         ; 8d 5e ee
    11294     call 07885h                               ; e8 dc fd
     11613    lea bx, [bp-01ah]                         ; 8d 5e e6
     11614    call 07bd2h                               ; e8 96 fd
    1129511615    mov ah, al                                ; 88 c4
    1129611616    test al, al                               ; 84 c0
    11297     jne short 07ac4h                          ; 75 15
     11617    jne short 07e57h                          ; 75 15
    1129811618    mov es, [bp+006h]                         ; 8e 46 06
    11299     mov word [es:si+014h], di                 ; 26 89 7c 14
     11619    mov word [es:si+018h], di                 ; 26 89 7c 18
     11620    mov dx, word [bp-00ah]                    ; 8b 56 f6
     11621    mov word [es:si+01ah], dx                 ; 26 89 54 1a
    1130011622    mov dx, word [bp-008h]                    ; 8b 56 f8
    11301     mov word [es:si+016h], dx                 ; 26 89 54 16
    11302     mov dx, word [bp-006h]                    ; 8b 56 fa
    11303     mov word [es:si+018h], dx                 ; 26 89 54 18
     11623    mov word [es:si+01ch], dx                 ; 26 89 54 1c
    1130411624    movzx ax, ah                              ; 0f b6 c4
    1130511625    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1130811628    pop bp                                    ; 5d
    1130911629    retn 00004h                               ; c2 04 00
    11310 @scsi_write_sectors:                         ; 0xf7ad0 LB 0xb9
     11630@scsi_write_sectors:                         ; 0xf7e63 LB 0xdb
    1131111631    push bp                                   ; 55
    1131211632    mov bp, sp                                ; 89 e5
    1131311633    push si                                   ; 56
    1131411634    push di                                   ; 57
    11315     sub sp, strict byte 0000eh                ; 83 ec 0e
     11635    sub sp, strict byte 00016h                ; 83 ec 16
    1131611636    mov si, word [bp+004h]                    ; 8b 76 04
    1131711637    mov es, [bp+006h]                         ; 8e 46 06
    11318     mov bl, byte [es:si+008h]                 ; 26 8a 5c 08
    11319     sub bl, 008h                              ; 80 eb 08
    11320     cmp bl, 004h                              ; 80 fb 04
    11321     jbe short 07afch                          ; 76 12
    11322     movzx ax, bl                              ; 0f b6 c3
     11638    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
     11639    sub AL, strict byte 008h                  ; 2c 08
     11640    mov byte [bp-006h], al                    ; 88 46 fa
     11641    cmp AL, strict byte 004h                  ; 3c 04
     11642    jbe short 07e91h                          ; 76 13
     11643    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1132311644    push ax                                   ; 50
    11324     push 00b57h                               ; 68 57 0b
    11325     push 00b38h                               ; 68 38 0b
     11645    push 00b4fh                               ; 68 4f 0b
     11646    push 00b30h                               ; 68 30 0b
    1132611647    push strict byte 00007h                   ; 6a 07
    11327     call 01972h                               ; e8 79 9e
     11648    call 01972h                               ; e8 e4 9a
    1132811649    add sp, strict byte 00008h                ; 83 c4 08
    1132911650    mov es, [bp+006h]                         ; 8e 46 06
    11330     mov di, word [es:si+00ah]                 ; 26 8b 7c 0a
    11331     mov word [bp-012h], strict word 0002ah    ; c7 46 ee 2a 00
    11332     mov ax, word [es:si]                      ; 26 8b 04
    11333     mov dx, word [es:si+002h]                 ; 26 8b 54 02
     11651    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
     11652    mov word [bp-01ah], 0008ah                ; c7 46 e6 8a 00
     11653    mov ax, word [es:si+006h]                 ; 26 8b 44 06
     11654    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     11655    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     11656    mov dx, word [es:si]                      ; 26 8b 14
     11657    xchg ah, al                               ; 86 c4
     11658    xchg bh, bl                               ; 86 df
     11659    xchg ch, cl                               ; 86 cd
     11660    xchg dh, dl                               ; 86 d6
     11661    xchg dx, ax                               ; 92
     11662    xchg bx, cx                               ; 87 cb
     11663    mov word [bp-012h], ax                    ; 89 46 ee
     11664    mov word [bp-014h], bx                    ; 89 5e ec
     11665    mov word [bp-016h], cx                    ; 89 4e ea
     11666    mov word [bp-018h], dx                    ; 89 56 e8
     11667    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     11668    mov ax, di                                ; 89 f8
     11669    xor dx, dx                                ; 31 d2
    1133411670    xchg ah, al                               ; 86 c4
    1133511671    xchg dh, dl                               ; 86 d6
     
    1133711673    mov word [bp-010h], ax                    ; 89 46 f0
    1133811674    mov word [bp-00eh], dx                    ; 89 56 f2
    11339     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    11340     mov ax, di                                ; 89 f8
    11341     xchg ah, al                               ; 86 c4
    11342     mov word [bp-00bh], ax                    ; 89 46 f5
    11343     mov byte [bp-009h], 000h                  ; c6 46 f7 00
    11344     xor bh, bh                                ; 30 ff
    11345     sal bx, 002h                              ; c1 e3 02
    11346     add bx, si                                ; 01 f3
    11347     mov ax, word [es:bx+001d8h]               ; 26 8b 87 d8 01
    11348     mov dl, byte [es:bx+001dah]               ; 26 8a 97 da 01
    11349     mov word [bp-008h], di                    ; 89 7e f8
    11350     mov word [bp-006h], strict word 00000h    ; c7 46 fa 00 00
     11675    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
     11676    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     11677    sal ax, 002h                              ; c1 e0 02
     11678    mov bx, si                                ; 89 f3
     11679    add bx, ax                                ; 01 c3
     11680    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
     11681    mov dl, byte [es:bx+0021eh]               ; 26 8a 97 1e 02
     11682    mov word [bp-00ah], di                    ; 89 7e f6
     11683    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
    1135111684    mov cx, strict word 00009h                ; b9 09 00
    11352     sal word [bp-008h], 1                     ; d1 66 f8
    11353     rcl word [bp-006h], 1                     ; d1 56 fa
    11354     loop 07b45h                               ; e2 f8
    11355     push dword [bp-008h]                      ; 66 ff 76 f8
    11356     db  066h, 026h, 0ffh, 074h, 004h
    11357     ; push dword [es:si+004h]                   ; 66 26 ff 74 04
    11358     push strict byte 0000ah                   ; 6a 0a
     11685    sal word [bp-00ah], 1                     ; d1 66 f6
     11686    rcl word [bp-008h], 1                     ; d1 56 f8
     11687    loop 07efah                               ; e2 f8
     11688    push dword [bp-00ah]                      ; 66 ff 76 f6
     11689    db  066h, 026h, 0ffh, 074h, 008h
     11690    ; push dword [es:si+008h]                   ; 66 26 ff 74 08
     11691    push strict byte 00010h                   ; 6a 10
    1135911692    xor dh, dh                                ; 30 f6
    1136011693    mov cx, ss                                ; 8c d1
    11361     lea bx, [bp-012h]                         ; 8d 5e ee
    11362     call 0794eh                               ; e8 ec fd
     11694    lea bx, [bp-01ah]                         ; 8d 5e e6
     11695    call 07cadh                               ; e8 96 fd
    1136311696    mov ah, al                                ; 88 c4
    1136411697    test al, al                               ; 84 c0
    11365     jne short 07b7dh                          ; 75 15
     11698    jne short 07f32h                          ; 75 15
    1136611699    mov es, [bp+006h]                         ; 8e 46 06
    11367     mov word [es:si+014h], di                 ; 26 89 7c 14
     11700    mov word [es:si+018h], di                 ; 26 89 7c 18
     11701    mov dx, word [bp-00ah]                    ; 8b 56 f6
     11702    mov word [es:si+01ah], dx                 ; 26 89 54 1a
    1136811703    mov dx, word [bp-008h]                    ; 8b 56 f8
    11369     mov word [es:si+016h], dx                 ; 26 89 54 16
    11370     mov dx, word [bp-006h]                    ; 8b 56 fa
    11371     mov word [es:si+018h], dx                 ; 26 89 54 18
     11704    mov word [es:si+01ch], dx                 ; 26 89 54 1c
    1137211705    movzx ax, ah                              ; 0f b6 c4
    1137311706    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1137611709    pop bp                                    ; 5d
    1137711710    retn 00004h                               ; c2 04 00
    11378 scsi_cmd_packet_:                            ; 0xf7b89 LB 0x166
     11711scsi_cmd_packet_:                            ; 0xf7f3e LB 0x166
    1137911712    push bp                                   ; 55
    1138011713    mov bp, sp                                ; 89 e5
     
    1138811721    mov dx, strict word 0000eh                ; ba 0e 00
    1138911722    mov ax, strict word 00040h                ; b8 40 00
    11390     call 0166ch                               ; e8 c7 9a
     11723    call 0166ch                               ; e8 12 97
    1139111724    mov si, 00122h                            ; be 22 01
    1139211725    mov word [bp-00eh], ax                    ; 89 46 f2
    1139311726    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11394     jne short 07bd0h                          ; 75 1f
    11395     mov bx, 00da2h                            ; bb a2 0d
     11727    jne short 07f85h                          ; 75 1f
     11728    mov bx, 00da0h                            ; bb a0 0d
    1139611729    mov cx, ds                                ; 8c d9
    1139711730    mov ax, strict word 00004h                ; b8 04 00
    11398     call 01931h                               ; e8 75 9d
    11399     push 00b6ah                               ; 68 6a 0b
    11400     push 00b7ah                               ; 68 7a 0b
     11731    call 01931h                               ; e8 c0 99
     11732    push 00b62h                               ; 68 62 0b
     11733    push 00b72h                               ; 68 72 0b
    1140111734    push strict byte 00004h                   ; 6a 04
    11402     call 01972h                               ; e8 ab 9d
     11735    call 01972h                               ; e8 f6 99
    1140311736    add sp, strict byte 00006h                ; 83 c4 06
    1140411737    mov dx, strict word 00001h                ; ba 01 00
    11405     jmp near 07ce4h                           ; e9 14 01
     11738    jmp near 08099h                           ; e9 14 01
    1140611739    sub di, strict byte 00008h                ; 83 ef 08
    1140711740    sal di, 002h                              ; c1 e7 02
     
    1140911742    mov es, [bp-00eh]                         ; 8e 46 f2
    1141011743    add di, si                                ; 01 f7
    11411     mov bx, word [es:di+001d8h]               ; 26 8b 9d d8 01
    11412     mov al, byte [es:di+001dah]               ; 26 8a 85 da 01
     11744    mov bx, word [es:di+0021ch]               ; 26 8b 9d 1c 02
     11745    mov al, byte [es:di+0021eh]               ; 26 8a 85 1e 02
    1141311746    mov byte [bp-008h], al                    ; 88 46 f8
    1141411747    mov dx, bx                                ; 89 da
     
    1141711750    ; sub ah, ah                                ; 2a e4
    1141811751    test AL, strict byte 001h                 ; a8 01
    11419     jne short 07bech                          ; 75 f7
     11752    jne short 07fa1h                          ; 75 f7
    1142011753    xor ax, ax                                ; 31 c0
    1142111754    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1142311756    adc ax, word [bp+008h]                    ; 13 46 08
    1142411757    mov es, [bp-00eh]                         ; 8e 46 f2
    11425     mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
     11758    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1142611759    xor di, di                                ; 31 ff
    1142711760    add cx, dx                                ; 01 d1
     
    1143311766    shr dx, 1                                 ; d1 ea
    1143411767    rcr ax, 1                                 ; d1 d8
    11435     loop 07c17h                               ; e2 fa
     11768    loop 07fcch                               ; e2 fa
    1143611769    and ax, 000f0h                            ; 25 f0 00
    1143711770    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1145111784    shr dx, 1                                 ; d1 ea
    1145211785    rcr ax, 1                                 ; d1 d8
    11453     loop 07c3eh                               ; e2 fa
     11786    loop 07ff3h                               ; e2 fa
    1145411787    mov dx, bx                                ; 89 da
    1145511788    out DX, AL                                ; ee
     
    1145711790    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1145811791    cmp cx, ax                                ; 39 c1
    11459     jnc short 07c5fh                          ; 73 0e
     11792    jnc short 08014h                          ; 73 0e
    1146011793    les di, [bp-00ch]                         ; c4 7e f4
    1146111794    add di, cx                                ; 01 cf
     
    1146411797    out DX, AL                                ; ee
    1146511798    inc cx                                    ; 41
    11466     jmp short 07c49h                          ; eb ea
     11799    jmp short 07ffeh                          ; eb ea
    1146711800    mov dx, bx                                ; 89 da
    1146811801    in AL, DX                                 ; ec
     
    1147011803    ; sub ah, ah                                ; 2a e4
    1147111804    test AL, strict byte 001h                 ; a8 01
    11472     jne short 07c5fh                          ; 75 f7
     11805    jne short 08014h                          ; 75 f7
    1147311806    test AL, strict byte 002h                 ; a8 02
    11474     je short 07c7ah                           ; 74 0e
     11807    je short 0802fh                           ; 74 0e
    1147511808    lea dx, [bx+003h]                         ; 8d 57 03
    1147611809    xor al, al                                ; 30 c0
     
    1148011813    ; sub ah, ah                                ; 2a e4
    1148111814    mov dx, strict word 00003h                ; ba 03 00
    11482     jmp short 07ce4h                          ; eb 6a
     11815    jmp short 08099h                          ; eb 6a
    1148311816    mov ax, word [bp+004h]                    ; 8b 46 04
    1148411817    test ax, ax                               ; 85 c0
    11485     je short 07c89h                           ; 74 08
     11818    je short 0803eh                           ; 74 08
    1148611819    lea dx, [bx+001h]                         ; 8d 57 01
    1148711820    mov cx, ax                                ; 89 c1
    1148811821    in AL, DX                                 ; ec
    11489     loop 07c86h                               ; e2 fd
     11822    loop 0803bh                               ; e2 fd
    1149011823    mov ax, word [bp+006h]                    ; 8b 46 06
    1149111824    mov es, [bp-00eh]                         ; 8e 46 f2
    11492     mov word [es:si+016h], ax                 ; 26 89 44 16
     11825    mov word [es:si+01ah], ax                 ; 26 89 44 1a
    1149311826    mov ax, word [bp+008h]                    ; 8b 46 08
    11494     mov word [es:si+018h], ax                 ; 26 89 44 18
     11827    mov word [es:si+01ch], ax                 ; 26 89 44 1c
    1149511828    lea ax, [bx+001h]                         ; 8d 47 01
    1149611829    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    11497     jne short 07caah                          ; 75 07
     11830    jne short 0805fh                          ; 75 07
    1149811831    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    11499     jbe short 07cc7h                          ; 76 1d
     11832    jbe short 0807ch                          ; 76 1d
    1150011833    mov dx, ax                                ; 89 c2
    1150111834    mov cx, 08000h                            ; b9 00 80
     
    1150711840    add ax, 00800h                            ; 05 00 08
    1150811841    mov word [bp+00eh], ax                    ; 89 46 0e
    11509     jmp short 07c9ah                          ; eb d3
     11842    jmp short 0804fh                          ; eb d3
    1151011843    mov dx, ax                                ; 89 c2
    1151111844    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1151311846    rep insb                                  ; f3 6c
    1151411847    mov es, [bp-00eh]                         ; 8e 46 f2
    11515     cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
    11516     je short 07ce2h                           ; 74 07
    11517     mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
     11848    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
     11849    je short 08097h                           ; 74 07
     11850    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1151811851    in AL, DX                                 ; ec
    11519     loop 07cdfh                               ; e2 fd
     11852    loop 08094h                               ; e2 fd
    1152011853    xor dx, dx                                ; 31 d2
    1152111854    mov ax, dx                                ; 89 d0
     
    1152511858    pop bp                                    ; 5d
    1152611859    retn 0000ch                               ; c2 0c 00
    11527 scsi_enumerate_attached_devices_:            ; 0xf7cef LB 0x3e4
     11860scsi_enumerate_attached_devices_:            ; 0xf80a4 LB 0x482
    1152811861    push bp                                   ; 55
    1152911862    mov bp, sp                                ; 89 e5
     
    1153311866    push si                                   ; 56
    1153411867    push di                                   ; 57
    11535     sub sp, 0021eh                            ; 81 ec 1e 02
     11868    sub sp, 0023ch                            ; 81 ec 3c 02
    1153611869    push ax                                   ; 50
    1153711870    mov dx, strict word 0000eh                ; ba 0e 00
    1153811871    mov ax, strict word 00040h                ; b8 40 00
    11539     call 0166ch                               ; e8 67 99
    11540     mov si, 00122h                            ; be 22 01
    11541     mov word [bp-018h], ax                    ; 89 46 e8
    11542     mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    11543     jmp near 08055h                           ; e9 42 03
     11872    call 0166ch                               ; e8 b2 95
     11873    mov di, 00122h                            ; bf 22 01
     11874    mov word [bp-02eh], ax                    ; 89 46 d2
     11875    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
     11876    jmp near 084a8h                           ; e9 e0 03
    1154411877    cmp AL, strict byte 004h                  ; 3c 04
    11545     jnc near 080c9h                           ; 0f 83 b0 03
    11546     mov cx, strict word 0000ah                ; b9 0a 00
     11878    jnc near 0851ch                           ; 0f 83 4e 04
     11879    mov cx, strict word 00010h                ; b9 10 00
    1154711880    xor bx, bx                                ; 31 db
    1154811881    mov dx, ss                                ; 8c d2
    11549     lea ax, [bp-028h]                         ; 8d 46 d8
    11550     call 097aah                               ; e8 84 1a
    11551     mov byte [bp-028h], 025h                  ; c6 46 d8 25
    11552     push dword 000000008h                     ; 66 6a 08
    11553     lea dx, [bp-00228h]                       ; 8d 96 d8 fd
     11882    lea ax, [bp-046h]                         ; 8d 46 ba
     11883    call 09d6ah                               ; e8 8f 1c
     11884    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
     11885    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     11886    mov byte [bp-039h], 020h                  ; c6 46 c7 20
     11887    push dword 000000020h                     ; 66 6a 20
     11888    lea dx, [bp-00246h]                       ; 8d 96 ba fd
    1155411889    push SS                                   ; 16
    1155511890    push dx                                   ; 52
    11556     push strict byte 0000ah                   ; 6a 0a
    11557     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
     11891    push strict byte 00010h                   ; 6a 10
     11892    movzx dx, byte [bp-01eh]                  ; 0f b6 56 e2
    1155811893    mov cx, ss                                ; 8c d1
    11559     lea bx, [bp-028h]                         ; 8d 5e d8
    11560     mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    11561     call 07885h                               ; e8 40 fb
     11894    lea bx, [bp-046h]                         ; 8d 5e ba
     11895    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
     11896    call 07bd2h                               ; e8 d0 fa
    1156211897    test al, al                               ; 84 c0
    11563     je short 07d57h                           ; 74 0e
    11564     push 00b9ah                               ; 68 9a 0b
    11565     push 00bd3h                               ; 68 d3 0b
     11898    je short 08114h                           ; 74 0e
     11899    push 00b92h                               ; 68 92 0b
     11900    push 00bcbh                               ; 68 cb 0b
    1156611901    push strict byte 00007h                   ; 6a 07
    11567     call 01972h                               ; e8 1e 9c
     11902    call 01972h                               ; e8 61 98
    1156811903    add sp, strict byte 00006h                ; 83 c4 06
    11569     movzx ax, byte [bp-00227h]                ; 0f b6 86 d9 fd
    11570     movzx di, byte [bp-00228h]                ; 0f b6 be d8 fd
    11571     sal di, 008h                              ; c1 e7 08
     11904    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     11905    mov bx, word [bp-00242h]                  ; 8b 9e be fd
     11906    mov cx, word [bp-00244h]                  ; 8b 8e bc fd
     11907    mov dx, word [bp-00246h]                  ; 8b 96 ba fd
     11908    xchg ah, al                               ; 86 c4
     11909    xchg bh, bl                               ; 86 df
     11910    xchg ch, cl                               ; 86 cd
     11911    xchg dh, dl                               ; 86 d6
     11912    xchg dx, ax                               ; 92
     11913    xchg bx, cx                               ; 87 cb
     11914    add dx, strict byte 00001h                ; 83 c2 01
     11915    mov word [bp-016h], dx                    ; 89 56 ea
     11916    adc cx, strict byte 00000h                ; 83 d1 00
     11917    mov word [bp-012h], cx                    ; 89 4e ee
     11918    adc bx, strict byte 00000h                ; 83 d3 00
     11919    mov word [bp-030h], bx                    ; 89 5e d0
     11920    adc ax, strict word 00000h                ; 15 00 00
     11921    mov word [bp-010h], ax                    ; 89 46 f0
     11922    movzx ax, byte [bp-0023eh]                ; 0f b6 86 c2 fd
     11923    sal ax, 008h                              ; c1 e0 08
     11924    movzx si, byte [bp-0023dh]                ; 0f b6 b6 c3 fd
    1157211925    xor bx, bx                                ; 31 db
    11573     or di, ax                                 ; 09 c7
    11574     movzx ax, byte [bp-00226h]                ; 0f b6 86 da fd
     11926    or si, ax                                 ; 09 c6
     11927    movzx ax, byte [bp-0023ch]                ; 0f b6 86 c4 fd
    1157511928    xor dx, dx                                ; 31 d2
    1157611929    mov cx, strict word 00008h                ; b9 08 00
    1157711930    sal ax, 1                                 ; d1 e0
    1157811931    rcl dx, 1                                 ; d1 d2
    11579     loop 07d72h                               ; e2 fa
     11932    loop 08162h                               ; e2 fa
    1158011933    or bx, ax                                 ; 09 c3
    11581     or di, dx                                 ; 09 d7
    11582     movzx ax, byte [bp-00225h]                ; 0f b6 86 db fd
     11934    or dx, si                                 ; 09 f2
     11935    movzx ax, byte [bp-0023bh]                ; 0f b6 86 c5 fd
    1158311936    or bx, ax                                 ; 09 c3
    11584     mov word [bp-014h], bx                    ; 89 5e ec
    11585     add word [bp-014h], strict byte 00001h    ; 83 46 ec 01
    11586     adc di, strict byte 00000h                ; 83 d7 00
    11587     movzx ax, byte [bp-00224h]                ; 0f b6 86 dc fd
    11588     sal ax, 008h                              ; c1 e0 08
    11589     movzx dx, byte [bp-00223h]                ; 0f b6 96 dd fd
    11590     xor bx, bx                                ; 31 db
    11591     or ax, dx                                 ; 09 d0
    11592     mov word [bp-012h], ax                    ; 89 46 ee
    11593     movzx ax, byte [bp-00222h]                ; 0f b6 86 de fd
    11594     xor dx, dx                                ; 31 d2
    11595     mov cx, strict word 00008h                ; b9 08 00
    11596     sal ax, 1                                 ; d1 e0
    11597     rcl dx, 1                                 ; d1 d2
    11598     loop 07dabh                               ; e2 fa
    11599     or ax, bx                                 ; 09 d8
    11600     or dx, word [bp-012h]                     ; 0b 56 ee
    11601     movzx bx, byte [bp-00221h]                ; 0f b6 9e df fd
    11602     or ax, bx                                 ; 09 d8
    11603     mov word [bp-010h], ax                    ; 89 46 f0
     11937    mov word [bp-024h], bx                    ; 89 5e dc
    1160411938    test dx, dx                               ; 85 d2
    11605     jne short 07dc9h                          ; 75 05
    11606     cmp ax, 00200h                            ; 3d 00 02
    11607     je short 07de9h                           ; 74 20
    11608     mov bx, 00da2h                            ; bb a2 0d
     11939    jne short 08180h                          ; 75 06
     11940    cmp bx, 00200h                            ; 81 fb 00 02
     11941    je short 081a0h                           ; 74 20
     11942    mov bx, 00da0h                            ; bb a0 0d
    1160911943    mov cx, ds                                ; 8c d9
    1161011944    mov ax, strict word 00004h                ; b8 04 00
    11611     call 01931h                               ; e8 5d 9b
     11945    call 01931h                               ; e8 a6 97
    1161211946    push dx                                   ; 52
    11613     push word [bp-010h]                       ; ff 76 f0
    11614     push word [bp-00eh]                       ; ff 76 f2
    11615     push 00bf2h                               ; 68 f2 0b
     11947    push word [bp-024h]                       ; ff 76 dc
     11948    push word [bp-01eh]                       ; ff 76 e2
     11949    push 00beah                               ; 68 ea 0b
    1161611950    push strict byte 00004h                   ; 6a 04
    11617     call 01972h                               ; e8 8f 9b
     11951    call 01972h                               ; e8 d8 97
    1161811952    add sp, strict byte 0000ah                ; 83 c4 0a
    11619     jmp near 0804ch                           ; e9 63 02
     11953    jmp near 0849fh                           ; e9 ff 02
    1162011954    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1162111955    cmp AL, strict byte 001h                  ; 3c 01
    11622     jc short 07dfch                           ; 72 0c
    11623     jbe short 07e04h                          ; 76 12
     11956    jc short 081b3h                           ; 72 0c
     11957    jbe short 081bbh                          ; 76 12
    1162411958    cmp AL, strict byte 003h                  ; 3c 03
    11625     je short 07e0ch                           ; 74 16
     11959    je short 081c3h                           ; 74 16
    1162611960    cmp AL, strict byte 002h                  ; 3c 02
    11627     je short 07e08h                           ; 74 0e
    11628     jmp short 07e5bh                          ; eb 5f
     11961    je short 081bfh                           ; 74 0e
     11962    jmp short 0820ch                          ; eb 59
    1162911963    test al, al                               ; 84 c0
    11630     jne short 07e5bh                          ; 75 5b
     11964    jne short 0820ch                          ; 75 55
    1163111965    mov BL, strict byte 090h                  ; b3 90
    11632     jmp short 07e0eh                          ; eb 0a
     11966    jmp short 081c5h                          ; eb 0a
    1163311967    mov BL, strict byte 098h                  ; b3 98
    11634     jmp short 07e0eh                          ; eb 06
     11968    jmp short 081c5h                          ; eb 06
    1163511969    mov BL, strict byte 0a0h                  ; b3 a0
    11636     jmp short 07e0eh                          ; eb 02
     11970    jmp short 081c5h                          ; eb 02
    1163711971    mov BL, strict byte 0a8h                  ; b3 a8
    1163811972    mov al, bl                                ; 88 d8
     
    1164011974    movzx cx, al                              ; 0f b6 c8
    1164111975    mov ax, cx                                ; 89 c8
    11642     call 016ach                               ; e8 92 98
     11976    call 016ach                               ; e8 db 94
    1164311977    test al, al                               ; 84 c0
    11644     je short 07e5bh                           ; 74 3d
     11978    je short 0820ch                           ; 74 37
    1164511979    mov al, bl                                ; 88 d8
    1164611980    db  0feh, 0c0h
    1164711981    ; inc al                                    ; fe c0
    1164811982    xor ah, ah                                ; 30 e4
    11649     call 016ach                               ; e8 85 98
     11983    call 016ach                               ; e8 ce 94
     11984    movzx dx, al                              ; 0f b6 d0
     11985    sal dx, 008h                              ; c1 e2 08
     11986    movzx ax, bl                              ; 0f b6 c3
     11987    call 016ach                               ; e8 c2 94
    1165011988    xor ah, ah                                ; 30 e4
    11651     sal ax, 008h                              ; c1 e0 08
    11652     mov word [bp-012h], ax                    ; 89 46 ee
    11653     movzx ax, bl                              ; 0f b6 c3
    11654     call 016ach                               ; e8 77 98
    11655     xor ah, ah                                ; 30 e4
    11656     add ax, word [bp-012h]                    ; 03 46 ee
     11989    add ax, dx                                ; 01 d0
    1165711990    cwd                                       ; 99
    11658     mov word [bp-01eh], ax                    ; 89 46 e2
    11659     mov word [bp-016h], dx                    ; 89 56 ea
     11991    mov si, ax                                ; 89 c6
    1166011992    mov al, bl                                ; 88 d8
    1166111993    add AL, strict byte 002h                  ; 04 02
    1166211994    xor ah, ah                                ; 30 e4
    11663     call 016ach                               ; e8 62 98
     11995    call 016ach                               ; e8 b2 94
    1166411996    xor ah, ah                                ; 30 e4
    11665     mov word [bp-01ch], ax                    ; 89 46 e4
     11997    mov word [bp-034h], ax                    ; 89 46 cc
    1166611998    mov ax, cx                                ; 89 c8
    11667     call 016ach                               ; e8 58 98
     11999    call 016ach                               ; e8 a8 94
    1166812000    xor ah, ah                                ; 30 e4
    11669     mov word [bp-01ah], ax                    ; 89 46 e6
    11670     jmp short 07e9ch                          ; eb 41
    11671     cmp di, strict byte 00040h                ; 83 ff 40
    11672     jnbe short 07e62h                         ; 77 02
    11673     jne short 07e6ch                          ; 75 0a
    11674     mov dword [bp-01ch], strict dword 0003f00ffh ; 66 c7 46 e4 ff 00 3f 00
    11675     jmp short 07e85h                          ; eb 19
    11676     cmp di, strict byte 00020h                ; 83 ff 20
    11677     jnbe short 07e73h                         ; 77 02
    11678     jne short 07e7dh                          ; 75 0a
    11679     mov dword [bp-01ch], strict dword 000200080h ; 66 c7 46 e4 80 00 20 00
    11680     jmp short 07e85h                          ; eb 08
    11681     mov dword [bp-01ch], strict dword 000200040h ; 66 c7 46 e4 40 00 20 00
     12001    mov word [bp-032h], ax                    ; 89 46 ce
     12002    jmp near 082f5h                           ; e9 e9 00
     12003    mov ax, word [bp-010h]                    ; 8b 46 f0
     12004    mov bx, word [bp-030h]                    ; 8b 5e d0
     12005    mov cx, word [bp-012h]                    ; 8b 4e ee
     12006    mov dx, word [bp-016h]                    ; 8b 56 ea
     12007    mov si, strict word 0000ch                ; be 0c 00
     12008    call 09d5ah                               ; e8 3c 1b
     12009    mov word [bp-018h], ax                    ; 89 46 e8
     12010    mov word [bp-014h], bx                    ; 89 5e ec
     12011    mov word [bp-036h], cx                    ; 89 4e ca
     12012    mov word [bp-020h], dx                    ; 89 56 e0
     12013    mov ax, word [bp-010h]                    ; 8b 46 f0
     12014    test ax, ax                               ; 85 c0
     12015    jnbe short 08247h                         ; 77 16
     12016    jne near 082bah                           ; 0f 85 85 00
     12017    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
     12018    jnbe short 08247h                         ; 77 0c
     12019    jne near 082bah                           ; 0f 85 7b 00
     12020    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
     12021    jnbe short 08247h                         ; 77 02
     12022    jne short 082bah                          ; 75 73
     12023    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
     12024    mov bx, word [bp-030h]                    ; 8b 5e d0
     12025    mov cx, word [bp-012h]                    ; 8b 4e ee
     12026    mov dx, word [bp-016h]                    ; 8b 56 ea
     12027    mov si, strict word 00006h                ; be 06 00
     12028    call 09d5ah                               ; e8 fc 1a
     12029    mov si, word [bp-020h]                    ; 8b 76 e0
     12030    add si, dx                                ; 01 d6
     12031    mov word [bp-02ah], si                    ; 89 76 d6
     12032    mov dx, word [bp-036h]                    ; 8b 56 ca
     12033    adc dx, cx                                ; 11 ca
     12034    mov word [bp-028h], dx                    ; 89 56 d8
     12035    mov dx, word [bp-014h]                    ; 8b 56 ec
     12036    adc dx, bx                                ; 11 da
     12037    mov word [bp-01ch], dx                    ; 89 56 e4
     12038    mov dx, word [bp-018h]                    ; 8b 56 e8
     12039    adc dx, ax                                ; 11 c2
     12040    mov word [bp-026h], dx                    ; 89 56 da
     12041    mov ax, dx                                ; 89 d0
    1168212042    mov bx, word [bp-01ch]                    ; 8b 5e e4
    11683     imul bx, word [bp-01ah]                   ; 0f af 5e e6
    11684     mov ax, word [bp-014h]                    ; 8b 46 ec
    11685     mov dx, di                                ; 89 fa
    11686     xor cx, cx                                ; 31 c9
    11687     call 09740h                               ; e8 aa 18
    11688     mov word [bp-01eh], ax                    ; 89 46 e2
    11689     mov word [bp-016h], dx                    ; 89 56 ea
    11690     mov dl, byte [bp-00ch]                    ; 8a 56 f4
    11691     add dl, 008h                              ; 80 c2 08
    11692     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    11693     sal bx, 002h                              ; c1 e3 02
    11694     mov es, [bp-018h]                         ; 8e 46 e8
    11695     add bx, si                                ; 01 f3
    11696     mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    11697     mov word [es:bx+001d8h], ax               ; 26 89 87 d8 01
    11698     mov al, byte [bp-00eh]                    ; 8a 46 f2
    11699     mov byte [es:bx+001dah], al               ; 26 88 87 da 01
    11700     movzx ax, dl                              ; 0f b6 c2
    11701     imul ax, ax, strict byte 00018h           ; 6b c0 18
    11702     mov bx, si                                ; 89 f3
     12043    mov cx, word [bp-028h]                    ; 8b 4e d8
     12044    mov dx, si                                ; 89 f2
     12045    mov si, strict word 00008h                ; be 08 00
     12046    call 09d5ah                               ; e8 cc 1a
     12047    mov word [bp-022h], bx                    ; 89 5e de
     12048    mov word [bp-02ch], cx                    ; 89 4e d4
     12049    mov word [bp-01ah], dx                    ; 89 56 e6
     12050    mov ax, word [bp-026h]                    ; 8b 46 da
     12051    mov bx, word [bp-01ch]                    ; 8b 5e e4
     12052    mov cx, word [bp-028h]                    ; 8b 4e d8
     12053    mov dx, word [bp-02ah]                    ; 8b 56 d6
     12054    mov si, strict word 00010h                ; be 10 00
     12055    call 09d5ah                               ; e8 b1 1a
     12056    mov si, word [bp-01ah]                    ; 8b 76 e6
     12057    add si, dx                                ; 01 d6
     12058    mov dx, word [bp-02ch]                    ; 8b 56 d4
     12059    adc dx, cx                                ; 11 ca
     12060    mov ax, word [bp-022h]                    ; 8b 46 de
     12061    adc ax, bx                                ; 11 d8
     12062    jmp short 082f5h                          ; eb 3b
     12063    test ax, ax                               ; 85 c0
     12064    jnbe short 082d0h                         ; 77 12
     12065    jne short 082dah                          ; 75 1a
     12066    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
     12067    jnbe short 082d0h                         ; 77 0a
     12068    jne short 082dah                          ; 75 12
     12069    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
     12070    jnbe short 082d0h                         ; 77 02
     12071    jne short 082dah                          ; 75 0a
     12072    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
     12073    jmp short 082f1h                          ; eb 17
     12074    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
     12075    mov bx, word [bp-030h]                    ; 8b 5e d0
     12076    mov cx, word [bp-012h]                    ; 8b 4e ee
     12077    mov dx, word [bp-016h]                    ; 8b 56 ea
     12078    mov si, strict word 0000bh                ; be 0b 00
     12079    call 09d5ah                               ; e8 69 1a
     12080    mov si, dx                                ; 89 d6
     12081    mov dx, cx                                ; 89 ca
     12082    mov al, byte [bp-00ch]                    ; 8a 46 f4
     12083    add AL, strict byte 008h                  ; 04 08
     12084    mov byte [bp-00eh], al                    ; 88 46 f2
     12085    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     12086    sal ax, 002h                              ; c1 e0 02
     12087    mov es, [bp-02eh]                         ; 8e 46 d2
     12088    mov bx, di                                ; 89 fb
    1170312089    add bx, ax                                ; 01 c3
    11704     db  066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h
    11705     ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00
    11706     mov ax, word [bp-010h]                    ; 8b 46 f0
    11707     mov word [es:bx+024h], ax                 ; 26 89 47 24
    11708     mov byte [es:bx+023h], 001h               ; 26 c6 47 23 01
    11709     mov ax, word [bp-01ch]                    ; 8b 46 e4
    11710     mov word [es:bx+026h], ax                 ; 26 89 47 26
    11711     mov ax, word [bp-01ah]                    ; 8b 46 e6
     12090    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
     12091    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
     12092    mov al, byte [bp-01eh]                    ; 8a 46 e2
     12093    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
     12094    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     12095    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     12096    mov bx, di                                ; 89 fb
     12097    add bx, ax                                ; 01 c3
     12098    db  066h, 026h, 0c7h, 047h, 022h, 004h, 0ffh, 000h, 000h
     12099    ; mov dword [es:bx+022h], strict dword 00000ff04h ; 66 26 c7 47 22 04 ff 00 00
     12100    mov ax, word [bp-024h]                    ; 8b 46 dc
     12101    mov word [es:bx+028h], ax                 ; 26 89 47 28
     12102    mov byte [es:bx+027h], 001h               ; 26 c6 47 27 01
     12103    mov ax, word [bp-034h]                    ; 8b 46 cc
    1171212104    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    11713     cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11714     jne short 07ef9h                          ; 75 07
    11715     cmp word [bp-01eh], 00400h                ; 81 7e e2 00 04
    11716     jbe short 07f01h                          ; 76 08
    11717     mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11718     jmp short 07f08h                          ; eb 07
    11719     mov ax, word [bp-01eh]                    ; 8b 46 e2
    11720     mov word [es:bx+028h], ax                 ; 26 89 47 28
    11721     mov bx, 00da2h                            ; bb a2 0d
     12105    mov ax, word [bp-032h]                    ; 8b 46 ce
     12106    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
     12107    mov ax, word [bp-034h]                    ; 8b 46 cc
     12108    mov word [es:bx+030h], ax                 ; 26 89 47 30
     12109    mov ax, word [bp-032h]                    ; 8b 46 ce
     12110    mov word [es:bx+034h], ax                 ; 26 89 47 34
     12111    test dx, dx                               ; 85 d2
     12112    jne short 08362h                          ; 75 06
     12113    cmp si, 00400h                            ; 81 fe 00 04
     12114    jbe short 08370h                          ; 76 0e
     12115    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
     12116    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
     12117    jmp short 08378h                          ; eb 08
     12118    mov word [es:bx+02ch], si                 ; 26 89 77 2c
     12119    mov word [es:bx+032h], si                 ; 26 89 77 32
     12120    mov bx, 00da0h                            ; bb a0 0d
    1172212121    mov cx, ds                                ; 8c d9
    1172312122    mov ax, strict word 00004h                ; b8 04 00
    11724     call 01931h                               ; e8 1e 9a
    11725     push di                                   ; 57
    11726     push word [bp-014h]                       ; ff 76 ec
    11727     push dword [bp-01ch]                      ; 66 ff 76 e4
     12123    call 01931h                               ; e8 ae 95
     12124    push word [bp-010h]                       ; ff 76 f0
     12125    push word [bp-030h]                       ; ff 76 d0
     12126    push word [bp-012h]                       ; ff 76 ee
     12127    push word [bp-016h]                       ; ff 76 ea
     12128    push dword [bp-034h]                      ; 66 ff 76 cc
     12129    push dx                                   ; 52
     12130    push si                                   ; 56
    1172812131    push word [bp-01eh]                       ; ff 76 e2
    11729     push word [bp-00eh]                       ; ff 76 f2
    1173012132    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1173112133    push ax                                   ; 50
    11732     push 00c20h                               ; 68 20 0c
     12134    push 00c18h                               ; 68 18 0c
    1173312135    push strict byte 00004h                   ; 6a 04
    11734     call 01972h                               ; e8 44 9a
    11735     add sp, strict byte 00012h                ; 83 c4 12
    11736     movzx ax, dl                              ; 0f b6 c2
    11737     imul ax, ax, strict byte 00018h           ; 6b c0 18
    11738     mov es, [bp-018h]                         ; 8e 46 e8
    11739     mov bx, si                                ; 89 f3
    11740     add bx, ax                                ; 01 c3
    11741     mov ax, word [bp-01ch]                    ; 8b 46 e4
    11742     mov word [es:bx+02ch], ax                 ; 26 89 47 2c
    11743     mov ax, word [bp-01ah]                    ; 8b 46 e6
    11744     mov word [es:bx+030h], ax                 ; 26 89 47 30
    11745     cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11746     jne short 07f59h                          ; 75 07
    11747     cmp word [bp-01eh], 00400h                ; 81 7e e2 00 04
    11748     jbe short 07f61h                          ; 76 08
    11749     mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11750     jmp short 07f68h                          ; eb 07
    11751     mov ax, word [bp-01eh]                    ; 8b 46 e2
    11752     mov word [es:bx+02eh], ax                 ; 26 89 47 2e
    11753     movzx ax, dl                              ; 0f b6 c2
    11754     imul ax, ax, strict byte 00018h           ; 6b c0 18
    11755     mov es, [bp-018h]                         ; 8e 46 e8
    11756     mov bx, si                                ; 89 f3
    11757     add bx, ax                                ; 01 c3
    11758     mov ax, word [bp-014h]                    ; 8b 46 ec
    11759     mov word [es:bx+032h], ax                 ; 26 89 47 32
    11760     mov word [es:bx+034h], di                 ; 26 89 7f 34
    11761     mov al, byte [es:si+0019eh]               ; 26 8a 84 9e 01
     12136    call 01972h                               ; e8 cd 95
     12137    add sp, strict byte 00018h                ; 83 c4 18
     12138    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     12139    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     12140    mov es, [bp-02eh]                         ; 8e 46 d2
     12141    add bx, di                                ; 01 fb
     12142    mov ax, word [bp-010h]                    ; 8b 46 f0
     12143    mov word [es:bx+03ch], ax                 ; 26 89 47 3c
     12144    mov ax, word [bp-030h]                    ; 8b 46 d0
     12145    mov word [es:bx+03ah], ax                 ; 26 89 47 3a
     12146    mov ax, word [bp-012h]                    ; 8b 46 ee
     12147    mov word [es:bx+038h], ax                 ; 26 89 47 38
     12148    mov ax, word [bp-016h]                    ; 8b 46 ea
     12149    mov word [es:bx+036h], ax                 ; 26 89 47 36
     12150    mov al, byte [es:di+001e2h]               ; 26 8a 85 e2 01
    1176212151    mov ah, byte [bp-00ch]                    ; 8a 66 f4
    1176312152    add ah, 008h                              ; 80 c4 08
    1176412153    movzx bx, al                              ; 0f b6 d8
    11765     add bx, si                                ; 01 f3
    11766     mov byte [es:bx+0019fh], ah               ; 26 88 a7 9f 01
     12154    add bx, di                                ; 01 fb
     12155    mov byte [es:bx+001e3h], ah               ; 26 88 a7 e3 01
    1176712156    db  0feh, 0c0h
    1176812157    ; inc al                                    ; fe c0
    11769     mov byte [es:si+0019eh], al               ; 26 88 84 9e 01
     12158    mov byte [es:di+001e2h], al               ; 26 88 85 e2 01
    1177012159    mov dx, strict word 00075h                ; ba 75 00
    1177112160    mov ax, strict word 00040h                ; b8 40 00
    11772     call 01650h                               ; e8 ab 96
     12161    call 01650h                               ; e8 5b 92
    1177312162    db  0feh, 0c0h
    1177412163    ; inc al                                    ; fe c0
     
    1177612165    mov dx, strict word 00075h                ; ba 75 00
    1177712166    mov ax, strict word 00040h                ; b8 40 00
    11778     call 0165eh                               ; e8 ab 96
     12167    call 0165eh                               ; e8 5b 92
    1177912168    inc byte [bp-00ch]                        ; fe 46 f4
    11780     jmp near 08041h                           ; e9 88 00
    11781     mov bx, 00da2h                            ; bb a2 0d
     12169    jmp near 08494h                           ; e9 8b 00
     12170    mov bx, 00da0h                            ; bb a0 0d
    1178212171    mov cx, ds                                ; 8c d9
    1178312172    mov ax, strict word 00004h                ; b8 04 00
    11784     call 01931h                               ; e8 6d 99
    11785     push word [bp-00eh]                       ; ff 76 f2
     12173    call 01931h                               ; e8 1d 95
     12174    push word [bp-01eh]                       ; ff 76 e2
    1178612175    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1178712176    push ax                                   ; 50
    11788     push 00c4ah                               ; 68 4a 0c
     12177    push 00c46h                               ; 68 46 0c
    1178912178    push strict byte 00004h                   ; 6a 04
    11790     call 01972h                               ; e8 9e 99
     12179    call 01972h                               ; e8 4e 95
    1179112180    add sp, strict byte 00008h                ; 83 c4 08
    11792     mov dl, byte [bp-00ch]                    ; 8a 56 f4
    11793     add dl, 008h                              ; 80 c2 08
    11794     test byte [bp-00227h], 080h               ; f6 86 d9 fd 80
     12181    mov al, byte [bp-00ch]                    ; 8a 46 f4
     12182    add AL, strict byte 008h                  ; 04 08
     12183    mov byte [bp-00eh], al                    ; 88 46 f2
     12184    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
    1179512185    db  00fh, 095h, 0c0h
    1179612186    ; setne al                                  ; 0f 95 c0
    1179712187    xor ah, ah                                ; 30 e4
    11798     mov cx, ax                                ; 89 c1
     12188    mov dx, ax                                ; 89 c2
    1179912189    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1180012190    sal ax, 002h                              ; c1 e0 02
    11801     mov es, [bp-018h]                         ; 8e 46 e8
    11802     mov bx, si                                ; 89 f3
     12191    mov es, [bp-02eh]                         ; 8e 46 d2
     12192    mov bx, di                                ; 89 fb
    1180312193    add bx, ax                                ; 01 c3
    11804     mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    11805     mov word [es:bx+001d8h], ax               ; 26 89 87 d8 01
    11806     mov al, byte [bp-00eh]                    ; 8a 46 f2
    11807     mov byte [es:bx+001dah], al               ; 26 88 87 da 01
    11808     movzx ax, dl                              ; 0f b6 c2
    11809     imul ax, ax, strict byte 00018h           ; 6b c0 18
    11810     mov bx, si                                ; 89 f3
     12194    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
     12195    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
     12196    mov al, byte [bp-01eh]                    ; 8a 46 e2
     12197    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
     12198    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     12199    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     12200    mov bx, di                                ; 89 fb
    1181112201    add bx, ax                                ; 01 c3
    11812     mov word [es:bx+01eh], 00504h             ; 26 c7 47 1e 04 05
    11813     mov byte [es:bx+020h], cl                 ; 26 88 4f 20
    11814     mov word [es:bx+024h], 00800h             ; 26 c7 47 24 00 08
    11815     mov al, byte [es:si+001afh]               ; 26 8a 84 af 01
     12202    mov word [es:bx+022h], 00504h             ; 26 c7 47 22 04 05
     12203    mov byte [es:bx+024h], dl                 ; 26 88 57 24
     12204    mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
     12205    mov al, byte [es:di+001f3h]               ; 26 8a 85 f3 01
    1181612206    mov ah, byte [bp-00ch]                    ; 8a 66 f4
    1181712207    add ah, 008h                              ; 80 c4 08
    1181812208    movzx bx, al                              ; 0f b6 d8
    11819     add bx, si                                ; 01 f3
    11820     mov byte [es:bx+001b0h], ah               ; 26 88 a7 b0 01
     12209    add bx, di                                ; 01 fb
     12210    mov byte [es:bx+001f4h], ah               ; 26 88 a7 f4 01
    1182112211    db  0feh, 0c0h
    1182212212    ; inc al                                    ; fe c0
    11823     mov byte [es:si+001afh], al               ; 26 88 84 af 01
     12213    mov byte [es:di+001f3h], al               ; 26 88 85 f3 01
    1182412214    inc byte [bp-00ch]                        ; fe 46 f4
    1182512215    mov al, byte [bp-00ch]                    ; 8a 46 f4
    11826     mov es, [bp-018h]                         ; 8e 46 e8
    11827     mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11828     inc word [bp-00eh]                        ; ff 46 f2
    11829     cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
    11830     jnl short 080c9h                          ; 7d 74
    11831     mov byte [bp-028h], 012h                  ; c6 46 d8 12
     12216    mov es, [bp-02eh]                         ; 8e 46 d2
     12217    mov byte [es:di+0022ch], al               ; 26 88 85 2c 02
     12218    inc word [bp-01eh]                        ; ff 46 e2
     12219    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
     12220    jnl short 0851ch                          ; 7d 74
     12221    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1183212222    xor al, al                                ; 30 c0
    11833     mov byte [bp-027h], al                    ; 88 46 d9
    11834     mov byte [bp-026h], al                    ; 88 46 da
    11835     mov byte [bp-025h], al                    ; 88 46 db
    11836     mov byte [bp-024h], 005h                  ; c6 46 dc 05
    11837     mov byte [bp-023h], al                    ; 88 46 dd
     12223    mov byte [bp-045h], al                    ; 88 46 bb
     12224    mov byte [bp-044h], al                    ; 88 46 bc
     12225    mov byte [bp-043h], al                    ; 88 46 bd
     12226    mov byte [bp-042h], 005h                  ; c6 46 be 05
     12227    mov byte [bp-041h], al                    ; 88 46 bf
    1183812228    push dword 000000005h                     ; 66 6a 05
    11839     lea dx, [bp-00228h]                       ; 8d 96 d8 fd
     12229    lea dx, [bp-00246h]                       ; 8d 96 ba fd
    1184012230    push SS                                   ; 16
    1184112231    push dx                                   ; 52
    1184212232    push strict byte 00006h                   ; 6a 06
    11843     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
     12233    movzx dx, byte [bp-01eh]                  ; 0f b6 56 e2
    1184412234    mov cx, ss                                ; 8c d1
    11845     lea bx, [bp-028h]                         ; 8d 5e d8
    11846     mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    11847     call 07885h                               ; e8 ff f7
     12235    lea bx, [bp-046h]                         ; 8d 5e ba
     12236    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
     12237    call 07bd2h                               ; e8 f9 f6
    1184812238    test al, al                               ; 84 c0
    11849     je short 08098h                           ; 74 0e
    11850     push 00b9ah                               ; 68 9a 0b
    11851     push 00bbah                               ; 68 ba 0b
     12239    je short 084ebh                           ; 74 0e
     12240    push 00b92h                               ; 68 92 0b
     12241    push 00bb2h                               ; 68 b2 0b
    1185212242    push strict byte 00007h                   ; 6a 07
    11853     call 01972h                               ; e8 dd 98
     12243    call 01972h                               ; e8 8a 94
    1185412244    add sp, strict byte 00006h                ; 83 c4 06
    11855     mov es, [bp-018h]                         ; 8e 46 e8
    11856     mov al, byte [es:si+001e8h]               ; 26 8a 84 e8 01
     12245    mov es, [bp-02eh]                         ; 8e 46 d2
     12246    mov al, byte [es:di+0022ch]               ; 26 8a 85 2c 02
    1185712247    mov byte [bp-00ch], al                    ; 88 46 f4
    11858     test byte [bp-00228h], 0e0h               ; f6 86 d8 fd e0
    11859     jne short 080b3h                          ; 75 09
    11860     test byte [bp-00228h], 01fh               ; f6 86 d8 fd 1f
    11861     je near 07d13h                            ; 0f 84 60 fc
    11862     test byte [bp-00228h], 0e0h               ; f6 86 d8 fd e0
    11863     jne short 08041h                          ; 75 87
    11864     mov al, byte [bp-00228h]                  ; 8a 86 d8 fd
     12248    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
     12249    jne short 08506h                          ; 75 09
     12250    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
     12251    je near 080c8h                            ; 0f 84 c2 fb
     12252    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
     12253    jne short 08494h                          ; 75 87
     12254    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1186512255    and AL, strict byte 01fh                  ; 24 1f
    1186612256    cmp AL, strict byte 005h                  ; 3c 05
    11867     je near 07fb9h                            ; 0f 84 f3 fe
    11868     jmp near 08041h                           ; e9 78 ff
     12257    je near 08409h                            ; 0f 84 f0 fe
     12258    jmp near 08494h                           ; e9 78 ff
    1186912259    lea sp, [bp-00ah]                         ; 8d 66 f6
    1187012260    pop di                                    ; 5f
     
    1187512265    pop bp                                    ; 5d
    1187612266    retn                                      ; c3
    11877 _scsi_init:                                  ; 0xf80d3 LB 0x66
     12267_scsi_init:                                  ; 0xf8526 LB 0x66
    1187812268    push bp                                   ; 55
    1187912269    mov bp, sp                                ; 89 e5
    1188012270    mov dx, strict word 0000eh                ; ba 0e 00
    1188112271    mov ax, strict word 00040h                ; b8 40 00
    11882     call 0166ch                               ; e8 8d 95
     12272    call 0166ch                               ; e8 3a 91
    1188312273    mov bx, 00122h                            ; bb 22 01
    1188412274    mov es, ax                                ; 8e c0
    11885     mov byte [es:bx+001e8h], 000h             ; 26 c6 87 e8 01 00
     12275    mov byte [es:bx+0022ch], 000h             ; 26 c6 87 2c 02 00
    1188612276    mov AL, strict byte 055h                  ; b0 55
    1188712277    mov dx, 00432h                            ; ba 32 04
     
    1189112281    ; sub ah, ah                                ; 2a e4
    1189212282    cmp AL, strict byte 055h                  ; 3c 55
    11893     jne short 08103h                          ; 75 0c
     12283    jne short 08556h                          ; 75 0c
    1189412284    xor al, al                                ; 30 c0
    1189512285    mov dx, 00433h                            ; ba 33 04
    1189612286    out DX, AL                                ; ee
    1189712287    mov ax, 00430h                            ; b8 30 04
    11898     call 07cefh                               ; e8 ec fb
     12288    call 080a4h                               ; e8 4e fb
    1189912289    mov AL, strict byte 055h                  ; b0 55
    1190012290    mov dx, 00436h                            ; ba 36 04
     
    1190412294    ; sub ah, ah                                ; 2a e4
    1190512295    cmp AL, strict byte 055h                  ; 3c 55
    11906     jne short 0811ch                          ; 75 0c
     12296    jne short 0856fh                          ; 75 0c
    1190712297    xor al, al                                ; 30 c0
    1190812298    mov dx, 00437h                            ; ba 37 04
    1190912299    out DX, AL                                ; ee
    1191012300    mov ax, 00434h                            ; b8 34 04
    11911     call 07cefh                               ; e8 d3 fb
     12301    call 080a4h                               ; e8 35 fb
    1191212302    mov AL, strict byte 055h                  ; b0 55
    1191312303    mov dx, 0043ah                            ; ba 3a 04
     
    1191712307    ; sub ah, ah                                ; 2a e4
    1191812308    cmp AL, strict byte 055h                  ; 3c 55
    11919     jne short 08135h                          ; 75 0c
     12309    jne short 08588h                          ; 75 0c
    1192012310    xor al, al                                ; 30 c0
    1192112311    mov dx, 0043bh                            ; ba 3b 04
    1192212312    out DX, AL                                ; ee
    1192312313    mov ax, 00438h                            ; b8 38 04
    11924     call 07cefh                               ; e8 ba fb
     12314    call 080a4h                               ; e8 1c fb
    1192512315    mov sp, bp                                ; 89 ec
    1192612316    pop bp                                    ; 5d
    1192712317    retn                                      ; c3
    11928 high_bits_save_:                             ; 0xf8139 LB 0x17
     12318ahci_ctrl_extract_bits_:                     ; 0xf858c LB 0x1b
     12319    push si                                   ; 56
    1192912320    push bp                                   ; 55
    1193012321    mov bp, sp                                ; 89 e5
     12322    mov si, bx                                ; 89 de
     12323    and ax, bx                                ; 21 d8
     12324    and dx, cx                                ; 21 ca
     12325    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
     12326    jcxz 085a2h                               ; e3 06
     12327    shr dx, 1                                 ; d1 ea
     12328    rcr ax, 1                                 ; d1 d8
     12329    loop 0859ch                               ; e2 fa
     12330    pop bp                                    ; 5d
     12331    pop si                                    ; 5e
     12332    retn 00002h                               ; c2 02 00
     12333ahci_addr_to_phys_:                          ; 0xf85a7 LB 0x1e
    1193112334    push bx                                   ; 53
    11932     mov bx, ax                                ; 89 c3
    11933     shr eax, 010h                             ; 66 c1 e8 10
    11934     mov es, dx                                ; 8e c2
    11935     mov word [es:bx+00268h], ax               ; 26 89 87 68 02
    11936     lea sp, [bp-002h]                         ; 8d 66 fe
    11937     pop bx                                    ; 5b
    11938     pop bp                                    ; 5d
    11939     retn                                      ; c3
    11940 high_bits_restore_:                          ; 0xf8150 LB 0x17
     12335    push cx                                   ; 51
    1194112336    push bp                                   ; 55
    1194212337    mov bp, sp                                ; 89 e5
    11943     push bx                                   ; 53
    1194412338    mov bx, ax                                ; 89 c3
    11945     mov es, dx                                ; 8e c2
    11946     mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
    11947     sal eax, 010h                             ; 66 c1 e0 10
    11948     lea sp, [bp-002h]                         ; 8d 66 fe
     12339    mov ax, dx                                ; 89 d0
     12340    xor dx, dx                                ; 31 d2
     12341    mov cx, strict word 00004h                ; b9 04 00
     12342    sal ax, 1                                 ; d1 e0
     12343    rcl dx, 1                                 ; d1 d2
     12344    loop 085b5h                               ; e2 fa
     12345    xor cx, cx                                ; 31 c9
     12346    add ax, bx                                ; 01 d8
     12347    adc dx, cx                                ; 11 ca
     12348    pop bp                                    ; 5d
     12349    pop cx                                    ; 59
    1194912350    pop bx                                    ; 5b
    11950     pop bp                                    ; 5d
    1195112351    retn                                      ; c3
    11952 ahci_ctrl_set_bits_:                         ; 0xf8167 LB 0x43
     12352ahci_port_cmd_sync_:                         ; 0xf85c5 LB 0x14b
    1195312353    push bp                                   ; 55
    1195412354    mov bp, sp                                ; 89 e5
     12355    push cx                                   ; 51
    1195512356    push si                                   ; 56
    1195612357    push di                                   ; 57
    1195712358    push ax                                   ; 50
    1195812359    mov si, ax                                ; 89 c6
    11959     mov ax, dx                                ; 89 d0
    11960     mov word [bp-006h], bx                    ; 89 5e fa
    11961     mov di, cx                                ; 89 cf
     12360    mov cx, dx                                ; 89 d1
     12361    mov al, bl                                ; 88 d8
     12362    mov es, dx                                ; 8e c2
     12363    mov ah, byte [es:si+00262h]               ; 26 8a a4 62 02
     12364    mov byte [bp-008h], ah                    ; 88 66 f8
     12365    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     12366    cmp ah, 0ffh                              ; 80 fc ff
     12367    je near 08708h                            ; 0f 84 20 01
     12368    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
     12369    xor di, di                                ; 31 ff
     12370    or di, 00080h                             ; 81 cf 80 00
     12371    xor ah, ah                                ; 30 e4
     12372    or di, ax                                 ; 09 c7
     12373    mov word [es:si], di                      ; 26 89 3c
     12374    mov word [es:si+002h], dx                 ; 26 89 54 02
     12375    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
     12376    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
     12377    lea ax, [si+00080h]                       ; 8d 84 80 00
     12378    mov dx, cx                                ; 89 ca
     12379    call 085a7h                               ; e8 96 ff
     12380    mov es, cx                                ; 8e c1
     12381    mov word [es:si+008h], ax                 ; 26 89 44 08
     12382    mov word [es:si+00ah], dx                 ; 26 89 54 0a
     12383    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     12384    sal di, 007h                              ; c1 e7 07
     12385    lea ax, [di+00118h]                       ; 8d 85 18 01
     12386    xor cx, cx                                ; 31 c9
     12387    mov dx, bx                                ; 89 da
     12388    xchg cx, ax                               ; 91
     12389    sal eax, 010h                             ; 66 c1 e0 10
     12390    db  08bh, 0c1h
     12391    ; mov ax, cx                                ; 8b c1
     12392    out DX, eax                               ; 66 ef
     12393    lea si, [bx+004h]                         ; 8d 77 04
     12394    mov dx, si                                ; 89 f2
     12395    in eax, DX                                ; 66 ed
     12396    db  08bh, 0d0h
     12397    ; mov dx, ax                                ; 8b d0
     12398    shr eax, 010h                             ; 66 c1 e8 10
     12399    xchg dx, ax                               ; 92
     12400    or AL, strict byte 011h                   ; 0c 11
     12401    mov cx, dx                                ; 89 d1
     12402    mov dx, si                                ; 89 f2
     12403    xchg cx, ax                               ; 91
     12404    sal eax, 010h                             ; 66 c1 e0 10
     12405    db  08bh, 0c1h
     12406    ; mov ax, cx                                ; 8b c1
     12407    out DX, eax                               ; 66 ef
     12408    lea ax, [di+00138h]                       ; 8d 85 38 01
     12409    cwd                                       ; 99
     12410    mov cx, dx                                ; 89 d1
     12411    mov dx, bx                                ; 89 da
     12412    xchg cx, ax                               ; 91
     12413    sal eax, 010h                             ; 66 c1 e0 10
     12414    db  08bh, 0c1h
     12415    ; mov ax, cx                                ; 8b c1
     12416    out DX, eax                               ; 66 ef
     12417    mov ax, strict word 00001h                ; b8 01 00
     12418    xor cx, cx                                ; 31 c9
     12419    mov dx, si                                ; 89 f2
     12420    xchg cx, ax                               ; 91
     12421    sal eax, 010h                             ; 66 c1 e0 10
     12422    db  08bh, 0c1h
     12423    ; mov ax, cx                                ; 8b c1
     12424    out DX, eax                               ; 66 ef
     12425    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     12426    sal ax, 007h                              ; c1 e0 07
     12427    add ax, 00110h                            ; 05 10 01
     12428    xor cx, cx                                ; 31 c9
     12429    mov dx, bx                                ; 89 da
     12430    xchg cx, ax                               ; 91
     12431    sal eax, 010h                             ; 66 c1 e0 10
     12432    db  08bh, 0c1h
     12433    ; mov ax, cx                                ; 8b c1
     12434    out DX, eax                               ; 66 ef
     12435    lea dx, [bx+004h]                         ; 8d 57 04
     12436    in eax, DX                                ; 66 ed
     12437    db  08bh, 0d0h
     12438    ; mov dx, ax                                ; 8b d0
     12439    shr eax, 010h                             ; 66 c1 e8 10
     12440    xchg dx, ax                               ; 92
     12441    test dh, 040h                             ; f6 c6 40
     12442    jne short 0869eh                          ; 75 04
     12443    test AL, strict byte 001h                 ; a8 01
     12444    je short 086a2h                           ; 74 04
     12445    mov AL, strict byte 001h                  ; b0 01
     12446    jmp short 086a4h                          ; eb 02
     12447    xor al, al                                ; 30 c0
     12448    test al, al                               ; 84 c0
     12449    je short 08672h                           ; 74 ca
     12450    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     12451    sal di, 007h                              ; c1 e7 07
     12452    lea ax, [di+00110h]                       ; 8d 85 10 01
     12453    xor cx, cx                                ; 31 c9
     12454    mov dx, bx                                ; 89 da
     12455    xchg cx, ax                               ; 91
     12456    sal eax, 010h                             ; 66 c1 e0 10
     12457    db  08bh, 0c1h
     12458    ; mov ax, cx                                ; 8b c1
     12459    out DX, eax                               ; 66 ef
     12460    lea si, [bx+004h]                         ; 8d 77 04
     12461    mov dx, si                                ; 89 f2
     12462    in eax, DX                                ; 66 ed
     12463    db  08bh, 0d0h
     12464    ; mov dx, ax                                ; 8b d0
     12465    shr eax, 010h                             ; 66 c1 e8 10
     12466    xchg dx, ax                               ; 92
     12467    or AL, strict byte 001h                   ; 0c 01
     12468    mov cx, dx                                ; 89 d1
     12469    mov dx, si                                ; 89 f2
     12470    xchg cx, ax                               ; 91
     12471    sal eax, 010h                             ; 66 c1 e0 10
     12472    db  08bh, 0c1h
     12473    ; mov ax, cx                                ; 8b c1
     12474    out DX, eax                               ; 66 ef
     12475    lea ax, [di+00118h]                       ; 8d 85 18 01
     12476    xor cx, cx                                ; 31 c9
     12477    mov dx, bx                                ; 89 da
     12478    xchg cx, ax                               ; 91
     12479    sal eax, 010h                             ; 66 c1 e0 10
     12480    db  08bh, 0c1h
     12481    ; mov ax, cx                                ; 8b c1
     12482    out DX, eax                               ; 66 ef
     12483    mov dx, si                                ; 89 f2
     12484    in eax, DX                                ; 66 ed
     12485    db  08bh, 0d0h
     12486    ; mov dx, ax                                ; 8b d0
     12487    shr eax, 010h                             ; 66 c1 e8 10
     12488    xchg dx, ax                               ; 92
     12489    and AL, strict byte 0feh                  ; 24 fe
     12490    mov cx, dx                                ; 89 d1
     12491    mov dx, si                                ; 89 f2
     12492    xchg cx, ax                               ; 91
     12493    sal eax, 010h                             ; 66 c1 e0 10
     12494    db  08bh, 0c1h
     12495    ; mov ax, cx                                ; 8b c1
     12496    out DX, eax                               ; 66 ef
     12497    lea sp, [bp-006h]                         ; 8d 66 fa
     12498    pop di                                    ; 5f
     12499    pop si                                    ; 5e
     12500    pop cx                                    ; 59
     12501    pop bp                                    ; 5d
     12502    retn                                      ; c3
     12503ahci_cmd_data_:                              ; 0xf8710 LB 0x262
     12504    push bp                                   ; 55
     12505    mov bp, sp                                ; 89 e5
     12506    push cx                                   ; 51
     12507    push si                                   ; 56
     12508    push di                                   ; 57
     12509    sub sp, strict byte 0000ch                ; 83 ec 0c
     12510    push ax                                   ; 50
     12511    push dx                                   ; 52
     12512    mov byte [bp-008h], bl                    ; 88 5e f8
     12513    xor di, di                                ; 31 ff
     12514    mov es, dx                                ; 8e c2
     12515    mov bx, ax                                ; 89 c3
     12516    mov ax, word [es:bx+00232h]               ; 26 8b 87 32 02
     12517    mov word [bp-00ah], ax                    ; 89 46 f6
     12518    mov word [bp-00eh], di                    ; 89 7e f2
     12519    mov word [bp-00ch], ax                    ; 89 46 f4
     12520    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
     12521    mov word [bp-012h], ax                    ; 89 46 ee
     12522    mov ax, word [es:bx+010h]                 ; 26 8b 47 10
     12523    mov word [bp-010h], ax                    ; 89 46 f0
     12524    mov cx, strict word 00040h                ; b9 40 00
     12525    xor bx, bx                                ; 31 db
     12526    mov ax, 00080h                            ; b8 80 00
     12527    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12528    call 09d6ah                               ; e8 1c 16
     12529    mov es, [bp-00ah]                         ; 8e 46 f6
     12530    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     12531    mov al, byte [bp-008h]                    ; 8a 46 f8
     12532    mov byte [es:di+00082h], al               ; 26 88 85 82 00
     12533    mov byte [es:di+00083h], 000h             ; 26 c6 85 83 00 00
     12534    mov es, [bp-016h]                         ; 8e 46 ea
     12535    mov bx, word [bp-014h]                    ; 8b 5e ec
     12536    mov ax, word [es:bx]                      ; 26 8b 07
     12537    mov es, [bp-00ah]                         ; 8e 46 f6
     12538    mov byte [es:di+00084h], al               ; 26 88 85 84 00
     12539    mov es, [bp-016h]                         ; 8e 46 ea
     12540    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     12541    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     12542    mov si, word [bp-014h]                    ; 8b 76 ec
     12543    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     12544    mov dx, word [es:si]                      ; 26 8b 14
     12545    mov si, strict word 00008h                ; be 08 00
     12546    call 09d5ah                               ; e8 c8 15
     12547    mov es, [bp-00ah]                         ; 8e 46 f6
     12548    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     12549    mov es, [bp-016h]                         ; 8e 46 ea
     12550    mov bx, word [bp-014h]                    ; 8b 5e ec
     12551    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     12552    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     12553    mov si, word [bp-014h]                    ; 8b 76 ec
     12554    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     12555    mov dx, word [es:si]                      ; 26 8b 14
     12556    mov si, strict word 00010h                ; be 10 00
     12557    call 09d5ah                               ; e8 a2 15
     12558    mov es, [bp-00ah]                         ; 8e 46 f6
     12559    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     12560    mov byte [es:di+00087h], 040h             ; 26 c6 85 87 00 40
     12561    mov es, [bp-016h]                         ; 8e 46 ea
     12562    mov bx, word [bp-014h]                    ; 8b 5e ec
     12563    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     12564    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     12565    mov si, word [bp-014h]                    ; 8b 76 ec
     12566    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     12567    mov dx, word [es:si]                      ; 26 8b 14
     12568    mov si, strict word 00018h                ; be 18 00
     12569    call 09d5ah                               ; e8 76 15
     12570    mov es, [bp-00ah]                         ; 8e 46 f6
     12571    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     12572    mov es, [bp-016h]                         ; 8e 46 ea
     12573    mov bx, word [bp-014h]                    ; 8b 5e ec
     12574    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     12575    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     12576    mov si, word [bp-014h]                    ; 8b 76 ec
     12577    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     12578    mov dx, word [es:si]                      ; 26 8b 14
     12579    mov si, strict word 00020h                ; be 20 00
     12580    call 09d5ah                               ; e8 50 15
     12581    mov es, [bp-00ah]                         ; 8e 46 f6
     12582    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     12583    mov es, [bp-016h]                         ; 8e 46 ea
     12584    mov bx, word [bp-014h]                    ; 8b 5e ec
     12585    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     12586    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
     12587    mov si, word [bp-014h]                    ; 8b 76 ec
     12588    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
     12589    mov dx, word [es:si]                      ; 26 8b 14
     12590    mov si, strict word 00028h                ; be 28 00
     12591    call 09d5ah                               ; e8 2a 15
     12592    mov es, [bp-00ah]                         ; 8e 46 f6
     12593    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     12594    mov byte [es:di+0008bh], 000h             ; 26 c6 85 8b 00 00
     12595    mov al, byte [bp-012h]                    ; 8a 46 ee
     12596    mov byte [es:di+0008ch], al               ; 26 88 85 8c 00
     12597    mov ax, word [bp-012h]                    ; 8b 46 ee
     12598    shr ax, 008h                              ; c1 e8 08
     12599    mov byte [es:di+0008dh], al               ; 26 88 85 8d 00
     12600    mov word [es:di+00276h], strict word 00010h ; 26 c7 85 76 02 10 00
     12601    mov ax, word [bp-012h]                    ; 8b 46 ee
     12602    xor dx, dx                                ; 31 d2
     12603    mov bx, word [bp-010h]                    ; 8b 5e f0
     12604    xor cx, cx                                ; 31 c9
     12605    call 09d19h                               ; e8 b4 14
     12606    push dx                                   ; 52
     12607    push ax                                   ; 50
     12608    mov es, [bp-016h]                         ; 8e 46 ea
     12609    mov bx, word [bp-014h]                    ; 8b 5e ec
     12610    mov bx, word [es:bx+008h]                 ; 26 8b 5f 08
     12611    mov si, word [bp-014h]                    ; 8b 76 ec
     12612    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
     12613    mov ax, 0026ah                            ; b8 6a 02
     12614    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12615    call 09c33h                               ; e8 b2 13
     12616    mov es, [bp-00ah]                         ; 8e 46 f6
     12617    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     12618    add ax, strict word 0ffffh                ; 05 ff ff
     12619    mov dx, word [es:di+00280h]               ; 26 8b 95 80 02
     12620    adc dx, strict byte 0ffffh                ; 83 d2 ff
     12621    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
     12622    sal bx, 004h                              ; c1 e3 04
     12623    mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
     12624    mov word [es:bx+0010eh], dx               ; 26 89 97 0e 01
     12625    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
     12626    sal bx, 004h                              ; c1 e3 04
     12627    mov ax, word [es:di+0027ah]               ; 26 8b 85 7a 02
     12628    mov dx, word [es:di+0027ch]               ; 26 8b 95 7c 02
     12629    mov word [es:bx+00100h], ax               ; 26 89 87 00 01
     12630    mov word [es:bx+00102h], dx               ; 26 89 97 02 01
     12631    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
     12632    mov es, [bp-016h]                         ; 8e 46 ea
     12633    mov bx, si                                ; 89 f3
     12634    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     12635    test ax, ax                               ; 85 c0
     12636    je short 0890fh                           ; 74 39
     12637    dec ax                                    ; 48
     12638    mov es, [bp-00ah]                         ; 8e 46 f6
     12639    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
     12640    sal bx, 004h                              ; c1 e3 04
     12641    mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
     12642    mov word [es:bx+0010eh], di               ; 26 89 bf 0e 01
     12643    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
     12644    sal bx, 004h                              ; c1 e3 04
     12645    mov dx, word [es:di+00264h]               ; 26 8b 95 64 02
     12646    mov ax, word [es:di+00266h]               ; 26 8b 85 66 02
     12647    mov word [es:bx+00100h], dx               ; 26 89 97 00 01
     12648    mov word [es:bx+00102h], ax               ; 26 89 87 02 01
     12649    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
     12650    mov al, byte [bp-008h]                    ; 8a 46 f8
     12651    cmp AL, strict byte 035h                  ; 3c 35
     12652    jne short 0891ch                          ; 75 06
     12653    mov byte [bp-008h], 040h                  ; c6 46 f8 40
     12654    jmp short 08933h                          ; eb 17
     12655    cmp AL, strict byte 0a0h                  ; 3c a0
     12656    jne short 0892fh                          ; 75 0f
     12657    or byte [bp-008h], 020h                   ; 80 4e f8 20
     12658    les bx, [bp-00eh]                         ; c4 5e f2
     12659    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
     12660    jmp short 08933h                          ; eb 04
     12661    mov byte [bp-008h], 000h                  ; c6 46 f8 00
     12662    or byte [bp-008h], 005h                   ; 80 4e f8 05
     12663    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     12664    mov ax, word [bp-00eh]                    ; 8b 46 f2
     12665    mov dx, word [bp-00ch]                    ; 8b 56 f4
     12666    call 085c5h                               ; e8 81 fc
     12667    mov cx, word [bp-00ch]                    ; 8b 4e f4
     12668    mov bx, word [bp-00eh]                    ; 8b 5e f2
     12669    add bx, 00240h                            ; 81 c3 40 02
     12670    mov ax, word [bp-00eh]                    ; 8b 46 f2
     12671    add ax, 0026ah                            ; 05 6a 02
     12672    mov dx, cx                                ; 89 ca
     12673    call 09cach                               ; e8 53 13
     12674    mov es, cx                                ; 8e c1
     12675    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     12676    test al, al                               ; 84 c0
     12677    je short 08968h                           ; 74 05
     12678    mov ax, strict word 00004h                ; b8 04 00
     12679    jmp short 0896ah                          ; eb 02
     12680    xor ah, ah                                ; 30 e4
     12681    lea sp, [bp-006h]                         ; 8d 66 fa
     12682    pop di                                    ; 5f
     12683    pop si                                    ; 5e
     12684    pop cx                                    ; 59
     12685    pop bp                                    ; 5d
     12686    retn                                      ; c3
     12687ahci_port_deinit_current_:                   ; 0xf8972 LB 0x17f
     12688    push bp                                   ; 55
     12689    mov bp, sp                                ; 89 e5
     12690    push bx                                   ; 53
     12691    push cx                                   ; 51
     12692    push si                                   ; 56
     12693    push di                                   ; 57
     12694    sub sp, strict byte 00006h                ; 83 ec 06
     12695    mov di, ax                                ; 89 c7
     12696    mov word [bp-00ch], dx                    ; 89 56 f4
     12697    mov es, dx                                ; 8e c2
     12698    mov si, word [es:di+00260h]               ; 26 8b b5 60 02
     12699    mov al, byte [es:di+00262h]               ; 26 8a 85 62 02
     12700    mov byte [bp-00ah], al                    ; 88 46 f6
     12701    cmp AL, strict byte 0ffh                  ; 3c ff
     12702    je near 08ae8h                            ; 0f 84 52 01
     12703    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     12704    sal ax, 007h                              ; c1 e0 07
     12705    add ax, 00118h                            ; 05 18 01
    1196212706    xor cx, cx                                ; 31 c9
    1196312707    mov dx, si                                ; 89 f2
     
    1197412718    shr eax, 010h                             ; 66 c1 e8 10
    1197512719    xchg dx, ax                               ; 92
    11976     or ax, word [bp-006h]                     ; 0b 46 fa
     12720    and AL, strict byte 0eeh                  ; 24 ee
    1197712721    mov cx, dx                                ; 89 d1
    11978     or cx, di                                 ; 09 f9
    1197912722    mov dx, bx                                ; 89 da
    1198012723    xchg cx, ax                               ; 91
     
    1198312726    ; mov ax, cx                                ; 8b c1
    1198412727    out DX, eax                               ; 66 ef
    11985     lea sp, [bp-004h]                         ; 8d 66 fc
    11986     pop di                                    ; 5f
    11987     pop si                                    ; 5e
    11988     pop bp                                    ; 5d
    11989     retn                                      ; c3
    11990 ahci_ctrl_clear_bits_:                       ; 0xf81aa LB 0x47
    11991     push bp                                   ; 55
    11992     mov bp, sp                                ; 89 e5
    11993     push si                                   ; 56
    11994     push di                                   ; 57
    11995     push ax                                   ; 50
    11996     mov si, ax                                ; 89 c6
    11997     mov ax, dx                                ; 89 d0
    11998     mov di, bx                                ; 89 df
    11999     mov word [bp-006h], cx                    ; 89 4e fa
    12000     xor cx, cx                                ; 31 c9
    12001     mov dx, si                                ; 89 f2
    12002     xchg cx, ax                               ; 91
    12003     sal eax, 010h                             ; 66 c1 e0 10
    12004     db  08bh, 0c1h
    12005     ; mov ax, cx                                ; 8b c1
    12006     out DX, eax                               ; 66 ef
    12007     lea bx, [si+004h]                         ; 8d 5c 04
    12008     mov dx, bx                                ; 89 da
    12009     in eax, DX                                ; 66 ed
    12010     db  08bh, 0d0h
    12011     ; mov dx, ax                                ; 8b d0
    12012     shr eax, 010h                             ; 66 c1 e8 10
    12013     xchg dx, ax                               ; 92
    12014     not di                                    ; f7 d7
    12015     mov cx, word [bp-006h]                    ; 8b 4e fa
    12016     not cx                                    ; f7 d1
    12017     and ax, di                                ; 21 f8
    12018     and cx, dx                                ; 21 d1
    12019     mov dx, bx                                ; 89 da
    12020     xchg cx, ax                               ; 91
    12021     sal eax, 010h                             ; 66 c1 e0 10
    12022     db  08bh, 0c1h
    12023     ; mov ax, cx                                ; 8b c1
    12024     out DX, eax                               ; 66 ef
    12025     lea sp, [bp-004h]                         ; 8d 66 fc
    12026     pop di                                    ; 5f
    12027     pop si                                    ; 5e
    12028     pop bp                                    ; 5d
    12029     retn                                      ; c3
    12030 ahci_ctrl_is_bit_set_:                       ; 0xf81f1 LB 0x39
    12031     push bp                                   ; 55
    12032     mov bp, sp                                ; 89 e5
    12033     push si                                   ; 56
    12034     push di                                   ; 57
    12035     mov si, ax                                ; 89 c6
    12036     mov ax, dx                                ; 89 d0
    12037     mov di, cx                                ; 89 cf
     12728    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     12729    sal ax, 007h                              ; c1 e0 07
     12730    add ax, 00118h                            ; 05 18 01
    1203812731    xor cx, cx                                ; 31 c9
    1203912732    mov dx, si                                ; 89 f2
     
    1204912742    shr eax, 010h                             ; 66 c1 e8 10
    1205012743    xchg dx, ax                               ; 92
    12051     test dx, di                               ; 85 fa
    12052     jne short 0821dh                          ; 75 04
    12053     test ax, bx                               ; 85 d8
    12054     je short 08221h                           ; 74 04
     12744    test ax, 0c011h                           ; a9 11 c0
     12745    je short 089f6h                           ; 74 04
    1205512746    mov AL, strict byte 001h                  ; b0 01
    12056     jmp short 08223h                          ; eb 02
     12747    jmp short 089f8h                          ; eb 02
    1205712748    xor al, al                                ; 30 c0
    12058     lea sp, [bp-004h]                         ; 8d 66 fc
    12059     pop di                                    ; 5f
    12060     pop si                                    ; 5e
    12061     pop bp                                    ; 5d
    12062     retn                                      ; c3
    12063 ahci_ctrl_extract_bits_:                     ; 0xf822a LB 0x1b
    12064     push si                                   ; 56
    12065     push bp                                   ; 55
    12066     mov bp, sp                                ; 89 e5
    12067     mov si, bx                                ; 89 de
    12068     and ax, bx                                ; 21 d8
    12069     and dx, cx                                ; 21 ca
    12070     movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12071     jcxz 08240h                               ; e3 06
    12072     shr dx, 1                                 ; d1 ea
    12073     rcr ax, 1                                 ; d1 d8
    12074     loop 0823ah                               ; e2 fa
    12075     pop bp                                    ; 5d
    12076     pop si                                    ; 5e
    12077     retn 00002h                               ; c2 02 00
    12078 ahci_addr_to_phys_:                          ; 0xf8245 LB 0x1e
    12079     push bx                                   ; 53
    12080     push cx                                   ; 51
    12081     push bp                                   ; 55
    12082     mov bp, sp                                ; 89 e5
    12083     mov bx, ax                                ; 89 c3
    12084     mov ax, dx                                ; 89 d0
    12085     xor dx, dx                                ; 31 d2
    12086     mov cx, strict word 00004h                ; b9 04 00
    12087     sal ax, 1                                 ; d1 e0
    12088     rcl dx, 1                                 ; d1 d2
    12089     loop 08253h                               ; e2 fa
    12090     xor cx, cx                                ; 31 c9
    12091     add ax, bx                                ; 01 d8
    12092     adc dx, cx                                ; 11 ca
    12093     pop bp                                    ; 5d
    12094     pop cx                                    ; 59
    12095     pop bx                                    ; 5b
    12096     retn                                      ; c3
    12097 ahci_port_cmd_sync_:                         ; 0xf8263 LB 0xd5
    12098     push bp                                   ; 55
    12099     mov bp, sp                                ; 89 e5
    12100     push cx                                   ; 51
    12101     push si                                   ; 56
    12102     push di                                   ; 57
    12103     sub sp, strict byte 00006h                ; 83 ec 06
    12104     mov si, ax                                ; 89 c6
    12105     mov word [bp-00ah], dx                    ; 89 56 f6
    12106     mov es, dx                                ; 8e c2
    12107     mov al, byte [es:si+00262h]               ; 26 8a 84 62 02
    12108     mov byte [bp-008h], al                    ; 88 46 f8
    12109     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    12110     cmp AL, strict byte 0ffh                  ; 3c ff
    12111     je near 08330h                            ; 0f 84 aa 00
    12112     movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    12113     xor dx, dx                                ; 31 d2
    12114     or dl, 080h                               ; 80 ca 80
    12115     movzx ax, bl                              ; 0f b6 c3
    12116     or dx, ax                                 ; 09 c2
    12117     mov word [es:si], dx                      ; 26 89 14
    12118     mov word [es:si+002h], cx                 ; 26 89 4c 02
    12119     db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
    12120     ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
    12121     lea ax, [si+00080h]                       ; 8d 84 80 00
    12122     mov dx, es                                ; 8c c2
    12123     call 08245h                               ; e8 96 ff
    12124     mov es, [bp-00ah]                         ; 8e 46 f6
    12125     mov word [es:si+008h], ax                 ; 26 89 44 08
    12126     mov word [es:si+00ah], dx                 ; 26 89 54 0a
    12127     movzx si, byte [bp-008h]                  ; 0f b6 76 f8
    12128     sal si, 007h                              ; c1 e6 07
    12129     lea dx, [si+00118h]                       ; 8d 94 18 01
    12130     mov bx, strict word 00011h                ; bb 11 00
    12131     xor cx, cx                                ; 31 c9
    12132     mov ax, di                                ; 89 f8
    12133     call 08167h                               ; e8 98 fe
    12134     lea ax, [si+00138h]                       ; 8d 84 38 01
    12135     cwd                                       ; 99
    12136     mov cx, dx                                ; 89 d1
    12137     mov dx, di                                ; 89 fa
    12138     xchg cx, ax                               ; 91
    12139     sal eax, 010h                             ; 66 c1 e0 10
    12140     db  08bh, 0c1h
    12141     ; mov ax, cx                                ; 8b c1
    12142     out DX, eax                               ; 66 ef
    12143     lea dx, [di+004h]                         ; 8d 55 04
    12144     mov ax, strict word 00001h                ; b8 01 00
    12145     xor cx, cx                                ; 31 c9
    12146     xchg cx, ax                               ; 91
    12147     sal eax, 010h                             ; 66 c1 e0 10
    12148     db  08bh, 0c1h
    12149     ; mov ax, cx                                ; 8b c1
    12150     out DX, eax                               ; 66 ef
    12151     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    12152     sal ax, 007h                              ; c1 e0 07
    12153     mov word [bp-00ch], ax                    ; 89 46 f4
    12154     mov si, ax                                ; 89 c6
    12155     add si, 00110h                            ; 81 c6 10 01
    12156     mov bx, strict word 00001h                ; bb 01 00
    12157     mov cx, 04000h                            ; b9 00 40
    12158     mov dx, si                                ; 89 f2
    12159     mov ax, di                                ; 89 f8
    12160     call 081f1h                               ; e8 e2 fe
    12161     test al, al                               ; 84 c0
    12162     je short 082f2h                           ; 74 df
    12163     mov bx, strict word 00001h                ; bb 01 00
    12164     xor cx, cx                                ; 31 c9
    12165     mov dx, si                                ; 89 f2
    12166     mov ax, di                                ; 89 f8
    12167     call 08167h                               ; e8 48 fe
    12168     mov dx, word [bp-00ch]                    ; 8b 56 f4
    12169     add dx, 00118h                            ; 81 c2 18 01
    12170     mov bx, strict word 00001h                ; bb 01 00
    12171     xor cx, cx                                ; 31 c9
    12172     mov ax, di                                ; 89 f8
    12173     call 081aah                               ; e8 7a fe
    12174     lea sp, [bp-006h]                         ; 8d 66 fa
    12175     pop di                                    ; 5f
    12176     pop si                                    ; 5e
    12177     pop cx                                    ; 59
    12178     pop bp                                    ; 5d
    12179     retn                                      ; c3
    12180 ahci_cmd_data_:                              ; 0xf8338 LB 0x1e4
    12181     push bp                                   ; 55
    12182     mov bp, sp                                ; 89 e5
    12183     push cx                                   ; 51
    12184     push si                                   ; 56
    12185     push di                                   ; 57
    12186     sub sp, strict byte 00010h                ; 83 ec 10
    12187     mov di, ax                                ; 89 c7
    12188     mov word [bp-00ch], dx                    ; 89 56 f4
    12189     mov byte [bp-008h], bl                    ; 88 5e f8
    12190     xor si, si                                ; 31 f6
    12191     mov es, dx                                ; 8e c2
    12192     mov ax, word [es:di+001eeh]               ; 26 8b 85 ee 01
    12193     mov word [bp-00ah], ax                    ; 89 46 f6
    12194     mov word [bp-010h], si                    ; 89 76 f0
    12195     mov word [bp-00eh], ax                    ; 89 46 f2
    12196     mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    12197     mov word [bp-016h], ax                    ; 89 46 ea
    12198     mov ax, word [es:di+00ch]                 ; 26 8b 45 0c
    12199     mov word [bp-012h], ax                    ; 89 46 ee
    12200     mov cx, strict word 00040h                ; b9 40 00
    12201     xor bx, bx                                ; 31 db
    12202     mov ax, 00080h                            ; b8 80 00
    12203     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12204     call 097aah                               ; e8 33 14
    12205     mov es, [bp-00ah]                         ; 8e 46 f6
    12206     mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
    12207     mov al, byte [bp-008h]                    ; 8a 46 f8
    12208     mov byte [es:si+00082h], al               ; 26 88 84 82 00
    12209     mov byte [es:si+00083h], 000h             ; 26 c6 84 83 00 00
    12210     mov es, [bp-00ch]                         ; 8e 46 f4
    12211     mov al, byte [es:di]                      ; 26 8a 05
    12212     mov es, [bp-00ah]                         ; 8e 46 f6
    12213     mov byte [es:si+00084h], al               ; 26 88 84 84 00
    12214     mov es, [bp-00ch]                         ; 8e 46 f4
    12215     mov ax, word [es:di]                      ; 26 8b 05
    12216     mov bx, word [es:di+002h]                 ; 26 8b 5d 02
    12217     mov cx, strict word 00008h                ; b9 08 00
    12218     shr bx, 1                                 ; d1 eb
    12219     rcr ax, 1                                 ; d1 d8
    12220     loop 083aah                               ; e2 fa
    12221     mov es, [bp-00ah]                         ; 8e 46 f6
    12222     mov byte [es:si+00085h], al               ; 26 88 84 85 00
    12223     mov es, [bp-00ch]                         ; 8e 46 f4
    12224     mov ax, word [es:di+002h]                 ; 26 8b 45 02
    12225     mov es, [bp-00ah]                         ; 8e 46 f6
    12226     mov byte [es:si+00086h], al               ; 26 88 84 86 00
    12227     mov byte [es:si+00087h], 040h             ; 26 c6 84 87 00 40
    12228     mov es, [bp-00ch]                         ; 8e 46 f4
    12229     mov ax, word [es:di+002h]                 ; 26 8b 45 02
    12230     shr ax, 008h                              ; c1 e8 08
    12231     mov es, [bp-00ah]                         ; 8e 46 f6
    12232     mov byte [es:si+00088h], al               ; 26 88 84 88 00
    12233     mov word [es:si+00089h], strict word 00000h ; 26 c7 84 89 00 00 00
    12234     mov byte [es:si+0008bh], 000h             ; 26 c6 84 8b 00 00
    12235     mov al, byte [bp-016h]                    ; 8a 46 ea
    12236     mov byte [es:si+0008ch], al               ; 26 88 84 8c 00
    12237     mov ax, word [bp-016h]                    ; 8b 46 ea
    12238     shr ax, 008h                              ; c1 e8 08
    12239     mov byte [es:si+0008dh], al               ; 26 88 84 8d 00
    12240     mov word [es:si+00276h], strict word 00010h ; 26 c7 84 76 02 10 00
    12241     mov ax, word [bp-016h]                    ; 8b 46 ea
    12242     xor dx, dx                                ; 31 d2
    12243     mov bx, word [bp-012h]                    ; 8b 5e ee
    12244     xor cx, cx                                ; 31 c9
    12245     call 09779h                               ; e8 66 13
    12246     push dx                                   ; 52
    12247     push ax                                   ; 50
    12248     mov es, [bp-00ch]                         ; 8e 46 f4
    12249     mov bx, word [es:di+004h]                 ; 26 8b 5d 04
    12250     mov cx, word [es:di+006h]                 ; 26 8b 4d 06
    12251     mov ax, 0026ah                            ; b8 6a 02
    12252     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12253     call 09688h                               ; e8 5f 12
    12254     mov es, [bp-00ah]                         ; 8e 46 f6
    12255     movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
    12256     mov dx, word [es:si+0027eh]               ; 26 8b 94 7e 02
    12257     add dx, strict byte 0ffffh                ; 83 c2 ff
    12258     mov bx, word [es:si+00280h]               ; 26 8b 9c 80 02
    12259     adc bx, strict byte 0ffffh                ; 83 d3 ff
    12260     mov word [bp-014h], bx                    ; 89 5e ec
    12261     mov bx, ax                                ; 89 c3
    12262     sal bx, 004h                              ; c1 e3 04
    12263     mov word [es:bx+0010ch], dx               ; 26 89 97 0c 01
    12264     mov dx, word [bp-014h]                    ; 8b 56 ec
    12265     mov word [es:bx+0010eh], dx               ; 26 89 97 0e 01
    12266     mov dx, word [es:si+0027ah]               ; 26 8b 94 7a 02
    12267     mov cx, word [es:si+0027ch]               ; 26 8b 8c 7c 02
    12268     mov word [es:bx+00100h], dx               ; 26 89 97 00 01
    12269     mov word [es:bx+00102h], cx               ; 26 89 8f 02 01
    12270     inc ax                                    ; 40
    12271     mov es, [bp-00ch]                         ; 8e 46 f4
    12272     cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    12273     je short 084a2h                           ; 74 2c
    12274     mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    12275     dec dx                                    ; 4a
    12276     mov bx, ax                                ; 89 c3
    12277     sal bx, 004h                              ; c1 e3 04
    12278     mov es, [bp-00ah]                         ; 8e 46 f6
    12279     mov word [es:bx+0010ch], dx               ; 26 89 97 0c 01
    12280     mov word [es:bx+0010eh], si               ; 26 89 b7 0e 01
    12281     mov dx, word [es:si+00264h]               ; 26 8b 94 64 02
    12282     mov cx, word [es:si+00266h]               ; 26 8b 8c 66 02
    12283     mov word [es:bx+00100h], dx               ; 26 89 97 00 01
    12284     mov word [es:bx+00102h], cx               ; 26 89 8f 02 01
    12285     inc ax                                    ; 40
    12286     les bx, [bp-010h]                         ; c4 5e f0
    12287     mov byte [es:bx+00263h], al               ; 26 88 87 63 02
    12288     xor ax, ax                                ; 31 c0
    12289     les bx, [bp-010h]                         ; c4 5e f0
    12290     movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    12291     cmp ax, dx                                ; 39 d0
    12292     jnc short 084bch                          ; 73 03
    12293     inc ax                                    ; 40
    12294     jmp short 084ach                          ; eb f0
    12295     mov al, byte [bp-008h]                    ; 8a 46 f8
    12296     cmp AL, strict byte 035h                  ; 3c 35
    12297     jne short 084c9h                          ; 75 06
    12298     mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12299     jmp short 084ddh                          ; eb 14
    12300     cmp AL, strict byte 0a0h                  ; 3c a0
    12301     jne short 084d9h                          ; 75 0c
    12302     or byte [bp-008h], 020h                   ; 80 4e f8 20
    12303     or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12304     jmp short 084ddh                          ; eb 04
    12305     mov byte [bp-008h], 000h                  ; c6 46 f8 00
    12306     or byte [bp-008h], 005h                   ; 80 4e f8 05
    12307     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    12308     mov ax, word [bp-010h]                    ; 8b 46 f0
    12309     mov dx, word [bp-00eh]                    ; 8b 56 f2
    12310     call 08263h                               ; e8 75 fd
    12311     mov cx, word [bp-00eh]                    ; 8b 4e f2
    12312     mov bx, word [bp-010h]                    ; 8b 5e f0
    12313     add bx, 00240h                            ; 81 c3 40 02
    12314     mov ax, word [bp-010h]                    ; 8b 46 f0
    12315     add ax, 0026ah                            ; 05 6a 02
    12316     mov dx, cx                                ; 89 ca
    12317     call 09701h                               ; e8 fe 11
    12318     mov es, cx                                ; 8e c1
    12319     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    12320     test al, al                               ; 84 c0
    12321     je short 08512h                           ; 74 05
    12322     mov ax, strict word 00004h                ; b8 04 00
    12323     jmp short 08514h                          ; eb 02
    12324     xor ah, ah                                ; 30 e4
    12325     lea sp, [bp-006h]                         ; 8d 66 fa
    12326     pop di                                    ; 5f
    12327     pop si                                    ; 5e
    12328     pop cx                                    ; 59
    12329     pop bp                                    ; 5d
    12330     retn                                      ; c3
    12331 ahci_port_deinit_current_:                   ; 0xf851c LB 0x144
    12332     push bp                                   ; 55
    12333     mov bp, sp                                ; 89 e5
    12334     push bx                                   ; 53
    12335     push cx                                   ; 51
    12336     push si                                   ; 56
    12337     push di                                   ; 57
    12338     sub sp, strict byte 00006h                ; 83 ec 06
    12339     mov di, ax                                ; 89 c7
    12340     mov word [bp-00ch], dx                    ; 89 56 f4
    12341     mov es, dx                                ; 8e c2
    12342     mov si, word [es:di+00260h]               ; 26 8b b5 60 02
    12343     mov al, byte [es:di+00262h]               ; 26 8a 85 62 02
    12344     mov byte [bp-00ah], al                    ; 88 46 f6
    12345     cmp AL, strict byte 0ffh                  ; 3c ff
    12346     je near 08657h                            ; 0f 84 17 01
    12347     movzx dx, al                              ; 0f b6 d0
    12348     sal dx, 007h                              ; c1 e2 07
    12349     add dx, 00118h                            ; 81 c2 18 01
    12350     mov bx, strict word 00011h                ; bb 11 00
    12351     xor cx, cx                                ; 31 c9
    12352     mov ax, si                                ; 89 f0
    12353     call 081aah                               ; e8 56 fc
    12354     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    12355     sal ax, 007h                              ; c1 e0 07
    12356     mov word [bp-00eh], ax                    ; 89 46 f2
    12357     mov dx, ax                                ; 89 c2
    12358     add dx, 00118h                            ; 81 c2 18 01
    12359     mov bx, 0c011h                            ; bb 11 c0
    12360     xor cx, cx                                ; 31 c9
    12361     mov ax, si                                ; 89 f0
    12362     call 081f1h                               ; e8 83 fc
    1236312749    cmp AL, strict byte 001h                  ; 3c 01
    12364     je short 08554h                           ; 74 e2
     12750    je short 089cah                           ; 74 ce
    1236512751    mov cx, strict word 00020h                ; b9 20 00
    1236612752    xor bx, bx                                ; 31 db
    1236712753    mov ax, di                                ; 89 f8
    1236812754    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12369     call 097aah                               ; e8 2b 12
     12755    call 09d6ah                               ; e8 61 13
    1237012756    lea ax, [di+00080h]                       ; 8d 85 80 00
    1237112757    mov cx, strict word 00040h                ; b9 40 00
    1237212758    xor bx, bx                                ; 31 db
    1237312759    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12374     call 097aah                               ; e8 1c 12
     12760    call 09d6ah                               ; e8 52 13
    1237512761    lea ax, [di+00200h]                       ; 8d 85 00 02
    1237612762    mov cx, strict word 00060h                ; b9 60 00
    1237712763    xor bx, bx                                ; 31 db
    1237812764    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12379     call 097aah                               ; e8 0d 12
    12380     mov ax, word [bp-00eh]                    ; 8b 46 f2
     12765    call 09d6ah                               ; e8 43 13
     12766    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     12767    sal ax, 007h                              ; c1 e0 07
     12768    mov word [bp-00eh], ax                    ; 89 46 f2
    1238112769    add ax, 00108h                            ; 05 08 01
    1238212770    cwd                                       ; 99
     
    1247912867    pop bp                                    ; 5d
    1248012868    retn                                      ; c3
    12481 ahci_port_init_:                             ; 0xf8660 LB 0x206
     12869ahci_port_init_:                             ; 0xf8af1 LB 0x24a
    1248212870    push bp                                   ; 55
    1248312871    mov bp, sp                                ; 89 e5
     
    1248912877    mov word [bp-00ah], dx                    ; 89 56 f6
    1249012878    mov byte [bp-008h], bl                    ; 88 5e f8
    12491     call 0851ch                               ; e8 a8 fe
    12492     movzx dx, bl                              ; 0f b6 d3
    12493     sal dx, 007h                              ; c1 e2 07
    12494     add dx, 00118h                            ; 81 c2 18 01
    12495     mov es, [bp-00ah]                         ; 8e 46 f6
    12496     mov ax, word [es:si+00260h]               ; 26 8b 84 60 02
    12497     mov bx, strict word 00011h                ; bb 11 00
    12498     xor cx, cx                                ; 31 c9
    12499     call 081aah                               ; e8 1c fb
    12500     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    12501     sal di, 007h                              ; c1 e7 07
    12502     lea dx, [di+00118h]                       ; 8d 95 18 01
    12503     mov es, [bp-00ah]                         ; 8e 46 f6
    12504     mov ax, word [es:si+00260h]               ; 26 8b 84 60 02
    12505     mov bx, 0c011h                            ; bb 11 c0
    12506     xor cx, cx                                ; 31 c9
    12507     call 081f1h                               ; e8 48 fb
    12508     cmp AL, strict byte 001h                  ; 3c 01
    12509     je short 0868eh                           ; 74 e1
    12510     mov cx, strict word 00020h                ; b9 20 00
    12511     xor bx, bx                                ; 31 db
    12512     mov ax, si                                ; 89 f0
    12513     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12514     call 097aah                               ; e8 f0 10
    12515     lea ax, [si+00080h]                       ; 8d 84 80 00
    12516     mov cx, strict word 00040h                ; b9 40 00
    12517     xor bx, bx                                ; 31 db
    12518     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12519     call 097aah                               ; e8 e1 10
    12520     mov ax, si                                ; 89 f0
    12521     add ah, 002h                              ; 80 c4 02
    12522     mov word [bp-00ch], ax                    ; 89 46 f4
    12523     mov cx, strict word 00060h                ; b9 60 00
    12524     xor bx, bx                                ; 31 db
    12525     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12526     call 097aah                               ; e8 ce 10
    12527     lea ax, [di+00108h]                       ; 8d 85 08 01
    12528     cwd                                       ; 99
     12879    call 08972h                               ; e8 6d fe
     12880    movzx ax, bl                              ; 0f b6 c3
     12881    sal ax, 007h                              ; c1 e0 07
     12882    add ax, 00118h                            ; 05 18 01
    1252912883    mov es, [bp-00ah]                         ; 8e 46 f6
    1253012884    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     12885    xor cx, cx                                ; 31 c9
     12886    mov dx, bx                                ; 89 da
     12887    xchg cx, ax                               ; 91
     12888    sal eax, 010h                             ; 66 c1 e0 10
     12889    db  08bh, 0c1h
     12890    ; mov ax, cx                                ; 8b c1
     12891    out DX, eax                               ; 66 ef
     12892    add bx, strict byte 00004h                ; 83 c3 04
     12893    mov dx, bx                                ; 89 da
     12894    in eax, DX                                ; 66 ed
     12895    db  08bh, 0d0h
     12896    ; mov dx, ax                                ; 8b d0
     12897    shr eax, 010h                             ; 66 c1 e8 10
     12898    xchg dx, ax                               ; 92
     12899    and AL, strict byte 0eeh                  ; 24 ee
    1253112900    mov cx, dx                                ; 89 d1
    1253212901    mov dx, bx                                ; 89 da
     
    1253612905    ; mov ax, cx                                ; 8b c1
    1253712906    out DX, eax                               ; 66 ef
    12538     mov ax, word [bp-00ch]                    ; 8b 46 f4
    12539     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12540     call 08245h                               ; e8 46 fb
     12907    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     12908    sal ax, 007h                              ; c1 e0 07
     12909    add ax, 00118h                            ; 05 18 01
    1254112910    mov es, [bp-00ah]                         ; 8e 46 f6
    1254212911    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    12543     add bx, strict byte 00004h                ; 83 c3 04
    12544     mov cx, dx                                ; 89 d1
     12912    xor cx, cx                                ; 31 c9
    1254512913    mov dx, bx                                ; 89 da
    1254612914    xchg cx, ax                               ; 91
     
    1254912917    ; mov ax, cx                                ; 8b c1
    1255012918    out DX, eax                               ; 66 ef
    12551     lea ax, [di+0010ch]                       ; 8d 85 0c 01
     12919    lea dx, [bx+004h]                         ; 8d 57 04
     12920    in eax, DX                                ; 66 ed
     12921    db  08bh, 0d0h
     12922    ; mov dx, ax                                ; 8b d0
     12923    shr eax, 010h                             ; 66 c1 e8 10
     12924    xchg dx, ax                               ; 92
     12925    test ax, 0c011h                           ; a9 11 c0
     12926    je short 08b74h                           ; 74 04
     12927    mov AL, strict byte 001h                  ; b0 01
     12928    jmp short 08b76h                          ; eb 02
     12929    xor al, al                                ; 30 c0
     12930    cmp AL, strict byte 001h                  ; 3c 01
     12931    je short 08b40h                           ; 74 c6
     12932    mov cx, strict word 00020h                ; b9 20 00
     12933    xor bx, bx                                ; 31 db
     12934    mov ax, si                                ; 89 f0
     12935    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12936    call 09d6ah                               ; e8 e3 11
     12937    lea ax, [si+00080h]                       ; 8d 84 80 00
     12938    mov cx, strict word 00040h                ; b9 40 00
     12939    xor bx, bx                                ; 31 db
     12940    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12941    call 09d6ah                               ; e8 d4 11
     12942    lea di, [si+00200h]                       ; 8d bc 00 02
     12943    mov cx, strict word 00060h                ; b9 60 00
     12944    xor bx, bx                                ; 31 db
     12945    mov ax, di                                ; 89 f8
     12946    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12947    call 09d6ah                               ; e8 c3 11
     12948    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     12949    sal bx, 007h                              ; c1 e3 07
     12950    lea ax, [bx+00108h]                       ; 8d 87 08 01
    1255212951    cwd                                       ; 99
    1255312952    mov es, [bp-00ah]                         ; 8e 46 f6
    12554     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     12953    mov cx, word [es:si+00260h]               ; 26 8b 8c 60 02
     12954    mov word [bp-00ch], cx                    ; 89 4e f4
    1255512955    mov cx, dx                                ; 89 d1
    12556     mov dx, bx                                ; 89 da
     12956    mov dx, word [bp-00ch]                    ; 8b 56 f4
     12957    xchg cx, ax                               ; 91
     12958    sal eax, 010h                             ; 66 c1 e0 10
     12959    db  08bh, 0c1h
     12960    ; mov ax, cx                                ; 8b c1
     12961    out DX, eax                               ; 66 ef
     12962    mov ax, di                                ; 89 f8
     12963    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12964    call 085a7h                               ; e8 d3 f9
     12965    mov es, [bp-00ah]                         ; 8e 46 f6
     12966    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     12967    add di, strict byte 00004h                ; 83 c7 04
     12968    mov cx, dx                                ; 89 d1
     12969    mov dx, di                                ; 89 fa
     12970    xchg cx, ax                               ; 91
     12971    sal eax, 010h                             ; 66 c1 e0 10
     12972    db  08bh, 0c1h
     12973    ; mov ax, cx                                ; 8b c1
     12974    out DX, eax                               ; 66 ef
     12975    lea ax, [bx+0010ch]                       ; 8d 87 0c 01
     12976    cwd                                       ; 99
     12977    mov es, [bp-00ah]                         ; 8e 46 f6
     12978    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     12979    mov cx, dx                                ; 89 d1
     12980    mov dx, di                                ; 89 fa
    1255712981    xchg cx, ax                               ; 91
    1255812982    sal eax, 010h                             ; 66 c1 e0 10
     
    1257012994    ; mov ax, cx                                ; 8b c1
    1257112995    out DX, eax                               ; 66 ef
    12572     lea ax, [di+00100h]                       ; 8d 85 00 01
     12996    lea ax, [bx+00100h]                       ; 8d 87 00 01
    1257312997    cwd                                       ; 99
    1257412998    mov es, [bp-00ah]                         ; 8e 46 f6
    12575     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     12999    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1257613000    mov cx, dx                                ; 89 d1
    12577     mov dx, bx                                ; 89 da
     13001    mov dx, di                                ; 89 fa
    1257813002    xchg cx, ax                               ; 91
    1257913003    sal eax, 010h                             ; 66 c1 e0 10
     
    1258313007    mov ax, si                                ; 89 f0
    1258413008    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12585     call 08245h                               ; e8 da fa
     13009    call 085a7h                               ; e8 67 f9
    1258613010    mov es, [bp-00ah]                         ; 8e 46 f6
    12587     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    12588     add bx, strict byte 00004h                ; 83 c3 04
     13011    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     13012    add di, strict byte 00004h                ; 83 c7 04
    1258913013    mov cx, dx                                ; 89 d1
    12590     mov dx, bx                                ; 89 da
     13014    mov dx, di                                ; 89 fa
    1259113015    xchg cx, ax                               ; 91
    1259213016    sal eax, 010h                             ; 66 c1 e0 10
     
    1259413018    ; mov ax, cx                                ; 8b c1
    1259513019    out DX, eax                               ; 66 ef
    12596     lea ax, [di+00104h]                       ; 8d 85 04 01
     13020    lea ax, [bx+00104h]                       ; 8d 87 04 01
    1259713021    cwd                                       ; 99
    1259813022    mov es, [bp-00ah]                         ; 8e 46 f6
    12599     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     13023    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1260013024    mov cx, dx                                ; 89 d1
    12601     mov dx, bx                                ; 89 da
     13025    mov dx, di                                ; 89 fa
    1260213026    xchg cx, ax                               ; 91
    1260313027    sal eax, 010h                             ; 66 c1 e0 10
     
    1261513039    ; mov ax, cx                                ; 8b c1
    1261613040    out DX, eax                               ; 66 ef
    12617     lea ax, [di+00114h]                       ; 8d 85 14 01
     13041    lea ax, [bx+00114h]                       ; 8d 87 14 01
    1261813042    cwd                                       ; 99
    1261913043    mov es, [bp-00ah]                         ; 8e 46 f6
    12620     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     13044    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1262113045    mov cx, dx                                ; 89 d1
    12622     mov dx, bx                                ; 89 da
     13046    mov dx, di                                ; 89 fa
    1262313047    xchg cx, ax                               ; 91
    1262413048    sal eax, 010h                             ; 66 c1 e0 10
     
    1263613060    ; mov ax, cx                                ; 8b c1
    1263713061    out DX, eax                               ; 66 ef
    12638     lea ax, [di+00110h]                       ; 8d 85 10 01
     13062    lea ax, [bx+00110h]                       ; 8d 87 10 01
    1263913063    cwd                                       ; 99
    1264013064    mov es, [bp-00ah]                         ; 8e 46 f6
    12641     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     13065    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1264213066    mov cx, dx                                ; 89 d1
    12643     mov dx, bx                                ; 89 da
     13067    mov dx, di                                ; 89 fa
    1264413068    xchg cx, ax                               ; 91
    1264513069    sal eax, 010h                             ; 66 c1 e0 10
     
    1265713081    ; mov ax, cx                                ; 8b c1
    1265813082    out DX, eax                               ; 66 ef
    12659     lea ax, [di+00130h]                       ; 8d 85 30 01
     13083    lea ax, [bx+00130h]                       ; 8d 87 30 01
    1266013084    cwd                                       ; 99
    1266113085    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1268813112    pop bp                                    ; 5d
    1268913113    retn                                      ; c3
    12690 @ahci_read_sectors:                          ; 0xf8866 LB 0x93
     13114@ahci_read_sectors:                          ; 0xf8d3b LB 0xa6
    1269113115    push bp                                   ; 55
    1269213116    mov bp, sp                                ; 89 e5
    1269313117    push si                                   ; 56
    1269413118    push di                                   ; 57
    12695     les bx, [bp+004h]                         ; c4 5e 04
    12696     movzx bx, byte [es:bx+008h]               ; 26 0f b6 5f 08
    12697     sub bx, strict byte 0000ch                ; 83 eb 0c
    12698     cmp bx, strict byte 00004h                ; 83 fb 04
    12699     jbe short 0888ah                          ; 76 0f
    12700     push bx                                   ; 53
    12701     push 00c66h                               ; 68 66 0c
    12702     push 00c78h                               ; 68 78 0c
     13119    push ax                                   ; 50
     13120    les di, [bp+004h]                         ; c4 7e 04
     13121    movzx di, byte [es:di+00ch]               ; 26 0f b6 7d 0c
     13122    sub di, strict byte 0000ch                ; 83 ef 0c
     13123    cmp di, strict byte 00004h                ; 83 ff 04
     13124    jbe short 08d60h                          ; 76 0f
     13125    push di                                   ; 57
     13126    push 00c62h                               ; 68 62 0c
     13127    push 00c74h                               ; 68 74 0c
    1270313128    push strict byte 00007h                   ; 6a 07
    12704     call 01972h                               ; e8 eb 90
     13129    call 01972h                               ; e8 15 8c
    1270513130    add sp, strict byte 00008h                ; 83 c4 08
    12706     les di, [bp+004h]                         ; c4 7e 04
    12707     mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
     13131    xor bx, bx                                ; 31 db
     13132    les si, [bp+004h]                         ; c4 76 04
     13133    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     13134    shr eax, 010h                             ; 66 c1 e8 10
     13135    mov es, dx                                ; 8e c2
     13136    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
     13137    mov es, [bp+006h]                         ; 8e 46 06
     13138    add di, si                                ; 01 f7
     13139    movzx bx, byte [es:di+0022dh]             ; 26 0f b6 9d 2d 02
     13140    mov di, si                                ; 89 f7
     13141    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1270813142    xor ax, ax                                ; 31 c0
    12709     call 08139h                               ; e8 a2 f8
     13143    call 08af1h                               ; e8 65 fd
     13144    mov bx, strict word 00025h                ; bb 25 00
     13145    mov ax, si                                ; 89 f0
     13146    mov dx, word [bp+006h]                    ; 8b 56 06
     13147    call 08710h                               ; e8 79 f9
     13148    mov word [bp-006h], ax                    ; 89 46 fa
    1271013149    mov es, [bp+006h]                         ; 8e 46 06
    12711     add bx, di                                ; 01 fb
    12712     movzx bx, byte [es:bx+001e9h]             ; 26 0f b6 9f e9 01
    12713     mov si, di                                ; 89 fe
    12714     mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    12715     xor ax, ax                                ; 31 c0
    12716     call 08660h                               ; e8 b2 fd
    12717     mov bx, strict word 00025h                ; bb 25 00
    12718     mov ax, di                                ; 89 f8
    12719     mov dx, word [bp+006h]                    ; 8b 56 06
    12720     call 08338h                               ; e8 7f fa
    12721     mov bx, ax                                ; 89 c3
    12722     mov es, [bp+006h]                         ; 8e 46 06
    12723     mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    12724     mov word [es:si+014h], ax                 ; 26 89 44 14
     13150    mov bx, si                                ; 89 f3
     13151    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
     13152    mov word [es:bx+018h], ax                 ; 26 89 47 18
    1272513153    mov cx, ax                                ; 89 c1
    1272613154    sal cx, 009h                              ; c1 e1 09
    1272713155    shr cx, 1                                 ; d1 e9
    12728     mov di, word [es:di+004h]                 ; 26 8b 7d 04
    12729     mov ax, word [es:si+006h]                 ; 26 8b 44 06
     13156    mov di, word [es:di+008h]                 ; 26 8b 7d 08
     13157    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
    1273013158    mov si, di                                ; 89 fe
    1273113159    mov dx, ax                                ; 89 c2
     
    1273513163    rep movsw                                 ; f3 a5
    1273613164    pop DS                                    ; 1f
    12737     les si, [bp+004h]                         ; c4 76 04
    12738     mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    12739     xor ax, ax                                ; 31 c0
    12740     call 08150h                               ; e8 62 f8
    12741     mov ax, bx                                ; 89 d8
     13165    xor bx, bx                                ; 31 db
     13166    les di, [bp+004h]                         ; c4 7e 04
     13167    mov es, [es:di+00232h]                    ; 26 8e 85 32 02
     13168    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
     13169    sal eax, 010h                             ; 66 c1 e0 10
     13170    mov ax, word [bp-006h]                    ; 8b 46 fa
    1274213171    lea sp, [bp-004h]                         ; 8d 66 fc
    1274313172    pop di                                    ; 5f
     
    1274513174    pop bp                                    ; 5d
    1274613175    retn 00004h                               ; c2 04 00
    12747 @ahci_write_sectors:                         ; 0xf88f9 LB 0x72
     13176@ahci_write_sectors:                         ; 0xf8de1 LB 0x84
    1274813177    push bp                                   ; 55
    1274913178    mov bp, sp                                ; 89 e5
    1275013179    push si                                   ; 56
     13180    push di                                   ; 57
    1275113181    mov si, word [bp+004h]                    ; 8b 76 04
    1275213182    mov cx, word [bp+006h]                    ; 8b 4e 06
    1275313183    mov es, cx                                ; 8e c1
    12754     movzx bx, byte [es:si+008h]               ; 26 0f b6 5c 08
    12755     sub bx, strict byte 0000ch                ; 83 eb 0c
    12756     cmp bx, strict byte 00004h                ; 83 fb 04
    12757     jbe short 08921h                          ; 76 0f
    12758     push bx                                   ; 53
    12759     push 00c97h                               ; 68 97 0c
    12760     push 00c78h                               ; 68 78 0c
     13184    movzx dx, byte [es:si+00ch]               ; 26 0f b6 54 0c
     13185    sub dx, strict byte 0000ch                ; 83 ea 0c
     13186    cmp dx, strict byte 00004h                ; 83 fa 04
     13187    jbe short 08e0ah                          ; 76 0f
     13188    push dx                                   ; 52
     13189    push 00c93h                               ; 68 93 0c
     13190    push 00c74h                               ; 68 74 0c
    1276113191    push strict byte 00007h                   ; 6a 07
    12762     call 01972h                               ; e8 54 90
     13192    call 01972h                               ; e8 6b 8b
    1276313193    add sp, strict byte 00008h                ; 83 c4 08
     13194    xor bx, bx                                ; 31 db
    1276413195    mov es, cx                                ; 8e c1
    12765     mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
     13196    mov di, word [es:si+00232h]               ; 26 8b bc 32 02
     13197    shr eax, 010h                             ; 66 c1 e8 10
     13198    mov es, di                                ; 8e c7
     13199    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
     13200    mov es, cx                                ; 8e c1
     13201    mov bx, si                                ; 89 f3
     13202    add bx, dx                                ; 01 d3
     13203    movzx bx, byte [es:bx+0022dh]             ; 26 0f b6 9f 2d 02
     13204    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1276613205    xor ax, ax                                ; 31 c0
    12767     call 08139h                               ; e8 0c f8
    12768     mov es, cx                                ; 8e c1
    12769     add bx, si                                ; 01 f3
    12770     movzx bx, byte [es:bx+001e9h]             ; 26 0f b6 9f e9 01
    12771     mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    12772     xor ax, ax                                ; 31 c0
    12773     call 08660h                               ; e8 1f fd
     13206    call 08af1h                               ; e8 bd fc
    1277413207    mov bx, strict word 00035h                ; bb 35 00
    1277513208    mov ax, si                                ; 89 f0
    1277613209    mov dx, cx                                ; 89 ca
    12777     call 08338h                               ; e8 ed f9
    12778     mov bx, ax                                ; 89 c3
     13210    call 08710h                               ; e8 d2 f8
     13211    mov dx, ax                                ; 89 c2
    1277913212    mov es, cx                                ; 8e c1
    12780     mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
    12781     mov word [es:si+014h], dx                 ; 26 89 54 14
    12782     mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    12783     xor ax, ax                                ; 31 c0
    12784     call 08150h                               ; e8 ef f7
    12785     mov ax, bx                                ; 89 d8
    12786     lea sp, [bp-002h]                         ; 8d 66 fe
     13213    mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
     13214    mov word [es:si+018h], ax                 ; 26 89 44 18
     13215    xor bx, bx                                ; 31 db
     13216    mov es, [es:si+00232h]                    ; 26 8e 84 32 02
     13217    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
     13218    sal eax, 010h                             ; 66 c1 e0 10
     13219    mov ax, dx                                ; 89 d0
     13220    lea sp, [bp-004h]                         ; 8d 66 fc
     13221    pop di                                    ; 5f
    1278713222    pop si                                    ; 5e
    1278813223    pop bp                                    ; 5d
    1278913224    retn 00004h                               ; c2 04 00
    12790 ahci_cmd_packet_:                            ; 0xf896b LB 0x173
     13225ahci_cmd_packet_:                            ; 0xf8e65 LB 0x183
    1279113226    push bp                                   ; 55
    1279213227    mov bp, sp                                ; 89 e5
     
    1280013235    mov dx, strict word 0000eh                ; ba 0e 00
    1280113236    mov ax, strict word 00040h                ; b8 40 00
    12802     call 0166ch                               ; e8 e6 8c
     13237    call 0166ch                               ; e8 ec 87
    1280313238    mov si, 00122h                            ; be 22 01
    1280413239    mov word [bp-008h], ax                    ; 89 46 f8
    1280513240    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12806     jne short 089b1h                          ; 75 1f
    12807     mov bx, 00da2h                            ; bb a2 0d
     13241    jne short 08eabh                          ; 75 1f
     13242    mov bx, 00da0h                            ; bb a0 0d
    1280813243    mov cx, ds                                ; 8c d9
    1280913244    mov ax, strict word 00004h                ; b8 04 00
    12810     call 01931h                               ; e8 94 8f
    12811     push 00caah                               ; 68 aa 0c
    12812     push 00cbah                               ; 68 ba 0c
     13245    call 01931h                               ; e8 9a 8a
     13246    push 00ca6h                               ; 68 a6 0c
     13247    push 00cb6h                               ; 68 b6 0c
    1281313248    push strict byte 00004h                   ; 6a 04
    12814     call 01972h                               ; e8 ca 8f
     13249    call 01972h                               ; e8 d0 8a
    1281513250    add sp, strict byte 00006h                ; 83 c4 06
    1281613251    mov ax, strict word 00001h                ; b8 01 00
    12817     jmp near 08ad5h                           ; e9 24 01
     13252    jmp near 08fdfh                           ; e9 34 01
    1281813253    test byte [bp+004h], 001h                 ; f6 46 04 01
    12819     jne short 089abh                          ; 75 f4
     13254    jne short 08ea5h                          ; 75 f4
    1282013255    mov ax, word [bp+006h]                    ; 8b 46 06
    1282113256    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1282313258    sal ax, 1                                 ; d1 e0
    1282413259    rcl dx, 1                                 ; d1 d2
    12825     loop 089c0h                               ; e2 fa
     13260    loop 08ebah                               ; e2 fa
    1282613261    mov es, [bp-008h]                         ; 8e 46 f8
    1282713262    mov word [es:si], ax                      ; 26 89 04
    1282813263    mov word [es:si+002h], dx                 ; 26 89 54 02
     13264    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
     13265    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
    1282913266    mov ax, word [bp+00ch]                    ; 8b 46 0c
    12830     mov word [es:si+004h], ax                 ; 26 89 44 04
     13267    mov word [es:si+008h], ax                 ; 26 89 44 08
    1283113268    mov ax, word [bp+00eh]                    ; 8b 46 0e
    12832     mov word [es:si+006h], ax                 ; 26 89 44 06
    12833     mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     13269    mov word [es:si+00ah], ax                 ; 26 89 44 0a
     13270    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
    1283413271    mov ax, word [bp+006h]                    ; 8b 46 06
    1283513272    mov dx, word [bp+008h]                    ; 8b 56 08
    1283613273    xor cx, cx                                ; 31 c9
    12837     call 09740h                               ; e8 53 0d
    12838     mov word [es:si+00ah], ax                 ; 26 89 44 0a
     13274    call 09ce0h                               ; e8 f0 0d
     13275    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1283913276    xor di, di                                ; 31 ff
    12840     mov ax, word [es:si+001eeh]               ; 26 8b 84 ee 01
     13277    mov ax, word [es:si+00232h]               ; 26 8b 84 32 02
    1284113278    mov word [bp-00ah], ax                    ; 89 46 f6
    1284213279    mov word [bp-00eh], di                    ; 89 7e f2
    1284313280    mov word [bp-00ch], ax                    ; 89 46 f4
    1284413281    sub word [bp-014h], strict byte 0000ch    ; 83 6e ec 0c
    12845     xor ax, ax                                ; 31 c0
    12846     mov dx, word [bp-00ah]                    ; 8b 56 f6
    12847     call 08139h                               ; e8 2c f7
     13282    shr eax, 010h                             ; 66 c1 e8 10
     13283    mov es, [bp-00ah]                         ; 8e 46 f6
     13284    mov word [es:di+00268h], ax               ; 26 89 85 68 02
    1284813285    mov es, [bp-008h]                         ; 8e 46 f8
    1284913286    mov bx, word [bp-014h]                    ; 8b 5e ec
    1285013287    add bx, si                                ; 01 f3
    12851     movzx bx, byte [es:bx+001e9h]             ; 26 0f b6 9f e9 01
    12852     mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
     13288    movzx bx, byte [es:bx+0022dh]             ; 26 0f b6 9f 2d 02
     13289    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1285313290    xor ax, ax                                ; 31 c0
    12854     call 08660h                               ; e8 3b fc
     13291    call 08af1h                               ; e8 c5 fb
    1285513292    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1285613293    push ax                                   ; 50
     
    1285913296    mov ax, 000c0h                            ; b8 c0 00
    1286013297    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12861     call 097b7h                               ; e8 7e 0d
     13298    call 09d77h                               ; e8 37 0e
    1286213299    mov es, [bp-008h]                         ; 8e 46 f8
    12863     mov word [es:si+014h], di                 ; 26 89 7c 14
    12864     mov word [es:si+016h], di                 ; 26 89 7c 16
    1286513300    mov word [es:si+018h], di                 ; 26 89 7c 18
    12866     mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
     13301    mov word [es:si+01ah], di                 ; 26 89 7c 1a
     13302    mov word [es:si+01ch], di                 ; 26 89 7c 1c
     13303    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1286713304    test ax, ax                               ; 85 c0
    12868     je short 08a77h                           ; 74 27
     13305    je short 08f7eh                           ; 74 27
    1286913306    dec ax                                    ; 48
    1287013307    mov es, [bp-00ah]                         ; 8e 46 f6
    1287113308    mov word [es:di+0010ch], ax               ; 26 89 85 0c 01
    1287213309    mov word [es:di+0010eh], di               ; 26 89 bd 0e 01
    12873     mov ax, word [es:di+00264h]               ; 26 8b 85 64 02
    12874     mov dx, word [es:di+00266h]               ; 26 8b 95 66 02
    12875     mov word [es:di+00100h], ax               ; 26 89 85 00 01
    12876     mov word [es:di+00102h], dx               ; 26 89 95 02 01
     13310    mov dx, word [es:di+00264h]               ; 26 8b 95 64 02
     13311    mov ax, word [es:di+00266h]               ; 26 8b 85 66 02
     13312    mov word [es:di+00100h], dx               ; 26 89 95 00 01
     13313    mov word [es:di+00102h], ax               ; 26 89 85 02 01
    1287713314    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
    1287813315    mov bx, 000a0h                            ; bb a0 00
    1287913316    mov ax, si                                ; 89 f0
    1288013317    mov dx, word [bp-008h]                    ; 8b 56 f8
    12881     call 08338h                               ; e8 b6 f8
     13318    call 08710h                               ; e8 87 f7
    1288213319    les bx, [bp-00eh]                         ; c4 5e f2
    1288313320    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    1288413321    mov dx, word [es:bx+006h]                 ; 26 8b 57 06
    1288513322    mov es, [bp-008h]                         ; 8e 46 f8
    12886     mov word [es:si+016h], ax                 ; 26 89 44 16
    12887     mov word [es:si+018h], dx                 ; 26 89 54 18
    12888     mov bx, word [es:si+016h]                 ; 26 8b 5c 16
     13323    mov word [es:si+01ah], ax                 ; 26 89 44 1a
     13324    mov word [es:si+01ch], dx                 ; 26 89 54 1c
     13325    mov bx, word [es:si+01ah]                 ; 26 8b 5c 1a
    1288913326    mov cx, dx                                ; 89 d1
    1289013327    shr cx, 1                                 ; d1 e9
    1289113328    rcr bx, 1                                 ; d1 db
    12892     mov di, word [es:si+004h]                 ; 26 8b 7c 04
    12893     mov ax, word [es:si+006h]                 ; 26 8b 44 06
     13329    mov di, word [es:si+008h]                 ; 26 8b 7c 08
     13330    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
    1289413331    mov cx, bx                                ; 89 d9
    1289513332    mov si, di                                ; 89 fe
     
    1290013337    rep movsw                                 ; f3 a5
    1290113338    pop DS                                    ; 1f
    12902     mov ax, word [bp-00eh]                    ; 8b 46 f2
    12903     mov dx, word [bp-00ch]                    ; 8b 56 f4
    12904     call 08150h                               ; e8 8f f6
    1290513339    les bx, [bp-00eh]                         ; c4 5e f2
     13340    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
     13341    sal eax, 010h                             ; 66 c1 e0 10
     13342    mov es, [bp-00ch]                         ; 8e 46 f4
    1290613343    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1290713344    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12908     jne short 08ad3h                          ; 75 05
     13345    jne short 08fddh                          ; 75 05
    1290913346    mov ax, strict word 00004h                ; b8 04 00
    12910     jmp short 08ad5h                          ; eb 02
     13347    jmp short 08fdfh                          ; eb 02
    1291113348    xor ax, ax                                ; 31 c0
    1291213349    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1291513352    pop bp                                    ; 5d
    1291613353    retn 0000ch                               ; c2 0c 00
    12917 ahci_port_detect_device_:                    ; 0xf8ade LB 0x451
     13354ahci_port_detect_device_:                    ; 0xf8fe8 LB 0x4b1
    1291813355    push bp                                   ; 55
    1291913356    mov bp, sp                                ; 89 e5
     
    1292113358    push si                                   ; 56
    1292213359    push di                                   ; 57
    12923     sub sp, 00220h                            ; 81 ec 20 02
     13360    sub sp, 00224h                            ; 81 ec 24 02
    1292413361    mov si, ax                                ; 89 c6
    1292513362    mov word [bp-012h], dx                    ; 89 56 ee
    12926     mov byte [bp-008h], bl                    ; 88 5e f8
     13363    mov byte [bp-00ah], bl                    ; 88 5e f6
    1292713364    movzx di, bl                              ; 0f b6 fb
    1292813365    mov bx, di                                ; 89 fb
    12929     call 08660h                               ; e8 68 fb
     13366    call 08af1h                               ; e8 ef fa
    1293013367    mov dx, strict word 0000eh                ; ba 0e 00
    1293113368    mov ax, strict word 00040h                ; b8 40 00
    12932     call 0166ch                               ; e8 6b 8b
     13369    call 0166ch                               ; e8 61 86
    1293313370    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1293413371    mov word [bp-00eh], ax                    ; 89 46 f2
    1293513372    sal di, 007h                              ; c1 e7 07
    12936     mov word [bp-020h], di                    ; 89 7e e0
     13373    mov word [bp-024h], di                    ; 89 7e dc
    1293713374    lea ax, [di+0012ch]                       ; 8d 85 2c 01
    1293813375    cwd                                       ; 99
    12939     mov di, ax                                ; 89 c7
    12940     mov bx, dx                                ; 89 d3
     13376    mov bx, ax                                ; 89 c3
     13377    mov di, dx                                ; 89 d7
    1294113378    mov es, [bp-012h]                         ; 8e 46 ee
    1294213379    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    12943     mov cx, bx                                ; 89 d9
     13380    mov cx, di                                ; 89 f9
    1294413381    xchg cx, ax                               ; 91
    1294513382    sal eax, 010h                             ; 66 c1 e0 10
     
    1295913396    mov es, [bp-012h]                         ; 8e 46 ee
    1296013397    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    12961     mov ax, di                                ; 89 f8
    12962     mov cx, bx                                ; 89 d9
     13398    mov ax, bx                                ; 89 d8
     13399    mov cx, di                                ; 89 f9
    1296313400    xchg cx, ax                               ; 91
    1296413401    sal eax, 010h                             ; 66 c1 e0 10
     
    1297613413    ; mov ax, cx                                ; 8b c1
    1297713414    out DX, eax                               ; 66 ef
    12978     mov ax, word [bp-020h]                    ; 8b 46 e0
     13415    mov ax, word [bp-024h]                    ; 8b 46 dc
    1297913416    add ax, 00128h                            ; 05 28 01
    1298013417    cwd                                       ; 99
     
    1299913436    mov bx, strict word 0000fh                ; bb 0f 00
    1300013437    xor cx, cx                                ; 31 c9
    13001     call 0822ah                               ; e8 7f f6
     13438    call 0858ch                               ; e8 d7 f4
    1300213439    test ax, ax                               ; 85 c0
    13003     je near 08f27h                            ; 0f 84 76 03
    13004     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     13440    je near 09491h                            ; 0f 84 d6 03
     13441    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1300513442    sal ax, 007h                              ; c1 e0 07
    13006     mov word [bp-016h], ax                    ; 89 46 ea
     13443    mov word [bp-018h], ax                    ; 89 46 e8
    1300713444    add ax, 00128h                            ; 05 28 01
    1300813445    cwd                                       ; 99
     
    1302513462    xchg dx, ax                               ; 92
    1302613463    mov di, ax                                ; 89 c7
    13027     mov word [bp-01ah], dx                    ; 89 56 e6
     13464    mov word [bp-022h], dx                    ; 89 56 de
    1302813465    push strict byte 00000h                   ; 6a 00
    1302913466    mov bx, strict word 0000fh                ; bb 0f 00
    1303013467    xor cx, cx                                ; 31 c9
    13031     call 0822ah                               ; e8 33 f6
     13468    call 0858ch                               ; e8 8b f4
    1303213469    cmp ax, strict word 00001h                ; 3d 01 00
    13033     je short 08bb1h                           ; 74 b5
     13470    je short 090bbh                           ; 74 b5
    1303413471    push strict byte 00000h                   ; 6a 00
    1303513472    mov bx, strict word 0000fh                ; bb 0f 00
    1303613473    xor cx, cx                                ; 31 c9
    1303713474    mov ax, di                                ; 89 f8
    13038     mov dx, word [bp-01ah]                    ; 8b 56 e6
    13039     call 0822ah                               ; e8 1f f6
     13475    mov dx, word [bp-022h]                    ; 8b 56 de
     13476    call 0858ch                               ; e8 77 f4
    1304013477    cmp ax, strict word 00003h                ; 3d 03 00
    13041     jne near 08f27h                           ; 0f 85 15 03
    13042     mov ax, word [bp-016h]                    ; 8b 46 ea
     13478    jne near 09491h                           ; 0f 85 75 03
     13479    mov ax, word [bp-018h]                    ; 8b 46 e8
    1304313480    add ax, 00130h                            ; 05 30 01
    1304413481    cwd                                       ; 99
     
    1306313500    out DX, eax                               ; 66 ef
    1306413501    les bx, [bp-010h]                         ; c4 5e f0
    13065     mov al, byte [es:bx+001edh]               ; 26 8a 87 ed 01
    13066     mov byte [bp-00ch], al                    ; 88 46 f4
     13502    mov al, byte [es:bx+00231h]               ; 26 8a 87 31 02
     13503    mov byte [bp-008h], al                    ; 88 46 f8
    1306713504    cmp AL, strict byte 004h                  ; 3c 04
    13068     jnc near 08f27h                           ; 0f 83 cf 02
    13069     mov dx, word [bp-016h]                    ; 8b 56 ea
    13070     add dx, 00118h                            ; 81 c2 18 01
     13505    jnc near 09491h                           ; 0f 83 2f 03
     13506    mov ax, word [bp-018h]                    ; 8b 46 e8
     13507    add ax, 00118h                            ; 05 18 01
    1307113508    mov es, [bp-012h]                         ; 8e 46 ee
    13072     mov ax, word [es:si+00260h]               ; 26 8b 84 60 02
    13073     mov bx, strict word 00010h                ; bb 10 00
     13509    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1307413510    xor cx, cx                                ; 31 c9
    13075     call 08167h                               ; e8 f8 f4
    13076     mov ax, word [bp-016h]                    ; 8b 46 ea
     13511    mov dx, bx                                ; 89 da
     13512    xchg cx, ax                               ; 91
     13513    sal eax, 010h                             ; 66 c1 e0 10
     13514    db  08bh, 0c1h
     13515    ; mov ax, cx                                ; 8b c1
     13516    out DX, eax                               ; 66 ef
     13517    add bx, strict byte 00004h                ; 83 c3 04
     13518    mov dx, bx                                ; 89 da
     13519    in eax, DX                                ; 66 ed
     13520    db  08bh, 0d0h
     13521    ; mov dx, ax                                ; 8b d0
     13522    shr eax, 010h                             ; 66 c1 e8 10
     13523    xchg dx, ax                               ; 92
     13524    or AL, strict byte 010h                   ; 0c 10
     13525    mov cx, dx                                ; 89 d1
     13526    mov dx, bx                                ; 89 da
     13527    xchg cx, ax                               ; 91
     13528    sal eax, 010h                             ; 66 c1 e0 10
     13529    db  08bh, 0c1h
     13530    ; mov ax, cx                                ; 8b c1
     13531    out DX, eax                               ; 66 ef
     13532    mov ax, word [bp-018h]                    ; 8b 46 e8
    1307713533    add ax, 00124h                            ; 05 24 01
    1307813534    cwd                                       ; 99
     
    1309413550    shr eax, 010h                             ; 66 c1 e8 10
    1309513551    xchg dx, ax                               ; 92
    13096     mov cl, byte [bp-00ch]                    ; 8a 4e f4
     13552    mov di, ax                                ; 89 c7
     13553    mov ax, dx                                ; 89 d0
     13554    mov cl, byte [bp-008h]                    ; 8a 4e f8
    1309713555    add cl, 00ch                              ; 80 c1 0c
    1309813556    test dx, dx                               ; 85 d2
    13099     jne near 08e83h                           ; 0f 85 d8 01
    13100     cmp ax, 00101h                            ; 3d 01 01
    13101     jne near 08e83h                           ; 0f 85 d1 01
     13557    jne near 093e7h                           ; 0f 85 0d 02
     13558    cmp di, 00101h                            ; 81 ff 01 01
     13559    jne near 093e7h                           ; 0f 85 05 02
    1310213560    les bx, [bp-010h]                         ; c4 5e f0
     13561    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     13562    ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00
    1310313563    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
    1310413564    ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00
    13105     lea dx, [bp-00226h]                       ; 8d 96 da fd
    13106     mov word [es:bx+004h], dx                 ; 26 89 57 04
    13107     mov [es:bx+006h], ss                      ; 26 8c 57 06
    13108     db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 002h
    13109     ; mov dword [es:bx+00ah], strict dword 002000001h ; 66 26 c7 47 0a 01 00 00 02
     13565    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
     13566    mov word [es:bx+008h], dx                 ; 26 89 57 08
     13567    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
     13568    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 002h
     13569    ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02
    1311013570    mov bx, 000ech                            ; bb ec 00
    1311113571    mov ax, word [bp-010h]                    ; 8b 46 f0
    1311213572    mov dx, es                                ; 8c c2
    13113     call 08338h                               ; e8 5b f6
    13114     mov byte [bp-00ah], cl                    ; 88 4e f6
    13115     test byte [bp-00226h], 080h               ; f6 86 da fd 80
     13573    call 08710h                               ; e8 fa f4
     13574    mov byte [bp-00ch], cl                    ; 88 4e f4
     13575    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1311613576    db  00fh, 095h, 0c0h
    1311713577    ; setne al                                  ; 0f 95 c0
    1311813578    xor ah, ah                                ; 30 e4
    13119     mov dl, al                                ; 88 c2
    13120     mov ax, word [bp-00224h]                  ; 8b 86 dc fd
    13121     mov word [bp-018h], ax                    ; 89 46 e8
    13122     mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
    13123     mov word [bp-01eh], ax                    ; 89 46 e2
    13124     mov ax, word [bp-0021ah]                  ; 8b 86 e6 fd
    13125     mov word [bp-01ch], ax                    ; 89 46 e4
    13126     mov ax, word [bp-001aeh]                  ; 8b 86 52 fe
    13127     mov word [bp-014h], ax                    ; 89 46 ec
    13128     mov di, word [bp-001ach]                  ; 8b be 54 fe
     13579    mov dx, word [bp-00228h]                  ; 8b 96 d8 fd
     13580    mov word [bp-020h], dx                    ; 89 56 e0
     13581    mov dx, word [bp-00224h]                  ; 8b 96 dc fd
     13582    mov word [bp-01ch], dx                    ; 89 56 e4
     13583    mov dx, word [bp-0021eh]                  ; 8b 96 e2 fd
     13584    mov word [bp-01eh], dx                    ; 89 56 e2
     13585    mov dx, word [bp-001b2h]                  ; 8b 96 4e fe
     13586    mov word [bp-01ah], dx                    ; 89 56 e6
     13587    mov di, word [bp-001b0h]                  ; 8b be 50 fe
     13588    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
    1312913589    cmp di, 00fffh                            ; 81 ff ff 0f
    13130     jne short 08d22h                          ; 75 10
    13131     cmp ax, strict word 0ffffh                ; 3d ff ff
    13132     jne short 08d22h                          ; 75 0b
    13133     mov ax, word [bp-0015eh]                  ; 8b 86 a2 fe
    13134     mov word [bp-014h], ax                    ; 89 46 ec
    13135     mov di, word [bp-0015ch]                  ; 8b be a4 fe
    13136     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     13590    jne short 0926fh                          ; 75 1e
     13591    cmp dx, strict byte 0ffffh                ; 83 fa ff
     13592    jne short 0926fh                          ; 75 19
     13593    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
     13594    mov word [bp-014h], dx                    ; 89 56 ec
     13595    mov dx, word [bp-0015eh]                  ; 8b 96 a2 fe
     13596    mov word [bp-016h], dx                    ; 89 56 ea
     13597    mov di, word [bp-00160h]                  ; 8b be a0 fe
     13598    mov dx, word [bp-00162h]                  ; 8b 96 9e fe
     13599    mov word [bp-01ah], dx                    ; 89 56 e6
     13600    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1313713601    mov es, [bp-00eh]                         ; 8e 46 f2
    1313813602    add bx, word [bp-010h]                    ; 03 5e f0
    13139     mov al, byte [bp-008h]                    ; 8a 46 f8
    13140     mov byte [es:bx+001e9h], al               ; 26 88 87 e9 01
    13141     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    13142     imul ax, ax, strict byte 00018h           ; 6b c0 18
     13603    mov ah, byte [bp-00ah]                    ; 8a 66 f6
     13604    mov byte [es:bx+0022dh], ah               ; 26 88 a7 2d 02
     13605    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     13606    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
    1314313607    mov si, word [bp-010h]                    ; 8b 76 f0
    13144     add si, ax                                ; 01 c6
    13145     mov word [es:si+01eh], 0ff05h             ; 26 c7 44 1e 05 ff
    13146     mov byte [es:si+020h], dl                 ; 26 88 54 20
    13147     mov byte [es:si+021h], 000h               ; 26 c6 44 21 00
    13148     mov word [es:si+024h], 00200h             ; 26 c7 44 24 00 02
    13149     mov byte [es:si+023h], 001h               ; 26 c6 44 23 01
     13608    add si, dx                                ; 01 d6
     13609    mov word [es:si+022h], 0ff05h             ; 26 c7 44 22 05 ff
     13610    mov byte [es:si+024h], al                 ; 26 88 44 24
     13611    mov byte [es:si+025h], 000h               ; 26 c6 44 25 00
     13612    mov word [es:si+028h], 00200h             ; 26 c7 44 28 00 02
     13613    mov byte [es:si+027h], 001h               ; 26 c6 44 27 01
    1315013614    mov ax, word [bp-014h]                    ; 8b 46 ec
    13151     mov word [es:si+032h], ax                 ; 26 89 44 32
    13152     mov word [es:si+034h], di                 ; 26 89 7c 34
    13153     mov ax, word [bp-01eh]                    ; 8b 46 e2
    13154     mov word [es:si+02ch], ax                 ; 26 89 44 2c
    13155     mov ax, word [bp-018h]                    ; 8b 46 e8
    13156     mov word [es:si+02eh], ax                 ; 26 89 44 2e
     13615    mov word [es:si+03ch], ax                 ; 26 89 44 3c
     13616    mov ax, word [bp-016h]                    ; 8b 46 ea
     13617    mov word [es:si+03ah], ax                 ; 26 89 44 3a
     13618    mov word [es:si+038h], di                 ; 26 89 7c 38
     13619    mov ax, word [bp-01ah]                    ; 8b 46 e6
     13620    mov word [es:si+036h], ax                 ; 26 89 44 36
    1315713621    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1315813622    mov word [es:si+030h], ax                 ; 26 89 44 30
    13159     mov al, byte [bp-00ch]                    ; 8a 46 f4
     13623    mov ax, word [bp-020h]                    ; 8b 46 e0
     13624    mov word [es:si+032h], ax                 ; 26 89 44 32
     13625    mov ax, word [bp-01eh]                    ; 8b 46 e2
     13626    mov word [es:si+034h], ax                 ; 26 89 44 34
     13627    mov al, byte [bp-008h]                    ; 8a 46 f8
    1316013628    cmp AL, strict byte 001h                  ; 3c 01
    13161     jc short 08d8dh                           ; 72 0c
    13162     jbe short 08d95h                          ; 76 12
     13629    jc short 092e8h                           ; 72 0c
     13630    jbe short 092f0h                          ; 76 12
    1316313631    cmp AL, strict byte 003h                  ; 3c 03
    13164     je short 08d9dh                           ; 74 16
     13632    je short 092f8h                           ; 74 16
    1316513633    cmp AL, strict byte 002h                  ; 3c 02
    13166     je short 08d99h                           ; 74 0e
    13167     jmp short 08de6h                          ; eb 59
     13634    je short 092f4h                           ; 74 0e
     13635    jmp short 09341h                          ; eb 59
    1316813636    test al, al                               ; 84 c0
    13169     jne short 08de6h                          ; 75 55
     13637    jne short 09341h                          ; 75 55
    1317013638    mov DL, strict byte 040h                  ; b2 40
    13171     jmp short 08d9fh                          ; eb 0a
     13639    jmp short 092fah                          ; eb 0a
    1317213640    mov DL, strict byte 048h                  ; b2 48
    13173     jmp short 08d9fh                          ; eb 06
     13641    jmp short 092fah                          ; eb 06
    1317413642    mov DL, strict byte 050h                  ; b2 50
    13175     jmp short 08d9fh                          ; eb 02
     13643    jmp short 092fah                          ; eb 02
    1317613644    mov DL, strict byte 058h                  ; b2 58
    1317713645    mov al, dl                                ; 88 d0
     
    1317913647    movzx bx, al                              ; 0f b6 d8
    1318013648    mov ax, bx                                ; 89 d8
    13181     call 016ach                               ; e8 01 89
     13649    call 016ach                               ; e8 a6 83
    1318213650    test al, al                               ; 84 c0
    13183     je short 08de6h                           ; 74 37
     13651    je short 09341h                           ; 74 37
    1318413652    mov al, dl                                ; 88 d0
    1318513653    db  0feh, 0c0h
    1318613654    ; inc al                                    ; fe c0
    1318713655    xor ah, ah                                ; 30 e4
    13188     call 016ach                               ; e8 f4 88
     13656    call 016ach                               ; e8 99 83
    1318913657    xor ah, ah                                ; 30 e4
    1319013658    mov si, ax                                ; 89 c6
    1319113659    sal si, 008h                              ; c1 e6 08
    1319213660    movzx ax, dl                              ; 0f b6 c2
    13193     call 016ach                               ; e8 e7 88
     13661    call 016ach                               ; e8 8c 83
    1319413662    xor ah, ah                                ; 30 e4
    1319513663    add ax, si                                ; 01 f0
    13196     mov word [bp-024h], ax                    ; 89 46 dc
     13664    mov word [bp-028h], ax                    ; 89 46 d8
    1319713665    mov al, dl                                ; 88 d0
    1319813666    add AL, strict byte 002h                  ; 04 02
    1319913667    xor ah, ah                                ; 30 e4
    13200     call 016ach                               ; e8 d7 88
     13668    call 016ach                               ; e8 7c 83
     13669    xor ah, ah                                ; 30 e4
     13670    mov word [bp-02ah], ax                    ; 89 46 d6
     13671    mov ax, bx                                ; 89 d8
     13672    call 016ach                               ; e8 72 83
    1320113673    xor ah, ah                                ; 30 e4
    1320213674    mov word [bp-026h], ax                    ; 89 46 da
    13203     mov ax, bx                                ; 89 d8
    13204     call 016ach                               ; e8 cd 88
    13205     xor ah, ah                                ; 30 e4
    13206     mov word [bp-022h], ax                    ; 89 46 de
    13207     jmp short 08df3h                          ; eb 0d
    13208     mov bx, word [bp-014h]                    ; 8b 5e ec
    13209     mov cx, di                                ; 89 f9
     13675    jmp short 09351h                          ; eb 10
     13676    push dword [bp-016h]                      ; 66 ff 76 ea
     13677    push di                                   ; 57
     13678    push word [bp-01ah]                       ; ff 76 e6
    1321013679    mov dx, ss                                ; 8c d2
    13211     lea ax, [bp-026h]                         ; 8d 46 da
    13212     call 055b6h                               ; e8 c3 c7
    13213     mov bx, 00da2h                            ; bb a2 0d
     13680    lea ax, [bp-02ah]                         ; 8d 46 d6
     13681    call 0588bh                               ; e8 3a c5
     13682    mov bx, 00da0h                            ; bb a0 0d
    1321413683    mov cx, ds                                ; 8c d9
    1321513684    mov ax, strict word 00004h                ; b8 04 00
    13216     call 01931h                               ; e8 33 8b
     13685    call 01931h                               ; e8 d5 85
     13686    push dword [bp-016h]                      ; 66 ff 76 ea
    1321713687    push di                                   ; 57
    13218     push word [bp-014h]                       ; ff 76 ec
    13219     mov ax, word [bp-022h]                    ; 8b 46 de
    13220     push ax                                   ; 50
     13688    push word [bp-01ah]                       ; ff 76 e6
    1322113689    mov ax, word [bp-026h]                    ; 8b 46 da
    1322213690    push ax                                   ; 50
    13223     mov ax, word [bp-024h]                    ; 8b 46 dc
     13691    mov ax, word [bp-02ah]                    ; 8b 46 d6
    1322413692    push ax                                   ; 50
    13225     push dword [bp-01eh]                      ; 66 ff 76 e2
    13226     push word [bp-018h]                       ; ff 76 e8
     13693    mov ax, word [bp-028h]                    ; 8b 46 d8
     13694    push ax                                   ; 50
     13695    push word [bp-01eh]                       ; ff 76 e2
     13696    push word [bp-01ch]                       ; ff 76 e4
     13697    push word [bp-020h]                       ; ff 76 e0
     13698    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     13699    push ax                                   ; 50
    1322713700    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1322813701    push ax                                   ; 50
     13702    push 00cd6h                               ; 68 d6 0c
     13703    push strict byte 00004h                   ; 6a 04
     13704    call 01972h                               ; e8 e7 85
     13705    add sp, strict byte 0001ch                ; 83 c4 1c
    1322913706    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    13230     push ax                                   ; 50
    13231     push 00cdah                               ; 68 da 0c
    13232     push strict byte 00004h                   ; 6a 04
    13233     call 01972h                               ; e8 4b 8b
    13234     add sp, strict byte 00018h                ; 83 c4 18
    13235     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    13236     imul ax, ax, strict byte 00018h           ; 6b c0 18
     13707    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
    1323713708    mov di, word [bp-010h]                    ; 8b 7e f0
    1323813709    add di, ax                                ; 01 c7
    1323913710    mov es, [bp-00eh]                         ; 8e 46 f2
    13240     lea di, [di+026h]                         ; 8d 7d 26
     13711    lea di, [di+02ah]                         ; 8d 7d 2a
    1324113712    push DS                                   ; 1e
    1324213713    push SS                                   ; 16
    1324313714    pop DS                                    ; 1f
    13244     lea si, [bp-026h]                         ; 8d 76 da
     13715    lea si, [bp-02ah]                         ; 8d 76 d6
    1324513716    movsw                                     ; a5
    1324613717    movsw                                     ; a5
     
    1324813719    pop DS                                    ; 1f
    1324913720    mov bx, word [bp-010h]                    ; 8b 5e f0
    13250     mov al, byte [es:bx+0019eh]               ; 26 8a 87 9e 01
    13251     mov ah, byte [bp-00ch]                    ; 8a 66 f4
     13721    mov al, byte [es:bx+001e2h]               ; 26 8a 87 e2 01
     13722    mov ah, byte [bp-008h]                    ; 8a 66 f8
    1325213723    add ah, 00ch                              ; 80 c4 0c
    1325313724    movzx bx, al                              ; 0f b6 d8
    1325413725    add bx, word [bp-010h]                    ; 03 5e f0
    13255     mov byte [es:bx+0019fh], ah               ; 26 88 a7 9f 01
     13726    mov byte [es:bx+001e3h], ah               ; 26 88 a7 e3 01
    1325613727    db  0feh, 0c0h
    1325713728    ; inc al                                    ; fe c0
    1325813729    mov bx, word [bp-010h]                    ; 8b 5e f0
    13259     mov byte [es:bx+0019eh], al               ; 26 88 87 9e 01
     13730    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
    1326013731    mov dx, strict word 00075h                ; ba 75 00
    1326113732    mov ax, strict word 00040h                ; b8 40 00
    13262     call 01650h                               ; e8 de 87
     13733    call 01650h                               ; e8 7a 82
    1326313734    db  0feh, 0c0h
    1326413735    ; inc al                                    ; fe c0
     
    1326613737    mov dx, strict word 00075h                ; ba 75 00
    1326713738    mov ax, strict word 00040h                ; b8 40 00
    13268     call 0165eh                               ; e8 de 87
    13269     jmp near 08f19h                           ; e9 96 00
     13739    call 0165eh                               ; e8 7a 82
     13740    jmp near 09483h                           ; e9 9c 00
    1327013741    cmp dx, 0eb14h                            ; 81 fa 14 eb
    13271     jne near 08f19h                           ; 0f 85 8e 00
    13272     cmp ax, 00101h                            ; 3d 01 01
    13273     jne near 08f19h                           ; 0f 85 87 00
     13742    jne near 09483h                           ; 0f 85 94 00
     13743    cmp di, 00101h                            ; 81 ff 01 01
     13744    jne near 09483h                           ; 0f 85 8c 00
    1327413745    les bx, [bp-010h]                         ; c4 5e f0
     13746    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     13747    ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00
    1327513748    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
    1327613749    ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00
    13277     lea dx, [bp-00226h]                       ; 8d 96 da fd
    13278     mov word [es:bx+004h], dx                 ; 26 89 57 04
    13279     mov [es:bx+006h], ss                      ; 26 8c 57 06
    13280     db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 002h
    13281     ; mov dword [es:bx+00ah], strict dword 002000001h ; 66 26 c7 47 0a 01 00 00 02
     13750    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
     13751    mov word [es:bx+008h], dx                 ; 26 89 57 08
     13752    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
     13753    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 002h
     13754    ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02
    1328213755    mov bx, 000a1h                            ; bb a1 00
    1328313756    mov ax, word [bp-010h]                    ; 8b 46 f0
    1328413757    mov dx, es                                ; 8c c2
    13285     call 08338h                               ; e8 7b f4
    13286     test byte [bp-00226h], 080h               ; f6 86 da fd 80
     13758    call 08710h                               ; e8 e5 f2
     13759    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1328713760    db  00fh, 095h, 0c0h
    1328813761    ; setne al                                  ; 0f 95 c0
    1328913762    xor ah, ah                                ; 30 e4
    13290     mov dx, ax                                ; 89 c2
    13291     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     13763    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1329213764    mov es, [bp-00eh]                         ; 8e 46 f2
    1329313765    add bx, word [bp-010h]                    ; 03 5e f0
    13294     mov al, byte [bp-008h]                    ; 8a 46 f8
    13295     mov byte [es:bx+001e9h], al               ; 26 88 87 e9 01
    13296     movzx ax, cl                              ; 0f b6 c1
    13297     imul ax, ax, strict byte 00018h           ; 6b c0 18
    13298     mov si, word [bp-010h]                    ; 8b 76 f0
    13299     add si, ax                                ; 01 c6
    13300     mov word [es:si+01eh], 00505h             ; 26 c7 44 1e 05 05
    13301     mov byte [es:si+020h], dl                 ; 26 88 54 20
    13302     mov word [es:si+024h], 00800h             ; 26 c7 44 24 00 08
     13766    mov ah, byte [bp-00ah]                    ; 8a 66 f6
     13767    mov byte [es:bx+0022dh], ah               ; 26 88 a7 2d 02
     13768    movzx si, cl                              ; 0f b6 f1
     13769    imul si, si, strict byte 0001ch           ; 6b f6 1c
     13770    add si, word [bp-010h]                    ; 03 76 f0
     13771    mov word [es:si+022h], 00505h             ; 26 c7 44 22 05 05
     13772    mov byte [es:si+024h], al                 ; 26 88 44 24
     13773    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
    1330313774    mov bx, word [bp-010h]                    ; 8b 5e f0
    13304     mov al, byte [es:bx+001afh]               ; 26 8a 87 af 01
    13305     mov ah, byte [bp-00ch]                    ; 8a 66 f4
     13775    mov al, byte [es:bx+001f3h]               ; 26 8a 87 f3 01
     13776    mov ah, byte [bp-008h]                    ; 8a 66 f8
    1330613777    add ah, 00ch                              ; 80 c4 0c
    1330713778    movzx bx, al                              ; 0f b6 d8
    1330813779    add bx, word [bp-010h]                    ; 03 5e f0
    13309     mov byte [es:bx+001b0h], ah               ; 26 88 a7 b0 01
     13780    mov byte [es:bx+001f4h], ah               ; 26 88 a7 f4 01
    1331013781    db  0feh, 0c0h
    1331113782    ; inc al                                    ; fe c0
    1331213783    mov bx, word [bp-010h]                    ; 8b 5e f0
    13313     mov byte [es:bx+001afh], al               ; 26 88 87 af 01
    13314     inc byte [bp-00ch]                        ; fe 46 f4
    13315     mov al, byte [bp-00ch]                    ; 8a 46 f4
     13784    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
     13785    inc byte [bp-008h]                        ; fe 46 f8
     13786    mov al, byte [bp-008h]                    ; 8a 46 f8
    1331613787    les bx, [bp-010h]                         ; c4 5e f0
    13317     mov byte [es:bx+001edh], al               ; 26 88 87 ed 01
     13788    mov byte [es:bx+00231h], al               ; 26 88 87 31 02
    1331813789    lea sp, [bp-006h]                         ; 8d 66 fa
    1331913790    pop di                                    ; 5f
     
    1332213793    pop bp                                    ; 5d
    1332313794    retn                                      ; c3
    13324 ahci_mem_alloc_:                             ; 0xf8f2f LB 0x43
     13795ahci_mem_alloc_:                             ; 0xf9499 LB 0x43
    1332513796    push bp                                   ; 55
    1332613797    mov bp, sp                                ; 89 e5
     
    1333213803    mov dx, 00413h                            ; ba 13 04
    1333313804    xor ax, ax                                ; 31 c0
    13334     call 0166ch                               ; e8 2d 87
     13805    call 0166ch                               ; e8 c3 81
    1333513806    test ax, ax                               ; 85 c0
    13336     je short 08f68h                           ; 74 25
     13807    je short 094d2h                           ; 74 25
    1333713808    dec ax                                    ; 48
    1333813809    mov bx, ax                                ; 89 c3
     
    1334113812    sal ax, 1                                 ; d1 e0
    1334213813    rcl dx, 1                                 ; d1 d2
    13343     loop 08f4bh                               ; e2 fa
     13814    loop 094b5h                               ; e2 fa
    1334413815    mov si, ax                                ; 89 c6
    1334513816    mov di, dx                                ; 89 d7
     
    1334713818    shr di, 1                                 ; d1 ef
    1334813819    rcr si, 1                                 ; d1 de
    13349     loop 08f58h                               ; e2 fa
     13820    loop 094c2h                               ; e2 fa
    1335013821    mov dx, 00413h                            ; ba 13 04
    1335113822    xor ax, ax                                ; 31 c0
    13352     call 0167ah                               ; e8 14 87
     13823    call 0167ah                               ; e8 aa 81
    1335313824    mov ax, si                                ; 89 f0
    1335413825    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1336013831    pop bp                                    ; 5d
    1336113832    retn                                      ; c3
    13362 ahci_hba_init_:                              ; 0xf8f72 LB 0x125
     13833ahci_hba_init_:                              ; 0xf94dc LB 0x166
    1336313834    push bp                                   ; 55
    1336413835    mov bp, sp                                ; 89 e5
     
    1337213843    mov dx, strict word 0000eh                ; ba 0e 00
    1337313844    mov ax, strict word 00040h                ; b8 40 00
    13374     call 0166ch                               ; e8 e4 86
     13845    call 0166ch                               ; e8 7a 81
    1337513846    mov bx, 00122h                            ; bb 22 01
    13376     mov word [bp-010h], ax                    ; 89 46 f0
     13847    mov di, ax                                ; 89 c7
    1337713848    mov ax, strict word 00010h                ; b8 10 00
    1337813849    xor cx, cx                                ; 31 c9
     
    1338913860    shr eax, 010h                             ; 66 c1 e8 10
    1339013861    xchg dx, ax                               ; 92
    13391     call 08f2fh                               ; e8 82 ff
    13392     mov di, ax                                ; 89 c7
     13862    call 09499h                               ; e8 83 ff
     13863    mov word [bp-010h], ax                    ; 89 46 f0
    1339313864    test ax, ax                               ; 85 c0
    13394     je near 09076h                            ; 0f 84 c1 00
    13395     mov es, [bp-010h]                         ; 8e 46 f0
    13396     mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
    13397     mov byte [es:bx+001edh], 000h             ; 26 c6 87 ed 01 00
     13865    je near 09621h                            ; 0f 84 02 01
     13866    mov ax, word [bp-010h]                    ; 8b 46 f0
     13867    mov es, di                                ; 8e c7
     13868    mov word [es:bx+00232h], ax               ; 26 89 87 32 02
     13869    mov byte [es:bx+00231h], 000h             ; 26 c6 87 31 02 00
    1339813870    xor bx, bx                                ; 31 db
    13399     mov es, di                                ; 8e c7
     13871    mov es, ax                                ; 8e c0
    1340013872    mov byte [es:bx+00262h], 0ffh             ; 26 c6 87 62 02 ff
    1340113873    mov word [es:bx+00260h], si               ; 26 89 b7 60 02
    1340213874    db  066h, 026h, 0c7h, 087h, 064h, 002h, 000h, 0c0h, 00ch, 000h
    1340313875    ; mov dword [es:bx+00264h], strict dword 0000cc000h ; 66 26 c7 87 64 02 00 c0 0c 00
    13404     mov bx, strict word 00001h                ; bb 01 00
     13876    mov ax, strict word 00004h                ; b8 04 00
    1340513877    xor cx, cx                                ; 31 c9
    13406     mov dx, strict word 00004h                ; ba 04 00
    13407     mov ax, si                                ; 89 f0
    13408     call 08167h                               ; e8 7e f1
     13878    mov dx, si                                ; 89 f2
     13879    xchg cx, ax                               ; 91
     13880    sal eax, 010h                             ; 66 c1 e0 10
     13881    db  08bh, 0c1h
     13882    ; mov ax, cx                                ; 8b c1
     13883    out DX, eax                               ; 66 ef
     13884    lea bx, [si+004h]                         ; 8d 5c 04
     13885    mov dx, bx                                ; 89 da
     13886    in eax, DX                                ; 66 ed
     13887    db  08bh, 0d0h
     13888    ; mov dx, ax                                ; 8b d0
     13889    shr eax, 010h                             ; 66 c1 e8 10
     13890    xchg dx, ax                               ; 92
     13891    or AL, strict byte 001h                   ; 0c 01
     13892    mov cx, dx                                ; 89 d1
     13893    mov dx, bx                                ; 89 da
     13894    xchg cx, ax                               ; 91
     13895    sal eax, 010h                             ; 66 c1 e0 10
     13896    db  08bh, 0c1h
     13897    ; mov ax, cx                                ; 8b c1
     13898    out DX, eax                               ; 66 ef
    1340913899    mov ax, strict word 00004h                ; b8 04 00
    1341013900    xor cx, cx                                ; 31 c9
     
    1342313913    xchg dx, ax                               ; 92
    1342413914    test AL, strict byte 001h                 ; a8 01
    13425     jne short 08fe9h                          ; 75 de
     13915    jne short 09575h                          ; 75 de
    1342613916    xor ax, ax                                ; 31 c0
    1342713917    xor cx, cx                                ; 31 c9
     
    1344113931    mov bx, strict word 0001fh                ; bb 1f 00
    1344213932    xor cx, cx                                ; 31 c9
    13443     call 0822ah                               ; e8 fb f1
     13933    call 0858ch                               ; e8 d1 ef
    1344413934    db  0feh, 0c0h
    1344513935    ; inc al                                    ; fe c0
    1344613936    mov byte [bp-00eh], al                    ; 88 46 f2
    1344713937    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    13448     jmp short 09043h                          ; eb 09
     13938    jmp short 095e6h                          ; eb 20
     13939    xor al, al                                ; 30 c0
     13940    test al, al                               ; 84 c0
     13941    je short 095ddh                           ; 74 11
     13942    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     13943    xor ax, ax                                ; 31 c0
     13944    mov dx, word [bp-010h]                    ; 8b 56 f0
     13945    call 08fe8h                               ; e8 10 fa
     13946    dec byte [bp-00eh]                        ; fe 4e f2
     13947    je short 0961fh                           ; 74 42
    1344913948    inc byte [bp-00ch]                        ; fe 46 f4
    1345013949    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    13451     jnc short 09074h                          ; 73 31
     13950    jnc short 0961fh                          ; 73 39
    1345213951    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    13453     mov ax, strict word 00001h                ; b8 01 00
    13454     xor dx, dx                                ; 31 d2
    13455     jcxz 09054h                               ; e3 06
    13456     sal ax, 1                                 ; d1 e0
    13457     rcl dx, 1                                 ; d1 d2
    13458     loop 0904eh                               ; e2 fa
    13459     mov bx, ax                                ; 89 c3
    13460     mov cx, dx                                ; 89 d1
    13461     mov dx, strict word 0000ch                ; ba 0c 00
    13462     mov ax, si                                ; 89 f0
    13463     call 081f1h                               ; e8 91 f1
    13464     test al, al                               ; 84 c0
    13465     je short 0903ah                           ; 74 d6
    13466     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    13467     xor ax, ax                                ; 31 c0
    13468     mov dx, di                                ; 89 fa
    13469     call 08adeh                               ; e8 6f fa
    13470     dec byte [bp-00eh]                        ; fe 4e f2
    13471     jne short 0903ah                          ; 75 c6
     13952    mov bx, strict word 00001h                ; bb 01 00
     13953    xor di, di                                ; 31 ff
     13954    jcxz 095f7h                               ; e3 06
     13955    sal bx, 1                                 ; d1 e3
     13956    rcl di, 1                                 ; d1 d7
     13957    loop 095f1h                               ; e2 fa
     13958    mov ax, strict word 0000ch                ; b8 0c 00
     13959    xor cx, cx                                ; 31 c9
     13960    mov dx, si                                ; 89 f2
     13961    xchg cx, ax                               ; 91
     13962    sal eax, 010h                             ; 66 c1 e0 10
     13963    db  08bh, 0c1h
     13964    ; mov ax, cx                                ; 8b c1
     13965    out DX, eax                               ; 66 ef
     13966    lea dx, [si+004h]                         ; 8d 54 04
     13967    in eax, DX                                ; 66 ed
     13968    db  08bh, 0d0h
     13969    ; mov dx, ax                                ; 8b d0
     13970    shr eax, 010h                             ; 66 c1 e8 10
     13971    xchg dx, ax                               ; 92
     13972    test dx, di                               ; 85 fa
     13973    jne short 0961bh                          ; 75 04
     13974    test ax, bx                               ; 85 d8
     13975    je short 095c6h                           ; 74 ab
     13976    mov AL, strict byte 001h                  ; b0 01
     13977    jmp short 095c8h                          ; eb a9
    1347213978    xor ax, ax                                ; 31 c0
    1347313979    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1347913985    pop bp                                    ; 5d
    1348013986    retn                                      ; c3
    13481     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 066h, 091h, 044h, 091h, 04ah, 091h, 050h, 091h, 056h
    13482     db  091h, 05ch, 091h, 062h, 091h, 066h, 091h
    13483 _ahci_init:                                  ; 0xf9097 LB 0xfe
     13987    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 011h, 097h, 0efh, 096h, 0f5h, 096h, 0fbh, 096h, 001h
     13988    db  097h, 007h, 097h, 00dh, 097h, 011h, 097h
     13989_ahci_init:                                  ; 0xf9642 LB 0xfe
    1348413990    push bp                                   ; 55
    1348513991    mov bp, sp                                ; 89 e5
     
    1348913995    mov ax, 00601h                            ; b8 01 06
    1349013996    mov dx, strict word 00001h                ; ba 01 00
    13491     call 095b5h                               ; e8 0d 05
     13997    call 09b60h                               ; e8 0d 05
    1349213998    mov dx, ax                                ; 89 c2
    1349313999    cmp ax, strict word 0ffffh                ; 3d ff ff
    13494     je near 0918eh                            ; 0f 84 dd 00
     14000    je near 09739h                            ; 0f 84 dd 00
    1349514001    xor al, al                                ; 30 c0
    1349614002    shr ax, 008h                              ; c1 e8 08
     
    1350014006    xor ah, ah                                ; 30 e4
    1350114007    mov bx, strict word 00034h                ; bb 34 00
    13502     call 095e0h                               ; e8 1a 05
     14008    call 09b8bh                               ; e8 1a 05
    1350314009    mov cl, al                                ; 88 c1
    1350414010    test cl, cl                               ; 84 c9
    13505     je short 090efh                           ; 74 23
     14011    je short 0969ah                           ; 74 23
    1350614012    movzx bx, cl                              ; 0f b6 d9
    1350714013    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1350914015    mov dx, di                                ; 89 fa
    1351014016    mov ax, si                                ; 89 f0
    13511     call 095e0h                               ; e8 02 05
     14017    call 09b8bh                               ; e8 02 05
    1351214018    cmp AL, strict byte 012h                  ; 3c 12
    13513     je short 090efh                           ; 74 0d
     14019    je short 0969ah                           ; 74 0d
    1351414020    mov al, cl                                ; 88 c8
    1351514021    db  0feh, 0c0h
     
    1351814024    mov dx, di                                ; 89 fa
    1351914025    mov ax, si                                ; 89 f0
    13520     jmp short 090c3h                          ; eb d4
     14026    jmp short 0966eh                          ; eb d4
    1352114027    test cl, cl                               ; 84 c9
    13522     je near 0918eh                            ; 0f 84 99 00
     14028    je near 09739h                            ; 0f 84 99 00
    1352314029    add cl, 002h                              ; 80 c1 02
    1352414030    movzx bx, cl                              ; 0f b6 d9
     
    1352714033    mov dx, di                                ; 89 fa
    1352814034    mov ax, si                                ; 89 f0
    13529     call 095e0h                               ; e8 d6 04
     14035    call 09b8bh                               ; e8 d6 04
    1353014036    cmp AL, strict byte 010h                  ; 3c 10
    13531     jne near 0918eh                           ; 0f 85 7e 00
     14037    jne near 09739h                           ; 0f 85 7e 00
    1353214038    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1353314039    mov al, cl                                ; 88 c8
     
    1353614042    mov dx, di                                ; 89 fa
    1353714043    mov ax, si                                ; 89 f0
    13538     call 09604h                               ; e8 e2 04
     14044    call 09bafh                               ; e8 e2 04
    1353914045    mov dx, ax                                ; 89 c2
    1354014046    and ax, strict word 0000fh                ; 25 0f 00
    1354114047    sub ax, strict word 00004h                ; 2d 04 00
    1354214048    cmp ax, strict word 0000bh                ; 3d 0b 00
    13543     jnbe short 09166h                         ; 77 37
     14049    jnbe short 09711h                         ; 77 37
    1354414050    push CS                                   ; 0e
    1354514051    pop ES                                    ; 07
    1354614052    mov cx, strict word 00008h                ; b9 08 00
    13547     mov di, 09080h                            ; bf 80 90
     14053    mov di, 0962bh                            ; bf 2b 96
    1354814054    repne scasb                               ; f2 ae
    1354914055    sal cx, 1                                 ; d1 e1
    1355014056    mov di, cx                                ; 89 cf
    13551     mov ax, word [cs:di-06f79h]               ; 2e 8b 85 87 90
     14057    mov ax, word [cs:di-069ceh]               ; 2e 8b 85 32 96
    1355214058    jmp ax                                    ; ff e0
    1355314059    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    13554     jmp short 09166h                          ; eb 1c
     14060    jmp short 09711h                          ; eb 1c
    1355514061    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    13556     jmp short 09166h                          ; eb 16
     14062    jmp short 09711h                          ; eb 16
    1355714063    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    13558     jmp short 09166h                          ; eb 10
     14064    jmp short 09711h                          ; eb 10
    1355914065    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    13560     jmp short 09166h                          ; eb 0a
     14066    jmp short 09711h                          ; eb 0a
    1356114067    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    13562     jmp short 09166h                          ; eb 04
     14068    jmp short 09711h                          ; eb 04
    1356314069    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1356414070    mov si, dx                                ; 89 d6
     
    1356714073    mov al, byte [bp-006h]                    ; 8a 46 fa
    1356814074    test al, al                               ; 84 c0
    13569     je short 0918eh                           ; 74 19
     14075    je short 09739h                           ; 74 19
    1357014076    movzx bx, al                              ; 0f b6 d8
    1357114077    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1357214078    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    13573     call 09626h                               ; e8 a3 04
     14079    call 09bd1h                               ; e8 a3 04
    1357414080    test AL, strict byte 001h                 ; a8 01
    13575     je short 0918eh                           ; 74 07
     14081    je short 09739h                           ; 74 07
    1357614082    and AL, strict byte 0f0h                  ; 24 f0
    1357714083    add ax, si                                ; 01 f0
    13578     call 08f72h                               ; e8 e4 fd
     14084    call 094dch                               ; e8 a3 fd
    1357914085    lea sp, [bp-004h]                         ; 8d 66 fc
    1358014086    pop di                                    ; 5f
     
    1358214088    pop bp                                    ; 5d
    1358314089    retn                                      ; c3
    13584 apm_out_str_:                                ; 0xf9195 LB 0x39
     14090apm_out_str_:                                ; 0xf9740 LB 0x39
    1358514091    push bp                                   ; 55
    1358614092    mov bp, sp                                ; 89 e5
     
    1358814094    mov bx, ax                                ; 89 c3
    1358914095    cmp byte [bx], 000h                       ; 80 3f 00
    13590     je short 091aah                           ; 74 0a
     14096    je short 09755h                           ; 74 0a
    1359114097    mov al, byte [bx]                         ; 8a 07
    1359214098    out DX, AL                                ; ee
     
    1359514101    db  00ah, 0c0h
    1359614102    ; or al, al                                 ; 0a c0
    13597     jne short 091a2h                          ; 75 f8
     14103    jne short 0974dh                          ; 75 f8
    1359814104    lea sp, [bp-002h]                         ; 8d 66 fe
    1359914105    pop bx                                    ; 5b
    1360014106    pop bp                                    ; 5d
    1360114107    retn                                      ; c3
    13602     db  0f1h
    13603     xchg cx, ax                               ; 91
    13604     mov bp, 00392h                            ; bd 92 03
    13605     xchg dx, ax                               ; 92
    13606     push DS                                   ; 1e
    13607     xchg dx, ax                               ; 92
    13608     mov bp, 04992h                            ; bd 92 49
    13609     xchg dx, ax                               ; 92
    13610     mov bp, 04e92h                            ; bd 92 4e
    13611     xchg dx, ax                               ; 92
    13612     xchg dx, ax                               ; 92
    13613     xchg dx, ax                               ; 92
    13614     xchg dx, ax                               ; 92
    13615     xchg dx, ax                               ; 92
    13616     xchg dx, ax                               ; 92
    13617     xchg dx, ax                               ; 92
    13618     lea dx, [bp+si-06d6eh]                    ; 8d 92 92 92
    13619     xchg dx, ax                               ; 92
    13620     xchg dx, ax                               ; 92
    13621     db  086h
    13622     xchg dx, ax                               ; 92
    13623 _apm_function:                               ; 0xf91ce LB 0xf5
     14108    pushfw                                    ; 9c
     14109    xchg di, ax                               ; 97
     14110    push 0ae98h                               ; 68 98 ae
     14111    xchg di, ax                               ; 97
     14112    leave                                     ; c9
     14113    xchg di, ax                               ; 97
     14114    push 0f498h                               ; 68 98 f4
     14115    xchg di, ax                               ; 97
     14116    push 0f998h                               ; 68 98 f9
     14117    xchg di, ax                               ; 97
     14118    cmp ax, 03d98h                            ; 3d 98 3d
     14119    cbw                                       ; 98
     14120    cmp ax, 03898h                            ; 3d 98 38
     14121    cbw                                       ; 98
     14122    cmp ax, 03d98h                            ; 3d 98 3d
     14123    cbw                                       ; 98
     14124    db  031h
     14125    cbw                                       ; 98
     14126_apm_function:                               ; 0xf9779 LB 0xf5
    1362414127    push bp                                   ; 55
    1362514128    mov bp, sp                                ; 89 e5
     
    1362914132    xor ah, ah                                ; 30 e4
    1363014133    cmp ax, strict word 0000eh                ; 3d 0e 00
    13631     jnbe near 09292h                          ; 0f 87 b0 00
     14134    jnbe near 0983dh                          ; 0f 87 b0 00
    1363214135    mov bx, ax                                ; 89 c3
    1363314136    add bx, ax                                ; 01 c3
    1363414137    mov dx, word [bp+018h]                    ; 8b 56 18
    1363514138    or dl, 001h                               ; 80 ca 01
    13636     jmp word [cs:bx-06e50h]                   ; 2e ff a7 b0 91
     14139    jmp word [cs:bx-068a5h]                   ; 2e ff a7 5b 97
    1363714140    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1363814141    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1363914142    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    13640     jmp near 092bdh                           ; e9 ba 00
     14143    jmp near 09868h                           ; e9 ba 00
    1364114144    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    13642     mov word [bp+00ch], 09824h                ; c7 46 0c 24 98
     14145    mov word [bp+00ch], 09de4h                ; c7 46 0c e4 9d
    1364314146    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1364414147    mov ax, strict word 0fff0h                ; b8 f0 ff
    1364514148    mov word [bp+006h], ax                    ; 89 46 06
    1364614149    mov word [bp+004h], ax                    ; 89 46 04
    13647     jmp near 092bdh                           ; e9 9f 00
     14150    jmp near 09868h                           ; e9 9f 00
    1364814151    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1364914152    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1365814161    mov si, ax                                ; 89 c6
    1365914162    sal esi, 010h                             ; 66 c1 e6 10
    13660     jmp near 092bdh                           ; e9 74 00
     14163    jmp near 09868h                           ; e9 74 00
    1366114164    sti                                       ; fb
    1366214165    hlt                                       ; f4
    13663     jmp near 092bdh                           ; e9 6f 00
     14166    jmp near 09868h                           ; e9 6f 00
    1366414167    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    13665     je short 09273h                           ; 74 1f
     14168    je short 0981eh                           ; 74 1f
    1366614169    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    13667     je short 0926bh                           ; 74 11
     14170    je short 09816h                           ; 74 11
    1366814171    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    13669     jne short 0927bh                          ; 75 1b
     14172    jne short 09826h                          ; 75 1b
    1367014173    mov dx, 08900h                            ; ba 00 89
    13671     mov ax, 00d12h                            ; b8 12 0d
    13672     call 09195h                               ; e8 2c ff
    13673     jmp short 092bdh                          ; eb 52
     14174    mov ax, 00d10h                            ; b8 10 0d
     14175    call 09740h                               ; e8 2c ff
     14176    jmp short 09868h                          ; eb 52
    1367414177    mov dx, 08900h                            ; ba 00 89
    13675     mov ax, 00d1ah                            ; b8 1a 0d
    13676     jmp short 09266h                          ; eb f3
     14178    mov ax, 00d18h                            ; b8 18 0d
     14179    jmp short 09811h                          ; eb f3
    1367714180    mov dx, 08900h                            ; ba 00 89
    13678     mov ax, 00d22h                            ; b8 22 0d
    13679     jmp short 09266h                          ; eb eb
     14181    mov ax, 00d20h                            ; b8 20 0d
     14182    jmp short 09811h                          ; eb eb
    1368014183    or ah, 00ah                               ; 80 cc 0a
    1368114184    mov word [bp+012h], ax                    ; 89 46 12
    1368214185    mov word [bp+018h], dx                    ; 89 56 18
    13683     jmp short 092bdh                          ; eb 37
     14186    jmp short 09868h                          ; eb 37
    1368414187    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    13685     jmp short 092bdh                          ; eb 30
     14188    jmp short 09868h                          ; eb 30
    1368614189    or ah, 080h                               ; 80 cc 80
    13687     jmp short 0927eh                          ; eb ec
    13688     mov bx, 00da2h                            ; bb a2 0d
     14190    jmp short 09829h                          ; eb ec
     14191    mov bx, 00da0h                            ; bb a0 0d
    1368914192    mov cx, ds                                ; 8c d9
    1369014193    mov ax, strict word 00004h                ; b8 04 00
    13691     call 01931h                               ; e8 94 86
     14194    call 01931h                               ; e8 e9 80
    1369214195    push word [bp+00ch]                       ; ff 76 0c
    1369314196    push word [bp+012h]                       ; ff 76 12
    13694     push 00d2bh                               ; 68 2b 0d
     14197    push 00d29h                               ; 68 29 0d
    1369514198    push strict byte 00004h                   ; 6a 04
    13696     call 01972h                               ; e8 c7 86
     14199    call 01972h                               ; e8 1c 81
    1369714200    add sp, strict byte 00008h                ; 83 c4 08
    1369814201    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1370514208    pop bp                                    ; 5d
    1370614209    retn                                      ; c3
    13707 pci16_select_reg_:                           ; 0xf92c3 LB 0x24
     14210pci16_select_reg_:                           ; 0xf986e LB 0x24
    1370814211    push bp                                   ; 55
    1370914212    mov bp, sp                                ; 89 e5
     
    1372214225    pop bp                                    ; 5d
    1372314226    retn                                      ; c3
    13724 pci16_find_device_:                          ; 0xf92e7 LB 0xf7
     14227pci16_find_device_:                          ; 0xf9892 LB 0xf7
    1372514228    push bp                                   ; 55
    1372614229    mov bp, sp                                ; 89 e5
     
    1373614239    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1373714240    test bl, 007h                             ; f6 c3 07
    13738     jne short 0932fh                          ; 75 2d
     14241    jne short 098dah                          ; 75 2d
    1373914242    mov dx, strict word 0000eh                ; ba 0e 00
    1374014243    mov ax, bx                                ; 89 d8
    13741     call 092c3h                               ; e8 b9 ff
     14244    call 0986eh                               ; e8 b9 ff
    1374214245    mov dx, 00cfeh                            ; ba fe 0c
    1374314246    in AL, DX                                 ; ec
     
    1374614249    mov byte [bp-006h], al                    ; 88 46 fa
    1374714250    cmp AL, strict byte 0ffh                  ; 3c ff
    13748     jne short 0931dh                          ; 75 06
     14251    jne short 098c8h                          ; 75 06
    1374914252    add bx, strict byte 00008h                ; 83 c3 08
    13750     jmp near 093b0h                           ; e9 93 00
     14253    jmp near 0995bh                           ; e9 93 00
    1375114254    test byte [bp-006h], 080h                 ; f6 46 fa 80
    13752     je short 0932ah                           ; 74 07
     14255    je short 098d5h                           ; 74 07
    1375314256    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    13754     jmp short 0932fh                          ; eb 05
     14257    jmp short 098dah                          ; eb 05
    1375514258    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1375614259    mov al, byte [bp-006h]                    ; 8a 46 fa
    1375714260    and AL, strict byte 007h                  ; 24 07
    1375814261    cmp AL, strict byte 001h                  ; 3c 01
    13759     jne short 09357h                          ; 75 1f
     14262    jne short 09902h                          ; 75 1f
    1376014263    mov ax, bx                                ; 89 d8
    1376114264    shr ax, 008h                              ; c1 e8 08
    1376214265    test ax, ax                               ; 85 c0
    13763     jne short 09357h                          ; 75 16
     14266    jne short 09902h                          ; 75 16
    1376414267    mov dx, strict word 0001ah                ; ba 1a 00
    1376514268    mov ax, bx                                ; 89 d8
    13766     call 092c3h                               ; e8 7a ff
     14269    call 0986eh                               ; e8 7a ff
    1376714270    mov dx, 00cfeh                            ; ba fe 0c
    1376814271    in AL, DX                                 ; ec
     
    1377014273    ; sub ah, ah                                ; 2a e4
    1377114274    cmp al, byte [bp-008h]                    ; 3a 46 f8
    13772     jbe short 09357h                          ; 76 03
     14275    jbe short 09902h                          ; 76 03
    1377314276    mov byte [bp-008h], al                    ; 88 46 f8
    1377414277    test di, di                               ; 85 ff
    13775     je short 09360h                           ; 74 05
     14278    je short 0990bh                           ; 74 05
    1377614279    mov dx, strict word 00008h                ; ba 08 00
    13777     jmp short 09362h                          ; eb 02
     14280    jmp short 0990dh                          ; eb 02
    1377814281    xor dx, dx                                ; 31 d2
    1377914282    mov ax, bx                                ; 89 d8
    13780     call 092c3h                               ; e8 5c ff
     14283    call 0986eh                               ; e8 5c ff
    1378114284    mov dx, 00cfch                            ; ba fc 0c
    1378214285    in eax, DX                                ; 66 ed
     
    1378914292    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1379014293    test di, di                               ; 85 ff
    13791     je short 09391h                           ; 74 0f
     14294    je short 0993ch                           ; 74 0f
    1379214295    mov cx, strict word 00008h                ; b9 08 00
    1379314296    shr dx, 1                                 ; d1 ea
    1379414297    rcr ax, 1                                 ; d1 d8
    13795     loop 09385h                               ; e2 fa
     14298    loop 09930h                               ; e2 fa
    1379614299    mov word [bp-00eh], ax                    ; 89 46 f2
    1379714300    mov word [bp-00ch], dx                    ; 89 56 f4
    1379814301    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1379914302    cmp ax, word [bp-014h]                    ; 3b 46 ec
    13800     jne short 093a1h                          ; 75 08
     14303    jne short 0994ch                          ; 75 08
    1380114304    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1380214305    cmp ax, word [bp-012h]                    ; 3b 46 ee
    13803     je short 093a7h                           ; 74 06
     14306    je short 09952h                           ; 74 06
    1380414307    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    13805     je short 093adh                           ; 74 06
     14308    je short 09958h                           ; 74 06
    1380614309    dec si                                    ; 4e
    1380714310    cmp si, strict byte 0ffffh                ; 83 fe ff
    13808     je short 093bfh                           ; 74 12
     14311    je short 0996ah                           ; 74 12
    1380914312    add bx, word [bp-00ah]                    ; 03 5e f6
    1381014313    mov dx, bx                                ; 89 da
     
    1381214315    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1381314316    cmp dx, ax                                ; 39 c2
    13814     jbe near 092fdh                           ; 0f 86 3e ff
     14317    jbe near 098a8h                           ; 0f 86 3e ff
    1381514318    cmp si, strict byte 0ffffh                ; 83 fe ff
    13816     jne short 093c8h                          ; 75 04
     14319    jne short 09973h                          ; 75 04
    1381714320    mov ax, bx                                ; 89 d8
    13818     jmp short 093cbh                          ; eb 03
     14321    jmp short 09976h                          ; eb 03
    1381914322    mov ax, strict word 0ffffh                ; b8 ff ff
    1382014323    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1382314326    pop bp                                    ; 5d
    1382414327    retn                                      ; c3
    13825     rcl byte [si-06b26h], 0edh                ; c0 94 da 94 ed
    13826     xchg sp, ax                               ; 94
    13827     add dl, byte [di-06aebh]                  ; 02 95 15 95
    13828     db  028h
    13829     xchg bp, ax                               ; 95
    13830 _pci16_function:                             ; 0xf93de LB 0x1d7
     14328    imul bx, word [bp+si-0657bh], strict byte 0ff98h ; 6b 9a 85 9a 98
     14329    call far 09ac0h:09aadh                    ; 9a ad 9a c0 9a
     14330    db  0d3h
     14331    db  09ah
     14332_pci16_function:                             ; 0xf9989 LB 0x1d7
    1383114333    push bp                                   ; 55
    1383214334    mov bp, sp                                ; 89 e5
     
    1384214344    xor ah, ah                                ; 30 e4
    1384314345    cmp bx, strict byte 00003h                ; 83 fb 03
    13844     jc short 09417h                           ; 72 1a
    13845     jbe short 0946fh                          ; 76 70
     14346    jc short 099c2h                           ; 72 1a
     14347    jbe short 09a1ah                          ; 76 70
    1384614348    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13847     je near 0953ch                            ; 0f 84 36 01
     14349    je near 09ae7h                            ; 0f 84 36 01
    1384814350    cmp bx, strict byte 00008h                ; 83 fb 08
    13849     jc near 09581h                            ; 0f 82 74 01
     14351    jc near 09b2ch                            ; 0f 82 74 01
    1385014352    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13851     jbe near 09494h                           ; 0f 86 80 00
    13852     jmp near 09581h                           ; e9 6a 01
     14353    jbe near 09a3fh                           ; 0f 86 80 00
     14354    jmp near 09b2ch                           ; e9 6a 01
    1385314355    cmp bx, strict byte 00002h                ; 83 fb 02
    13854     je short 0943fh                           ; 74 23
     14356    je short 099eah                           ; 74 23
    1385514357    cmp bx, strict byte 00001h                ; 83 fb 01
    13856     jne near 09581h                           ; 0f 85 5e 01
     14358    jne near 09b2ch                           ; 0f 85 5e 01
    1385714359    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1385814360    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1386014362    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1386114363    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    13862     jmp near 095aeh                           ; e9 6f 01
     14364    jmp near 09b59h                           ; e9 6f 01
    1386314365    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    13864     jne short 0944bh                          ; 75 06
     14366    jne short 099f6h                          ; 75 06
    1386514367    or ah, 083h                               ; 80 cc 83
    13866     jmp near 095a7h                           ; e9 5c 01
     14368    jmp near 09b52h                           ; e9 5c 01
    1386714369    mov bx, word [bp+008h]                    ; 8b 5e 08
    1386814370    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1386914371    mov ax, word [bp+018h]                    ; 8b 46 18
    1387014372    xor cx, cx                                ; 31 c9
    13871     call 092e7h                               ; e8 8e fe
     14373    call 09892h                               ; e8 8e fe
    1387214374    cmp ax, strict word 0ffffh                ; 3d ff ff
    13873     jne short 09469h                          ; 75 0b
     14375    jne short 09a14h                          ; 75 0b
    1387414376    mov ax, word [bp+020h]                    ; 8b 46 20
    1387514377    xor ah, ah                                ; 30 e4
    1387614378    or ah, 086h                               ; 80 cc 86
    13877     jmp near 095a7h                           ; e9 3e 01
     14379    jmp near 09b52h                           ; e9 3e 01
    1387814380    mov word [bp+014h], ax                    ; 89 46 14
    13879     jmp near 095aeh                           ; e9 3f 01
     14381    jmp near 09b59h                           ; e9 3f 01
    1388014382    mov bx, word [bp+008h]                    ; 8b 5e 08
    1388114383    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1388214384    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1388314385    mov cx, strict word 00001h                ; b9 01 00
    13884     call 092e7h                               ; e8 69 fe
     14386    call 09892h                               ; e8 69 fe
    1388514387    cmp ax, strict word 0ffffh                ; 3d ff ff
    13886     jne short 0948eh                          ; 75 0b
     14388    jne short 09a39h                          ; 75 0b
    1388714389    mov ax, word [bp+020h]                    ; 8b 46 20
    1388814390    xor ah, ah                                ; 30 e4
    1388914391    or ah, 086h                               ; 80 cc 86
    13890     jmp near 095a7h                           ; e9 19 01
     14392    jmp near 09b52h                           ; e9 19 01
    1389114393    mov word [bp+014h], ax                    ; 89 46 14
    13892     jmp near 095aeh                           ; e9 1a 01
     14394    jmp near 09b59h                           ; e9 1a 01
    1389314395    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    13894     jc short 094a1h                           ; 72 06
     14396    jc short 09a4ch                           ; 72 06
    1389514397    or ah, 087h                               ; 80 cc 87
    13896     jmp near 095a7h                           ; e9 06 01
     14398    jmp near 09b52h                           ; e9 06 01
    1389714399    mov dx, word [bp+004h]                    ; 8b 56 04
    1389814400    mov ax, word [bp+014h]                    ; 8b 46 14
    13899     call 092c3h                               ; e8 19 fe
     14401    call 0986eh                               ; e8 19 fe
    1390014402    mov bx, word [bp+020h]                    ; 8b 5e 20
    1390114403    xor bh, bh                                ; 30 ff
    1390214404    sub bx, strict byte 00008h                ; 83 eb 08
    1390314405    cmp bx, strict byte 00005h                ; 83 fb 05
    13904     jnbe near 095aeh                          ; 0f 87 f5 00
     14406    jnbe near 09b59h                          ; 0f 87 f5 00
    1390514407    add bx, bx                                ; 01 db
    13906     jmp word [cs:bx-06c2eh]                   ; 2e ff a7 d2 93
     14408    jmp word [cs:bx-06683h]                   ; 2e ff a7 7d 99
    1390714409    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1390814410    xor bl, bl                                ; 30 db
     
    1391514417    or bx, ax                                 ; 09 c3
    1391614418    mov word [bp+01ch], bx                    ; 89 5e 1c
    13917     jmp near 095aeh                           ; e9 d4 00
     14419    jmp near 09b59h                           ; e9 d4 00
    1391814420    mov dx, word [bp+004h]                    ; 8b 56 04
    1391914421    xor dh, dh                                ; 30 f6
     
    1392214424    in ax, DX                                 ; ed
    1392314425    mov word [bp+01ch], ax                    ; 89 46 1c
    13924     jmp near 095aeh                           ; e9 c1 00
     14426    jmp near 09b59h                           ; e9 c1 00
    1392514427    mov dx, 00cfch                            ; ba fc 0c
    1392614428    in eax, DX                                ; 66 ed
     
    1393114433    mov word [bp+01ch], ax                    ; 89 46 1c
    1393214434    mov word [bp+01eh], dx                    ; 89 56 1e
    13933     jmp near 095aeh                           ; e9 ac 00
     14435    jmp near 09b59h                           ; e9 ac 00
    1393414436    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1393514437    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1393814440    add dx, 00cfch                            ; 81 c2 fc 0c
    1393914441    out DX, AL                                ; ee
    13940     jmp near 095aeh                           ; e9 99 00
     14442    jmp near 09b59h                           ; e9 99 00
    1394114443    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1394214444    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1394514447    add dx, 00cfch                            ; 81 c2 fc 0c
    1394614448    out DX, ax                                ; ef
    13947     jmp near 095aeh                           ; e9 86 00
     14449    jmp near 09b59h                           ; e9 86 00
    1394814450    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1394914451    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1395414456    ; mov ax, cx                                ; 8b c1
    1395514457    out DX, eax                               ; 66 ef
    13956     jmp short 095aeh                          ; eb 72
     14458    jmp short 09b59h                          ; eb 72
    1395714459    mov bx, word [bp+004h]                    ; 8b 5e 04
    1395814460    mov es, [bp+026h]                         ; 8e 46 26
     
    1396114463    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1396214464    cmp cx, word [es:bx]                      ; 26 3b 0f
    13963     jbe short 09562h                          ; 76 11
     14465    jbe short 09b0dh                          ; 76 11
    1396414466    mov ax, word [bp+020h]                    ; 8b 46 20
    1396514467    xor ah, ah                                ; 30 e4
     
    1396714469    mov word [bp+020h], ax                    ; 89 46 20
    1396814470    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    13969     jmp short 09576h                          ; eb 14
     14471    jmp short 09b21h                          ; eb 14
    1397014472    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1397114473    mov si, 0f2c0h                            ; be c0 f2
     
    1397914481    les bx, [bp-008h]                         ; c4 5e f8
    1398014482    mov word [es:bx], ax                      ; 26 89 07
    13981     jmp short 095aeh                          ; eb 2d
    13982     mov bx, 00da2h                            ; bb a2 0d
     14483    jmp short 09b59h                          ; eb 2d
     14484    mov bx, 00da0h                            ; bb a0 0d
    1398314485    mov cx, ds                                ; 8c d9
    1398414486    mov ax, strict word 00004h                ; b8 04 00
    13985     call 01931h                               ; e8 a5 83
     14487    call 01931h                               ; e8 fa 7d
    1398614488    mov ax, word [bp+014h]                    ; 8b 46 14
    1398714489    push ax                                   ; 50
    1398814490    mov ax, word [bp+020h]                    ; 8b 46 20
    1398914491    push ax                                   ; 50
    13990     push 00d5eh                               ; 68 5e 0d
     14492    push 00d5ch                               ; 68 5c 0d
    1399114493    push strict byte 00004h                   ; 6a 04
    13992     call 01972h                               ; e8 d6 83
     14494    call 01972h                               ; e8 2b 7e
    1399314495    add sp, strict byte 00008h                ; 83 c4 08
    1399414496    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1400214504    pop bp                                    ; 5d
    1400314505    retn                                      ; c3
    14004 pci_find_classcode_:                         ; 0xf95b5 LB 0x2b
     14506pci_find_classcode_:                         ; 0xf9b60 LB 0x2b
    1400514507    push bp                                   ; 55
    1400614508    mov bp, sp                                ; 89 e5
     
    1401714519    int 01ah                                  ; cd 1a
    1401814520    cmp ah, 000h                              ; 80 fc 00
    14019     je near 095d6h                            ; 0f 84 03 00
     14521    je near 09b81h                            ; 0f 84 03 00
    1402014522    mov bx, strict word 0ffffh                ; bb ff ff
    1402114523    mov ax, bx                                ; 89 d8
     
    1402614528    pop bp                                    ; 5d
    1402714529    retn                                      ; c3
    14028 pci_read_config_byte_:                       ; 0xf95e0 LB 0x24
     14530pci_read_config_byte_:                       ; 0xf9b8b LB 0x24
    1402914531    push bp                                   ; 55
    1403014532    mov bp, sp                                ; 89 e5
     
    1404514547    pop bp                                    ; 5d
    1404614548    retn                                      ; c3
    14047 pci_read_config_word_:                       ; 0xf9604 LB 0x22
     14549pci_read_config_word_:                       ; 0xf9baf LB 0x22
    1404814550    push bp                                   ; 55
    1404914551    mov bp, sp                                ; 89 e5
     
    1406414566    pop bp                                    ; 5d
    1406514567    retn                                      ; c3
    14066 pci_read_config_dword_:                      ; 0xf9626 LB 0x27
     14568pci_read_config_dword_:                      ; 0xf9bd1 LB 0x27
    1406714569    push bp                                   ; 55
    1406814570    mov bp, sp                                ; 89 e5
     
    1408514587    pop bp                                    ; 5d
    1408614588    retn                                      ; c3
    14087 vds_is_present_:                             ; 0xf964d LB 0x1d
     14589vds_is_present_:                             ; 0xf9bf8 LB 0x1d
    1408814590    push bx                                   ; 53
    1408914591    push bp                                   ; 55
     
    1409314595    mov es, ax                                ; 8e c0
    1409414596    test byte [es:bx], 020h                   ; 26 f6 07 20
    14095     je short 09665h                           ; 74 06
     14597    je short 09c10h                           ; 74 06
    1409614598    mov ax, strict word 00001h                ; b8 01 00
    1409714599    pop bp                                    ; 5d
     
    1410214604    pop bx                                    ; 5b
    1410314605    retn                                      ; c3
    14104 vds_real_to_lin_:                            ; 0xf966a LB 0x1e
     14606vds_real_to_lin_:                            ; 0xf9c15 LB 0x1e
    1410514607    push bx                                   ; 53
    1410614608    push cx                                   ; 51
     
    1411314615    sal ax, 1                                 ; d1 e0
    1411414616    rcl dx, 1                                 ; d1 d2
    14115     loop 09678h                               ; e2 fa
     14617    loop 09c23h                               ; e2 fa
    1411614618    xor cx, cx                                ; 31 c9
    1411714619    add ax, bx                                ; 01 d8
     
    1412114623    pop bx                                    ; 5b
    1412214624    retn                                      ; c3
    14123 vds_build_sg_list_:                          ; 0xf9688 LB 0x79
     14625vds_build_sg_list_:                          ; 0xf9c33 LB 0x79
    1412414626    push bp                                   ; 55
    1412514627    mov bp, sp                                ; 89 e5
     
    1413514637    mov bx, word [bp+006h]                    ; 8b 5e 06
    1413614638    mov word [es:di+002h], bx                 ; 26 89 5d 02
    14137     call 0966ah                               ; e8 c3 ff
     14639    call 09c15h                               ; e8 c3 ff
    1413814640    mov es, si                                ; 8e c6
    1413914641    mov word [es:di+004h], ax                 ; 26 89 45 04
    1414014642    mov word [es:di+006h], dx                 ; 26 89 55 06
    1414114643    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    14142     call 0964dh                               ; e8 93 ff
     14644    call 09bf8h                               ; e8 93 ff
    1414314645    test ax, ax                               ; 85 c0
    14144     je short 096d1h                           ; 74 13
     14646    je short 09c7ch                           ; 74 13
    1414514647    mov es, si                                ; 8e c6
    1414614648    mov ax, 08105h                            ; b8 05 81
    1414714649    mov dx, strict word 00000h                ; ba 00 00
    1414814650    int 04bh                                  ; cd 4b
    14149     jc near 096ceh                            ; 0f 82 02 00
     14651    jc near 09c79h                            ; 0f 82 02 00
    1415014652    db  032h, 0c0h
    1415114653    ; xor al, al                                ; 32 c0
    1415214654    cbw                                       ; 98
    14153     jmp short 096f8h                          ; eb 27
     14655    jmp short 09ca3h                          ; eb 27
    1415414656    mov es, si                                ; 8e c6
    1415514657    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1416814670    pop bp                                    ; 5d
    1416914671    retn 00004h                               ; c2 04 00
    14170 vds_free_sg_list_:                           ; 0xf9701 LB 0x3f
     14672vds_free_sg_list_:                           ; 0xf9cac LB 0x34
    1417114673    push bp                                   ; 55
    1417214674    mov bp, sp                                ; 89 e5
     
    1417414676    push di                                   ; 57
    1417514677    mov bx, ax                                ; 89 c3
    14176     call 0964dh                               ; e8 42 ff
     14678    call 09bf8h                               ; e8 42 ff
    1417714679    test ax, ax                               ; 85 c0
    14178     je short 09722h                           ; 74 13
     14680    je short 09ccdh                           ; 74 13
    1417914681    mov di, bx                                ; 89 df
    1418014682    mov es, dx                                ; 8e c2
     
    1418214684    mov dx, strict word 00000h                ; ba 00 00
    1418314685    int 04bh                                  ; cd 4b
    14184     jc near 09721h                            ; 0f 82 02 00
     14686    jc near 09ccch                            ; 0f 82 02 00
    1418514687    db  032h, 0c0h
    1418614688    ; xor al, al                                ; 32 c0
     
    1419314695    pop bp                                    ; 5d
    1419414696    retn                                      ; c3
    14195     times 0xf db 0
    14196 __U4D:                                       ; 0xf9740 LB 0x39
     14697    times 0x4 db 0
     14698__U4D:                                       ; 0xf9ce0 LB 0x39
    1419714699    pushfw                                    ; 9c
    1419814700    push eax                                  ; 66 50
     
    1422414726    popfw                                     ; 9d
    1422514727    retn                                      ; c3
    14226 __U4M:                                       ; 0xf9779 LB 0x31
     14728__U4M:                                       ; 0xf9d19 LB 0x31
    1422714729    pushfw                                    ; 9c
    1422814730    push eax                                  ; 66 50
     
    1424914751    popfw                                     ; 9d
    1425014752    retn                                      ; c3
    14251 _fmemset_:                                   ; 0xf97aa LB 0xd
     14753__U8LS:                                      ; 0xf9d4a LB 0x10
     14754    test si, si                               ; 85 f6
     14755    je short 09d59h                           ; 74 0b
     14756    sal dx, 1                                 ; d1 e2
     14757    rcl cx, 1                                 ; d1 d1
     14758    rcl bx, 1                                 ; d1 d3
     14759    rcl ax, 1                                 ; d1 d0
     14760    dec si                                    ; 4e
     14761    jne short 09d4eh                          ; 75 f5
     14762    retn                                      ; c3
     14763__U8RS:                                      ; 0xf9d5a LB 0x10
     14764    test si, si                               ; 85 f6
     14765    je short 09d69h                           ; 74 0b
     14766    shr ax, 1                                 ; d1 e8
     14767    rcr bx, 1                                 ; d1 db
     14768    rcr cx, 1                                 ; d1 d9
     14769    rcr dx, 1                                 ; d1 da
     14770    dec si                                    ; 4e
     14771    jne short 09d5eh                          ; 75 f5
     14772    retn                                      ; c3
     14773_fmemset_:                                   ; 0xf9d6a LB 0xd
    1425214774    push di                                   ; 57
    1425314775    mov es, dx                                ; 8e c2
     
    1425914781    pop di                                    ; 5f
    1426014782    retn                                      ; c3
    14261 _fmemcpy_:                                   ; 0xf97b7 LB 0x33
     14783_fmemcpy_:                                   ; 0xf9d77 LB 0x33
    1426214784    push bp                                   ; 55
    1426314785    db  08bh, 0ech
     
    1427914801    leave                                     ; c9
    1428014802    retn                                      ; c3
    14281     add byte [bx+si], al                      ; 00 00
    14282     cbw                                       ; 98
    14283     add bl, byte [bx+si-067fah]               ; 02 98 06 98
    14284     push ES                                   ; 06
    14285     cbw                                       ; 98
    14286     push ES                                   ; 06
    14287     cbw                                       ; 98
    14288     or byte [bx+si-067f8h], bl                ; 08 98 08 98
    14289     or bl, byte [bx+si-067f2h]                ; 0a 98 0e 98
    14290     push CS                                   ; 0e
    14291     cbw                                       ; 98
    14292     adc byte [bx+si-067ebh], bl               ; 10 98 15 98
    14293     pop SS                                    ; 17
    14294     cbw                                       ; 98
    14295 apm_worker:                                  ; 0xf97ea LB 0x3a
     14803    add al, al                                ; 00 c0
     14804    popfw                                     ; 9d
     14805    retn 0c69dh                               ; c2 9d c6
     14806    popfw                                     ; 9d
     14807    db  0c6h, 09dh, 0c6h, 09dh, 0c8h
     14808    ; mov byte [di-0623ah], 0c8h                ; c6 9d c6 9d c8
     14809    popfw                                     ; 9d
     14810    enter 0ca9dh, 09dh                        ; c8 9d ca 9d
     14811    into                                      ; ce
     14812    popfw                                     ; 9d
     14813    into                                      ; ce
     14814    popfw                                     ; 9d
     14815    rcr byte [di-0622bh], 1                   ; d0 9d d5 9d
     14816    xlatb                                     ; d7
     14817    popfw                                     ; 9d
     14818apm_worker:                                  ; 0xf9daa LB 0x3a
    1429614819    sti                                       ; fb
    1429714820    push ax                                   ; 50
     
    1430514828    pop ax                                    ; 58
    1430614829    mov AH, strict byte 053h                  ; b4 53
    14307     jnc short 09820h                          ; 73 25
    14308     jmp word [cs:bp-06830h]                   ; 2e ff a6 d0 97
    14309     jmp short 0981eh                          ; eb 1c
     14830    jnc short 09de0h                          ; 73 25
     14831    jmp word [cs:bp-06270h]                   ; 2e ff a6 90 9d
     14832    jmp short 09ddeh                          ; eb 1c
    1431014833    sti                                       ; fb
    1431114834    hlt                                       ; f4
    14312     jmp short 0981eh                          ; eb 18
    14313     jmp short 0981eh                          ; eb 16
    14314     jmp short 09820h                          ; eb 16
     14835    jmp short 09ddeh                          ; eb 18
     14836    jmp short 09ddeh                          ; eb 16
     14837    jmp short 09de0h                          ; eb 16
    1431514838    mov AH, strict byte 080h                  ; b4 80
    14316     jmp short 09822h                          ; eb 14
    14317     jmp short 09820h                          ; eb 10
     14839    jmp short 09de2h                          ; eb 14
     14840    jmp short 09de0h                          ; eb 10
    1431814841    mov ax, 00102h                            ; b8 02 01
    14319     jmp short 0981eh                          ; eb 09
    14320     jmp short 0981eh                          ; eb 07
     14842    jmp short 09ddeh                          ; eb 09
     14843    jmp short 09ddeh                          ; eb 07
    1432114844    mov BL, strict byte 000h                  ; b3 00
    1432214845    mov cx, strict word 00000h                ; b9 00 00
    14323     jmp short 0981eh                          ; eb 00
     14846    jmp short 09ddeh                          ; eb 00
    1432414847    clc                                       ; f8
    1432514848    retn                                      ; c3
     
    1432714850    stc                                       ; f9
    1432814851    retn                                      ; c3
    14329 apm_pm16_entry:                              ; 0xf9824 LB 0x11
     14852apm_pm16_entry:                              ; 0xf9de4 LB 0x11
    1433014853    mov AH, strict byte 002h                  ; b4 02
    1433114854    push DS                                   ; 1e
     
    1433514858    add bp, strict byte 00008h                ; 83 c5 08
    1433614859    mov ds, bp                                ; 8e dd
    14337     call 097eah                               ; e8 b8 ff
     14860    call 09daah                               ; e8 b8 ff
    1433814861    pop bp                                    ; 5d
    1433914862    pop DS                                    ; 1f
    1434014863    retf                                      ; cb
    1434114864
    14342   ; Padding 0x41cb bytes at 0xf9835
    14343   times 16843 db 0
     14865  ; Padding 0x3c0b bytes at 0xf9df5
     14866  times 15371 db 0
    1434414867
    1434514868section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1438814911    add bp, strict byte 00008h                ; 83 c5 08
    1438914912    push ebp                                  ; 66 55
    14390     mov bp, 09826h                            ; bd 26 98
     14913    mov bp, 09de6h                            ; bd e6 9d
    1439114914    add byte [bx+si], al                      ; 00 00
    1439214915    push ebp                                  ; 66 55
     
    1499415517    mov dx, 0c800h                            ; ba 00 c8
    1499515518    call 01600h                               ; e8 e7 33
    14996     call 04b77h                               ; e8 5b 69
     15519    call 04e4ch                               ; e8 30 6c
    1499715520    pop DS                                    ; 1f
    1499815521    mov ax, 0ff53h                            ; b8 53 ff
     
    1510815631    pop DS                                    ; 1f
    1510915632    cld                                       ; fc
    15110     call 01badh                               ; e8 71 38
    15111     call 01fa7h                               ; e8 68 3c
    15112     call 09097h                               ; e8 55 ad
    15113     call 080d3h                               ; e8 8e 9d
     15633    call 01cafh                               ; e8 73 39
     15634    call 0213ch                               ; e8 fd 3d
     15635    call 09642h                               ; e8 00 b3
     15636    call 08526h                               ; e8 e1 a1
    1511415637    call 0ed2fh                               ; e8 e7 09
    1511515638    call 0e2d2h                               ; e8 87 ff
     
    1512115644    call 01600h                               ; e8 a9 32
    1512215645    call 01797h                               ; e8 3d 34
    15123     call 0385bh                               ; e8 fe 54
     15646    call 03b30h                               ; e8 d3 57
    1512415647    sti                                       ; fb
    1512515648    int 019h                                  ; cd 19
     
    1521915742    pop DS                                    ; 1f
    1522015743    cld                                       ; fc
    15221     call 05f61h                               ; e8 1f 78
     15744    call 062aeh                               ; e8 6c 7b
    1522215745    popaw                                     ; 61
    1522315746    pop ES                                    ; 07
     
    1529415817    pop DS                                    ; 1f
    1529515818    cld                                       ; fc
    15296     call 052cfh                               ; e8 8d 6a
     15819    call 055a4h                               ; e8 62 6d
    1529715820    popaw                                     ; 61
    1529815821    pop DS                                    ; 1f
     
    1531115834    pop DS                                    ; 1f
    1531215835    cld                                       ; fc
    15313     call 052cfh                               ; e8 6f 6a
     15836    call 055a4h                               ; e8 44 6d
    1531415837    popaw                                     ; 61
    1531515838    pop DS                                    ; 1f
     
    1541315936    pop DS                                    ; 1f
    1541415937    cld                                       ; fc
    15415     call 04e74h                               ; e8 a5 64
     15938    call 05149h                               ; e8 7a 67
    1541615939    pop ES                                    ; 07
    1541715940    popaw                                     ; 61
     
    1542915952    pop DS                                    ; 1f
    1543015953    cld                                       ; fc
    15431     call 069b9h                               ; e8 d4 7f
     15954    call 06d06h                               ; e8 21 83
    1543215955    pop DS                                    ; 1f
    1543315956    pop ES                                    ; 07
     
    1545015973    cld                                       ; fc
    1545115974    push 0ece9h                               ; 68 e9 ec
    15452     jmp near 0389fh                           ; e9 2e 4c
     15975    jmp near 03b74h                           ; e9 03 4f
    1545315976    push ES                                   ; 06
    1545415977    push ax                                   ; 50
     
    1545615979    push cx                                   ; 51
    1545715980    push dx                                   ; 52
    15458     call 03873h                               ; e8 fa 4b
     15981    call 03b48h                               ; e8 cf 4e
    1545915982    cmp AL, strict byte 000h                  ; 3c 00
    1546015983    je short 0ecabh                           ; 74 2e
    15461     call 03889h                               ; e8 09 4c
     15984    call 03b5eh                               ; e8 de 4e
    1546215985    pop dx                                    ; 5a
    1546315986    push dx                                   ; 52
     
    1547716000    cld                                       ; fc
    1547816001    push 0ece9h                               ; 68 e9 ec
    15479     jmp near 03e73h                           ; e9 dc 51
     16002    jmp near 04148h                           ; e9 b1 54
    1548016003    and dl, 0e0h                              ; 80 e2 e0
    1548116004    db  03ah, 0c2h
     
    1551716040    jne short 0ecc8h                          ; 75 06
    1551816041    push 0ece9h                               ; 68 e9 ec
    15519     jmp near 02f2eh                           ; e9 66 42
     16042    jmp near 03203h                           ; e9 3b 45
    1552016043int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1552116044    cmp dl, 0e0h                              ; 80 fa e0
     
    1552316046    shr ebx, 010h                             ; 66 c1 eb 10
    1552416047    push bx                                   ; 53
    15525     call 042a7h                               ; e8 d2 55
     16048    call 0457ch                               ; e8 a7 58
    1552616049    pop bx                                    ; 5b
    1552716050    sal ebx, 010h                             ; 66 c1 e3 10
     
    1553016053    cmp ah, 040h                              ; 80 fc 40
    1553116054    jnbe short 0ece6h                         ; 77 05
    15532     call 05654h                               ; e8 70 69
     16055    call 05970h                               ; e8 8c 6c
    1553316056    jmp short 0ece9h                          ; eb 03
    15534     call 05a95h                               ; e8 ac 6d
     16057    call 05dbah                               ; e8 d1 70
    1553516058int13_out:                                   ; 0xfece9 LB 0x4
    1553616059    pop DS                                    ; 1f
     
    1574516268    pop DS                                    ; 1f
    1574616269    cld                                       ; fc
    15747     call 07313h                               ; e8 36 83
     16270    call 07660h                               ; e8 83 86
    1574816271    popaw                                     ; 61
    1574916272    pop ES                                    ; 07
     
    1579316316    mov ax, strict word 00001h                ; b8 01 00
    1579416317    push ax                                   ; 50
    15795     call 0490eh                               ; e8 3e 58
     16318    call 04be3h                               ; e8 13 5b
    1579616319    inc sp                                    ; 44
    1579716320    inc sp                                    ; 44
     
    1580016323    mov ax, strict word 00002h                ; b8 02 00
    1580116324    push ax                                   ; 50
    15802     call 0490eh                               ; e8 31 58
     16325    call 04be3h                               ; e8 06 5b
    1580316326    inc sp                                    ; 44
    1580416327    inc sp                                    ; 44
     
    1580716330    mov ax, strict word 00003h                ; b8 03 00
    1580816331    push strict byte 00003h                   ; 6a 03
    15809     call 0490eh                               ; e8 23 58
     16332    call 04be3h                               ; e8 f8 5a
    1581016333    inc sp                                    ; 44
    1581116334    inc sp                                    ; 44
     
    1581416337    mov ax, strict word 00004h                ; b8 04 00
    1581516338    push ax                                   ; 50
    15816     call 0490eh                               ; e8 16 58
     16339    call 04be3h                               ; e8 eb 5a
    1581716340    inc sp                                    ; 44
    1581816341    inc sp                                    ; 44
     
    1610516628    cmp ah, 0c2h                              ; 80 fc c2
    1610616629    je short 0f887h                           ; 74 0e
    16107     call 0616eh                               ; e8 f2 68
     16630    call 064bbh                               ; e8 3f 6c
    1610816631    popaw                                     ; 61
    1610916632    pop ES                                    ; 07
     
    1611116634    popfw                                     ; 9d
    1611216635    jmp short 0f895h                          ; eb 13
    16113     call 091ceh                               ; e8 49 99
     16636    call 09779h                               ; e8 f4 9e
    1611416637    jmp short 0f87ch                          ; eb f5
    1611516638int15_handler_mouse:                         ; 0xff887 LB 0x5
    16116     call 06f88h                               ; e8 fe 76
     16639    call 072d5h                               ; e8 4b 7a
    1611716640    jmp short 0f87ch                          ; eb f0
    1611816641int15_handler32:                             ; 0xff88c LB 0x9
    1611916642    pushad                                    ; 66 60
    16120     call 0663bh                               ; e8 aa 6d
     16643    call 06988h                               ; e8 f7 70
    1612116644    popad                                     ; 66 61
    1612216645    jmp short 0f87dh                          ; eb e8
     
    1614816671    pop DS                                    ; 1f
    1614916672    cld                                       ; fc
    16150     call 06ebeh                               ; e8 01 76
     16673    call 0720bh                               ; e8 4e 79
    1615116674    pop cx                                    ; 59
    1615216675    jcxz 0f8cch                               ; e3 0c
     
    1624016763    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1624116764    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    16242     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 061h, 095h, 066h
    16243     db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0cah, 06dh, 061h, 01fh, 007h
     16765    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 00ch, 09bh, 066h
     16766    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 017h, 071h, 061h, 01fh, 007h
    1624416767    db  0cfh
    1624516768int70_handler:                               ; 0xffe8f LB 0x16
     
    1625016773    pop DS                                    ; 1f
    1625116774    cld                                       ; fc
    16252     call 06b97h                               ; e8 ff 6c
     16775    call 06ee4h                               ; e8 4c 70
    1625316776    popaw                                     ; 61
    1625416777    pop DS                                    ; 1f
     
    1634916872cpu_reset:                                   ; 0xffff0 LB 0x10
    1635016873    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    16351     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 087h
     16874    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0e4h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r57333 r58831  
    1 6d3230e23c6948548bc0468e6f090fbd *VBoxPcBios.rom
     1ab1e993b060084077a7d481b70e44ab8 *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