VirtualBox

Ignore:
Timestamp:
Aug 20, 2013 4:17:35 PM (11 years ago)
Author:
vboxsync
Message:

4.3 Beta 1

File:
1 edited

Legend:

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

    r45670 r47937  
    794794section _DATA progbits vstart=0x0 align=1 ; size=0x40 class=DATA group=DGROUP
    795795_pktacc:                                     ; 0xf0000 LB 0xc
    796     db  000h, 000h, 000h, 000h, 000h, 000h, 0e4h, 027h, 0f9h, 075h, 019h, 083h
     796    db  000h, 000h, 000h, 000h, 000h, 000h, 02ah, 028h, 044h, 077h, 09ah, 084h
    797797_softrst:                                    ; 0xf000c LB 0xc
    798     db  000h, 000h, 000h, 000h, 000h, 000h, 0c7h, 02ah, 000h, 000h, 000h, 000h
     798    db  000h, 000h, 000h, 000h, 000h, 000h, 012h, 02bh, 02eh, 036h, 02eh, 036h
    799799_dskacc:                                     ; 0xf0018 LB 0x28
    800     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 033h, 027h, 0aah, 027h, 000h, 000h, 000h, 000h
    801     db  097h, 074h, 048h, 075h, 01bh, 082h, 0ach, 082h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h
     800    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 073h, 027h, 0edh, 027h, 000h, 000h, 000h, 000h
     801    db  0d8h, 075h, 08eh, 076h, 096h, 083h, 02ah, 084h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h
    802802    db  000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    803803
     
    918918    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    919919
    920 section CONST2 progbits vstart=0xd20 align=1 ; size=0x3fa class=DATA group=DGROUP
    921 _bios_cvs_version_string:                    ; 0xf0d20 LB 0x12
    922     db  'VirtualBox 4.2.51', 000h
    923 _bios_prefix_string:                         ; 0xf0d32 LB 0x8
     920section CONST2 progbits vstart=0xd20 align=1 ; size=0x400 class=DATA group=DGROUP
     921_bios_cvs_version_string:                    ; 0xf0d20 LB 0x18
     922    db  'VirtualBox 4.3.0_BETA1', 000h, 000h
     923_bios_prefix_string:                         ; 0xf0d38 LB 0x8
    924924    db  'BIOS: ', 000h, 000h
    925 _isotag:                                     ; 0xf0d3a LB 0x6
     925_isotag:                                     ; 0xf0d40 LB 0x6
    926926    db  'CD001', 000h
    927 _eltorito:                                   ; 0xf0d40 LB 0x18
     927_eltorito:                                   ; 0xf0d46 LB 0x18
    928928    db  'EL TORITO SPECIFICATION', 000h
    929 _drivetypes:                                 ; 0xf0d58 LB 0x28
     929_drivetypes:                                 ; 0xf0d5e LB 0x28
    930930    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    931931    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    932932    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    933 _scan_to_scanascii:                          ; 0xf0d80 LB 0x37a
     933_scan_to_scanascii:                          ; 0xf0d86 LB 0x37a
    934934    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    935935    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    988988    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    989989    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    990 _panic_msg_keyb_buffer_full:                 ; 0xf10fa LB 0x20
     990_panic_msg_keyb_buffer_full:                 ; 0xf1100 LB 0x20
    991991    db  '%s: keyboard input buffer full', 00ah, 000h
    992992
    993   ; Padding 0x4e6 bytes at 0xf111a
    994   times 1254 db 0
     993  ; Padding 0x4e0 bytes at 0xf1120
     994  times 1248 db 0
    995995
    996 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7b05 class=CODE group=AUTO
     996section _TEXT progbits vstart=0x1600 align=1 ; size=0x7cd5 class=CODE group=AUTO
    997997read_byte_:                                  ; 0xf1600 LB 0xe
    998998    push bx                                   ; 53
     
    10571057    pop si                                    ; 5e
    10581058    retn                                      ; c3
    1059 inb_cmos_:                                   ; 0xf165c LB 0x11
    1060     push dx                                   ; 52
     1059inb_cmos_:                                   ; 0xf165c LB 0x14
    10611060    push bp                                   ; 55
    10621061    mov bp, sp                                ; 89 e5
     1062    push dx                                   ; 52
    10631063    mov dx, strict word 00070h                ; ba 70 00
    10641064    out DX, AL                                ; ee
     
    10671067    db  02ah, 0e4h
    10681068    ; sub ah, ah                                ; 2a e4
     1069    lea sp, [bp-002h]                         ; 8d 66 fe
     1070    pop dx                                    ; 5a
    10691071    pop bp                                    ; 5d
    1070     pop dx                                    ; 5a
    10711072    retn                                      ; c3
    1072 outb_cmos_:                                  ; 0xf166d LB 0x11
     1073outb_cmos_:                                  ; 0xf1670 LB 0x13
    10731074    push bp                                   ; 55
    10741075    mov bp, sp                                ; 89 e5
     
    10791080    mov dx, strict word 00071h                ; ba 71 00
    10801081    out DX, AL                                ; ee
     1082    mov sp, bp                                ; 89 ec
    10811083    pop bp                                    ; 5d
    10821084    retn                                      ; c3
    1083 _dummy_isr_function:                         ; 0xf167e LB 0x69
    1084     enter 00002h, 000h                        ; c8 02 00 00
     1085_dummy_isr_function:                         ; 0xf1683 LB 0x6b
     1086    push bp                                   ; 55
     1087    mov bp, sp                                ; 89 e5
     1088    push ax                                   ; 50
    10851089    mov CL, strict byte 0ffh                  ; b1 ff
    10861090    mov AL, strict byte 00bh                  ; b0 0b
     
    10931097    mov byte [bp-002h], al                    ; 88 46 fe
    10941098    test al, al                               ; 84 c0
    1095     je short 016d9h                           ; 74 43
     1099    je short 016deh                           ; 74 43
    10961100    mov AL, strict byte 00bh                  ; b0 0b
    10971101    mov dx, 000a0h                            ; ba a0 00
     
    11021106    mov cx, ax                                ; 89 c1
    11031107    test al, al                               ; 84 c0
    1104     je short 016bbh                           ; 74 16
     1108    je short 016c0h                           ; 74 16
    11051109    mov dx, 000a1h                            ; ba a1 00
    11061110    in AL, DX                                 ; ec
     
    11141118    mov dx, 000a0h                            ; ba a0 00
    11151119    out DX, AL                                ; ee
    1116     jmp short 016d0h                          ; eb 15
     1120    jmp short 016d5h                          ; eb 15
    11171121    mov dx, strict word 00021h                ; ba 21 00
    11181122    in AL, DX                                 ; ec
     
    11321136    mov dx, strict word 0006bh                ; ba 6b 00
    11331137    mov ax, strict word 00040h                ; b8 40 00
    1134     call 0160eh                               ; e8 29 ff
    1135     leave                                     ; c9
     1138    call 0160eh                               ; e8 24 ff
     1139    mov sp, bp                                ; 89 ec
     1140    pop bp                                    ; 5d
    11361141    retn                                      ; c3
    1137 _nmi_handler_msg:                            ; 0xf16e7 LB 0x10
     1142_nmi_handler_msg:                            ; 0xf16ee LB 0x12
    11381143    push bp                                   ; 55
    11391144    mov bp, sp                                ; 89 e5
    11401145    push strict word 00040h                   ; 68 40 00
    11411146    push strict byte 00007h                   ; 6a 07
    1142     call 018e9h                               ; e8 f7 01
     1147    call 0190dh                               ; e8 14 02
    11431148    add sp, strict byte 00004h                ; 83 c4 04
     1149    mov sp, bp                                ; 89 ec
    11441150    pop bp                                    ; 5d
    11451151    retn                                      ; c3
    1146 _int18_panic_msg:                            ; 0xf16f7 LB 0x10
     1152_int18_panic_msg:                            ; 0xf1700 LB 0x12
    11471153    push bp                                   ; 55
    11481154    mov bp, sp                                ; 89 e5
    11491155    push strict word 00054h                   ; 68 54 00
    11501156    push strict byte 00007h                   ; 6a 07
    1151     call 018e9h                               ; e8 e7 01
     1157    call 0190dh                               ; e8 02 02
    11521158    add sp, strict byte 00004h                ; 83 c4 04
     1159    mov sp, bp                                ; 89 ec
    11531160    pop bp                                    ; 5d
    11541161    retn                                      ; c3
    1155 _log_bios_start:                             ; 0xf1707 LB 0x1e
     1162_log_bios_start:                             ; 0xf1712 LB 0x20
    11561163    push bp                                   ; 55
    11571164    mov bp, sp                                ; 89 e5
    1158     mov bx, 00d32h                            ; bb 32 0d
     1165    mov bx, 00d38h                            ; bb 38 0d
    11591166    mov cx, ds                                ; 8c d9
    11601167    mov ax, strict word 00004h                ; b8 04 00
    1161     call 018aeh                               ; e8 99 01
     1168    call 018cch                               ; e8 ac 01
    11621169    push 00d20h                               ; 68 20 0d
    11631170    push strict word 00069h                   ; 68 69 00
    11641171    push strict byte 00004h                   ; 6a 04
    1165     call 018e9h                               ; e8 c9 01
     1172    call 0190dh                               ; e8 e2 01
    11661173    add sp, strict byte 00006h                ; 83 c4 06
     1174    mov sp, bp                                ; 89 ec
    11671175    pop bp                                    ; 5d
    11681176    retn                                      ; c3
    1169 _print_bios_banner:                          ; 0xf1725 LB 0x2c
     1177_print_bios_banner:                          ; 0xf1732 LB 0x2e
    11701178    push bp                                   ; 55
    11711179    mov bp, sp                                ; 89 e5
    11721180    mov dx, strict word 00072h                ; ba 72 00
    11731181    mov ax, strict word 00040h                ; b8 40 00
    1174     call 0161ch                               ; e8 eb fe
     1182    call 0161ch                               ; e8 de fe
    11751183    mov cx, ax                                ; 89 c1
    11761184    xor bx, bx                                ; 31 db
    11771185    mov dx, strict word 00072h                ; ba 72 00
    11781186    mov ax, strict word 00040h                ; b8 40 00
    1179     call 0162ah                               ; e8 ec fe
     1187    call 0162ah                               ; e8 df fe
    11801188    cmp cx, 01234h                            ; 81 f9 34 12
    1181     jne short 0174ch                          ; 75 08
     1189    jne short 01759h                          ; 75 08
    11821190    mov AL, strict byte 003h                  ; b0 03
    11831191    mov AH, strict byte 000h                  ; b4 00
    11841192    int 010h                                  ; cd 10
     1193    jmp short 0175ch                          ; eb 03
     1194    call 071e7h                               ; e8 8b 5a
     1195    mov sp, bp                                ; 89 ec
    11851196    pop bp                                    ; 5d
    11861197    retn                                      ; c3
    1187     call 07103h                               ; e8 b4 59
    1188     pop bp                                    ; 5d
    1189     retn                                      ; c3
    1190 send_:                                       ; 0xf1751 LB 0x38
     1198send_:                                       ; 0xf1760 LB 0x3b
     1199    push bp                                   ; 55
     1200    mov bp, sp                                ; 89 e5
    11911201    push bx                                   ; 53
    11921202    push cx                                   ; 51
    1193     push bp                                   ; 55
    1194     mov bp, sp                                ; 89 e5
    11951203    mov bx, ax                                ; 89 c3
    11961204    mov cl, dl                                ; 88 d1
    11971205    test AL, strict byte 008h                 ; a8 08
    1198     je short 01764h                           ; 74 06
     1206    je short 01773h                           ; 74 06
    11991207    mov al, dl                                ; 88 d0
    12001208    mov dx, 00403h                            ; ba 03 04
    12011209    out DX, AL                                ; ee
    12021210    test bl, 004h                             ; f6 c3 04
    1203     je short 0176fh                           ; 74 06
     1211    je short 0177eh                           ; 74 06
    12041212    mov al, cl                                ; 88 c8
    12051213    mov dx, 00504h                            ; ba 04 05
    12061214    out DX, AL                                ; ee
    12071215    test bl, 002h                             ; f6 c3 02
    1208     je short 01785h                           ; 74 11
     1216    je short 01794h                           ; 74 11
    12091217    cmp cl, 00ah                              ; 80 f9 0a
    1210     jne short 0177fh                          ; 75 06
     1218    jne short 0178eh                          ; 75 06
    12111219    mov AL, strict byte 00dh                  ; b0 0d
    12121220    mov AH, strict byte 00eh                  ; b4 0e
     
    12151223    mov AH, strict byte 00eh                  ; b4 0e
    12161224    int 010h                                  ; cd 10
    1217     pop bp                                    ; 5d
     1225    lea sp, [bp-004h]                         ; 8d 66 fc
    12181226    pop cx                                    ; 59
    12191227    pop bx                                    ; 5b
     1228    pop bp                                    ; 5d
    12201229    retn                                      ; c3
    1221 put_int_:                                    ; 0xf1789 LB 0x5b
     1230put_int_:                                    ; 0xf179b LB 0x5f
     1231    push bp                                   ; 55
     1232    mov bp, sp                                ; 89 e5
    12221233    push si                                   ; 56
    12231234    push di                                   ; 57
    1224     enter 00004h, 000h                        ; c8 04 00 00
     1235    push ax                                   ; 50
     1236    push ax                                   ; 50
    12251237    mov si, ax                                ; 89 c6
    1226     mov word [bp-004h], dx                    ; 89 56 fc
     1238    mov word [bp-008h], dx                    ; 89 56 f8
    12271239    mov di, strict word 0000ah                ; bf 0a 00
    12281240    mov ax, dx                                ; 89 d0
    12291241    cwd                                       ; 99
    12301242    idiv di                                   ; f7 ff
    1231     mov word [bp-002h], ax                    ; 89 46 fe
     1243    mov word [bp-006h], ax                    ; 89 46 fa
    12321244    test ax, ax                               ; 85 c0
    1233     je short 017adh                           ; 74 0a
     1245    je short 017c0h                           ; 74 0a
    12341246    dec bx                                    ; 4b
    12351247    mov dx, ax                                ; 89 c2
    12361248    mov ax, si                                ; 89 f0
    1237     call 01789h                               ; e8 de ff
    1238     jmp short 017c8h                          ; eb 1b
     1249    call 0179bh                               ; e8 dd ff
     1250    jmp short 017dbh                          ; eb 1b
    12391251    dec bx                                    ; 4b
    12401252    test bx, bx                               ; 85 db
    1241     jle short 017bch                          ; 7e 0a
     1253    jle short 017cfh                          ; 7e 0a
    12421254    mov dx, strict word 00020h                ; ba 20 00
    12431255    mov ax, si                                ; 89 f0
    1244     call 01751h                               ; e8 97 ff
    1245     jmp short 017adh                          ; eb f1
     1256    call 01760h                               ; e8 93 ff
     1257    jmp short 017c0h                          ; eb f1
    12461258    test cx, cx                               ; 85 c9
    1247     je short 017c8h                           ; 74 08
     1259    je short 017dbh                           ; 74 08
    12481260    mov dx, strict word 0002dh                ; ba 2d 00
    12491261    mov ax, si                                ; 89 f0
    1250     call 01751h                               ; e8 89 ff
    1251     mov al, byte [bp-002h]                    ; 8a 46 fe
     1262    call 01760h                               ; e8 85 ff
     1263    mov al, byte [bp-006h]                    ; 8a 46 fa
    12521264    mov DL, strict byte 00ah                  ; b2 0a
    12531265    mul dl                                    ; f6 e2
    1254     mov dl, byte [bp-004h]                    ; 8a 56 fc
     1266    mov dl, byte [bp-008h]                    ; 8a 56 f8
    12551267    sub dl, al                                ; 28 c2
    12561268    mov al, dl                                ; 88 d0
     
    12581270    movzx dx, al                              ; 0f b6 d0
    12591271    mov ax, si                                ; 89 f0
    1260     call 01751h                               ; e8 71 ff
    1261     leave                                     ; c9
     1272    call 01760h                               ; e8 6d ff
     1273    lea sp, [bp-004h]                         ; 8d 66 fc
    12621274    pop di                                    ; 5f
    12631275    pop si                                    ; 5e
     1276    pop bp                                    ; 5d
    12641277    retn                                      ; c3
    1265 put_uint_:                                   ; 0xf17e4 LB 0x5c
     1278put_uint_:                                   ; 0xf17fa LB 0x60
     1279    push bp                                   ; 55
     1280    mov bp, sp                                ; 89 e5
    12661281    push si                                   ; 56
    12671282    push di                                   ; 57
    1268     enter 00004h, 000h                        ; c8 04 00 00
     1283    push ax                                   ; 50
     1284    push ax                                   ; 50
    12691285    mov si, ax                                ; 89 c6
    1270     mov word [bp-004h], dx                    ; 89 56 fc
     1286    mov word [bp-008h], dx                    ; 89 56 f8
    12711287    mov ax, dx                                ; 89 d0
    12721288    xor dx, dx                                ; 31 d2
    12731289    mov di, strict word 0000ah                ; bf 0a 00
    12741290    div di                                    ; f7 f7
    1275     mov word [bp-002h], ax                    ; 89 46 fe
     1291    mov word [bp-006h], ax                    ; 89 46 fa
    12761292    test ax, ax                               ; 85 c0
    1277     je short 01809h                           ; 74 0a
     1293    je short 01820h                           ; 74 0a
    12781294    dec bx                                    ; 4b
    12791295    mov dx, ax                                ; 89 c2
    12801296    mov ax, si                                ; 89 f0
    1281     call 017e4h                               ; e8 dd ff
    1282     jmp short 01824h                          ; eb 1b
     1297    call 017fah                               ; e8 dc ff
     1298    jmp short 0183bh                          ; eb 1b
    12831299    dec bx                                    ; 4b
    12841300    test bx, bx                               ; 85 db
    1285     jle short 01818h                          ; 7e 0a
     1301    jle short 0182fh                          ; 7e 0a
    12861302    mov dx, strict word 00020h                ; ba 20 00
    12871303    mov ax, si                                ; 89 f0
    1288     call 01751h                               ; e8 3b ff
    1289     jmp short 01809h                          ; eb f1
     1304    call 01760h                               ; e8 33 ff
     1305    jmp short 01820h                          ; eb f1
    12901306    test cx, cx                               ; 85 c9
    1291     je short 01824h                           ; 74 08
     1307    je short 0183bh                           ; 74 08
    12921308    mov dx, strict word 0002dh                ; ba 2d 00
    12931309    mov ax, si                                ; 89 f0
    1294     call 01751h                               ; e8 2d ff
    1295     mov al, byte [bp-002h]                    ; 8a 46 fe
     1310    call 01760h                               ; e8 25 ff
     1311    mov al, byte [bp-006h]                    ; 8a 46 fa
    12961312    mov DL, strict byte 00ah                  ; b2 0a
    12971313    mul dl                                    ; f6 e2
    1298     mov dl, byte [bp-004h]                    ; 8a 56 fc
     1314    mov dl, byte [bp-008h]                    ; 8a 56 f8
    12991315    sub dl, al                                ; 28 c2
    13001316    mov al, dl                                ; 88 d0
     
    13021318    movzx dx, al                              ; 0f b6 d0
    13031319    mov ax, si                                ; 89 f0
    1304     call 01751h                               ; e8 15 ff
    1305     leave                                     ; c9
     1320    call 01760h                               ; e8 0d ff
     1321    lea sp, [bp-004h]                         ; 8d 66 fc
    13061322    pop di                                    ; 5f
    13071323    pop si                                    ; 5e
     1324    pop bp                                    ; 5d
    13081325    retn                                      ; c3
    1309 put_luint_:                                  ; 0xf1840 LB 0x6e
     1326put_luint_:                                  ; 0xf185a LB 0x72
     1327    push bp                                   ; 55
     1328    mov bp, sp                                ; 89 e5
    13101329    push si                                   ; 56
    13111330    push di                                   ; 57
    1312     enter 00004h, 000h                        ; c8 04 00 00
     1331    push ax                                   ; 50
     1332    push ax                                   ; 50
    13131333    mov si, ax                                ; 89 c6
    1314     mov word [bp-002h], bx                    ; 89 5e fe
     1334    mov word [bp-006h], bx                    ; 89 5e fa
    13151335    mov di, dx                                ; 89 d7
    13161336    mov ax, bx                                ; 89 d8
     
    13181338    mov bx, strict word 0000ah                ; bb 0a 00
    13191339    xor cx, cx                                ; 31 c9
    1320     call 09010h                               ; e8 b7 77
    1321     mov word [bp-004h], ax                    ; 89 46 fc
     1340    call 091e0h                               ; e8 6c 79
     1341    mov word [bp-008h], ax                    ; 89 46 f8
    13221342    mov cx, dx                                ; 89 d1
    13231343    mov dx, ax                                ; 89 c2
    13241344    or dx, cx                                 ; 09 ca
    1325     je short 01873h                           ; 74 0f
    1326     push word [bp+008h]                       ; ff 76 08
     1345    je short 0188eh                           ; 74 0f
     1346    push word [bp+004h]                       ; ff 76 04
    13271347    lea dx, [di-001h]                         ; 8d 55 ff
    13281348    mov bx, ax                                ; 89 c3
    13291349    mov ax, si                                ; 89 f0
    1330     call 01840h                               ; e8 cf ff
    1331     jmp short 01890h                          ; eb 1d
     1350    call 0185ah                               ; e8 ce ff
     1351    jmp short 018abh                          ; eb 1d
    13321352    dec di                                    ; 4f
    13331353    test di, di                               ; 85 ff
    1334     jle short 01882h                          ; 7e 0a
     1354    jle short 0189dh                          ; 7e 0a
    13351355    mov dx, strict word 00020h                ; ba 20 00
    13361356    mov ax, si                                ; 89 f0
    1337     call 01751h                               ; e8 d1 fe
    1338     jmp short 01873h                          ; eb f1
    1339     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    1340     je short 01890h                           ; 74 08
     1357    call 01760h                               ; e8 c5 fe
     1358    jmp short 0188eh                          ; eb f1
     1359    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
     1360    je short 018abh                           ; 74 08
    13411361    mov dx, strict word 0002dh                ; ba 2d 00
    13421362    mov ax, si                                ; 89 f0
    1343     call 01751h                               ; e8 c1 fe
    1344     mov al, byte [bp-004h]                    ; 8a 46 fc
     1363    call 01760h                               ; e8 b5 fe
     1364    mov al, byte [bp-008h]                    ; 8a 46 f8
    13451365    mov DL, strict byte 00ah                  ; b2 0a
    13461366    mul dl                                    ; f6 e2
    1347     mov dl, byte [bp-002h]                    ; 8a 56 fe
     1367    mov dl, byte [bp-006h]                    ; 8a 56 fa
    13481368    sub dl, al                                ; 28 c2
    13491369    mov al, dl                                ; 88 d0
     
    13511371    movzx dx, al                              ; 0f b6 d0
    13521372    mov ax, si                                ; 89 f0
    1353     call 01751h                               ; e8 a9 fe
    1354     leave                                     ; c9
     1373    call 01760h                               ; e8 9d fe
     1374    lea sp, [bp-004h]                         ; 8d 66 fc
    13551375    pop di                                    ; 5f
    13561376    pop si                                    ; 5e
     1377    pop bp                                    ; 5d
    13571378    retn 00002h                               ; c2 02 00
    1358 put_str_:                                    ; 0xf18ae LB 0x1e
     1379put_str_:                                    ; 0xf18cc LB 0x21
     1380    push bp                                   ; 55
     1381    mov bp, sp                                ; 89 e5
    13591382    push dx                                   ; 52
    13601383    push si                                   ; 56
    1361     push bp                                   ; 55
    1362     mov bp, sp                                ; 89 e5
    13631384    mov si, ax                                ; 89 c6
    13641385    mov es, cx                                ; 8e c1
    13651386    mov dl, byte [es:bx]                      ; 26 8a 17
    13661387    test dl, dl                               ; 84 d2
    1367     je short 018c8h                           ; 74 0a
     1388    je short 018e6h                           ; 74 0a
    13681389    xor dh, dh                                ; 30 f6
    13691390    mov ax, si                                ; 89 f0
    1370     call 01751h                               ; e8 8c fe
     1391    call 01760h                               ; e8 7d fe
    13711392    inc bx                                    ; 43
    1372     jmp short 018b5h                          ; eb ed
    1373     pop bp                                    ; 5d
     1393    jmp short 018d3h                          ; eb ed
     1394    lea sp, [bp-004h]                         ; 8d 66 fc
    13741395    pop si                                    ; 5e
    13751396    pop dx                                    ; 5a
     1397    pop bp                                    ; 5d
    13761398    retn                                      ; c3
    1377 put_str_near_:                               ; 0xf18cc LB 0x1d
     1399put_str_near_:                               ; 0xf18ed LB 0x20
     1400    push bp                                   ; 55
     1401    mov bp, sp                                ; 89 e5
    13781402    push bx                                   ; 53
    13791403    push cx                                   ; 51
    1380     push bp                                   ; 55
    1381     mov bp, sp                                ; 89 e5
    13821404    mov cx, ax                                ; 89 c1
    13831405    mov bx, dx                                ; 89 d3
    13841406    mov dl, byte [bx]                         ; 8a 17
    13851407    test dl, dl                               ; 84 d2
    1386     je short 018e5h                           ; 74 0a
     1408    je short 01906h                           ; 74 0a
    13871409    xor dh, dh                                ; 30 f6
    13881410    mov ax, cx                                ; 89 c8
    1389     call 01751h                               ; e8 6f fe
     1411    call 01760h                               ; e8 5d fe
    13901412    inc bx                                    ; 43
    1391     jmp short 018d5h                          ; eb f0
    1392     pop bp                                    ; 5d
     1413    jmp short 018f6h                          ; eb f0
     1414    lea sp, [bp-004h]                         ; 8d 66 fc
    13931415    pop cx                                    ; 59
    13941416    pop bx                                    ; 5b
     1417    pop bp                                    ; 5d
    13951418    retn                                      ; c3
    1396 bios_printf_:                                ; 0xf18e9 LB 0x236
     1419bios_printf_:                                ; 0xf190d LB 0x23b
     1420    push bp                                   ; 55
     1421    mov bp, sp                                ; 89 e5
    13971422    push bx                                   ; 53
    13981423    push cx                                   ; 51
     
    14001425    push si                                   ; 56
    14011426    push di                                   ; 57
    1402     enter 00008h, 000h                        ; c8 08 00 00
    1403     lea bx, [bp+012h]                         ; 8d 5e 12
    1404     mov word [bp-008h], bx                    ; 89 5e f8
    1405     mov [bp-006h], ss                         ; 8c 56 fa
     1427    sub sp, strict byte 00008h                ; 83 ec 08
     1428    lea bx, [bp+008h]                         ; 8d 5e 08
     1429    mov word [bp-012h], bx                    ; 89 5e ee
     1430    mov [bp-010h], ss                         ; 8c 56 f0
    14061431    xor cx, cx                                ; 31 c9
    14071432    xor si, si                                ; 31 f6
    1408     mov ax, word [bp+00eh]                    ; 8b 46 0e
     1433    mov ax, word [bp+004h]                    ; 8b 46 04
    14091434    and ax, strict word 00007h                ; 25 07 00
    14101435    cmp ax, strict word 00007h                ; 3d 07 00
    1411     jne short 01915h                          ; 75 0b
     1436    jne short 0193bh                          ; 75 0b
    14121437    push strict word 0006eh                   ; 68 6e 00
    14131438    push strict byte 00002h                   ; 6a 02
    1414     call 018e9h                               ; e8 d7 ff
     1439    call 0190dh                               ; e8 d5 ff
    14151440    add sp, strict byte 00004h                ; 83 c4 04
    1416     mov bx, word [bp+010h]                    ; 8b 5e 10
     1441    mov bx, word [bp+006h]                    ; 8b 5e 06
    14171442    mov dl, byte [bx]                         ; 8a 17
    14181443    test dl, dl                               ; 84 d2
    1419     je near 01b06h                            ; 0f 84 e6 01
     1444    je near 01b2ch                            ; 0f 84 e6 01
    14201445    cmp dl, 025h                              ; 80 fa 25
    1421     jne short 0192dh                          ; 75 08
     1446    jne short 01953h                          ; 75 08
    14221447    mov cx, strict word 00001h                ; b9 01 00
    14231448    xor si, si                                ; 31 f6
    1424     jmp near 01b00h                           ; e9 d3 01
     1449    jmp near 01b26h                           ; e9 d3 01
    14251450    test cx, cx                               ; 85 c9
    1426     je near 01af8h                            ; 0f 84 c5 01
     1451    je near 01b1eh                            ; 0f 84 c5 01
    14271452    cmp dl, 030h                              ; 80 fa 30
    1428     jc short 0194bh                           ; 72 13
     1453    jc short 01971h                           ; 72 13
    14291454    cmp dl, 039h                              ; 80 fa 39
    1430     jnbe short 0194bh                         ; 77 0e
     1455    jnbe short 01971h                         ; 77 0e
    14311456    movzx ax, dl                              ; 0f b6 c2
    14321457    imul si, si, strict byte 0000ah           ; 6b f6 0a
    14331458    sub ax, strict word 00030h                ; 2d 30 00
    14341459    add si, ax                                ; 01 c6
    1435     jmp near 01b00h                           ; e9 b5 01
    1436     mov ax, word [bp-006h]                    ; 8b 46 fa
    1437     mov word [bp-006h], ax                    ; 89 46 fa
    1438     add word [bp-008h], strict byte 00002h    ; 83 46 f8 02
    1439     les bx, [bp-008h]                         ; c4 5e f8
     1460    jmp near 01b26h                           ; e9 b5 01
     1461    mov ax, word [bp-010h]                    ; 8b 46 f0
     1462    mov word [bp-010h], ax                    ; 89 46 f0
     1463    add word [bp-012h], strict byte 00002h    ; 83 46 ee 02
     1464    les bx, [bp-012h]                         ; c4 5e ee
    14401465    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
    1441     mov word [bp-002h], ax                    ; 89 46 fe
     1466    mov word [bp-00ch], ax                    ; 89 46 f4
    14421467    cmp dl, 078h                              ; 80 fa 78
    1443     je short 01969h                           ; 74 05
     1468    je short 0198fh                           ; 74 05
    14441469    cmp dl, 058h                              ; 80 fa 58
    1445     jne short 019b2h                          ; 75 49
     1470    jne short 019d8h                          ; 75 49
    14461471    test si, si                               ; 85 f6
    1447     jne short 01970h                          ; 75 03
     1472    jne short 01996h                          ; 75 03
    14481473    mov si, strict word 00004h                ; be 04 00
    14491474    cmp dl, 078h                              ; 80 fa 78
    1450     jne short 0197ah                          ; 75 05
     1475    jne short 019a0h                          ; 75 05
    14511476    mov di, strict word 00061h                ; bf 61 00
    1452     jmp short 0197dh                          ; eb 03
     1477    jmp short 019a3h                          ; eb 03
    14531478    mov di, strict word 00041h                ; bf 41 00
    14541479    lea bx, [si-001h]                         ; 8d 5c ff
    14551480    test bx, bx                               ; 85 db
    1456     jl near 01af4h                            ; 0f 8c 6e 01
     1481    jl near 01b1ah                            ; 0f 8c 6e 01
    14571482    mov cx, bx                                ; 89 d9
    14581483    sal cx, 002h                              ; c1 e1 02
    1459     mov ax, word [bp-002h]                    ; 8b 46 fe
     1484    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14601485    shr ax, CL                                ; d3 e8
    14611486    xor ah, ah                                ; 30 e4
    14621487    and AL, strict byte 00fh                  ; 24 0f
    14631488    cmp ax, strict word 00009h                ; 3d 09 00
    1464     jnbe short 019a0h                         ; 77 07
     1489    jnbe short 019c6h                         ; 77 07
    14651490    mov dx, ax                                ; 89 c2
    14661491    add dx, strict byte 00030h                ; 83 c2 30
    1467     jmp short 019a7h                          ; eb 07
     1492    jmp short 019cdh                          ; eb 07
    14681493    mov dx, ax                                ; 89 c2
    14691494    sub dx, strict byte 0000ah                ; 83 ea 0a
    14701495    add dx, di                                ; 01 fa
    14711496    xor dh, dh                                ; 30 f6
    1472     mov ax, word [bp+00eh]                    ; 8b 46 0e
    1473     call 01751h                               ; e8 a2 fd
     1497    mov ax, word [bp+004h]                    ; 8b 46 04
     1498    call 01760h                               ; e8 8b fd
    14741499    dec bx                                    ; 4b
    1475     jmp short 01980h                          ; eb ce
     1500    jmp short 019a6h                          ; eb ce
    14761501    cmp dl, 075h                              ; 80 fa 75
    1477     jne short 019c6h                          ; 75 0f
     1502    jne short 019ech                          ; 75 0f
    14781503    xor cx, cx                                ; 31 c9
    14791504    mov bx, si                                ; 89 f3
    14801505    mov dx, ax                                ; 89 c2
    1481     mov ax, word [bp+00eh]                    ; 8b 46 0e
    1482     call 017e4h                               ; e8 21 fe
    1483     jmp near 01af4h                           ; e9 2e 01
     1506    mov ax, word [bp+004h]                    ; 8b 46 04
     1507    call 017fah                               ; e8 11 fe
     1508    jmp near 01b1ah                           ; e9 2e 01
    14841509    lea bx, [si-001h]                         ; 8d 5c ff
    14851510    cmp dl, 06ch                              ; 80 fa 6c
    1486     jne near 01a82h                           ; 0f 85 b2 00
    1487     inc word [bp+010h]                        ; ff 46 10
    1488     mov di, word [bp+010h]                    ; 8b 7e 10
     1511    jne near 01aa8h                           ; 0f 85 b2 00
     1512    inc word [bp+006h]                        ; ff 46 06
     1513    mov di, word [bp+006h]                    ; 8b 7e 06
    14891514    mov dl, byte [di]                         ; 8a 15
    1490     mov ax, word [bp-006h]                    ; 8b 46 fa
    1491     mov word [bp-006h], ax                    ; 89 46 fa
    1492     add word [bp-008h], strict byte 00002h    ; 83 46 f8 02
    1493     les di, [bp-008h]                         ; c4 7e f8
     1515    mov ax, word [bp-010h]                    ; 8b 46 f0
     1516    mov word [bp-010h], ax                    ; 89 46 f0
     1517    add word [bp-012h], strict byte 00002h    ; 83 46 ee 02
     1518    les di, [bp-012h]                         ; c4 7e ee
    14941519    mov ax, word [es:di-002h]                 ; 26 8b 45 fe
    1495     mov word [bp-004h], ax                    ; 89 46 fc
     1520    mov word [bp-00eh], ax                    ; 89 46 f2
    14961521    cmp dl, 064h                              ; 80 fa 64
    1497     jne short 01a1eh                          ; 75 2d
    1498     test byte [bp-003h], 080h                 ; f6 46 fd 80
    1499     je short 01a0ch                           ; 74 15
     1522    jne short 01a44h                          ; 75 2d
     1523    test byte [bp-00dh], 080h                 ; f6 46 f3 80
     1524    je short 01a32h                           ; 74 15
    15001525    push strict byte 00001h                   ; 6a 01
    1501     mov ax, word [bp-002h]                    ; 8b 46 fe
    1502     mov cx, word [bp-004h]                    ; 8b 4e fc
     1526    mov ax, word [bp-00ch]                    ; 8b 46 f4
     1527    mov cx, word [bp-00eh]                    ; 8b 4e f2
    15031528    neg cx                                    ; f7 d9
    15041529    neg ax                                    ; f7 d8
     
    15061531    mov dx, bx                                ; 89 da
    15071532    mov bx, ax                                ; 89 c3
    1508     jmp short 01a15h                          ; eb 09
     1533    jmp short 01a3bh                          ; eb 09
    15091534    push strict byte 00000h                   ; 6a 00
    1510     mov bx, word [bp-002h]                    ; 8b 5e fe
     1535    mov bx, word [bp-00ch]                    ; 8b 5e f4
    15111536    mov dx, si                                ; 89 f2
    15121537    mov cx, ax                                ; 89 c1
    1513     mov ax, word [bp+00eh]                    ; 8b 46 0e
    1514     call 01840h                               ; e8 25 fe
    1515     jmp near 01af4h                           ; e9 d6 00
     1538    mov ax, word [bp+004h]                    ; 8b 46 04
     1539    call 0185ah                               ; e8 19 fe
     1540    jmp near 01b1ah                           ; e9 d6 00
    15161541    cmp dl, 075h                              ; 80 fa 75
    1517     jne short 01a25h                          ; 75 02
    1518     jmp short 01a0ch                          ; eb e7
     1542    jne short 01a4bh                          ; 75 02
     1543    jmp short 01a32h                          ; eb e7
    15191544    cmp dl, 078h                              ; 80 fa 78
    1520     je short 01a31h                           ; 74 07
     1545    je short 01a57h                           ; 74 07
    15211546    cmp dl, 058h                              ; 80 fa 58
    1522     jne near 01af4h                           ; 0f 85 c3 00
     1547    jne near 01b1ah                           ; 0f 85 c3 00
    15231548    test si, si                               ; 85 f6
    1524     jne short 01a38h                          ; 75 03
     1549    jne short 01a5eh                          ; 75 03
    15251550    mov si, strict word 00008h                ; be 08 00
    15261551    cmp dl, 078h                              ; 80 fa 78
    1527     jne short 01a42h                          ; 75 05
     1552    jne short 01a68h                          ; 75 05
    15281553    mov di, strict word 00061h                ; bf 61 00
    1529     jmp short 01a45h                          ; eb 03
     1554    jmp short 01a6bh                          ; eb 03
    15301555    mov di, strict word 00041h                ; bf 41 00
    15311556    lea bx, [si-001h]                         ; 8d 5c ff
    15321557    test bx, bx                               ; 85 db
    1533     jl near 01af4h                            ; 0f 8c a6 00
    1534     mov ax, word [bp-002h]                    ; 8b 46 fe
     1558    jl near 01b1ah                            ; 0f 8c a6 00
     1559    mov ax, word [bp-00ch]                    ; 8b 46 f4
    15351560    mov cx, bx                                ; 89 d9
    15361561    sal cx, 002h                              ; c1 e1 02
    1537     mov dx, word [bp-004h]                    ; 8b 56 fc
    1538     jcxz 01a61h                               ; e3 06
     1562    mov dx, word [bp-00eh]                    ; 8b 56 f2
     1563    jcxz 01a87h                               ; e3 06
    15391564    shr dx, 1                                 ; d1 ea
    15401565    rcr ax, 1                                 ; d1 d8
    1541     loop 01a5bh                               ; e2 fa
     1566    loop 01a81h                               ; e2 fa
    15421567    and ax, strict word 0000fh                ; 25 0f 00
    15431568    cmp ax, strict word 00009h                ; 3d 09 00
    1544     jnbe short 01a70h                         ; 77 07
     1569    jnbe short 01a96h                         ; 77 07
    15451570    mov dx, ax                                ; 89 c2
    15461571    add dx, strict byte 00030h                ; 83 c2 30
    1547     jmp short 01a77h                          ; eb 07
     1572    jmp short 01a9dh                          ; eb 07
    15481573    mov dx, ax                                ; 89 c2
    15491574    sub dx, strict byte 0000ah                ; 83 ea 0a
    15501575    add dx, di                                ; 01 fa
    15511576    xor dh, dh                                ; 30 f6
    1552     mov ax, word [bp+00eh]                    ; 8b 46 0e
    1553     call 01751h                               ; e8 d2 fc
     1577    mov ax, word [bp+004h]                    ; 8b 46 04
     1578    call 01760h                               ; e8 bb fc
    15541579    dec bx                                    ; 4b
    1555     jmp short 01a48h                          ; eb c6
     1580    jmp short 01a6eh                          ; eb c6
    15561581    cmp dl, 064h                              ; 80 fa 64
    1557     jne short 01aa4h                          ; 75 1d
    1558     test byte [bp-001h], 080h                 ; f6 46 ff 80
    1559     je short 01a96h                           ; 74 09
     1582    jne short 01acah                          ; 75 1d
     1583    test byte [bp-00bh], 080h                 ; f6 46 f5 80
     1584    je short 01abch                           ; 74 09
    15601585    mov dx, ax                                ; 89 c2
    15611586    neg dx                                    ; f7 da
    15621587    mov cx, strict word 00001h                ; b9 01 00
    1563     jmp short 01a9ch                          ; eb 06
     1588    jmp short 01ac2h                          ; eb 06
    15641589    xor cx, cx                                ; 31 c9
    15651590    mov bx, si                                ; 89 f3
    15661591    mov dx, ax                                ; 89 c2
    1567     mov ax, word [bp+00eh]                    ; 8b 46 0e
    1568     call 01789h                               ; e8 e7 fc
    1569     jmp short 01af4h                          ; eb 50
     1592    mov ax, word [bp+004h]                    ; 8b 46 04
     1593    call 0179bh                               ; e8 d3 fc
     1594    jmp short 01b1ah                          ; eb 50
    15701595    cmp dl, 073h                              ; 80 fa 73
    1571     jne short 01ab5h                          ; 75 0c
     1596    jne short 01adbh                          ; 75 0c
    15721597    mov cx, ds                                ; 8c d9
    15731598    mov bx, ax                                ; 89 c3
    1574     mov ax, word [bp+00eh]                    ; 8b 46 0e
    1575     call 018aeh                               ; e8 fb fd
    1576     jmp short 01af4h                          ; eb 3f
     1599    mov ax, word [bp+004h]                    ; 8b 46 04
     1600    call 018cch                               ; e8 f3 fd
     1601    jmp short 01b1ah                          ; eb 3f
    15771602    cmp dl, 053h                              ; 80 fa 53
    1578     jne short 01ad8h                          ; 75 1e
    1579     mov word [bp-004h], ax                    ; 89 46 fc
    1580     mov ax, word [bp-006h]                    ; 8b 46 fa
    1581     mov word [bp-006h], ax                    ; 89 46 fa
    1582     add word [bp-008h], strict byte 00002h    ; 83 46 f8 02
    1583     les bx, [bp-008h]                         ; c4 5e f8
     1603    jne short 01afeh                          ; 75 1e
     1604    mov word [bp-00eh], ax                    ; 89 46 f2
     1605    mov ax, word [bp-010h]                    ; 8b 46 f0
     1606    mov word [bp-010h], ax                    ; 89 46 f0
     1607    add word [bp-012h], strict byte 00002h    ; 83 46 ee 02
     1608    les bx, [bp-012h]                         ; c4 5e ee
    15841609    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
    1585     mov word [bp-002h], ax                    ; 89 46 fe
     1610    mov word [bp-00ch], ax                    ; 89 46 f4
    15861611    mov bx, ax                                ; 89 c3
    1587     mov cx, word [bp-004h]                    ; 8b 4e fc
    1588     jmp short 01aadh                          ; eb d5
     1612    mov cx, word [bp-00eh]                    ; 8b 4e f2
     1613    jmp short 01ad3h                          ; eb d5
    15891614    cmp dl, 063h                              ; 80 fa 63
    1590     jne short 01ae9h                          ; 75 0c
    1591     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    1592     mov ax, word [bp+00eh]                    ; 8b 46 0e
    1593     call 01751h                               ; e8 6a fc
    1594     jmp short 01af4h                          ; eb 0b
     1615    jne short 01b0fh                          ; 75 0c
     1616    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     1617    mov ax, word [bp+004h]                    ; 8b 46 04
     1618    call 01760h                               ; e8 53 fc
     1619    jmp short 01b1ah                          ; eb 0b
    15951620    push strict word 00076h                   ; 68 76 00
    15961621    push strict byte 00007h                   ; 6a 07
    1597     call 018e9h                               ; e8 f8 fd
     1622    call 0190dh                               ; e8 f6 fd
    15981623    add sp, strict byte 00004h                ; 83 c4 04
    15991624    xor cx, cx                                ; 31 c9
    1600     jmp short 01b00h                          ; eb 08
     1625    jmp short 01b26h                          ; eb 08
    16011626    xor dh, dh                                ; 30 f6
    1602     mov ax, word [bp+00eh]                    ; 8b 46 0e
    1603     call 01751h                               ; e8 51 fc
    1604     inc word [bp+010h]                        ; ff 46 10
    1605     jmp near 01915h                           ; e9 0f fe
     1627    mov ax, word [bp+004h]                    ; 8b 46 04
     1628    call 01760h                               ; e8 3a fc
     1629    inc word [bp+006h]                        ; ff 46 06
     1630    jmp near 0193bh                           ; e9 0f fe
    16061631    xor ax, ax                                ; 31 c0
    1607     mov word [bp-008h], ax                    ; 89 46 f8
    1608     mov word [bp-006h], ax                    ; 89 46 fa
    1609     test byte [bp+00eh], 001h                 ; f6 46 0e 01
    1610     je short 01b18h                           ; 74 04
     1632    mov word [bp-012h], ax                    ; 89 46 ee
     1633    mov word [bp-010h], ax                    ; 89 46 f0
     1634    test byte [bp+004h], 001h                 ; f6 46 04 01
     1635    je short 01b3eh                           ; 74 04
    16111636    cli                                       ; fa
    16121637    hlt                                       ; f4
    1613     jmp short 01b15h                          ; eb fd
    1614     leave                                     ; c9
     1638    jmp short 01b3bh                          ; eb fd
     1639    lea sp, [bp-00ah]                         ; 8d 66 f6
    16151640    pop di                                    ; 5f
    16161641    pop si                                    ; 5e
     
    16181643    pop cx                                    ; 59
    16191644    pop bx                                    ; 5b
     1645    pop bp                                    ; 5d
    16201646    retn                                      ; c3
    1621 _ata_init:                                   ; 0xf1b1f LB 0xc1
    1622     push si                                   ; 56
     1647_ata_init:                                   ; 0xf1b48 LB 0xc4
    16231648    push bp                                   ; 55
    16241649    mov bp, sp                                ; 89 e5
     1650    push si                                   ; 56
    16251651    mov dx, strict word 0000eh                ; ba 0e 00
    16261652    mov ax, strict word 00040h                ; b8 40 00
    1627     call 0161ch                               ; e8 f0 fa
     1653    call 0161ch                               ; e8 c7 fa
    16281654    mov si, 00122h                            ; be 22 01
    16291655    mov dx, ax                                ; 89 c2
    16301656    xor al, al                                ; 30 c0
    1631     jmp short 01b39h                          ; eb 04
     1657    jmp short 01b62h                          ; eb 04
    16321658    cmp AL, strict byte 004h                  ; 3c 04
    1633     jnc short 01b5dh                          ; 73 24
     1659    jnc short 01b86h                          ; 73 24
    16341660    movzx bx, al                              ; 0f b6 d8
    16351661    imul bx, bx, strict byte 00006h           ; 6b db 06
     
    16421668    db  0feh, 0c0h
    16431669    ; inc al                                    ; fe c0
    1644     jmp short 01b35h                          ; eb d8
     1670    jmp short 01b5eh                          ; eb d8
    16451671    xor al, al                                ; 30 c0
    1646     jmp short 01b65h                          ; eb 04
     1672    jmp short 01b8eh                          ; eb 04
    16471673    cmp AL, strict byte 008h                  ; 3c 08
    1648     jnc short 01bb0h                          ; 73 4b
     1674    jnc short 01bd9h                          ; 73 4b
    16491675    movzx bx, al                              ; 0f b6 d8
    16501676    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    16661692    db  0feh, 0c0h
    16671693    ; inc al                                    ; fe c0
    1668     jmp short 01b61h                          ; eb b1
     1694    jmp short 01b8ah                          ; eb b1
    16691695    xor al, al                                ; 30 c0
    1670     jmp short 01bb8h                          ; eb 04
     1696    jmp short 01be1h                          ; eb 04
    16711697    cmp AL, strict byte 010h                  ; 3c 10
    1672     jnc short 01bcfh                          ; 73 17
     1698    jnc short 01bf8h                          ; 73 17
    16731699    movzx bx, al                              ; 0f b6 d8
    16741700    mov es, dx                                ; 8e c2
     
    16781704    db  0feh, 0c0h
    16791705    ; inc al                                    ; fe c0
    1680     jmp short 01bb4h                          ; eb e5
     1706    jmp short 01bddh                          ; eb e5
    16811707    mov es, dx                                ; 8e c2
    16821708    mov byte [es:si+0019eh], 000h             ; 26 c6 84 9e 01 00
    16831709    mov byte [es:si+001afh], 000h             ; 26 c6 84 af 01 00
     1710    lea sp, [bp-002h]                         ; 8d 66 fe
     1711    pop si                                    ; 5e
    16841712    pop bp                                    ; 5d
    1685     pop si                                    ; 5e
    16861713    retn                                      ; c3
    1687 ata_reset_:                                  ; 0xf1be0 LB 0xda
     1714ata_reset_:                                  ; 0xf1c0c LB 0xde
     1715    push bp                                   ; 55
     1716    mov bp, sp                                ; 89 e5
    16881717    push bx                                   ; 53
    16891718    push cx                                   ; 51
     
    16911720    push si                                   ; 56
    16921721    push di                                   ; 57
    1693     enter 00004h, 000h                        ; c8 04 00 00
     1722    push ax                                   ; 50
     1723    push ax                                   ; 50
    16941724    push ax                                   ; 50
    16951725    mov dx, strict word 0000eh                ; ba 0e 00
    16961726    mov ax, strict word 00040h                ; b8 40 00
    1697     call 0161ch                               ; e8 29 fa
    1698     mov word [bp-004h], 00122h                ; c7 46 fc 22 01
     1727    call 0161ch                               ; e8 fc f9
     1728    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    16991729    mov di, ax                                ; 89 c7
    1700     mov bx, word [bp-006h]                    ; 8b 5e fa
     1730    mov bx, word [bp-010h]                    ; 8b 5e f0
    17011731    shr bx, 1                                 ; d1 eb
    1702     mov dl, byte [bp-006h]                    ; 8a 56 fa
     1732    mov dl, byte [bp-010h]                    ; 8a 56 f0
    17031733    and dl, 001h                              ; 80 e2 01
    1704     mov byte [bp-002h], dl                    ; 88 56 fe
     1734    mov byte [bp-00ch], dl                    ; 88 56 f4
    17051735    xor bh, bh                                ; 30 ff
    17061736    imul bx, bx, strict byte 00006h           ; 6b db 06
     
    17151745    dec bx                                    ; 4b
    17161746    test bx, bx                               ; 85 db
    1717     jbe short 01c37h                          ; 76 0c
     1747    jbe short 01c64h                          ; 76 0c
    17181748    mov dx, cx                                ; 89 ca
    17191749    add dx, strict byte 00007h                ; 83 c2 07
     
    17221752    ; sub ah, ah                                ; 2a e4
    17231753    test AL, strict byte 080h                 ; a8 80
    1724     je short 01c26h                           ; 74 ef
     1754    je short 01c53h                           ; 74 ef
    17251755    lea dx, [si+006h]                         ; 8d 54 06
    17261756    mov AL, strict byte 00ah                  ; b0 0a
    17271757    out DX, AL                                ; ee
    1728     imul bx, word [bp-006h], strict byte 00018h ; 6b 5e fa 18
     1758    imul bx, word [bp-010h], strict byte 00018h ; 6b 5e f0 18
    17291759    mov es, di                                ; 8e c7
    1730     add bx, word [bp-004h]                    ; 03 5e fc
     1760    add bx, word [bp-00eh]                    ; 03 5e f2
    17311761    cmp byte [es:bx+01eh], 000h               ; 26 80 7f 1e 00
    1732     je short 01c99h                           ; 74 4c
    1733     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    1734     je short 01c58h                           ; 74 05
     1762    je short 01cc6h                           ; 74 4c
     1763    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     1764    je short 01c85h                           ; 74 05
    17351765    mov ax, 000b0h                            ; b8 b0 00
    1736     jmp short 01c5bh                          ; eb 03
     1766    jmp short 01c88h                          ; eb 03
    17371767    mov ax, 000a0h                            ; b8 a0 00
    17381768    mov dx, cx                                ; 89 ca
     
    17521782    ; sub ah, ah                                ; 2a e4
    17531783    cmp bl, 001h                              ; 80 fb 01
    1754     jne short 01c99h                          ; 75 22
     1784    jne short 01cc6h                          ; 75 22
    17551785    cmp al, bl                                ; 38 d8
    1756     jne short 01c99h                          ; 75 1e
     1786    jne short 01cc6h                          ; 75 1e
    17571787    mov bx, strict word 0ffffh                ; bb ff ff
    17581788    dec bx                                    ; 4b
    17591789    test bx, bx                               ; 85 db
    1760     jbe short 01c99h                          ; 76 16
     1790    jbe short 01cc6h                          ; 76 16
    17611791    mov dx, cx                                ; 89 ca
    17621792    add dx, strict byte 00007h                ; 83 c2 07
     
    17651795    ; sub ah, ah                                ; 2a e4
    17661796    test AL, strict byte 080h                 ; a8 80
    1767     je short 01c99h                           ; 74 0a
     1797    je short 01cc6h                           ; 74 0a
    17681798    mov ax, strict word 0ffffh                ; b8 ff ff
    17691799    dec ax                                    ; 48
    17701800    test ax, ax                               ; 85 c0
    1771     jnbe short 01c92h                         ; 77 fb
    1772     jmp short 01c7eh                          ; eb e5
     1801    jnbe short 01cbfh                         ; 77 fb
     1802    jmp short 01cabh                          ; eb e5
    17731803    mov bx, strict word 00010h                ; bb 10 00
    17741804    dec bx                                    ; 4b
    17751805    test bx, bx                               ; 85 db
    1776     jbe short 01cadh                          ; 76 0c
     1806    jbe short 01cdah                          ; 76 0c
    17771807    mov dx, cx                                ; 89 ca
    17781808    add dx, strict byte 00007h                ; 83 c2 07
     
    17811811    ; sub ah, ah                                ; 2a e4
    17821812    test AL, strict byte 040h                 ; a8 40
    1783     je short 01c9ch                           ; 74 ef
     1813    je short 01cc9h                           ; 74 ef
    17841814    lea dx, [si+006h]                         ; 8d 54 06
    17851815    mov AL, strict byte 008h                  ; b0 08
    17861816    out DX, AL                                ; ee
    1787     leave                                     ; c9
     1817    lea sp, [bp-00ah]                         ; 8d 66 f6
    17881818    pop di                                    ; 5f
    17891819    pop si                                    ; 5e
     
    17911821    pop cx                                    ; 59
    17921822    pop bx                                    ; 5b
     1823    pop bp                                    ; 5d
    17931824    retn                                      ; c3
    1794 ata_cmd_data_in_:                            ; 0xf1cba LB 0x253
     1825ata_cmd_data_in_:                            ; 0xf1cea LB 0x258
     1826    push bp                                   ; 55
     1827    mov bp, sp                                ; 89 e5
    17951828    push si                                   ; 56
    17961829    push di                                   ; 57
    1797     enter 0001ch, 000h                        ; c8 1c 00 00
     1830    sub sp, strict byte 0001ch                ; 83 ec 1c
    17981831    mov si, ax                                ; 89 c6
    1799     mov word [bp-006h], dx                    ; 89 56 fa
    1800     mov word [bp-012h], bx                    ; 89 5e ee
    1801     mov word [bp-010h], cx                    ; 89 4e f0
     1832    mov word [bp-00ah], dx                    ; 89 56 f6
     1833    mov word [bp-016h], bx                    ; 89 5e ea
     1834    mov word [bp-014h], cx                    ; 89 4e ec
    18021835    mov es, dx                                ; 8e c2
    18031836    movzx ax, byte [es:si+008h]               ; 26 0f b6 44 08
     
    18061839    mov dh, al                                ; 88 c6
    18071840    and dh, 001h                              ; 80 e6 01
    1808     mov byte [bp-004h], dh                    ; 88 76 fc
     1841    mov byte [bp-008h], dh                    ; 88 76 f8
    18091842    movzx di, dl                              ; 0f b6 fa
    18101843    imul di, di, strict byte 00006h           ; 6b ff 06
     
    18121845    mov bx, word [es:di+001c2h]               ; 26 8b 9d c2 01
    18131846    mov dx, word [es:di+001c4h]               ; 26 8b 95 c4 01
    1814     mov word [bp-018h], dx                    ; 89 56 e8
     1847    mov word [bp-01ch], dx                    ; 89 56 e4
    18151848    imul ax, ax, strict byte 00018h           ; 6b c0 18
    18161849    mov di, si                                ; 89 f7
    18171850    add di, ax                                ; 01 c7
    18181851    mov al, byte [es:di+022h]                 ; 26 8a 45 22
    1819     mov byte [bp-002h], al                    ; 88 46 fe
     1852    mov byte [bp-006h], al                    ; 88 46 fa
    18201853    mov ax, word [es:di+024h]                 ; 26 8b 45 24
    1821     mov word [bp-008h], ax                    ; 89 46 f8
     1854    mov word [bp-00ch], ax                    ; 89 46 f4
    18221855    test ax, ax                               ; 85 c0
    1823     jne short 01d20h                          ; 75 14
    1824     cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1825     jne short 01d19h                          ; 75 07
    1826     mov word [bp-008h], 04000h                ; c7 46 f8 00 40
    1827     jmp short 01d2fh                          ; eb 16
    1828     mov word [bp-008h], 08000h                ; c7 46 f8 00 80
    1829     jmp short 01d2fh                          ; eb 0f
    1830     cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1831     jne short 01d2ch                          ; 75 06
    1832     shr word [bp-008h], 002h                  ; c1 6e f8 02
    1833     jmp short 01d2fh                          ; eb 03
    1834     shr word [bp-008h], 1                     ; d1 6e f8
     1856    jne short 01d52h                          ; 75 14
     1857    cmp byte [bp-006h], 001h                  ; 80 7e fa 01
     1858    jne short 01d4bh                          ; 75 07
     1859    mov word [bp-00ch], 04000h                ; c7 46 f4 00 40
     1860    jmp short 01d61h                          ; eb 16
     1861    mov word [bp-00ch], 08000h                ; c7 46 f4 00 80
     1862    jmp short 01d61h                          ; eb 0f
     1863    cmp byte [bp-006h], 001h                  ; 80 7e fa 01
     1864    jne short 01d5eh                          ; 75 06
     1865    shr word [bp-00ch], 002h                  ; c1 6e f4 02
     1866    jmp short 01d61h                          ; eb 03
     1867    shr word [bp-00ch], 1                     ; d1 6e f4
    18351868    lea dx, [bx+007h]                         ; 8d 57 07
    18361869    in AL, DX                                 ; ec
     
    18381871    ; sub ah, ah                                ; 2a e4
    18391872    test AL, strict byte 080h                 ; a8 80
    1840     je short 01d48h                           ; 74 0f
    1841     mov dx, word [bp-018h]                    ; 8b 56 e8
     1873    je short 01d7ah                           ; 74 0f
     1874    mov dx, word [bp-01ch]                    ; 8b 56 e4
    18421875    add dx, strict byte 00006h                ; 83 c2 06
    18431876    mov AL, strict byte 008h                  ; b0 08
    18441877    out DX, AL                                ; ee
    18451878    mov dx, strict word 00001h                ; ba 01 00
    1846     jmp near 01f07h                           ; e9 bf 01
    1847     mov es, [bp-006h]                         ; 8e 46 fa
     1879    jmp near 01f39h                           ; e9 bf 01
     1880    mov es, [bp-00ah]                         ; 8e 46 f6
    18481881    mov ax, word [es:si]                      ; 26 8b 04
    1849     mov word [bp-01ch], ax                    ; 89 46 e4
     1882    mov word [bp-020h], ax                    ; 89 46 e0
    18501883    mov ax, word [es:si+002h]                 ; 26 8b 44 02
    1851     mov word [bp-01ah], ax                    ; 89 46 e6
     1884    mov word [bp-01eh], ax                    ; 89 46 e2
    18521885    mov di, word [es:si+004h]                 ; 26 8b 7c 04
    18531886    mov ax, word [es:si+006h]                 ; 26 8b 44 06
    1854     mov word [bp-00ah], ax                    ; 89 46 f6
     1887    mov word [bp-00eh], ax                    ; 89 46 f2
    18551888    mov ax, word [es:si+012h]                 ; 26 8b 44 12
    1856     mov word [bp-00ch], ax                    ; 89 46 f4
     1889    mov word [bp-010h], ax                    ; 89 46 f0
    18571890    mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
    1858     mov word [bp-00eh], ax                    ; 89 46 f2
     1891    mov word [bp-012h], ax                    ; 89 46 ee
    18591892    mov ax, word [es:si+010h]                 ; 26 8b 44 10
    1860     mov word [bp-014h], ax                    ; 89 46 ec
    1861     mov ax, word [bp-00ch]                    ; 8b 46 f4
     1893    mov word [bp-018h], ax                    ; 89 46 e8
     1894    mov ax, word [bp-010h]                    ; 8b 46 f0
    18621895    test ax, ax                               ; 85 c0
    1863     jne short 01de6h                          ; 75 67
    1864     mov dx, word [bp-01ch]                    ; 8b 56 e4
    1865     add dx, word [bp-010h]                    ; 03 56 f0
    1866     adc ax, word [bp-01ah]                    ; 13 46 e6
     1896    jne short 01e18h                          ; 75 67
     1897    mov dx, word [bp-020h]                    ; 8b 56 e0
     1898    add dx, word [bp-014h]                    ; 03 56 ec
     1899    adc ax, word [bp-01eh]                    ; 13 46 e2
    18671900    cmp ax, 01000h                            ; 3d 00 10
    1868     jnbe short 01d8fh                         ; 77 02
    1869     jne short 01dbah                          ; 75 2b
    1870     mov ax, word [bp-01ah]                    ; 8b 46 e6
     1901    jnbe short 01dc1h                         ; 77 02
     1902    jne short 01dech                          ; 75 2b
     1903    mov ax, word [bp-01eh]                    ; 8b 46 e2
    18711904    xor al, al                                ; 30 c0
    18721905    shr ax, 008h                              ; c1 e8 08
    1873     mov word [bp-00ch], ax                    ; 89 46 f4
    1874     mov ax, word [bp-010h]                    ; 8b 46 f0
     1906    mov word [bp-010h], ax                    ; 89 46 f0
     1907    mov ax, word [bp-014h]                    ; 8b 46 ec
    18751908    xor al, al                                ; 30 c0
    18761909    shr ax, 008h                              ; c1 e8 08
     
    18781911    out DX, AL                                ; ee
    18791912    lea dx, [bx+003h]                         ; 8d 57 03
    1880     mov al, byte [bp-00ch]                    ; 8a 46 f4
     1913    mov al, byte [bp-010h]                    ; 8a 46 f0
    18811914    out DX, AL                                ; ee
    18821915    lea dx, [bx+004h]                         ; 8d 57 04
     
    18851918    lea dx, [bx+005h]                         ; 8d 57 05
    18861919    out DX, AL                                ; ee
    1887     mov byte [bp-019h], al                    ; 88 46 e7
    1888     mov ax, word [bp-01ch]                    ; 8b 46 e4
     1920    mov byte [bp-01dh], al                    ; 88 46 e3
     1921    mov ax, word [bp-020h]                    ; 8b 46 e0
    18891922    xor ah, ah                                ; 30 e4
    1890     mov word [bp-00ch], ax                    ; 89 46 f4
     1923    mov word [bp-010h], ax                    ; 89 46 f0
    18911924    mov cx, strict word 00008h                ; b9 08 00
    1892     shr word [bp-01ah], 1                     ; d1 6e e6
    1893     rcr word [bp-01ch], 1                     ; d1 5e e4
    1894     loop 01dc5h                               ; e2 f8
    1895     mov ax, word [bp-01ch]                    ; 8b 46 e4
    1896     mov word [bp-00eh], ax                    ; 89 46 f2
    1897     mov ax, word [bp-01ah]                    ; 8b 46 e6
    1898     mov word [bp-01ch], ax                    ; 89 46 e4
    1899     mov word [bp-01ah], strict word 00000h    ; c7 46 e6 00 00
     1925    shr word [bp-01eh], 1                     ; d1 6e e2
     1926    rcr word [bp-020h], 1                     ; d1 5e e0
     1927    loop 01df7h                               ; e2 f8
     1928    mov ax, word [bp-020h]                    ; 8b 46 e0
     1929    mov word [bp-012h], ax                    ; 89 46 ee
     1930    mov ax, word [bp-01eh]                    ; 8b 46 e2
     1931    mov word [bp-020h], ax                    ; 89 46 e0
     1932    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    19001933    and ax, strict word 0000fh                ; 25 0f 00
    19011934    or AL, strict byte 040h                   ; 0c 40
    1902     mov word [bp-014h], ax                    ; 89 46 ec
    1903     mov dx, word [bp-018h]                    ; 8b 56 e8
     1935    mov word [bp-018h], ax                    ; 89 46 e8
     1936    mov dx, word [bp-01ch]                    ; 8b 56 e4
    19041937    add dx, strict byte 00006h                ; 83 c2 06
    19051938    mov AL, strict byte 00ah                  ; b0 0a
     
    19091942    out DX, AL                                ; ee
    19101943    lea dx, [bx+002h]                         ; 8d 57 02
     1944    mov al, byte [bp-014h]                    ; 8a 46 ec
     1945    out DX, AL                                ; ee
     1946    lea dx, [bx+003h]                         ; 8d 57 03
    19111947    mov al, byte [bp-010h]                    ; 8a 46 f0
    19121948    out DX, AL                                ; ee
    1913     lea dx, [bx+003h]                         ; 8d 57 03
    1914     mov al, byte [bp-00ch]                    ; 8a 46 f4
    1915     out DX, AL                                ; ee
    1916     mov ax, word [bp-00eh]                    ; 8b 46 f2
     1949    mov ax, word [bp-012h]                    ; 8b 46 ee
    19171950    lea dx, [bx+004h]                         ; 8d 57 04
    19181951    out DX, AL                                ; ee
     
    19201953    lea dx, [bx+005h]                         ; 8d 57 05
    19211954    out DX, AL                                ; ee
    1922     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    1923     je short 01e1ch                           ; 74 05
     1955    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     1956    je short 01e4eh                           ; 74 05
    19241957    mov ax, 000b0h                            ; b8 b0 00
    1925     jmp short 01e1fh                          ; eb 03
     1958    jmp short 01e51h                          ; eb 03
    19261959    mov ax, 000a0h                            ; b8 a0 00
    1927     movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     1960    movzx dx, byte [bp-018h]                  ; 0f b6 56 e8
    19281961    or ax, dx                                 ; 09 d0
    19291962    lea dx, [bx+006h]                         ; 8d 57 06
    19301963    out DX, AL                                ; ee
    19311964    lea dx, [bx+007h]                         ; 8d 57 07
    1932     mov al, byte [bp-012h]                    ; 8a 46 ee
    1933     out DX, AL                                ; ee
    1934     mov ax, word [bp-012h]                    ; 8b 46 ee
     1965    mov al, byte [bp-016h]                    ; 8a 46 ea
     1966    out DX, AL                                ; ee
     1967    mov ax, word [bp-016h]                    ; 8b 46 ea
    19351968    cmp ax, 000c4h                            ; 3d c4 00
    1936     je short 01e3dh                           ; 74 05
     1969    je short 01e6fh                           ; 74 05
    19371970    cmp ax, strict word 00029h                ; 3d 29 00
    1938     jne short 01e4ah                          ; 75 0d
    1939     mov ax, word [bp-010h]                    ; 8b 46 f0
    1940     mov word [bp-016h], ax                    ; 89 46 ea
    1941     mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    1942     jmp short 01e4fh                          ; eb 05
    1943     mov word [bp-016h], strict word 00001h    ; c7 46 ea 01 00
     1971    jne short 01e7ch                          ; 75 0d
     1972    mov ax, word [bp-014h]                    ; 8b 46 ec
     1973    mov word [bp-01ah], ax                    ; 89 46 e6
     1974    mov word [bp-014h], strict word 00001h    ; c7 46 ec 01 00
     1975    jmp short 01e81h                          ; eb 05
     1976    mov word [bp-01ah], strict word 00001h    ; c7 46 e6 01 00
    19441977    lea dx, [bx+007h]                         ; 8d 57 07
    19451978    in AL, DX                                 ; ec
     
    19481981    mov dl, al                                ; 88 c2
    19491982    test AL, strict byte 080h                 ; a8 80
    1950     jne short 01e4fh                          ; 75 f4
     1983    jne short 01e81h                          ; 75 f4
    19511984    test AL, strict byte 001h                 ; a8 01
    1952     je short 01e6eh                           ; 74 0f
    1953     mov dx, word [bp-018h]                    ; 8b 56 e8
     1985    je short 01ea0h                           ; 74 0f
     1986    mov dx, word [bp-01ch]                    ; 8b 56 e4
    19541987    add dx, strict byte 00006h                ; 83 c2 06
    19551988    mov AL, strict byte 008h                  ; b0 08
    19561989    out DX, AL                                ; ee
    19571990    mov dx, strict word 00002h                ; ba 02 00
    1958     jmp near 01f07h                           ; e9 99 00
     1991    jmp near 01f39h                           ; e9 99 00
    19591992    test dl, 008h                             ; f6 c2 08
    1960     jne short 01e82h                          ; 75 0f
    1961     mov dx, word [bp-018h]                    ; 8b 56 e8
     1993    jne short 01eb4h                          ; 75 0f
     1994    mov dx, word [bp-01ch]                    ; 8b 56 e4
    19621995    add dx, strict byte 00006h                ; 83 c2 06
    19631996    mov AL, strict byte 008h                  ; b0 08
    19641997    out DX, AL                                ; ee
    19651998    mov dx, strict word 00003h                ; ba 03 00
    1966     jmp near 01f07h                           ; e9 85 00
     1999    jmp near 01f39h                           ; e9 85 00
    19672000    sti                                       ; fb
    19682001    cmp di, 0f800h                            ; 81 ff 00 f8
    1969     jc short 01e96h                           ; 72 0d
     2002    jc short 01ec8h                           ; 72 0d
    19702003    sub di, 00800h                            ; 81 ef 00 08
    1971     mov ax, word [bp-00ah]                    ; 8b 46 f6
     2004    mov ax, word [bp-00eh]                    ; 8b 46 f2
    19722005    add ax, 00080h                            ; 05 80 00
    1973     mov word [bp-00ah], ax                    ; 89 46 f6
    1974     cmp byte [bp-002h], 001h                  ; 80 7e fe 01
    1975     jne short 01ea9h                          ; 75 0d
     2006    mov word [bp-00eh], ax                    ; 89 46 f2
     2007    cmp byte [bp-006h], 001h                  ; 80 7e fa 01
     2008    jne short 01edbh                          ; 75 0d
    19762009    mov dx, bx                                ; 89 da
    1977     mov cx, word [bp-008h]                    ; 8b 4e f8
    1978     mov es, [bp-00ah]                         ; 8e 46 f6
     2010    mov cx, word [bp-00ch]                    ; 8b 4e f4
     2011    mov es, [bp-00eh]                         ; 8e 46 f2
    19792012    db  0f3h, 066h, 06dh
    19802013    ; rep insd                                  ; f3 66 6d
    1981     jmp short 01eb3h                          ; eb 0a
     2014    jmp short 01ee5h                          ; eb 0a
    19822015    mov dx, bx                                ; 89 da
    1983     mov cx, word [bp-008h]                    ; 8b 4e f8
     2016    mov cx, word [bp-00ch]                    ; 8b 4e f4
     2017    mov es, [bp-00eh]                         ; 8e 46 f2
     2018    rep insw                                  ; f3 6d
     2019    mov ax, word [bp-01ah]                    ; 8b 46 e6
    19842020    mov es, [bp-00ah]                         ; 8e 46 f6
    1985     rep insw                                  ; f3 6d
    1986     mov ax, word [bp-016h]                    ; 8b 46 ea
    1987     mov es, [bp-006h]                         ; 8e 46 fa
    19882021    add word [es:si+014h], ax                 ; 26 01 44 14
    1989     dec word [bp-010h]                        ; ff 4e f0
     2022    dec word [bp-014h]                        ; ff 4e ec
    19902023    lea dx, [bx+007h]                         ; 8d 57 07
    19912024    in AL, DX                                 ; ec
     
    19942027    mov dl, al                                ; 88 c2
    19952028    test AL, strict byte 080h                 ; a8 80
    1996     jne short 01ec0h                          ; 75 f4
    1997     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    1998     jne short 01ee6h                          ; 75 14
     2029    jne short 01ef2h                          ; 75 f4
     2030    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
     2031    jne short 01f18h                          ; 75 14
    19992032    and AL, strict byte 0c9h                  ; 24 c9
    20002033    cmp AL, strict byte 040h                  ; 3c 40
    2001     je short 01efch                           ; 74 24
    2002     mov dx, word [bp-018h]                    ; 8b 56 e8
     2034    je short 01f2eh                           ; 74 24
     2035    mov dx, word [bp-01ch]                    ; 8b 56 e4
    20032036    add dx, strict byte 00006h                ; 83 c2 06
    20042037    mov AL, strict byte 008h                  ; b0 08
    20052038    out DX, AL                                ; ee
    20062039    mov dx, strict word 00004h                ; ba 04 00
    2007     jmp short 01f07h                          ; eb 21
     2040    jmp short 01f39h                          ; eb 21
    20082041    mov al, dl                                ; 88 d0
    20092042    and AL, strict byte 0c9h                  ; 24 c9
    20102043    cmp AL, strict byte 048h                  ; 3c 48
    2011     je short 01e83h                           ; 74 95
    2012     mov dx, word [bp-018h]                    ; 8b 56 e8
     2044    je short 01eb5h                           ; 74 95
     2045    mov dx, word [bp-01ch]                    ; 8b 56 e4
    20132046    add dx, strict byte 00006h                ; 83 c2 06
    20142047    mov AL, strict byte 008h                  ; b0 08
    20152048    out DX, AL                                ; ee
    20162049    mov dx, strict word 00005h                ; ba 05 00
    2017     jmp short 01f07h                          ; eb 0b
    2018     mov dx, word [bp-018h]                    ; 8b 56 e8
     2050    jmp short 01f39h                          ; eb 0b
     2051    mov dx, word [bp-01ch]                    ; 8b 56 e4
    20192052    add dx, strict byte 00006h                ; 83 c2 06
    20202053    mov AL, strict byte 008h                  ; b0 08
     
    20222055    xor dx, dx                                ; 31 d2
    20232056    mov ax, dx                                ; 89 d0
    2024     leave                                     ; c9
     2057    lea sp, [bp-004h]                         ; 8d 66 fc
    20252058    pop di                                    ; 5f
    20262059    pop si                                    ; 5e
     2060    pop bp                                    ; 5d
    20272061    retn                                      ; c3
    2028 _ata_detect:                                 ; 0xf1f0d LB 0x611
     2062_ata_detect:                                 ; 0xf1f42 LB 0x617
     2063    push bp                                   ; 55
     2064    mov bp, sp                                ; 89 e5
    20292065    push si                                   ; 56
    20302066    push di                                   ; 57
    2031     enter 0025ch, 000h                        ; c8 5c 02 00
     2067    sub sp, 0025ch                            ; 81 ec 5c 02
    20322068    mov dx, strict word 0000eh                ; ba 0e 00
    20332069    mov ax, strict word 00040h                ; b8 40 00
    2034     call 0161ch                               ; e8 00 f7
    2035     mov word [bp-020h], ax                    ; 89 46 e0
     2070    call 0161ch                               ; e8 c8 f6
     2071    mov word [bp-024h], ax                    ; 89 46 dc
    20362072    mov di, 00122h                            ; bf 22 01
    20372073    mov es, ax                                ; 8e c0
    2038     mov word [bp-024h], di                    ; 89 7e dc
    2039     mov word [bp-022h], ax                    ; 89 46 de
     2074    mov word [bp-028h], di                    ; 89 7e d8
     2075    mov word [bp-026h], ax                    ; 89 46 da
    20402076    mov byte [es:di+001c0h], 000h             ; 26 c6 85 c0 01 00
    20412077    db  066h, 026h, 0c7h, 085h, 0c2h, 001h, 0f0h, 001h, 0f0h, 003h
     
    20472083    mov byte [es:di+001c7h], 00fh             ; 26 c6 85 c7 01 0f
    20482084    xor al, al                                ; 30 c0
     2085    mov byte [bp-00ah], al                    ; 88 46 f6
    20492086    mov byte [bp-006h], al                    ; 88 46 fa
    2050     mov byte [bp-002h], al                    ; 88 46 fe
    2051     mov byte [bp-00ah], al                    ; 88 46 f6
    2052     jmp near 024ach                           ; e9 48 05
     2087    mov byte [bp-00eh], al                    ; 88 46 f2
     2088    jmp near 024e4h                           ; e9 48 05
    20532089    mov ax, 000a0h                            ; b8 a0 00
    20542090    lea dx, [si+006h]                         ; 8d 54 06
     
    20822118    ; sub ah, ah                                ; 2a e4
    20832119    cmp cl, 055h                              ; 80 f9 55
    2084     jne near 0205eh                           ; 0f 85 c0 00
     2120    jne near 02096h                           ; 0f 85 c0 00
    20852121    cmp AL, strict byte 0aah                  ; 3c aa
    2086     jne near 0205eh                           ; 0f 85 ba 00
    2087     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     2122    jne near 02096h                           ; 0f 85 ba 00
     2123    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    20882124    imul ax, ax, strict byte 00018h           ; 6b c0 18
    2089     les bx, [bp-024h]                         ; c4 5e dc
     2125    les bx, [bp-028h]                         ; c4 5e d8
    20902126    add bx, ax                                ; 01 c3
    20912127    mov byte [es:bx+01eh], 001h               ; 26 c6 47 1e 01
    2092     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    2093     call 01be0h                               ; e8 24 fc
    2094     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2095     je short 01fc7h                           ; 74 05
     2128    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     2129    call 01c0ch                               ; e8 18 fc
     2130    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     2131    je short 01fffh                           ; 74 05
    20962132    mov ax, 000b0h                            ; b8 b0 00
    2097     jmp short 01fcah                          ; eb 03
     2133    jmp short 02002h                          ; eb 03
    20982134    mov ax, 000a0h                            ; b8 a0 00
    20992135    lea dx, [si+006h]                         ; 8d 54 06
     
    21092145    ; sub ah, ah                                ; 2a e4
    21102146    cmp bl, 001h                              ; 80 fb 01
    2111     jne near 0205eh                           ; 0f 85 7b 00
     2147    jne near 02096h                           ; 0f 85 7b 00
    21122148    cmp al, bl                                ; 38 d8
    2113     jne near 0205eh                           ; 0f 85 75 00
     2149    jne near 02096h                           ; 0f 85 75 00
    21142150    lea dx, [si+004h]                         ; 8d 54 04
    21152151    in AL, DX                                 ; ec
     
    21232159    ; sub ah, ah                                ; 2a e4
    21242160    mov cx, ax                                ; 89 c1
    2125     mov byte [bp-008h], al                    ; 88 46 f8
     2161    mov byte [bp-00ch], al                    ; 88 46 f4
    21262162    lea dx, [si+007h]                         ; 8d 54 07
    21272163    in AL, DX                                 ; ec
     
    21292165    ; sub ah, ah                                ; 2a e4
    21302166    cmp bl, 014h                              ; 80 fb 14
    2131     jne short 02021h                          ; 75 18
     2167    jne short 02059h                          ; 75 18
    21322168    cmp cl, 0ebh                              ; 80 f9 eb
    2133     jne short 02021h                          ; 75 13
    2134     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     2169    jne short 02059h                          ; 75 13
     2170    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    21352171    imul ax, ax, strict byte 00018h           ; 6b c0 18
    2136     les bx, [bp-024h]                         ; c4 5e dc
     2172    les bx, [bp-028h]                         ; c4 5e d8
    21372173    add bx, ax                                ; 01 c3
    21382174    mov byte [es:bx+01eh], 003h               ; 26 c6 47 1e 03
    2139     jmp short 0205eh                          ; eb 3d
     2175    jmp short 02096h                          ; eb 3d
    21402176    test bh, bh                               ; 84 ff
    2141     jne short 02043h                          ; 75 1e
    2142     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    2143     jne short 02043h                          ; 75 18
     2177    jne short 0207bh                          ; 75 1e
     2178    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     2179    jne short 0207bh                          ; 75 18
    21442180    test al, al                               ; 84 c0
    2145     je short 02043h                           ; 74 14
    2146     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     2181    je short 0207bh                           ; 74 14
     2182    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    21472183    imul bx, bx, strict byte 00018h           ; 6b db 18
    2148     mov es, [bp-022h]                         ; 8e 46 de
    2149     add bx, word [bp-024h]                    ; 03 5e dc
     2184    mov es, [bp-026h]                         ; 8e 46 da
     2185    add bx, word [bp-028h]                    ; 03 5e d8
    21502186    mov byte [es:bx+01eh], 002h               ; 26 c6 47 1e 02
    2151     jmp short 0205eh                          ; eb 1b
     2187    jmp short 02096h                          ; eb 1b
    21522188    cmp bh, 0ffh                              ; 80 ff ff
    2153     jne short 0205eh                          ; 75 16
    2154     cmp bh, byte [bp-008h]                    ; 3a 7e f8
    2155     jne short 0205eh                          ; 75 11
    2156     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     2189    jne short 02096h                          ; 75 16
     2190    cmp bh, byte [bp-00ch]                    ; 3a 7e f4
     2191    jne short 02096h                          ; 75 11
     2192    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    21572193    imul ax, ax, strict byte 00018h           ; 6b c0 18
    2158     les bx, [bp-024h]                         ; c4 5e dc
     2194    les bx, [bp-028h]                         ; c4 5e d8
    21592195    add bx, ax                                ; 01 c3
    21602196    mov byte [es:bx+01eh], 000h               ; 26 c6 47 1e 00
    2161     mov dx, word [bp-028h]                    ; 8b 56 d8
     2197    mov dx, word [bp-02ch]                    ; 8b 56 d4
    21622198    add dx, strict byte 00006h                ; 83 c2 06
    21632199    mov AL, strict byte 008h                  ; b0 08
    21642200    out DX, AL                                ; ee
    2165     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
     2201    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
    21662202    imul si, si, strict byte 00018h           ; 6b f6 18
    2167     mov es, [bp-022h]                         ; 8e 46 de
    2168     add si, word [bp-024h]                    ; 03 76 dc
     2203    mov es, [bp-026h]                         ; 8e 46 da
     2204    add si, word [bp-028h]                    ; 03 76 d8
    21692205    mov al, byte [es:si+01eh]                 ; 26 8a 44 1e
    2170     mov byte [bp-00ch], al                    ; 88 46 f4
     2206    mov byte [bp-010h], al                    ; 88 46 f0
    21712207    cmp AL, strict byte 002h                  ; 3c 02
    2172     jne near 02284h                           ; 0f 85 03 02
     2208    jne near 022bch                           ; 0f 85 03 02
    21732209    mov byte [es:si+01fh], 0ffh               ; 26 c6 44 1f ff
    21742210    mov byte [es:si+022h], 000h               ; 26 c6 44 22 00
    2175     lea dx, [bp-0025ch]                       ; 8d 96 a4 fd
    2176     mov bx, word [bp-024h]                    ; 8b 5e dc
     2211    lea dx, [bp-00260h]                       ; 8d 96 a0 fd
     2212    mov bx, word [bp-028h]                    ; 8b 5e d8
    21772213    mov word [es:bx+004h], dx                 ; 26 89 57 04
    21782214    mov [es:bx+006h], ss                      ; 26 8c 57 06
    2179     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2215    mov al, byte [bp-00eh]                    ; 8a 46 f2
    21802216    mov byte [es:bx+008h], al                 ; 26 88 47 08
    21812217    mov cx, strict word 00001h                ; b9 01 00
    21822218    mov bx, 000ech                            ; bb ec 00
    2183     mov ax, word [bp-024h]                    ; 8b 46 dc
     2219    mov ax, word [bp-028h]                    ; 8b 46 d8
    21842220    mov dx, es                                ; 8c c2
    2185     call 01cbah                               ; e8 0b fc
     2221    call 01ceah                               ; e8 03 fc
    21862222    test ax, ax                               ; 85 c0
    2187     je short 020beh                           ; 74 0b
     2223    je short 020f6h                           ; 74 0b
    21882224    push 00094h                               ; 68 94 00
    21892225    push strict byte 00007h                   ; 6a 07
    2190     call 018e9h                               ; e8 2e f8
     2226    call 0190dh                               ; e8 1a f8
    21912227    add sp, strict byte 00004h                ; 83 c4 04
    2192     test byte [bp-0025ch], 080h               ; f6 86 a4 fd 80
     2228    test byte [bp-00260h], 080h               ; f6 86 a0 fd 80
    21932229    db  00fh, 095h, 0c0h
    21942230    ; setne al                                  ; 0f 95 c0
    21952231    xor ah, ah                                ; 30 e4
    2196     mov byte [bp-010h], al                    ; 88 46 f0
    2197     cmp byte [bp-001fch], 000h                ; 80 be 04 fe 00
     2232    mov byte [bp-014h], al                    ; 88 46 ec
     2233    cmp byte [bp-00200h], 000h                ; 80 be 00 fe 00
    21982234    db  00fh, 095h, 0c0h
    21992235    ; setne al                                  ; 0f 95 c0
    22002236    xor ah, ah                                ; 30 e4
    2201     mov byte [bp-012h], al                    ; 88 46 ee
    2202     mov word [bp-01eh], 00200h                ; c7 46 e2 00 02
     2237    mov byte [bp-016h], al                    ; 88 46 ea
     2238    mov word [bp-022h], 00200h                ; c7 46 de 00 02
     2239    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
     2240    mov word [bp-01ah], ax                    ; 89 46 e6
    22032241    mov ax, word [bp-0025ah]                  ; 8b 86 a6 fd
    2204     mov word [bp-016h], ax                    ; 89 46 ea
    2205     mov ax, word [bp-00256h]                  ; 8b 86 aa fd
    2206     mov word [bp-018h], ax                    ; 89 46 e8
    2207     mov ax, word [bp-00250h]                  ; 8b 86 b0 fd
    2208     mov word [bp-01ah], ax                    ; 89 46 e6
    2209     mov ax, word [bp-001e4h]                  ; 8b 86 1c fe
    22102242    mov word [bp-01ch], ax                    ; 89 46 e4
    2211     mov si, word [bp-001e2h]                  ; 8b b6 1e fe
     2243    mov ax, word [bp-00254h]                  ; 8b 86 ac fd
     2244    mov word [bp-01eh], ax                    ; 89 46 e2
     2245    mov ax, word [bp-001e8h]                  ; 8b 86 18 fe
     2246    mov word [bp-020h], ax                    ; 89 46 e0
     2247    mov si, word [bp-001e6h]                  ; 8b b6 1a fe
    22122248    cmp si, 00fffh                            ; 81 fe ff 0f
    2213     jne short 02113h                          ; 75 10
     2249    jne short 0214bh                          ; 75 10
    22142250    cmp ax, strict word 0ffffh                ; 3d ff ff
    2215     jne short 02113h                          ; 75 0b
    2216     mov ax, word [bp-00194h]                  ; 8b 86 6c fe
    2217     mov word [bp-01ch], ax                    ; 89 46 e4
    2218     mov si, word [bp-00192h]                  ; 8b b6 6e fe
    2219     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2251    jne short 0214bh                          ; 75 0b
     2252    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
     2253    mov word [bp-020h], ax                    ; 89 46 e0
     2254    mov si, word [bp-00196h]                  ; 8b b6 6a fe
     2255    mov al, byte [bp-00eh]                    ; 8a 46 f2
    22202256    cmp AL, strict byte 001h                  ; 3c 01
    2221     jc short 02126h                           ; 72 0c
    2222     jbe short 0212eh                          ; 76 12
     2257    jc short 0215eh                           ; 72 0c
     2258    jbe short 02166h                          ; 76 12
    22232259    cmp AL, strict byte 003h                  ; 3c 03
    2224     je short 02136h                           ; 74 16
     2260    je short 0216eh                           ; 74 16
    22252261    cmp AL, strict byte 002h                  ; 3c 02
    2226     je short 02132h                           ; 74 0e
    2227     jmp short 02173h                          ; eb 4d
     2262    je short 0216ah                           ; 74 0e
     2263    jmp short 021abh                          ; eb 4d
    22282264    test al, al                               ; 84 c0
    2229     jne short 02173h                          ; 75 49
     2265    jne short 021abh                          ; 75 49
    22302266    mov BL, strict byte 01eh                  ; b3 1e
    2231     jmp short 02138h                          ; eb 0a
     2267    jmp short 02170h                          ; eb 0a
    22322268    mov BL, strict byte 026h                  ; b3 26
    2233     jmp short 02138h                          ; eb 06
     2269    jmp short 02170h                          ; eb 06
    22342270    mov BL, strict byte 067h                  ; b3 67
    2235     jmp short 02138h                          ; eb 02
     2271    jmp short 02170h                          ; eb 02
    22362272    mov BL, strict byte 070h                  ; b3 70
    22372273    mov al, bl                                ; 88 d8
     
    22392275    ; inc al                                    ; fe c0
    22402276    xor ah, ah                                ; 30 e4
    2241     call 0165ch                               ; e8 1b f5
     2277    call 0165ch                               ; e8 e3 f4
    22422278    xor ah, ah                                ; 30 e4
    22432279    mov dx, ax                                ; 89 c2
    22442280    sal dx, 008h                              ; c1 e2 08
    22452281    movzx ax, bl                              ; 0f b6 c3
    2246     call 0165ch                               ; e8 0e f5
     2282    call 0165ch                               ; e8 d6 f4
    22472283    xor ah, ah                                ; 30 e4
    22482284    add ax, dx                                ; 01 d0
    2249     mov word [bp-030h], ax                    ; 89 46 d0
     2285    mov word [bp-034h], ax                    ; 89 46 cc
    22502286    mov al, bl                                ; 88 d8
    22512287    add AL, strict byte 002h                  ; 04 02
    22522288    xor ah, ah                                ; 30 e4
    2253     call 0165ch                               ; e8 fe f4
     2289    call 0165ch                               ; e8 c6 f4
    22542290    xor ah, ah                                ; 30 e4
    2255     mov word [bp-032h], ax                    ; 89 46 ce
     2291    mov word [bp-036h], ax                    ; 89 46 ca
    22562292    mov al, bl                                ; 88 d8
    22572293    add AL, strict byte 007h                  ; 04 07
    22582294    xor ah, ah                                ; 30 e4
    2259     call 0165ch                               ; e8 f0 f4
     2295    call 0165ch                               ; e8 b8 f4
    22602296    xor ah, ah                                ; 30 e4
    2261     mov word [bp-02eh], ax                    ; 89 46 d2
    2262     jmp short 02180h                          ; eb 0d
    2263     mov bx, word [bp-01ch]                    ; 8b 5e e4
     2297    mov word [bp-032h], ax                    ; 89 46 ce
     2298    jmp short 021b8h                          ; eb 0d
     2299    mov bx, word [bp-020h]                    ; 8b 5e e0
    22642300    mov cx, si                                ; 89 f1
    22652301    mov dx, ss                                ; 8c d2
    2266     lea ax, [bp-032h]                         ; 8d 46 ce
    2267     call 0529eh                               ; e8 1e 31
    2268     mov bx, 00d32h                            ; bb 32 0d
     2302    lea ax, [bp-036h]                         ; 8d 46 ca
     2303    call 05338h                               ; e8 80 31
     2304    mov bx, 00d38h                            ; bb 38 0d
    22692305    mov cx, ds                                ; 8c d9
    22702306    mov ax, strict word 00004h                ; b8 04 00
    2271     call 018aeh                               ; e8 23 f7
    2272     mov ax, word [bp-02eh]                    ; 8b 46 d2
    2273     push ax                                   ; 50
     2307    call 018cch                               ; e8 09 f7
    22742308    mov ax, word [bp-032h]                    ; 8b 46 ce
    22752309    push ax                                   ; 50
    2276     mov ax, word [bp-030h]                    ; 8b 46 d0
     2310    mov ax, word [bp-036h]                    ; 8b 46 ca
    22772311    push ax                                   ; 50
     2312    mov ax, word [bp-034h]                    ; 8b 46 cc
     2313    push ax                                   ; 50
     2314    push word [bp-01eh]                       ; ff 76 e2
     2315    push word [bp-01ch]                       ; ff 76 e4
    22782316    push word [bp-01ah]                       ; ff 76 e6
    2279     push word [bp-018h]                       ; ff 76 e8
    2280     push word [bp-016h]                       ; ff 76 ea
    2281     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     2317    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    22822318    push ax                                   ; 50
    2283     movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     2319    movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    22842320    push ax                                   ; 50
    22852321    push 000bdh                               ; 68 bd 00
    22862322    push strict byte 00004h                   ; 6a 04
    2287     call 018e9h                               ; e8 37 f7
     2323    call 0190dh                               ; e8 23 f7
    22882324    add sp, strict byte 00014h                ; 83 c4 14
    2289     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     2325    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    22902326    imul ax, ax, strict byte 00018h           ; 6b c0 18
    2291     les di, [bp-024h]                         ; c4 7e dc
     2327    les di, [bp-028h]                         ; c4 7e d8
    22922328    add di, ax                                ; 01 c7
    22932329    mov byte [es:di+01fh], 0ffh               ; 26 c6 45 1f ff
    2294     mov al, byte [bp-010h]                    ; 8a 46 f0
     2330    mov al, byte [bp-014h]                    ; 8a 46 ec
    22952331    mov byte [es:di+020h], al                 ; 26 88 45 20
    2296     mov al, byte [bp-012h]                    ; 8a 46 ee
     2332    mov al, byte [bp-016h]                    ; 8a 46 ea
    22972333    mov byte [es:di+022h], al                 ; 26 88 45 22
     2334    mov ax, word [bp-022h]                    ; 8b 46 de
     2335    mov word [es:di+024h], ax                 ; 26 89 45 24
     2336    mov ax, word [bp-01ch]                    ; 8b 46 e4
     2337    mov word [es:di+02ch], ax                 ; 26 89 45 2c
     2338    mov ax, word [bp-01ah]                    ; 8b 46 e6
     2339    mov word [es:di+02eh], ax                 ; 26 89 45 2e
    22982340    mov ax, word [bp-01eh]                    ; 8b 46 e2
    2299     mov word [es:di+024h], ax                 ; 26 89 45 24
    2300     mov ax, word [bp-018h]                    ; 8b 46 e8
    2301     mov word [es:di+02ch], ax                 ; 26 89 45 2c
    2302     mov ax, word [bp-016h]                    ; 8b 46 ea
    2303     mov word [es:di+02eh], ax                 ; 26 89 45 2e
    2304     mov ax, word [bp-01ah]                    ; 8b 46 e6
    23052341    mov word [es:di+030h], ax                 ; 26 89 45 30
    2306     mov ax, word [bp-01ch]                    ; 8b 46 e4
     2342    mov ax, word [bp-020h]                    ; 8b 46 e0
    23072343    mov word [es:di+032h], ax                 ; 26 89 45 32
    23082344    mov word [es:di+034h], si                 ; 26 89 75 34
     
    23112347    push SS                                   ; 16
    23122348    pop DS                                    ; 1f
    2313     lea si, [bp-032h]                         ; 8d 76 ce
     2349    lea si, [bp-036h]                         ; 8d 76 ca
    23142350    movsw                                     ; a5
    23152351    movsw                                     ; a5
    23162352    movsw                                     ; a5
    23172353    pop DS                                    ; 1f
    2318     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2354    mov al, byte [bp-00eh]                    ; 8a 46 f2
    23192355    cmp AL, strict byte 002h                  ; 3c 02
    2320     jnc short 0226fh                          ; 73 60
     2356    jnc short 022a7h                          ; 73 60
    23212357    test al, al                               ; 84 c0
    2322     jne short 02218h                          ; 75 05
     2358    jne short 02250h                          ; 75 05
    23232359    mov di, strict word 0003dh                ; bf 3d 00
    2324     jmp short 0221bh                          ; eb 03
     2360    jmp short 02253h                          ; eb 03
    23252361    mov di, strict word 0004dh                ; bf 4d 00
    2326     mov dx, word [bp-020h]                    ; 8b 56 e0
    2327     mov ax, word [bp-030h]                    ; 8b 46 d0
     2362    mov dx, word [bp-024h]                    ; 8b 56 dc
     2363    mov ax, word [bp-034h]                    ; 8b 46 cc
    23282364    mov es, dx                                ; 8e c2
    23292365    mov word [es:di], ax                      ; 26 89 05
    2330     mov al, byte [bp-032h]                    ; 8a 46 ce
     2366    mov al, byte [bp-036h]                    ; 8a 46 ca
    23312367    mov byte [es:di+002h], al                 ; 26 88 45 02
    23322368    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
    2333     mov al, byte [bp-01ah]                    ; 8a 46 e6
     2369    mov al, byte [bp-01eh]                    ; 8a 46 e2
    23342370    mov byte [es:di+004h], al                 ; 26 88 45 04
    2335     mov ax, word [bp-016h]                    ; 8b 46 ea
     2371    mov ax, word [bp-01ah]                    ; 8b 46 e6
    23362372    mov word [es:di+009h], ax                 ; 26 89 45 09
    2337     mov al, byte [bp-018h]                    ; 8a 46 e8
     2373    mov al, byte [bp-01ch]                    ; 8a 46 e4
    23382374    mov byte [es:di+00bh], al                 ; 26 88 45 0b
    2339     mov al, byte [bp-01ah]                    ; 8a 46 e6
     2375    mov al, byte [bp-01eh]                    ; 8a 46 e2
    23402376    mov byte [es:di+00eh], al                 ; 26 88 45 0e
    23412377    xor al, al                                ; 30 c0
    23422378    xor ah, ah                                ; 30 e4
    2343     jmp short 02259h                          ; eb 05
     2379    jmp short 02291h                          ; eb 05
    23442380    cmp ah, 00fh                              ; 80 fc 0f
    2345     jnc short 02267h                          ; 73 0e
     2381    jnc short 0229fh                          ; 73 0e
    23462382    movzx bx, ah                              ; 0f b6 dc
    23472383    mov es, dx                                ; 8e c2
     
    23502386    db  0feh, 0c4h
    23512387    ; inc ah                                    ; fe c4
    2352     jmp short 02254h                          ; eb ed
     2388    jmp short 0228ch                          ; eb ed
    23532389    neg al                                    ; f6 d8
    23542390    mov es, dx                                ; 8e c2
    23552391    mov byte [es:di+00fh], al                 ; 26 88 45 0f
    2356     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    2357     mov es, [bp-022h]                         ; 8e 46 de
    2358     add bx, word [bp-024h]                    ; 03 5e dc
    2359     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2392    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     2393    mov es, [bp-026h]                         ; 8e 46 da
     2394    add bx, word [bp-028h]                    ; 03 5e d8
     2395    mov al, byte [bp-00eh]                    ; 8a 46 f2
    23602396    mov byte [es:bx+0019fh], al               ; 26 88 87 9f 01
    2361     inc byte [bp-002h]                        ; fe 46 fe
    2362     cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
    2363     jne near 02324h                           ; 0f 85 98 00
    2364     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     2397    inc byte [bp-006h]                        ; fe 46 fa
     2398    cmp byte [bp-010h], 003h                  ; 80 7e f0 03
     2399    jne near 0235ch                           ; 0f 85 98 00
     2400    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    23652401    imul ax, ax, strict byte 00018h           ; 6b c0 18
    2366     les bx, [bp-024h]                         ; c4 5e dc
     2402    les bx, [bp-028h]                         ; c4 5e d8
    23672403    add bx, ax                                ; 01 c3
    23682404    mov byte [es:bx+01fh], 005h               ; 26 c6 47 1f 05
    23692405    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
    2370     lea dx, [bp-0025ch]                       ; 8d 96 a4 fd
    2371     mov bx, word [bp-024h]                    ; 8b 5e dc
     2406    lea dx, [bp-00260h]                       ; 8d 96 a0 fd
     2407    mov bx, word [bp-028h]                    ; 8b 5e d8
    23722408    mov word [es:bx+004h], dx                 ; 26 89 57 04
    23732409    mov [es:bx+006h], ss                      ; 26 8c 57 06
    2374     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2410    mov al, byte [bp-00eh]                    ; 8a 46 f2
    23752411    mov byte [es:bx+008h], al                 ; 26 88 47 08
    23762412    mov cx, strict word 00001h                ; b9 01 00
    23772413    mov bx, 000a1h                            ; bb a1 00
    2378     mov ax, word [bp-024h]                    ; 8b 46 dc
     2414    mov ax, word [bp-028h]                    ; 8b 46 d8
    23792415    mov dx, es                                ; 8c c2
    2380     call 01cbah                               ; e8 f4 f9
     2416    call 01ceah                               ; e8 ec f9
    23812417    test ax, ax                               ; 85 c0
    2382     je short 022d5h                           ; 74 0b
     2418    je short 0230dh                           ; 74 0b
    23832419    push 000e4h                               ; 68 e4 00
    23842420    push strict byte 00007h                   ; 6a 07
    2385     call 018e9h                               ; e8 17 f6
     2421    call 0190dh                               ; e8 03 f6
    23862422    add sp, strict byte 00004h                ; 83 c4 04
    2387     mov cl, byte [bp-0025bh]                  ; 8a 8e a5 fd
     2423    mov cl, byte [bp-0025fh]                  ; 8a 8e a1 fd
    23882424    and cl, 01fh                              ; 80 e1 1f
    2389     test byte [bp-0025ch], 080h               ; f6 86 a4 fd 80
     2425    test byte [bp-00260h], 080h               ; f6 86 a0 fd 80
    23902426    db  00fh, 095h, 0c0h
    23912427    ; setne al                                  ; 0f 95 c0
    23922428    xor ah, ah                                ; 30 e4
    23932429    mov dx, ax                                ; 89 c2
    2394     cmp byte [bp-001fch], 000h                ; 80 be 04 fe 00
     2430    cmp byte [bp-00200h], 000h                ; 80 be 00 fe 00
    23952431    db  00fh, 095h, 0c0h
    23962432    ; setne al                                  ; 0f 95 c0
    23972433    xor ah, ah                                ; 30 e4
    23982434    mov bx, ax                                ; 89 c3
    2399     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     2435    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    24002436    imul ax, ax, strict byte 00018h           ; 6b c0 18
    2401     les si, [bp-024h]                         ; c4 76 dc
     2437    les si, [bp-028h]                         ; c4 76 d8
    24022438    add si, ax                                ; 01 c6
    24032439    mov byte [es:si+01fh], cl                 ; 26 88 4c 1f
     
    24052441    mov byte [es:si+022h], bl                 ; 26 88 5c 22
    24062442    mov word [es:si+024h], 00800h             ; 26 c7 44 24 00 08
    2407     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    2408     add bx, word [bp-024h]                    ; 03 5e dc
    2409     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2443    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     2444    add bx, word [bp-028h]                    ; 03 5e d8
     2445    mov al, byte [bp-00eh]                    ; 8a 46 f2
    24102446    mov byte [es:bx+001b0h], al               ; 26 88 87 b0 01
    2411     inc byte [bp-006h]                        ; fe 46 fa
    2412     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2447    inc byte [bp-00ah]                        ; fe 46 f6
     2448    mov al, byte [bp-010h]                    ; 8a 46 f0
    24132449    cmp AL, strict byte 003h                  ; 3c 03
    2414     je short 02357h                           ; 74 2c
     2450    je short 0238fh                           ; 74 2c
    24152451    cmp AL, strict byte 002h                  ; 3c 02
    2416     jne near 023bah                           ; 0f 85 89 00
    2417     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     2452    jne near 023f2h                           ; 0f 85 89 00
     2453    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    24182454    imul bx, bx, strict byte 00018h           ; 6b db 18
    2419     mov es, [bp-022h]                         ; 8e 46 de
    2420     add bx, word [bp-024h]                    ; 03 5e dc
     2455    mov es, [bp-026h]                         ; 8e 46 da
     2456    add bx, word [bp-028h]                    ; 03 5e d8
    24212457    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
    2422     mov word [bp-02ch], ax                    ; 89 46 d4
     2458    mov word [bp-030h], ax                    ; 89 46 d0
    24232459    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    2424     mov word [bp-02ah], ax                    ; 89 46 d6
     2460    mov word [bp-02eh], ax                    ; 89 46 d2
    24252461    mov cx, strict word 0000bh                ; b9 0b 00
    2426     shr word [bp-02ah], 1                     ; d1 6e d6
    2427     rcr word [bp-02ch], 1                     ; d1 5e d4
    2428     loop 0234fh                               ; e2 f8
    2429     movzx dx, byte [bp-001bbh]                ; 0f b6 96 45 fe
     2462    shr word [bp-02eh], 1                     ; d1 6e d2
     2463    rcr word [bp-030h], 1                     ; d1 5e d0
     2464    loop 02387h                               ; e2 f8
     2465    movzx dx, byte [bp-001bfh]                ; 0f b6 96 41 fe
    24302466    sal dx, 008h                              ; c1 e2 08
    2431     movzx ax, byte [bp-001bch]                ; 0f b6 86 44 fe
     2467    movzx ax, byte [bp-001c0h]                ; 0f b6 86 40 fe
    24322468    or dx, ax                                 ; 09 c2
    2433     mov byte [bp-00eh], 00fh                  ; c6 46 f2 0f
    2434     jmp short 02375h                          ; eb 09
    2435     dec byte [bp-00eh]                        ; fe 4e f2
    2436     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    2437     jbe short 02382h                          ; 76 0d
    2438     movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
     2469    mov byte [bp-012h], 00fh                  ; c6 46 ee 0f
     2470    jmp short 023adh                          ; eb 09
     2471    dec byte [bp-012h]                        ; fe 4e ee
     2472    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
     2473    jbe short 023bah                          ; 76 0d
     2474    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
    24392475    mov ax, strict word 00001h                ; b8 01 00
    24402476    sal ax, CL                                ; d3 e0
    24412477    test dx, ax                               ; 85 c2
    2442     je short 0236ch                           ; 74 ea
     2478    je short 023a4h                           ; 74 ea
    24432479    xor di, di                                ; 31 ff
    2444     jmp short 0238bh                          ; eb 05
     2480    jmp short 023c3h                          ; eb 05
    24452481    cmp di, strict byte 00014h                ; 83 ff 14
    2446     jnl short 023a0h                          ; 7d 15
     2482    jnl short 023d8h                          ; 7d 15
    24472483    mov si, di                                ; 89 fe
    24482484    add si, di                                ; 01 fe
    2449     mov al, byte [bp+si-00225h]               ; 8a 82 db fd
    2450     mov byte [bp+si-05ch], al                 ; 88 42 a4
    2451     mov al, byte [bp+si-00226h]               ; 8a 82 da fd
    2452     mov byte [bp+si-05bh], al                 ; 88 42 a5
     2485    mov al, byte [bp+si-00229h]               ; 8a 82 d7 fd
     2486    mov byte [bp+si-060h], al                 ; 88 42 a0
     2487    mov al, byte [bp+si-0022ah]               ; 8a 82 d6 fd
     2488    mov byte [bp+si-05fh], al                 ; 88 42 a1
    24532489    inc di                                    ; 47
    2454     jmp short 02386h                          ; eb e6
    2455     mov byte [bp-034h], 000h                  ; c6 46 cc 00
     2490    jmp short 023beh                          ; eb e6
     2491    mov byte [bp-038h], 000h                  ; c6 46 c8 00
    24562492    mov di, strict word 00027h                ; bf 27 00
    2457     jmp short 023aeh                          ; eb 05
     2493    jmp short 023e6h                          ; eb 05
    24582494    dec di                                    ; 4f
    24592495    test di, di                               ; 85 ff
    2460     jle short 023bah                          ; 7e 0c
    2461     cmp byte [bp+di-05ch], 020h               ; 80 7b a4 20
    2462     jne short 023bah                          ; 75 06
    2463     mov byte [bp+di-05ch], 000h               ; c6 43 a4 00
    2464     jmp short 023a9h                          ; eb ef
    2465     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2496    jle short 023f2h                          ; 7e 0c
     2497    cmp byte [bp+di-060h], 020h               ; 80 7b a0 20
     2498    jne short 023f2h                          ; 75 06
     2499    mov byte [bp+di-060h], 000h               ; c6 43 a0 00
     2500    jmp short 023e1h                          ; eb ef
     2501    mov al, byte [bp-010h]                    ; 8a 46 f0
    24662502    cmp AL, strict byte 003h                  ; 3c 03
    2467     je short 0241dh                           ; 74 5c
     2503    je short 02455h                           ; 74 5c
    24682504    cmp AL, strict byte 002h                  ; 3c 02
    2469     je short 023ceh                           ; 74 09
     2505    je short 02406h                           ; 74 09
    24702506    cmp AL, strict byte 001h                  ; 3c 01
    2471     je near 02484h                            ; 0f 84 b9 00
    2472     jmp near 024a3h                           ; e9 d5 00
    2473     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2474     je short 023d9h                           ; 74 05
     2507    je near 024bch                            ; 0f 84 b9 00
     2508    jmp near 024dbh                           ; e9 d5 00
     2509    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     2510    je short 02411h                           ; 74 05
    24752511    mov ax, 0010fh                            ; b8 0f 01
    2476     jmp short 023dch                          ; eb 03
     2512    jmp short 02414h                          ; eb 03
    24772513    mov ax, 00116h                            ; b8 16 01
    24782514    push ax                                   ; 50
    2479     movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     2515    movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    24802516    push ax                                   ; 50
    24812517    push 0011dh                               ; 68 1d 01
    24822518    push strict byte 00002h                   ; 6a 02
    2483     call 018e9h                               ; e8 ff f4
     2519    call 0190dh                               ; e8 eb f4
    24842520    add sp, strict byte 00008h                ; 83 c4 08
    24852521    xor di, di                                ; 31 ff
    2486     movzx ax, byte [bp+di-05ch]               ; 0f b6 43 a4
     2522    movzx ax, byte [bp+di-060h]               ; 0f b6 43 a0
    24872523    inc di                                    ; 47
    24882524    test ax, ax                               ; 85 c0
    2489     je short 02406h                           ; 74 0e
     2525    je short 0243eh                           ; 74 0e
    24902526    push ax                                   ; 50
    24912527    push 00128h                               ; 68 28 01
    24922528    push strict byte 00002h                   ; 6a 02
    2493     call 018e9h                               ; e8 e8 f4
     2529    call 0190dh                               ; e8 d4 f4
    24942530    add sp, strict byte 00006h                ; 83 c4 06
    2495     jmp short 023efh                          ; eb e9
    2496     push dword [bp-02ch]                      ; 66 ff 76 d4
    2497     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     2531    jmp short 02427h                          ; eb e9
     2532    push dword [bp-030h]                      ; 66 ff 76 d0
     2533    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    24982534    push ax                                   ; 50
    24992535    push 0012bh                               ; 68 2b 01
    25002536    push strict byte 00002h                   ; 6a 02
    2501     call 018e9h                               ; e8 d2 f4
     2537    call 0190dh                               ; e8 be f4
    25022538    add sp, strict byte 0000ah                ; 83 c4 0a
    2503     jmp near 024a3h                           ; e9 86 00
    2504     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2505     je short 02428h                           ; 74 05
     2539    jmp near 024dbh                           ; e9 86 00
     2540    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     2541    je short 02460h                           ; 74 05
    25062542    mov ax, 0010fh                            ; b8 0f 01
    2507     jmp short 0242bh                          ; eb 03
     2543    jmp short 02463h                          ; eb 03
    25082544    mov ax, 00116h                            ; b8 16 01
    25092545    push ax                                   ; 50
    2510     movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     2546    movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    25112547    push ax                                   ; 50
    25122548    push 0011dh                               ; 68 1d 01
    25132549    push strict byte 00002h                   ; 6a 02
    2514     call 018e9h                               ; e8 b0 f4
     2550    call 0190dh                               ; e8 9c f4
    25152551    add sp, strict byte 00008h                ; 83 c4 08
    25162552    xor di, di                                ; 31 ff
    2517     movzx ax, byte [bp+di-05ch]               ; 0f b6 43 a4
     2553    movzx ax, byte [bp+di-060h]               ; 0f b6 43 a0
    25182554    inc di                                    ; 47
    25192555    test ax, ax                               ; 85 c0
    2520     je short 02455h                           ; 74 0e
     2556    je short 0248dh                           ; 74 0e
    25212557    push ax                                   ; 50
    25222558    push 00128h                               ; 68 28 01
    25232559    push strict byte 00002h                   ; 6a 02
    2524     call 018e9h                               ; e8 99 f4
     2560    call 0190dh                               ; e8 85 f4
    25252561    add sp, strict byte 00006h                ; 83 c4 06
    2526     jmp short 0243eh                          ; eb e9
    2527     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     2562    jmp short 02476h                          ; eb e9
     2563    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    25282564    imul ax, ax, strict byte 00018h           ; 6b c0 18
    2529     les bx, [bp-024h]                         ; c4 5e dc
     2565    les bx, [bp-028h]                         ; c4 5e d8
    25302566    add bx, ax                                ; 01 c3
    25312567    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    2532     jne short 02472h                          ; 75 0a
    2533     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     2568    jne short 024aah                          ; 75 0a
     2569    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    25342570    push ax                                   ; 50
    25352571    push 0014bh                               ; 68 4b 01
    2536     jmp short 0247ah                          ; eb 08
    2537     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     2572    jmp short 024b2h                          ; eb 08
     2573    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    25382574    push ax                                   ; 50
    25392575    push 00165h                               ; 68 65 01
    25402576    push strict byte 00002h                   ; 6a 02
    2541     call 018e9h                               ; e8 6a f4
     2577    call 0190dh                               ; e8 56 f4
    25422578    add sp, strict byte 00006h                ; 83 c4 06
    2543     jmp short 024a3h                          ; eb 1f
    2544     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    2545     je short 0248fh                           ; 74 05
     2579    jmp short 024dbh                          ; eb 1f
     2580    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     2581    je short 024c7h                           ; 74 05
    25462582    mov ax, 0010fh                            ; b8 0f 01
    2547     jmp short 02492h                          ; eb 03
     2583    jmp short 024cah                          ; eb 03
    25482584    mov ax, 00116h                            ; b8 16 01
    25492585    push ax                                   ; 50
    2550     movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     2586    movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    25512587    push ax                                   ; 50
    25522588    push 00177h                               ; 68 77 01
    25532589    push strict byte 00002h                   ; 6a 02
    2554     call 018e9h                               ; e8 49 f4
     2590    call 0190dh                               ; e8 35 f4
    25552591    add sp, strict byte 00008h                ; 83 c4 08
    2556     inc byte [bp-00ah]                        ; fe 46 f6
    2557     cmp byte [bp-00ah], 008h                  ; 80 7e f6 08
    2558     jnc short 024fah                          ; 73 4e
    2559     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     2592    inc byte [bp-00eh]                        ; fe 46 f2
     2593    cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
     2594    jnc short 02532h                          ; 73 4e
     2595    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    25602596    mov ax, bx                                ; 89 d8
    25612597    cwd                                       ; 99
     
    25632599    ; sub ax, dx                                ; 2b c2
    25642600    sar ax, 1                                 ; d1 f8
    2565     mov word [bp-026h], ax                    ; 89 46 da
    2566     mov al, byte [bp-026h]                    ; 8a 46 da
    2567     mov byte [bp-014h], al                    ; 88 46 ec
     2601    mov word [bp-02ah], ax                    ; 89 46 d6
     2602    mov al, byte [bp-02ah]                    ; 8a 46 d6
     2603    mov byte [bp-018h], al                    ; 88 46 e8
    25682604    mov ax, bx                                ; 89 d8
    25692605    cwd                                       ; 99
     
    25712607    idiv bx                                   ; f7 fb
    25722608    mov cx, dx                                ; 89 d1
    2573     mov byte [bp-004h], dl                    ; 88 56 fc
    2574     movzx ax, byte [bp-026h]                  ; 0f b6 46 da
     2609    mov byte [bp-008h], dl                    ; 88 56 f8
     2610    movzx ax, byte [bp-02ah]                  ; 0f b6 46 d6
    25752611    imul ax, ax, strict byte 00006h           ; 6b c0 06
    2576     les bx, [bp-024h]                         ; c4 5e dc
     2612    les bx, [bp-028h]                         ; c4 5e d8
    25772613    add bx, ax                                ; 01 c3
    25782614    mov si, word [es:bx+001c2h]               ; 26 8b b7 c2 01
    25792615    mov ax, word [es:bx+001c4h]               ; 26 8b 87 c4 01
    2580     mov word [bp-028h], ax                    ; 89 46 d8
     2616    mov word [bp-02ch], ax                    ; 89 46 d4
    25812617    mov dx, ax                                ; 89 c2
    25822618    add dx, strict byte 00006h                ; 83 c2 06
     
    25842620    out DX, AL                                ; ee
    25852621    test cl, cl                               ; 84 c9
    2586     je near 01f64h                            ; 0f 84 70 fa
     2622    je near 01f9ch                            ; 0f 84 70 fa
    25872623    mov ax, 000b0h                            ; b8 b0 00
    2588     jmp near 01f67h                           ; e9 6d fa
    2589     mov al, byte [bp-002h]                    ; 8a 46 fe
    2590     les bx, [bp-024h]                         ; c4 5e dc
     2624    jmp near 01f9fh                           ; e9 6d fa
     2625    mov al, byte [bp-006h]                    ; 8a 46 fa
     2626    les bx, [bp-028h]                         ; c4 5e d8
    25912627    mov byte [es:bx+0019eh], al               ; 26 88 87 9e 01
    2592     mov al, byte [bp-006h]                    ; 8a 46 fa
     2628    mov al, byte [bp-00ah]                    ; 8a 46 f6
    25932629    mov byte [es:bx+001afh], al               ; 26 88 87 af 01
    2594     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     2630    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    25952631    mov dx, strict word 00075h                ; ba 75 00
    25962632    mov ax, strict word 00040h                ; b8 40 00
    2597     call 0160eh                               ; e8 f4 f0
    2598     leave                                     ; c9
     2633    call 0160eh                               ; e8 bc f0
     2634    lea sp, [bp-004h]                         ; 8d 66 fc
    25992635    pop di                                    ; 5f
    26002636    pop si                                    ; 5e
     2637    pop bp                                    ; 5d
    26012638    retn                                      ; c3
    2602 ata_cmd_data_out_:                           ; 0xf251e LB 0x215
     2639ata_cmd_data_out_:                           ; 0xf2559 LB 0x21a
     2640    push bp                                   ; 55
     2641    mov bp, sp                                ; 89 e5
    26032642    push si                                   ; 56
    26042643    push di                                   ; 57
    2605     enter 0001ah, 000h                        ; c8 1a 00 00
     2644    sub sp, strict byte 0001ah                ; 83 ec 1a
    26062645    mov di, ax                                ; 89 c7
    2607     mov word [bp-006h], dx                    ; 89 56 fa
    2608     mov word [bp-016h], bx                    ; 89 5e ea
    2609     mov word [bp-00ah], cx                    ; 89 4e f6
     2646    mov word [bp-00ah], dx                    ; 89 56 f6
     2647    mov word [bp-01ah], bx                    ; 89 5e e6
     2648    mov word [bp-00eh], cx                    ; 89 4e f2
    26102649    mov es, dx                                ; 8e c2
    26112650    movzx ax, byte [es:di+008h]               ; 26 0f b6 45 08
     
    26142653    mov dh, al                                ; 88 c6
    26152654    and dh, 001h                              ; 80 e6 01
    2616     mov byte [bp-002h], dh                    ; 88 76 fe
     2655    mov byte [bp-006h], dh                    ; 88 76 fa
    26172656    movzx si, dl                              ; 0f b6 f2
    26182657    imul si, si, strict byte 00006h           ; 6b f6 06
     
    26202659    mov bx, word [es:si+001c2h]               ; 26 8b 9c c2 01
    26212660    mov dx, word [es:si+001c4h]               ; 26 8b 94 c4 01
    2622     mov word [bp-008h], dx                    ; 89 56 f8
     2661    mov word [bp-00ch], dx                    ; 89 56 f4
    26232662    imul ax, ax, strict byte 00018h           ; 6b c0 18
    26242663    mov si, di                                ; 89 fe
    26252664    add si, ax                                ; 01 c6
    26262665    mov al, byte [es:si+022h]                 ; 26 8a 44 22
    2627     mov byte [bp-004h], al                    ; 88 46 fc
     2666    mov byte [bp-008h], al                    ; 88 46 f8
    26282667    cmp AL, strict byte 001h                  ; 3c 01
    2629     jne short 02570h                          ; 75 07
    2630     mov word [bp-00eh], 00080h                ; c7 46 f2 80 00
    2631     jmp short 02575h                          ; eb 05
    2632     mov word [bp-00eh], 00100h                ; c7 46 f2 00 01
     2668    jne short 025adh                          ; 75 07
     2669    mov word [bp-012h], 00080h                ; c7 46 ee 80 00
     2670    jmp short 025b2h                          ; eb 05
     2671    mov word [bp-012h], 00100h                ; c7 46 ee 00 01
    26332672    lea dx, [bx+007h]                         ; 8d 57 07
    26342673    in AL, DX                                 ; ec
     
    26362675    ; sub ah, ah                                ; 2a e4
    26372676    test AL, strict byte 080h                 ; a8 80
    2638     je short 0258eh                           ; 74 0f
    2639     mov dx, word [bp-008h]                    ; 8b 56 f8
     2677    je short 025cbh                           ; 74 0f
     2678    mov dx, word [bp-00ch]                    ; 8b 56 f4
    26402679    add dx, strict byte 00006h                ; 83 c2 06
    26412680    mov AL, strict byte 008h                  ; b0 08
    26422681    out DX, AL                                ; ee
    26432682    mov dx, strict word 00001h                ; ba 01 00
    2644     jmp near 0272dh                           ; e9 9f 01
    2645     mov es, [bp-006h]                         ; 8e 46 fa
     2683    jmp near 0276ah                           ; e9 9f 01
     2684    mov es, [bp-00ah]                         ; 8e 46 f6
    26462685    mov ax, word [es:di]                      ; 26 8b 05
    2647     mov word [bp-01ah], ax                    ; 89 46 e6
     2686    mov word [bp-01eh], ax                    ; 89 46 e2
    26482687    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    2649     mov word [bp-018h], ax                    ; 89 46 e8
     2688    mov word [bp-01ch], ax                    ; 89 46 e4
    26502689    mov si, word [es:di+004h]                 ; 26 8b 75 04
    26512690    mov ax, word [es:di+006h]                 ; 26 8b 45 06
     2691    mov word [bp-018h], ax                    ; 89 46 e8
     2692    mov ax, word [es:di+012h]                 ; 26 8b 45 12
     2693    mov word [bp-010h], ax                    ; 89 46 f0
     2694    mov ax, word [es:di+00eh]                 ; 26 8b 45 0e
     2695    mov word [bp-016h], ax                    ; 89 46 ea
     2696    mov ax, word [es:di+010h]                 ; 26 8b 45 10
    26522697    mov word [bp-014h], ax                    ; 89 46 ec
    2653     mov ax, word [es:di+012h]                 ; 26 8b 45 12
    2654     mov word [bp-00ch], ax                    ; 89 46 f4
    2655     mov ax, word [es:di+00eh]                 ; 26 8b 45 0e
    2656     mov word [bp-012h], ax                    ; 89 46 ee
    2657     mov ax, word [es:di+010h]                 ; 26 8b 45 10
    2658     mov word [bp-010h], ax                    ; 89 46 f0
    2659     mov ax, word [bp-00ch]                    ; 8b 46 f4
     2698    mov ax, word [bp-010h]                    ; 8b 46 f0
    26602699    test ax, ax                               ; 85 c0
    2661     jne short 0262ch                          ; 75 67
    2662     mov dx, word [bp-01ah]                    ; 8b 56 e6
    2663     add dx, word [bp-00ah]                    ; 03 56 f6
    2664     adc ax, word [bp-018h]                    ; 13 46 e8
     2700    jne short 02669h                          ; 75 67
     2701    mov dx, word [bp-01eh]                    ; 8b 56 e2
     2702    add dx, word [bp-00eh]                    ; 03 56 f2
     2703    adc ax, word [bp-01ch]                    ; 13 46 e4
    26652704    cmp ax, 01000h                            ; 3d 00 10
    2666     jnbe short 025d5h                         ; 77 02
    2667     jne short 02600h                          ; 75 2b
    2668     mov ax, word [bp-018h]                    ; 8b 46 e8
     2705    jnbe short 02612h                         ; 77 02
     2706    jne short 0263dh                          ; 75 2b
     2707    mov ax, word [bp-01ch]                    ; 8b 46 e4
    26692708    xor al, al                                ; 30 c0
    26702709    shr ax, 008h                              ; c1 e8 08
    2671     mov word [bp-00ch], ax                    ; 89 46 f4
    2672     mov ax, word [bp-00ah]                    ; 8b 46 f6
     2710    mov word [bp-010h], ax                    ; 89 46 f0
     2711    mov ax, word [bp-00eh]                    ; 8b 46 f2
    26732712    xor al, al                                ; 30 c0
    26742713    shr ax, 008h                              ; c1 e8 08
     
    26762715    out DX, AL                                ; ee
    26772716    lea dx, [bx+003h]                         ; 8d 57 03
    2678     mov al, byte [bp-00ch]                    ; 8a 46 f4
     2717    mov al, byte [bp-010h]                    ; 8a 46 f0
    26792718    out DX, AL                                ; ee
    26802719    lea dx, [bx+004h]                         ; 8d 57 04
     
    26832722    lea dx, [bx+005h]                         ; 8d 57 05
    26842723    out DX, AL                                ; ee
    2685     mov byte [bp-017h], al                    ; 88 46 e9
    2686     mov ax, word [bp-01ah]                    ; 8b 46 e6
     2724    mov byte [bp-01bh], al                    ; 88 46 e5
     2725    mov ax, word [bp-01eh]                    ; 8b 46 e2
    26872726    xor ah, ah                                ; 30 e4
    2688     mov word [bp-00ch], ax                    ; 89 46 f4
     2727    mov word [bp-010h], ax                    ; 89 46 f0
    26892728    mov cx, strict word 00008h                ; b9 08 00
    2690     shr word [bp-018h], 1                     ; d1 6e e8
    2691     rcr word [bp-01ah], 1                     ; d1 5e e6
    2692     loop 0260bh                               ; e2 f8
    2693     mov ax, word [bp-01ah]                    ; 8b 46 e6
    2694     mov word [bp-012h], ax                    ; 89 46 ee
    2695     mov ax, word [bp-018h]                    ; 8b 46 e8
    2696     mov word [bp-01ah], ax                    ; 89 46 e6
    2697     mov word [bp-018h], strict word 00000h    ; c7 46 e8 00 00
     2729    shr word [bp-01ch], 1                     ; d1 6e e4
     2730    rcr word [bp-01eh], 1                     ; d1 5e e2
     2731    loop 02648h                               ; e2 f8
     2732    mov ax, word [bp-01eh]                    ; 8b 46 e2
     2733    mov word [bp-016h], ax                    ; 89 46 ea
     2734    mov ax, word [bp-01ch]                    ; 8b 46 e4
     2735    mov word [bp-01eh], ax                    ; 89 46 e2
     2736    mov word [bp-01ch], strict word 00000h    ; c7 46 e4 00 00
    26982737    and ax, strict word 0000fh                ; 25 0f 00
    26992738    or AL, strict byte 040h                   ; 0c 40
    2700     mov word [bp-010h], ax                    ; 89 46 f0
    2701     mov dx, word [bp-008h]                    ; 8b 56 f8
     2739    mov word [bp-014h], ax                    ; 89 46 ec
     2740    mov dx, word [bp-00ch]                    ; 8b 56 f4
    27022741    add dx, strict byte 00006h                ; 83 c2 06
    27032742    mov AL, strict byte 00ah                  ; b0 0a
     
    27072746    out DX, AL                                ; ee
    27082747    lea dx, [bx+002h]                         ; 8d 57 02
    2709     mov al, byte [bp-00ah]                    ; 8a 46 f6
     2748    mov al, byte [bp-00eh]                    ; 8a 46 f2
    27102749    out DX, AL                                ; ee
    27112750    lea dx, [bx+003h]                         ; 8d 57 03
    2712     mov al, byte [bp-00ch]                    ; 8a 46 f4
    2713     out DX, AL                                ; ee
    2714     mov ax, word [bp-012h]                    ; 8b 46 ee
     2751    mov al, byte [bp-010h]                    ; 8a 46 f0
     2752    out DX, AL                                ; ee
     2753    mov ax, word [bp-016h]                    ; 8b 46 ea
    27152754    lea dx, [bx+004h]                         ; 8d 57 04
    27162755    out DX, AL                                ; ee
     
    27182757    lea dx, [bx+005h]                         ; 8d 57 05
    27192758    out DX, AL                                ; ee
    2720     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    2721     je short 02662h                           ; 74 05
     2759    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     2760    je short 0269fh                           ; 74 05
    27222761    mov ax, 000b0h                            ; b8 b0 00
    2723     jmp short 02665h                          ; eb 03
     2762    jmp short 026a2h                          ; eb 03
    27242763    mov ax, 000a0h                            ; b8 a0 00
    2725     movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
     2764    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    27262765    or ax, dx                                 ; 09 d0
    27272766    lea dx, [bx+006h]                         ; 8d 57 06
    27282767    out DX, AL                                ; ee
    27292768    lea dx, [bx+007h]                         ; 8d 57 07
    2730     mov al, byte [bp-016h]                    ; 8a 46 ea
     2769    mov al, byte [bp-01ah]                    ; 8a 46 e6
    27312770    out DX, AL                                ; ee
    27322771    lea dx, [bx+007h]                         ; 8d 57 07
     
    27362775    mov dl, al                                ; 88 c2
    27372776    test AL, strict byte 080h                 ; a8 80
    2738     jne short 02676h                          ; 75 f4
     2777    jne short 026b3h                          ; 75 f4
    27392778    test AL, strict byte 001h                 ; a8 01
    2740     je short 02695h                           ; 74 0f
    2741     mov dx, word [bp-008h]                    ; 8b 56 f8
     2779    je short 026d2h                           ; 74 0f
     2780    mov dx, word [bp-00ch]                    ; 8b 56 f4
    27422781    add dx, strict byte 00006h                ; 83 c2 06
    27432782    mov AL, strict byte 008h                  ; b0 08
    27442783    out DX, AL                                ; ee
    27452784    mov dx, strict word 00002h                ; ba 02 00
    2746     jmp near 0272dh                           ; e9 98 00
     2785    jmp near 0276ah                           ; e9 98 00
    27472786    test dl, 008h                             ; f6 c2 08
    2748     jne short 026a9h                          ; 75 0f
    2749     mov dx, word [bp-008h]                    ; 8b 56 f8
     2787    jne short 026e6h                          ; 75 0f
     2788    mov dx, word [bp-00ch]                    ; 8b 56 f4
    27502789    add dx, strict byte 00006h                ; 83 c2 06
    27512790    mov AL, strict byte 008h                  ; b0 08
    27522791    out DX, AL                                ; ee
    27532792    mov dx, strict word 00003h                ; ba 03 00
    2754     jmp near 0272dh                           ; e9 84 00
     2793    jmp near 0276ah                           ; e9 84 00
    27552794    sti                                       ; fb
    27562795    cmp si, 0f800h                            ; 81 fe 00 f8
    2757     jc short 026bdh                           ; 72 0d
     2796    jc short 026fah                           ; 72 0d
    27582797    sub si, 00800h                            ; 81 ee 00 08
    2759     mov ax, word [bp-014h]                    ; 8b 46 ec
     2798    mov ax, word [bp-018h]                    ; 8b 46 e8
    27602799    add ax, 00080h                            ; 05 80 00
    2761     mov word [bp-014h], ax                    ; 89 46 ec
    2762     cmp byte [bp-004h], 001h                  ; 80 7e fc 01
    2763     jne short 026d1h                          ; 75 0e
     2800    mov word [bp-018h], ax                    ; 89 46 e8
     2801    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
     2802    jne short 0270eh                          ; 75 0e
    27642803    mov dx, bx                                ; 89 da
    2765     mov cx, word [bp-00eh]                    ; 8b 4e f2
    2766     mov es, [bp-014h]                         ; 8e 46 ec
     2804    mov cx, word [bp-012h]                    ; 8b 4e ee
     2805    mov es, [bp-018h]                         ; 8e 46 e8
    27672806    db  0f3h, 066h, 026h, 06fh
    27682807    ; rep es outsd                              ; f3 66 26 6f
    2769     jmp short 026dch                          ; eb 0b
     2808    jmp short 02719h                          ; eb 0b
    27702809    mov dx, bx                                ; 89 da
    2771     mov cx, word [bp-00eh]                    ; 8b 4e f2
    2772     mov es, [bp-014h]                         ; 8e 46 ec
     2810    mov cx, word [bp-012h]                    ; 8b 4e ee
     2811    mov es, [bp-018h]                         ; 8e 46 e8
    27732812    db  0f3h, 026h, 06fh
    27742813    ; rep es outsw                              ; f3 26 6f
    2775     mov es, [bp-006h]                         ; 8e 46 fa
     2814    mov es, [bp-00ah]                         ; 8e 46 f6
    27762815    inc word [es:di+014h]                     ; 26 ff 45 14
    2777     dec word [bp-00ah]                        ; ff 4e f6
     2816    dec word [bp-00eh]                        ; ff 4e f2
    27782817    lea dx, [bx+007h]                         ; 8d 57 07
    27792818    in AL, DX                                 ; ec
     
    27822821    mov dl, al                                ; 88 c2
    27832822    test AL, strict byte 080h                 ; a8 80
    2784     jne short 026e6h                          ; 75 f4
    2785     cmp word [bp-00ah], strict byte 00000h    ; 83 7e f6 00
    2786     jne short 0270ch                          ; 75 14
     2823    jne short 02723h                          ; 75 f4
     2824    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
     2825    jne short 02749h                          ; 75 14
    27872826    and AL, strict byte 0e9h                  ; 24 e9
    27882827    cmp AL, strict byte 040h                  ; 3c 40
    2789     je short 02722h                           ; 74 24
    2790     mov dx, word [bp-008h]                    ; 8b 56 f8
     2828    je short 0275fh                           ; 74 24
     2829    mov dx, word [bp-00ch]                    ; 8b 56 f4
    27912830    add dx, strict byte 00006h                ; 83 c2 06
    27922831    mov AL, strict byte 008h                  ; b0 08
    27932832    out DX, AL                                ; ee
    27942833    mov dx, strict word 00006h                ; ba 06 00
    2795     jmp short 0272dh                          ; eb 21
     2834    jmp short 0276ah                          ; eb 21
    27962835    mov al, dl                                ; 88 d0
    27972836    and AL, strict byte 0c9h                  ; 24 c9
    27982837    cmp AL, strict byte 048h                  ; 3c 48
    2799     je short 026aah                           ; 74 96
    2800     mov dx, word [bp-008h]                    ; 8b 56 f8
     2838    je short 026e7h                           ; 74 96
     2839    mov dx, word [bp-00ch]                    ; 8b 56 f4
    28012840    add dx, strict byte 00006h                ; 83 c2 06
    28022841    mov AL, strict byte 008h                  ; b0 08
    28032842    out DX, AL                                ; ee
    28042843    mov dx, strict word 00007h                ; ba 07 00
    2805     jmp short 0272dh                          ; eb 0b
    2806     mov dx, word [bp-008h]                    ; 8b 56 f8
     2844    jmp short 0276ah                          ; eb 0b
     2845    mov dx, word [bp-00ch]                    ; 8b 56 f4
    28072846    add dx, strict byte 00006h                ; 83 c2 06
    28082847    mov AL, strict byte 008h                  ; b0 08
     
    28102849    xor dx, dx                                ; 31 d2
    28112850    mov ax, dx                                ; 89 d0
    2812     leave                                     ; c9
     2851    lea sp, [bp-004h]                         ; 8d 66 fc
    28132852    pop di                                    ; 5f
    28142853    pop si                                    ; 5e
     2854    pop bp                                    ; 5d
    28152855    retn                                      ; c3
    2816 @ata_read_sectors:                           ; 0xf2733 LB 0x77
     2856@ata_read_sectors:                           ; 0xf2773 LB 0x7a
     2857    push bp                                   ; 55
     2858    mov bp, sp                                ; 89 e5
    28172859    push si                                   ; 56
    28182860    push di                                   ; 57
    2819     enter 00002h, 000h                        ; c8 02 00 00
    2820     mov si, word [bp+008h]                    ; 8b 76 08
    2821     mov es, [bp+00ah]                         ; 8e 46 0a
     2861    push ax                                   ; 50
     2862    mov si, word [bp+004h]                    ; 8b 76 04
     2863    mov es, [bp+006h]                         ; 8e 46 06
    28222864    mov bl, byte [es:si+008h]                 ; 26 8a 5c 08
    28232865    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
     
    28262868    mov ax, word [es:si+012h]                 ; 26 8b 44 12
    28272869    test ax, ax                               ; 85 c0
    2828     je short 02761h                           ; 74 0d
     2870    je short 027a1h                           ; 74 0d
    28292871    movzx di, bl                              ; 0f b6 fb
    28302872    imul di, di, strict byte 00018h           ; 6b ff 18
    2831     mov [bp-002h], es                         ; 8c 46 fe
     2873    mov [bp-006h], es                         ; 8c 46 fa
    28322874    add di, si                                ; 01 f7
    2833     jmp short 0278dh                          ; eb 2c
     2875    jmp short 027cdh                          ; eb 2c
    28342876    mov di, word [es:si]                      ; 26 8b 3c
    28352877    add di, cx                                ; 01 cf
    2836     mov word [bp-002h], di                    ; 89 7e fe
     2878    mov word [bp-006h], di                    ; 89 7e fa
    28372879    adc ax, word [es:si+002h]                 ; 26 13 44 02
    28382880    cmp ax, 01000h                            ; 3d 00 10
    2839     jnbe short 02774h                         ; 77 02
    2840     jne short 02780h                          ; 75 0c
     2881    jnbe short 027b4h                         ; 77 02
     2882    jne short 027c0h                          ; 75 0c
    28412883    mov bx, strict word 00024h                ; bb 24 00
    28422884    mov ax, si                                ; 89 f0
    28432885    mov dx, es                                ; 8c c2
    2844     call 01cbah                               ; e8 3c f5
    2845     jmp short 027a4h                          ; eb 24
     2886    call 01ceah                               ; e8 2c f5
     2887    jmp short 027e4h                          ; eb 24
    28462888    movzx ax, bl                              ; 0f b6 c3
    28472889    imul ax, ax, strict byte 00018h           ; 6b c0 18
    2848     mov [bp-002h], es                         ; 8c 46 fe
     2890    mov [bp-006h], es                         ; 8c 46 fa
    28492891    mov di, si                                ; 89 f7
    28502892    add di, ax                                ; 01 c7
     
    28532895    mov ax, si                                ; 89 f0
    28542896    mov dx, es                                ; 8c c2
    2855     call 01cbah                               ; e8 1f f5
    2856     mov es, [bp-002h]                         ; 8e 46 fe
     2897    call 01ceah                               ; e8 0f f5
     2898    mov es, [bp-006h]                         ; 8e 46 fa
    28572899    mov word [es:di+024h], 00200h             ; 26 c7 45 24 00 02
    2858     leave                                     ; c9
     2900    lea sp, [bp-004h]                         ; 8d 66 fc
    28592901    pop di                                    ; 5f
    28602902    pop si                                    ; 5e
     2903    pop bp                                    ; 5d
    28612904    retn 00004h                               ; c2 04 00
    2862 @ata_write_sectors:                          ; 0xf27aa LB 0x3a
    2863     push si                                   ; 56
     2905@ata_write_sectors:                          ; 0xf27ed LB 0x3d
    28642906    push bp                                   ; 55
    28652907    mov bp, sp                                ; 89 e5
    2866     les si, [bp+006h]                         ; c4 76 06
     2908    push si                                   ; 56
     2909    les si, [bp+004h]                         ; c4 76 04
    28672910    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
    28682911    cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00
    2869     je short 027c8h                           ; 74 0c
     2912    je short 0280bh                           ; 74 0c
    28702913    mov bx, strict word 00030h                ; bb 30 00
    28712914    mov ax, si                                ; 89 f0
    28722915    mov dx, es                                ; 8c c2
    2873     call 0251eh                               ; e8 58 fd
    2874     jmp short 027dfh                          ; eb 17
     2916    call 02559h                               ; e8 50 fd
     2917    jmp short 02822h                          ; eb 17
    28752918    xor ax, ax                                ; 31 c0
    28762919    mov dx, word [es:si]                      ; 26 8b 14
     
    28782921    adc ax, word [es:si+002h]                 ; 26 13 44 02
    28792922    cmp ax, 01000h                            ; 3d 00 10
    2880     jnbe short 027dah                         ; 77 02
    2881     jne short 027bch                          ; 75 e2
     2923    jnbe short 0281dh                         ; 77 02
     2924    jne short 027ffh                          ; 75 e2
    28822925    mov bx, strict word 00034h                ; bb 34 00
    2883     jmp short 027bfh                          ; eb e0
     2926    jmp short 02802h                          ; eb e0
     2927    lea sp, [bp-002h]                         ; 8d 66 fe
     2928    pop si                                    ; 5e
    28842929    pop bp                                    ; 5d
    2885     pop si                                    ; 5e
    28862930    retn 00004h                               ; c2 04 00
    2887 ata_cmd_packet_:                             ; 0xf27e4 LB 0x2e3
     2931ata_cmd_packet_:                             ; 0xf282a LB 0x2e8
     2932    push bp                                   ; 55
     2933    mov bp, sp                                ; 89 e5
    28882934    push si                                   ; 56
    28892935    push di                                   ; 57
    2890     enter 00014h, 000h                        ; c8 14 00 00
     2936    sub sp, strict byte 00014h                ; 83 ec 14
    28912937    push ax                                   ; 50
    2892     mov byte [bp-004h], dl                    ; 88 56 fc
     2938    mov byte [bp-008h], dl                    ; 88 56 f8
    28932939    mov di, bx                                ; 89 df
    28942940    mov dx, strict word 0000eh                ; ba 0e 00
    28952941    mov ax, strict word 00040h                ; b8 40 00
    2896     call 0161ch                               ; e8 23 ee
    2897     mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    2898     mov word [bp-00ah], ax                    ; 89 46 f6
    2899     mov ax, word [bp-016h]                    ; 8b 46 ea
     2942    call 0161ch                               ; e8 db ed
     2943    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
     2944    mov word [bp-00eh], ax                    ; 89 46 f2
     2945    mov ax, word [bp-01ah]                    ; 8b 46 e6
    29002946    shr ax, 1                                 ; d1 e8
    2901     mov ah, byte [bp-016h]                    ; 8a 66 ea
     2947    mov ah, byte [bp-01ah]                    ; 8a 66 e6
    29022948    and ah, 001h                              ; 80 e4 01
    2903     mov byte [bp-002h], ah                    ; 88 66 fe
    2904     cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    2905     jne short 02834h                          ; 75 1f
    2906     mov bx, 00d32h                            ; bb 32 0d
     2949    mov byte [bp-006h], ah                    ; 88 66 fa
     2950    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     2951    jne short 0287ch                          ; 75 1f
     2952    mov bx, 00d38h                            ; bb 38 0d
    29072953    mov cx, ds                                ; 8c d9
    29082954    mov ax, strict word 00004h                ; b8 04 00
    2909     call 018aeh                               ; e8 8e f0
     2955    call 018cch                               ; e8 64 f0
    29102956    push 00191h                               ; 68 91 01
    29112957    push 001a0h                               ; 68 a0 01
    29122958    push strict byte 00004h                   ; 6a 04
    2913     call 018e9h                               ; e8 be f0
     2959    call 0190dh                               ; e8 9a f0
    29142960    add sp, strict byte 00006h                ; 83 c4 06
    29152961    mov dx, strict word 00001h                ; ba 01 00
    2916     jmp near 02abfh                           ; e9 8b 02
    2917     test byte [bp+008h], 001h                 ; f6 46 08 01
    2918     jne short 0282eh                          ; 75 f4
     2962    jmp near 02b07h                           ; e9 8b 02
     2963    test byte [bp+004h], 001h                 ; f6 46 04 01
     2964    jne short 02876h                          ; 75 f4
    29192965    xor ah, ah                                ; 30 e4
    29202966    imul ax, ax, strict byte 00006h           ; 6b c0 06
    2921     mov es, [bp-00ah]                         ; 8e 46 f6
    2922     mov si, word [bp-00eh]                    ; 8b 76 f2
     2967    mov es, [bp-00eh]                         ; 8e 46 f2
     2968    mov si, word [bp-012h]                    ; 8b 76 ee
    29232969    add si, ax                                ; 01 c6
    29242970    mov bx, word [es:si+001c2h]               ; 26 8b 9c c2 01
    29252971    mov ax, word [es:si+001c4h]               ; 26 8b 84 c4 01
    2926     mov word [bp-00ch], ax                    ; 89 46 f4
    2927     imul si, word [bp-016h], strict byte 00018h ; 6b 76 ea 18
    2928     add si, word [bp-00eh]                    ; 03 76 f2
     2972    mov word [bp-010h], ax                    ; 89 46 f0
     2973    imul si, word [bp-01ah], strict byte 00018h ; 6b 76 e6 18
     2974    add si, word [bp-012h]                    ; 03 76 ee
    29292975    mov al, byte [es:si+022h]                 ; 26 8a 44 22
    2930     mov byte [bp-006h], al                    ; 88 46 fa
     2976    mov byte [bp-00ah], al                    ; 88 46 f6
    29312977    xor ax, ax                                ; 31 c0
    2932     mov word [bp-014h], ax                    ; 89 46 ec
    2933     mov word [bp-012h], ax                    ; 89 46 ee
    2934     mov al, byte [bp-004h]                    ; 8a 46 fc
     2978    mov word [bp-018h], ax                    ; 89 46 e8
     2979    mov word [bp-016h], ax                    ; 89 46 ea
     2980    mov al, byte [bp-008h]                    ; 8a 46 f8
    29352981    cmp AL, strict byte 00ch                  ; 3c 0c
    2936     jnc short 02877h                          ; 73 06
    2937     mov byte [bp-004h], 00ch                  ; c6 46 fc 0c
    2938     jmp short 0287dh                          ; eb 06
    2939     jbe short 0287dh                          ; 76 04
    2940     mov byte [bp-004h], 010h                  ; c6 46 fc 10
    2941     shr byte [bp-004h], 1                     ; d0 6e fc
    2942     mov es, [bp-00ah]                         ; 8e 46 f6
    2943     mov si, word [bp-00eh]                    ; 8b 76 f2
     2982    jnc short 028bfh                          ; 73 06
     2983    mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
     2984    jmp short 028c5h                          ; eb 06
     2985    jbe short 028c5h                          ; 76 04
     2986    mov byte [bp-008h], 010h                  ; c6 46 f8 10
     2987    shr byte [bp-008h], 1                     ; d0 6e f8
     2988    mov es, [bp-00eh]                         ; 8e 46 f2
     2989    mov si, word [bp-012h]                    ; 8b 76 ee
    29442990    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
    29452991    ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00
     
    29502996    ; sub ah, ah                                ; 2a e4
    29512997    test AL, strict byte 080h                 ; a8 80
    2952     je short 028a5h                           ; 74 06
     2998    je short 028edh                           ; 74 06
    29532999    mov dx, strict word 00002h                ; ba 02 00
    2954     jmp near 02abfh                           ; e9 1a 02
    2955     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3000    jmp near 02b07h                           ; e9 1a 02
     3001    mov dx, word [bp-010h]                    ; 8b 56 f0
    29563002    add dx, strict byte 00006h                ; 83 c2 06
    29573003    mov AL, strict byte 00ah                  ; b0 0a
     
    29633009    mov AL, strict byte 0ffh                  ; b0 ff
    29643010    out DX, AL                                ; ee
    2965     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    2966     je short 028c5h                           ; 74 05
     3011    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     3012    je short 0290dh                           ; 74 05
    29673013    mov ax, 000b0h                            ; b8 b0 00
    2968     jmp short 028c8h                          ; eb 03
     3014    jmp short 02910h                          ; eb 03
    29693015    mov ax, 000a0h                            ; b8 a0 00
    29703016    lea dx, [bx+006h]                         ; 8d 57 06
     
    29793025    mov dl, al                                ; 88 c2
    29803026    test AL, strict byte 080h                 ; a8 80
    2981     jne short 028d2h                          ; 75 f4
     3027    jne short 0291ah                          ; 75 f4
    29823028    test AL, strict byte 001h                 ; a8 01
    2983     je short 028f1h                           ; 74 0f
    2984     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3029    je short 02939h                           ; 74 0f
     3030    mov dx, word [bp-010h]                    ; 8b 56 f0
    29853031    add dx, strict byte 00006h                ; 83 c2 06
    29863032    mov AL, strict byte 008h                  ; b0 08
    29873033    out DX, AL                                ; ee
    29883034    mov dx, strict word 00003h                ; ba 03 00
    2989     jmp near 02abfh                           ; e9 ce 01
     3035    jmp near 02b07h                           ; e9 ce 01
    29903036    test dl, 008h                             ; f6 c2 08
    2991     jne short 02905h                          ; 75 0f
    2992     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3037    jne short 0294dh                          ; 75 0f
     3038    mov dx, word [bp-010h]                    ; 8b 56 f0
    29933039    add dx, strict byte 00006h                ; 83 c2 06
    29943040    mov AL, strict byte 008h                  ; b0 08
    29953041    out DX, AL                                ; ee
    29963042    mov dx, strict word 00004h                ; ba 04 00
    2997     jmp near 02abfh                           ; e9 ba 01
     3043    jmp near 02b07h                           ; e9 ba 01
    29983044    sti                                       ; fb
    29993045    mov ax, di                                ; 89 f8
     
    30023048    mov si, di                                ; 89 fe
    30033049    and si, strict byte 0000fh                ; 83 e6 0f
    3004     movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
     3050    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    30053051    mov dx, bx                                ; 89 da
    30063052    mov es, ax                                ; 8e c0
    30073053    db  0f3h, 026h, 06fh
    30083054    ; rep es outsw                              ; f3 26 6f
    3009     cmp byte [bp+00eh], 000h                  ; 80 7e 0e 00
    3010     jne short 0292eh                          ; 75 0b
     3055    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
     3056    jne short 02976h                          ; 75 0b
    30113057    lea dx, [bx+007h]                         ; 8d 57 07
    30123058    in AL, DX                                 ; ec
     
    30143060    ; sub ah, ah                                ; 2a e4
    30153061    mov dl, al                                ; 88 c2
    3016     jmp near 02aa0h                           ; e9 72 01
     3062    jmp near 02ae8h                           ; e9 72 01
    30173063    lea dx, [bx+007h]                         ; 8d 57 07
    30183064    in AL, DX                                 ; ec
     
    30213067    mov dl, al                                ; 88 c2
    30223068    test AL, strict byte 080h                 ; a8 80
    3023     jne short 0292eh                          ; 75 f4
     3069    jne short 02976h                          ; 75 f4
    30243070    test AL, strict byte 088h                 ; a8 88
    3025     je near 02aa0h                            ; 0f 84 60 01
     3071    je near 02ae8h                            ; 0f 84 60 01
    30263072    test AL, strict byte 001h                 ; a8 01
    3027     je short 0294fh                           ; 74 0b
    3028     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3073    je short 02997h                           ; 74 0b
     3074    mov dx, word [bp-010h]                    ; 8b 56 f0
    30293075    add dx, strict byte 00006h                ; 83 c2 06
    30303076    mov AL, strict byte 008h                  ; b0 08
    30313077    out DX, AL                                ; ee
    3032     jmp short 028ebh                          ; eb 9c
     3078    jmp short 02933h                          ; eb 9c
    30333079    mov al, dl                                ; 88 d0
    30343080    and AL, strict byte 0c9h                  ; 24 c9
    30353081    cmp AL, strict byte 048h                  ; 3c 48
    3036     je short 02962h                           ; 74 0b
    3037     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3082    je short 029aah                           ; 74 0b
     3083    mov dx, word [bp-010h]                    ; 8b 56 f0
    30383084    add dx, strict byte 00006h                ; 83 c2 06
    30393085    mov AL, strict byte 008h                  ; b0 08
    30403086    out DX, AL                                ; ee
    3041     jmp short 028ffh                          ; eb 9d
    3042     mov ax, word [bp+010h]                    ; 8b 46 10
     3087    jmp short 02947h                          ; eb 9d
     3088    mov ax, word [bp+00ch]                    ; 8b 46 0c
    30433089    shr ax, 004h                              ; c1 e8 04
    3044     mov dx, word [bp+012h]                    ; 8b 56 12
     3090    mov dx, word [bp+00eh]                    ; 8b 56 0e
    30453091    add dx, ax                                ; 01 c2
    3046     mov ax, word [bp+010h]                    ; 8b 46 10
     3092    mov ax, word [bp+00ch]                    ; 8b 46 0c
    30473093    and ax, strict word 0000fh                ; 25 0f 00
    3048     mov word [bp+010h], ax                    ; 89 46 10
    3049     mov word [bp+012h], dx                    ; 89 56 12
     3094    mov word [bp+00ch], ax                    ; 89 46 0c
     3095    mov word [bp+00eh], dx                    ; 89 56 0e
    30503096    lea dx, [bx+005h]                         ; 8d 57 05
    30513097    in AL, DX                                 ; ec
     
    30593105    ; sub ah, ah                                ; 2a e4
    30603106    add cx, ax                                ; 01 c1
    3061     mov word [bp-010h], cx                    ; 89 4e f0
    3062     mov ax, word [bp+008h]                    ; 8b 46 08
     3107    mov word [bp-014h], cx                    ; 89 4e ec
     3108    mov ax, word [bp+004h]                    ; 8b 46 04
    30633109    cmp ax, cx                                ; 39 c8
    3064     jbe short 029a2h                          ; 76 0c
     3110    jbe short 029eah                          ; 76 0c
    30653111    mov ax, cx                                ; 89 c8
    3066     sub word [bp+008h], cx                    ; 29 4e 08
     3112    sub word [bp+004h], cx                    ; 29 4e 04
    30673113    xor ax, cx                                ; 31 c8
    3068     mov word [bp-010h], ax                    ; 89 46 f0
    3069     jmp short 029ach                          ; eb 0a
     3114    mov word [bp-014h], ax                    ; 89 46 ec
     3115    jmp short 029f4h                          ; eb 0a
    30703116    mov cx, ax                                ; 89 c1
    3071     mov word [bp+008h], strict word 00000h    ; c7 46 08 00 00
    3072     sub word [bp-010h], ax                    ; 29 46 f0
     3117    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     3118    sub word [bp-014h], ax                    ; 29 46 ec
    30733119    xor ax, ax                                ; 31 c0
    3074     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    3075     jne short 029d5h                          ; 75 21
    3076     mov dx, word [bp-010h]                    ; 8b 56 f0
    3077     cmp dx, word [bp+00ah]                    ; 3b 56 0a
    3078     jbe short 029d5h                          ; 76 19
    3079     mov ax, word [bp-010h]                    ; 8b 46 f0
    3080     sub ax, word [bp+00ah]                    ; 2b 46 0a
    3081     mov word [bp-008h], ax                    ; 89 46 f8
    3082     mov ax, word [bp+00ah]                    ; 8b 46 0a
    3083     mov word [bp-010h], ax                    ; 89 46 f0
     3120    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
     3121    jne short 02a1dh                          ; 75 21
     3122    mov dx, word [bp-014h]                    ; 8b 56 ec
     3123    cmp dx, word [bp+006h]                    ; 3b 56 06
     3124    jbe short 02a1dh                          ; 76 19
     3125    mov ax, word [bp-014h]                    ; 8b 46 ec
     3126    sub ax, word [bp+006h]                    ; 2b 46 06
     3127    mov word [bp-00ch], ax                    ; 89 46 f4
     3128    mov ax, word [bp+006h]                    ; 8b 46 06
     3129    mov word [bp-014h], ax                    ; 89 46 ec
    30843130    xor ax, ax                                ; 31 c0
    3085     mov word [bp+00ah], ax                    ; 89 46 0a
    3086     mov word [bp+00ch], ax                    ; 89 46 0c
    3087     jmp short 029e1h                          ; eb 0c
    3088     mov word [bp-008h], ax                    ; 89 46 f8
    3089     mov dx, word [bp-010h]                    ; 8b 56 f0
    3090     sub word [bp+00ah], dx                    ; 29 56 0a
    3091     sbb word [bp+00ch], ax                    ; 19 46 0c
    3092     mov si, word [bp-010h]                    ; 8b 76 f0
    3093     mov al, byte [bp-006h]                    ; 8a 46 fa
     3131    mov word [bp+006h], ax                    ; 89 46 06
     3132    mov word [bp+008h], ax                    ; 89 46 08
     3133    jmp short 02a29h                          ; eb 0c
     3134    mov word [bp-00ch], ax                    ; 89 46 f4
     3135    mov dx, word [bp-014h]                    ; 8b 56 ec
     3136    sub word [bp+006h], dx                    ; 29 56 06
     3137    sbb word [bp+008h], ax                    ; 19 46 08
     3138    mov si, word [bp-014h]                    ; 8b 76 ec
     3139    mov al, byte [bp-00ah]                    ; 8a 46 f6
    30943140    test cl, 003h                             ; f6 c1 03
    3095     je short 029eeh                           ; 74 02
     3141    je short 02a36h                           ; 74 02
    30963142    xor al, al                                ; 30 c0
    3097     test byte [bp-010h], 003h                 ; f6 46 f0 03
    3098     je short 029f6h                           ; 74 02
     3143    test byte [bp-014h], 003h                 ; f6 46 ec 03
     3144    je short 02a3eh                           ; 74 02
    30993145    xor al, al                                ; 30 c0
    3100     test byte [bp-008h], 003h                 ; f6 46 f8 03
    3101     je short 029feh                           ; 74 02
     3146    test byte [bp-00ch], 003h                 ; f6 46 f4 03
     3147    je short 02a46h                           ; 74 02
    31023148    xor al, al                                ; 30 c0
    3103     test byte [bp-010h], 001h                 ; f6 46 f0 01
    3104     je short 02a16h                           ; 74 12
    3105     inc word [bp-010h]                        ; ff 46 f0
    3106     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    3107     jbe short 02a16h                          ; 76 09
    3108     test byte [bp-008h], 001h                 ; f6 46 f8 01
    3109     je short 02a16h                           ; 74 03
    3110     dec word [bp-008h]                        ; ff 4e f8
     3149    test byte [bp-014h], 001h                 ; f6 46 ec 01
     3150    je short 02a5eh                           ; 74 12
     3151    inc word [bp-014h]                        ; ff 46 ec
     3152    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
     3153    jbe short 02a5eh                          ; 76 09
     3154    test byte [bp-00ch], 001h                 ; f6 46 f4 01
     3155    je short 02a5eh                           ; 74 03
     3156    dec word [bp-00ch]                        ; ff 4e f4
    31113157    cmp AL, strict byte 001h                  ; 3c 01
    3112     jne short 02a27h                          ; 75 0d
    3113     shr word [bp-010h], 002h                  ; c1 6e f0 02
     3158    jne short 02a6fh                          ; 75 0d
     3159    shr word [bp-014h], 002h                  ; c1 6e ec 02
    31143160    shr cx, 002h                              ; c1 e9 02
    3115     shr word [bp-008h], 002h                  ; c1 6e f8 02
    3116     jmp short 02a2fh                          ; eb 08
    3117     shr word [bp-010h], 1                     ; d1 6e f0
     3161    shr word [bp-00ch], 002h                  ; c1 6e f4 02
     3162    jmp short 02a77h                          ; eb 08
     3163    shr word [bp-014h], 1                     ; d1 6e ec
    31183164    shr cx, 1                                 ; d1 e9
    3119     shr word [bp-008h], 1                     ; d1 6e f8
     3165    shr word [bp-00ch], 1                     ; d1 6e f4
    31203166    cmp AL, strict byte 001h                  ; 3c 01
    3121     jne short 02a5fh                          ; 75 2c
     3167    jne short 02aa7h                          ; 75 2c
    31223168    test cx, cx                               ; 85 c9
    3123     je short 02a41h                           ; 74 0a
     3169    je short 02a89h                           ; 74 0a
    31243170    mov dx, bx                                ; 89 da
    31253171    push eax                                  ; 66 50
    31263172    in eax, DX                                ; 66 ed
    3127     loop 02a3bh                               ; e2 fc
     3173    loop 02a83h                               ; e2 fc
    31283174    pop eax                                   ; 66 58
    31293175    mov dx, bx                                ; 89 da
    3130     mov cx, word [bp-010h]                    ; 8b 4e f0
    3131     les di, [bp+010h]                         ; c4 7e 10
     3176    mov cx, word [bp-014h]                    ; 8b 4e ec
     3177    les di, [bp+00ch]                         ; c4 7e 0c
    31323178    db  0f3h, 066h, 06dh
    31333179    ; rep insd                                  ; f3 66 6d
    3134     mov ax, word [bp-008h]                    ; 8b 46 f8
     3180    mov ax, word [bp-00ch]                    ; 8b 46 f4
    31353181    test ax, ax                               ; 85 c0
    3136     je short 02a7eh                           ; 74 2b
     3182    je short 02ac6h                           ; 74 2b
    31373183    mov cx, ax                                ; 89 c1
    31383184    push eax                                  ; 66 50
    31393185    in eax, DX                                ; 66 ed
    3140     loop 02a57h                               ; e2 fc
     3186    loop 02a9fh                               ; e2 fc
    31413187    pop eax                                   ; 66 58
    3142     jmp short 02a7eh                          ; eb 1f
     3188    jmp short 02ac6h                          ; eb 1f
    31433189    test cx, cx                               ; 85 c9
    3144     je short 02a68h                           ; 74 05
     3190    je short 02ab0h                           ; 74 05
    31453191    mov dx, bx                                ; 89 da
    31463192    in ax, DX                                 ; ed
    3147     loop 02a65h                               ; e2 fd
     3193    loop 02aadh                               ; e2 fd
    31483194    mov dx, bx                                ; 89 da
    3149     mov cx, word [bp-010h]                    ; 8b 4e f0
    3150     les di, [bp+010h]                         ; c4 7e 10
     3195    mov cx, word [bp-014h]                    ; 8b 4e ec
     3196    les di, [bp+00ch]                         ; c4 7e 0c
    31513197    rep insw                                  ; f3 6d
    3152     mov ax, word [bp-008h]                    ; 8b 46 f8
     3198    mov ax, word [bp-00ch]                    ; 8b 46 f4
    31533199    test ax, ax                               ; 85 c0
    3154     je short 02a7eh                           ; 74 05
     3200    je short 02ac6h                           ; 74 05
    31553201    mov cx, ax                                ; 89 c1
    31563202    in ax, DX                                 ; ed
    3157     loop 02a7bh                               ; e2 fd
    3158     add word [bp+010h], si                    ; 01 76 10
     3203    loop 02ac3h                               ; e2 fd
     3204    add word [bp+00ch], si                    ; 01 76 0c
    31593205    xor ax, ax                                ; 31 c0
    3160     add word [bp-014h], si                    ; 01 76 ec
    3161     adc word [bp-012h], ax                    ; 11 46 ee
    3162     mov ax, word [bp-014h]                    ; 8b 46 ec
    3163     mov es, [bp-00ah]                         ; 8e 46 f6
    3164     mov si, word [bp-00eh]                    ; 8b 76 f2
     3206    add word [bp-018h], si                    ; 01 76 e8
     3207    adc word [bp-016h], ax                    ; 11 46 ea
     3208    mov ax, word [bp-018h]                    ; 8b 46 e8
     3209    mov es, [bp-00eh]                         ; 8e 46 f2
     3210    mov si, word [bp-012h]                    ; 8b 76 ee
    31653211    mov word [es:si+016h], ax                 ; 26 89 44 16
    3166     mov ax, word [bp-012h]                    ; 8b 46 ee
     3212    mov ax, word [bp-016h]                    ; 8b 46 ea
    31673213    mov word [es:si+018h], ax                 ; 26 89 44 18
    3168     jmp near 0292eh                           ; e9 8e fe
     3214    jmp near 02976h                           ; e9 8e fe
    31693215    mov al, dl                                ; 88 d0
    31703216    and AL, strict byte 0e9h                  ; 24 e9
    31713217    cmp AL, strict byte 040h                  ; 3c 40
    3172     je short 02ab4h                           ; 74 0c
    3173     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3218    je short 02afch                           ; 74 0c
     3219    mov dx, word [bp-010h]                    ; 8b 56 f0
    31743220    add dx, strict byte 00006h                ; 83 c2 06
    31753221    mov AL, strict byte 008h                  ; b0 08
    31763222    out DX, AL                                ; ee
    3177     jmp near 028ffh                           ; e9 4b fe
    3178     mov dx, word [bp-00ch]                    ; 8b 56 f4
     3223    jmp near 02947h                           ; e9 4b fe
     3224    mov dx, word [bp-010h]                    ; 8b 56 f0
    31793225    add dx, strict byte 00006h                ; 83 c2 06
    31803226    mov AL, strict byte 008h                  ; b0 08
     
    31823228    xor dx, dx                                ; 31 d2
    31833229    mov ax, dx                                ; 89 d0
    3184     leave                                     ; c9
     3230    lea sp, [bp-004h]                         ; 8d 66 fc
    31853231    pop di                                    ; 5f
    31863232    pop si                                    ; 5e
     3233    pop bp                                    ; 5d
    31873234    retn 0000ch                               ; c2 0c 00
    3188 ata_soft_reset_:                             ; 0xf2ac7 LB 0x7d
     3235ata_soft_reset_:                             ; 0xf2b12 LB 0x80
     3236    push bp                                   ; 55
     3237    mov bp, sp                                ; 89 e5
    31893238    push bx                                   ; 53
    31903239    push cx                                   ; 51
    31913240    push dx                                   ; 52
    3192     enter 00002h, 000h                        ; c8 02 00 00
     3241    push ax                                   ; 50
    31933242    mov bx, ax                                ; 89 c3
    31943243    mov dx, strict word 0000eh                ; ba 0e 00
    31953244    mov ax, strict word 00040h                ; b8 40 00
    3196     call 0161ch                               ; e8 43 eb
     3245    call 0161ch                               ; e8 f8 ea
    31973246    mov dx, bx                                ; 89 da
    31983247    shr dx, 1                                 ; d1 ea
    31993248    and bl, 001h                              ; 80 e3 01
    3200     mov byte [bp-002h], bl                    ; 88 5e fe
     3249    mov byte [bp-008h], bl                    ; 88 5e f8
    32013250    xor dh, dh                                ; 30 f6
    32023251    imul bx, dx, strict byte 00006h           ; 6b da 06
     
    32083257    mov AL, strict byte 00ah                  ; b0 0a
    32093258    out DX, AL                                ; ee
    3210     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3211     je short 02b09h                           ; 74 05
     3259    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     3260    je short 02b54h                           ; 74 05
    32123261    mov ax, 000b0h                            ; b8 b0 00
    3213     jmp short 02b0ch                          ; eb 03
     3262    jmp short 02b57h                          ; eb 03
    32143263    mov ax, 000a0h                            ; b8 a0 00
    32153264    mov dx, cx                                ; 89 ca
     
    32263275    ; sub ah, ah                                ; 2a e4
    32273276    test AL, strict byte 080h                 ; a8 80
    3228     jne short 02b1ah                          ; 75 f4
     3277    jne short 02b65h                          ; 75 f4
    32293278    and AL, strict byte 0e9h                  ; 24 e9
    32303279    cmp AL, strict byte 040h                  ; 3c 40
    3231     je short 02b37h                           ; 74 0b
     3280    je short 02b82h                           ; 74 0b
    32323281    lea dx, [bx+006h]                         ; 8d 57 06
    32333282    mov AL, strict byte 008h                  ; b0 08
    32343283    out DX, AL                                ; ee
    32353284    mov ax, strict word 00001h                ; b8 01 00
    3236     jmp short 02b3fh                          ; eb 08
     3285    jmp short 02b8ah                          ; eb 08
    32373286    lea dx, [bx+006h]                         ; 8d 57 06
    32383287    mov AL, strict byte 008h                  ; b0 08
    32393288    out DX, AL                                ; ee
    32403289    xor ax, ax                                ; 31 c0
    3241     leave                                     ; c9
     3290    lea sp, [bp-006h]                         ; 8d 66 fa
    32423291    pop dx                                    ; 5a
    32433292    pop cx                                    ; 59
    32443293    pop bx                                    ; 5b
     3294    pop bp                                    ; 5d
    32453295    retn                                      ; c3
    3246 set_diskette_ret_status_:                    ; 0xf2b44 LB 0x15
     3296set_diskette_ret_status_:                    ; 0xf2b92 LB 0x18
     3297    push bp                                   ; 55
     3298    mov bp, sp                                ; 89 e5
    32473299    push bx                                   ; 53
    32483300    push dx                                   ; 52
    3249     push bp                                   ; 55
    3250     mov bp, sp                                ; 89 e5
    32513301    movzx bx, al                              ; 0f b6 d8
    32523302    mov dx, strict word 00041h                ; ba 41 00
    32533303    mov ax, strict word 00040h                ; b8 40 00
    3254     call 0160eh                               ; e8 b9 ea
    3255     pop bp                                    ; 5d
     3304    call 0160eh                               ; e8 6b ea
     3305    lea sp, [bp-004h]                         ; 8d 66 fc
    32563306    pop dx                                    ; 5a
    32573307    pop bx                                    ; 5b
     3308    pop bp                                    ; 5d
    32583309    retn                                      ; c3
    3259 set_diskette_current_cyl_:                   ; 0xf2b59 LB 0x2a
    3260     push bx                                   ; 53
     3310set_diskette_current_cyl_:                   ; 0xf2baa LB 0x2d
    32613311    push bp                                   ; 55
    32623312    mov bp, sp                                ; 89 e5
     3313    push bx                                   ; 53
    32633314    mov bl, al                                ; 88 c3
    32643315    cmp AL, strict byte 001h                  ; 3c 01
    3265     jbe short 02b6eh                          ; 76 0b
     3316    jbe short 02bbfh                          ; 76 0b
    32663317    push 001c0h                               ; 68 c0 01
    32673318    push strict byte 00007h                   ; 6a 07
    3268     call 018e9h                               ; e8 7e ed
     3319    call 0190dh                               ; e8 51 ed
    32693320    add sp, strict byte 00004h                ; 83 c4 04
    32703321    movzx ax, dl                              ; 0f b6 c2
     
    32733324    mov bx, ax                                ; 89 c3
    32743325    mov ax, strict word 00040h                ; b8 40 00
    3275     call 0160eh                               ; e8 8e ea
     3326    call 0160eh                               ; e8 3d ea
     3327    lea sp, [bp-002h]                         ; 8d 66 fe
     3328    pop bx                                    ; 5b
    32763329    pop bp                                    ; 5d
     3330    retn                                      ; c3
     3331floppy_wait_for_interrupt_:                  ; 0xf2bd7 LB 0x21
     3332    push bp                                   ; 55
     3333    mov bp, sp                                ; 89 e5
     3334    push dx                                   ; 52
     3335    cli                                       ; fa
     3336    mov dx, strict word 0003eh                ; ba 3e 00
     3337    mov ax, strict word 00040h                ; b8 40 00
     3338    call 01600h                               ; e8 1b ea
     3339    test AL, strict byte 080h                 ; a8 80
     3340    je short 02bedh                           ; 74 04
     3341    and AL, strict byte 080h                  ; 24 80
     3342    jmp short 02bf2h                          ; eb 05
     3343    sti                                       ; fb
     3344    hlt                                       ; f4
     3345    cli                                       ; fa
     3346    jmp short 02bdch                          ; eb ea
     3347    lea sp, [bp-002h]                         ; 8d 66 fe
     3348    pop dx                                    ; 5a
     3349    pop bp                                    ; 5d
     3350    retn                                      ; c3
     3351floppy_wait_for_interrupt_or_timeout_:       ; 0xf2bf8 LB 0x46
     3352    push bp                                   ; 55
     3353    mov bp, sp                                ; 89 e5
     3354    push bx                                   ; 53
     3355    push cx                                   ; 51
     3356    push dx                                   ; 52
     3357    cli                                       ; fa
     3358    mov dx, strict word 00040h                ; ba 40 00
     3359    mov ax, dx                                ; 89 d0
     3360    call 01600h                               ; e8 f9 e9
     3361    test al, al                               ; 84 c0
     3362    jne short 02c10h                          ; 75 05
     3363    sti                                       ; fb
     3364    xor cl, cl                                ; 30 c9
     3365    jmp short 02c34h                          ; eb 24
     3366    mov dx, strict word 0003eh                ; ba 3e 00
     3367    mov ax, strict word 00040h                ; b8 40 00
     3368    call 01600h                               ; e8 e7 e9
     3369    mov cl, al                                ; 88 c1
     3370    test AL, strict byte 080h                 ; a8 80
     3371    je short 02c2fh                           ; 74 10
     3372    and AL, strict byte 07fh                  ; 24 7f
     3373    movzx bx, al                              ; 0f b6 d8
     3374    mov dx, strict word 0003eh                ; ba 3e 00
     3375    mov ax, strict word 00040h                ; b8 40 00
     3376    call 0160eh                               ; e8 e1 e9
     3377    jmp short 02c34h                          ; eb 05
     3378    sti                                       ; fb
     3379    hlt                                       ; f4
     3380    cli                                       ; fa
     3381    jmp short 02bffh                          ; eb cb
     3382    mov al, cl                                ; 88 c8
     3383    lea sp, [bp-006h]                         ; 8d 66 fa
     3384    pop dx                                    ; 5a
     3385    pop cx                                    ; 59
    32773386    pop bx                                    ; 5b
     3387    pop bp                                    ; 5d
    32783388    retn                                      ; c3
    3279 floppy_reset_controller_:                    ; 0xf2b83 LB 0x28
     3389floppy_reset_controller_:                    ; 0xf2c3e LB 0x2b
     3390    push bp                                   ; 55
     3391    mov bp, sp                                ; 89 e5
    32803392    push bx                                   ; 53
    32813393    push dx                                   ; 52
    3282     push bp                                   ; 55
    3283     mov bp, sp                                ; 89 e5
    32843394    mov dx, 003f2h                            ; ba f2 03
    32853395    in AL, DX                                 ; ec
     
    32993409    and AL, strict byte 0c0h                  ; 24 c0
    33003410    cmp AL, strict byte 080h                  ; 3c 80
    3301     jne short 02b9bh                          ; 75 f4
    3302     pop bp                                    ; 5d
     3411    jne short 02c56h                          ; 75 f4
     3412    lea sp, [bp-004h]                         ; 8d 66 fc
    33033413    pop dx                                    ; 5a
    33043414    pop bx                                    ; 5b
     3415    pop bp                                    ; 5d
    33053416    retn                                      ; c3
    3306 floppy_prepare_controller_:                  ; 0xf2bab LB 0x8c
     3417floppy_prepare_controller_:                  ; 0xf2c69 LB 0x81
     3418    push bp                                   ; 55
     3419    mov bp, sp                                ; 89 e5
    33073420    push bx                                   ; 53
    33083421    push cx                                   ; 51
    33093422    push dx                                   ; 52
    3310     enter 00002h, 000h                        ; c8 02 00 00
     3423    push ax                                   ; 50
    33113424    mov cx, ax                                ; 89 c1
    33123425    mov dx, strict word 0003eh                ; ba 3e 00
    33133426    mov ax, strict word 00040h                ; b8 40 00
    3314     call 01600h                               ; e8 43 ea
     3427    call 01600h                               ; e8 85 e9
    33153428    and AL, strict byte 07fh                  ; 24 7f
    33163429    movzx bx, al                              ; 0f b6 d8
    33173430    mov dx, strict word 0003eh                ; ba 3e 00
    33183431    mov ax, strict word 00040h                ; b8 40 00
    3319     call 0160eh                               ; e8 43 ea
     3432    call 0160eh                               ; e8 85 e9
    33203433    mov dx, 003f2h                            ; ba f2 03
    33213434    in AL, DX                                 ; ec
     
    33233436    ; sub ah, ah                                ; 2a e4
    33243437    and AL, strict byte 004h                  ; 24 04
    3325     mov byte [bp-002h], al                    ; 88 46 fe
     3438    mov byte [bp-008h], al                    ; 88 46 f8
    33263439    test cx, cx                               ; 85 c9
    3327     je short 02bdeh                           ; 74 04
     3440    je short 02c9ch                           ; 74 04
    33283441    mov AL, strict byte 020h                  ; b0 20
    3329     jmp short 02be0h                          ; eb 02
     3442    jmp short 02c9eh                          ; eb 02
    33303443    mov AL, strict byte 010h                  ; b0 10
    33313444    or AL, strict byte 00ch                   ; 0c 0c
     
    33363449    mov dx, strict word 00040h                ; ba 40 00
    33373450    mov ax, dx                                ; 89 d0
    3338     call 0160eh                               ; e8 1b ea
     3451    call 0160eh                               ; e8 5d e9
    33393452    mov dx, 0008bh                            ; ba 8b 00
    33403453    mov ax, strict word 00040h                ; b8 40 00
    3341     call 01600h                               ; e8 04 ea
     3454    call 01600h                               ; e8 46 e9
    33423455    shr al, 006h                              ; c0 e8 06
    33433456    mov dx, 003f7h                            ; ba f7 03
     
    33493462    and AL, strict byte 0c0h                  ; 24 c0
    33503463    cmp AL, strict byte 080h                  ; 3c 80
    3351     jne short 02c03h                          ; 75 f4
    3352     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    3353     jne short 02c32h                          ; 75 1d
    3354     sti                                       ; fb
    3355     mov dx, strict word 0003eh                ; ba 3e 00
    3356     mov ax, strict word 00040h                ; b8 40 00
    3357     call 01600h                               ; e8 e1 e9
    3358     test AL, strict byte 080h                 ; a8 80
    3359     je short 02c16h                           ; 74 f3
    3360     and AL, strict byte 07fh                  ; 24 7f
    3361     cli                                       ; fa
     3464    jne short 02cc1h                          ; 75 f4
     3465    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     3466    jne short 02ce2h                          ; 75 0f
     3467    call 02bd7h                               ; e8 01 ff
    33623468    movzx bx, al                              ; 0f b6 d8
    33633469    mov dx, strict word 0003eh                ; ba 3e 00
    33643470    mov ax, strict word 00040h                ; b8 40 00
    3365     call 0160eh                               ; e8 dc e9
    3366     leave                                     ; c9
     3471    call 0160eh                               ; e8 2c e9
     3472    lea sp, [bp-006h]                         ; 8d 66 fa
    33673473    pop dx                                    ; 5a
    33683474    pop cx                                    ; 59
    33693475    pop bx                                    ; 5b
     3476    pop bp                                    ; 5d
    33703477    retn                                      ; c3
    3371 floppy_media_known_:                         ; 0xf2c37 LB 0x40
     3478floppy_media_known_:                         ; 0xf2cea LB 0x43
     3479    push bp                                   ; 55
     3480    mov bp, sp                                ; 89 e5
    33723481    push bx                                   ; 53
    33733482    push dx                                   ; 52
    3374     push bp                                   ; 55
    3375     mov bp, sp                                ; 89 e5
    33763483    mov bx, ax                                ; 89 c3
    33773484    mov dx, strict word 0003eh                ; ba 3e 00
    33783485    mov ax, strict word 00040h                ; b8 40 00
    3379     call 01600h                               ; e8 b9 e9
     3486    call 01600h                               ; e8 06 e9
    33803487    mov ah, al                                ; 88 c4
    33813488    test bx, bx                               ; 85 db
    3382     je short 02c4fh                           ; 74 02
     3489    je short 02d02h                           ; 74 02
    33833490    shr al, 1                                 ; d0 e8
    33843491    and AL, strict byte 001h                  ; 24 01
    3385     jne short 02c57h                          ; 75 04
     3492    jne short 02d0ah                          ; 75 04
    33863493    xor ah, ah                                ; 30 e4
    3387     jmp short 02c73h                          ; eb 1c
     3494    jmp short 02d26h                          ; eb 1c
    33883495    mov dx, 00090h                            ; ba 90 00
    33893496    test bx, bx                               ; 85 db
    3390     je short 02c61h                           ; 74 03
     3497    je short 02d14h                           ; 74 03
    33913498    mov dx, 00091h                            ; ba 91 00
    33923499    mov ax, strict word 00040h                ; b8 40 00
    3393     call 01600h                               ; e8 99 e9
     3500    call 01600h                               ; e8 e6 e8
    33943501    xor ah, ah                                ; 30 e4
    33953502    sar ax, 004h                              ; c1 f8 04
    33963503    and AL, strict byte 001h                  ; 24 01
    3397     je short 02c53h                           ; 74 e3
     3504    je short 02d06h                           ; 74 e3
    33983505    mov ax, strict word 00001h                ; b8 01 00
    3399     pop bp                                    ; 5d
     3506    lea sp, [bp-004h]                         ; 8d 66 fc
    34003507    pop dx                                    ; 5a
    34013508    pop bx                                    ; 5b
     3509    pop bp                                    ; 5d
    34023510    retn                                      ; c3
    3403 floppy_read_id_:                             ; 0xf2c77 LB 0x49
     3511floppy_read_id_:                             ; 0xf2d2d LB 0x40
     3512    push bp                                   ; 55
     3513    mov bp, sp                                ; 89 e5
    34043514    push bx                                   ; 53
    34053515    push dx                                   ; 52
    34063516    push si                                   ; 56
    3407     enter 00008h, 000h                        ; c8 08 00 00
     3517    sub sp, strict byte 00008h                ; 83 ec 08
    34083518    mov bx, ax                                ; 89 c3
    3409     call 02babh                               ; e8 28 ff
     3519    call 02c69h                               ; e8 2e ff
    34103520    mov AL, strict byte 04ah                  ; b0 4a
    34113521    mov dx, 003f5h                            ; ba f5 03
     
    34133523    mov al, bl                                ; 88 d8
    34143524    out DX, AL                                ; ee
    3415     sti                                       ; fb
    3416     mov dx, strict word 0003eh                ; ba 3e 00
    3417     mov ax, strict word 00040h                ; b8 40 00
    3418     call 01600h                               ; e8 6a e9
    3419     and AL, strict byte 080h                  ; 24 80
    3420     test al, al                               ; 84 c0
    3421     je short 02c8dh                           ; 74 f1
    3422     cli                                       ; fa
     3525    call 02bd7h                               ; e8 90 fe
    34233526    xor si, si                                ; 31 f6
    3424     jmp short 02ca6h                          ; eb 05
     3527    jmp short 02d50h                          ; eb 05
    34253528    cmp si, strict byte 00007h                ; 83 fe 07
    3426     jnl short 02cb2h                          ; 7d 0c
     3529    jnl short 02d5ch                          ; 7d 0c
    34273530    mov dx, 003f5h                            ; ba f5 03
    34283531    in AL, DX                                 ; ec
    34293532    db  02ah, 0e4h
    34303533    ; sub ah, ah                                ; 2a e4
    3431     mov byte [bp+si-008h], al                 ; 88 42 f8
     3534    mov byte [bp+si-00eh], al                 ; 88 42 f2
    34323535    inc si                                    ; 46
    3433     jmp short 02ca1h                          ; eb ef
    3434     test byte [bp-008h], 0c0h                 ; f6 46 f8 c0
     3536    jmp short 02d4bh                          ; eb ef
     3537    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    34353538    db  00fh, 094h, 0c0h
    34363539    ; sete al                                   ; 0f 94 c0
    34373540    xor ah, ah                                ; 30 e4
    3438     leave                                     ; c9
     3541    lea sp, [bp-006h]                         ; 8d 66 fa
    34393542    pop si                                    ; 5e
    34403543    pop dx                                    ; 5a
    34413544    pop bx                                    ; 5b
     3545    pop bp                                    ; 5d
    34423546    retn                                      ; c3
    3443 floppy_drive_recal_:                         ; 0xf2cc0 LB 0x5e
     3547floppy_drive_recal_:                         ; 0xf2d6d LB 0x48
     3548    push bp                                   ; 55
     3549    mov bp, sp                                ; 89 e5
    34443550    push bx                                   ; 53
    34453551    push cx                                   ; 51
    34463552    push dx                                   ; 52
    3447     push bp                                   ; 55
    3448     mov bp, sp                                ; 89 e5
    34493553    mov bx, ax                                ; 89 c3
    3450     call 02babh                               ; e8 e0 fe
     3554    call 02c69h                               ; e8 f1 fe
    34513555    mov AL, strict byte 007h                  ; b0 07
    34523556    mov dx, 003f5h                            ; ba f5 03
     
    34543558    mov al, bl                                ; 88 d8
    34553559    out DX, AL                                ; ee
    3456     sti                                       ; fb
    3457     mov dx, strict word 0003eh                ; ba 3e 00
    3458     mov ax, strict word 00040h                ; b8 40 00
    3459     call 01600h                               ; e8 22 e9
    3460     and AL, strict byte 080h                  ; 24 80
    3461     test al, al                               ; 84 c0
    3462     je short 02cd5h                           ; 74 f1
    3463     cli                                       ; fa
    3464     mov dx, strict word 0003eh                ; ba 3e 00
    3465     mov ax, strict word 00040h                ; b8 40 00
    3466     call 01600h                               ; e8 12 e9
    3467     and AL, strict byte 07fh                  ; 24 7f
     3560    call 02bd7h                               ; e8 53 fe
    34683561    test bx, bx                               ; 85 db
    3469     je short 02cfbh                           ; 74 07
     3562    je short 02d8fh                           ; 74 07
    34703563    or AL, strict byte 002h                   ; 0c 02
    34713564    mov cx, 00095h                            ; b9 95 00
    3472     jmp short 02d00h                          ; eb 05
     3565    jmp short 02d94h                          ; eb 05
    34733566    or AL, strict byte 001h                   ; 0c 01
    34743567    mov cx, 00094h                            ; b9 94 00
     
    34763569    mov dx, strict word 0003eh                ; ba 3e 00
    34773570    mov ax, strict word 00040h                ; b8 40 00
    3478     call 0160eh                               ; e8 02 e9
     3571    call 0160eh                               ; e8 6e e8
    34793572    xor bx, bx                                ; 31 db
    34803573    mov dx, cx                                ; 89 ca
    34813574    mov ax, strict word 00040h                ; b8 40 00
    3482     call 0160eh                               ; e8 f8 e8
     3575    call 0160eh                               ; e8 64 e8
    34833576    mov ax, strict word 00001h                ; b8 01 00
    3484     pop bp                                    ; 5d
     3577    lea sp, [bp-006h]                         ; 8d 66 fa
    34853578    pop dx                                    ; 5a
    34863579    pop cx                                    ; 59
    34873580    pop bx                                    ; 5b
     3581    pop bp                                    ; 5d
    34883582    retn                                      ; c3
    3489 floppy_media_sense_:                         ; 0xf2d1e LB 0xfa
     3583floppy_media_sense_:                         ; 0xf2db5 LB 0x115
     3584    push bp                                   ; 55
     3585    mov bp, sp                                ; 89 e5
    34903586    push bx                                   ; 53
    34913587    push cx                                   ; 51
     
    34933589    push si                                   ; 56
    34943590    push di                                   ; 57
    3495     push bp                                   ; 55
    3496     mov bp, sp                                ; 89 e5
    34973591    mov di, ax                                ; 89 c7
    3498     call 02cc0h                               ; e8 95 ff
     3592    call 02d6dh                               ; e8 ab ff
    34993593    test ax, ax                               ; 85 c0
    3500     jne short 02d34h                          ; 75 05
     3594    jne short 02dcbh                          ; 75 05
    35013595    xor cx, cx                                ; 31 c9
    3502     jmp near 02e0fh                           ; e9 db 00
     3596    jmp near 02ebeh                           ; e9 f3 00
    35033597    mov ax, strict word 00010h                ; b8 10 00
    3504     call 0165ch                               ; e8 22 e9
     3598    call 0165ch                               ; e8 8b e8
    35053599    test di, di                               ; 85 ff
    3506     jne short 02d45h                          ; 75 07
     3600    jne short 02ddch                          ; 75 07
    35073601    mov cl, al                                ; 88 c1
    35083602    shr cl, 004h                              ; c0 e9 04
    3509     jmp short 02d4ah                          ; eb 05
     3603    jmp short 02de1h                          ; eb 05
    35103604    mov cl, al                                ; 88 c1
    35113605    and cl, 00fh                              ; 80 e1 0f
    35123606    cmp cl, 001h                              ; 80 f9 01
    3513     jne short 02d58h                          ; 75 09
     3607    jne short 02defh                          ; 75 09
    35143608    xor cl, cl                                ; 30 c9
    35153609    mov CH, strict byte 015h                  ; b5 15
    35163610    mov si, strict word 00001h                ; be 01 00
    3517     jmp short 02da3h                          ; eb 4b
     3611    jmp short 02e52h                          ; eb 63
    35183612    cmp cl, 002h                              ; 80 f9 02
    3519     jne short 02d63h                          ; 75 06
     3613    jne short 02dfah                          ; 75 06
    35203614    xor cl, cl                                ; 30 c9
    35213615    mov CH, strict byte 035h                  ; b5 35
    3522     jmp short 02d53h                          ; eb f0
     3616    jmp short 02deah                          ; eb f0
    35233617    cmp cl, 003h                              ; 80 f9 03
    3524     jne short 02d6eh                          ; 75 06
     3618    jne short 02e05h                          ; 75 06
    35253619    xor cl, cl                                ; 30 c9
    35263620    mov CH, strict byte 017h                  ; b5 17
    3527     jmp short 02d53h                          ; eb e5
     3621    jmp short 02deah                          ; eb e5
    35283622    cmp cl, 004h                              ; 80 f9 04
    3529     jne short 02d79h                          ; 75 06
     3623    jne short 02e10h                          ; 75 06
    35303624    xor cl, cl                                ; 30 c9
    35313625    mov CH, strict byte 017h                  ; b5 17
    3532     jmp short 02d53h                          ; eb da
     3626    jmp short 02deah                          ; eb da
    35333627    cmp cl, 005h                              ; 80 f9 05
    3534     jne short 02d84h                          ; 75 06
     3628    jne short 02e1bh                          ; 75 06
    35353629    mov CL, strict byte 0cch                  ; b1 cc
    35363630    mov CH, strict byte 0d7h                  ; b5 d7
    3537     jmp short 02d53h                          ; eb cf
     3631    jmp short 02deah                          ; eb cf
    35383632    cmp cl, 006h                              ; 80 f9 06
    3539     jne short 02d8fh                          ; 75 06
     3633    jne short 02e26h                          ; 75 06
    35403634    xor cl, cl                                ; 30 c9
    35413635    mov CH, strict byte 027h                  ; b5 27
    3542     jmp short 02d53h                          ; eb c4
     3636    jmp short 02deah                          ; eb c4
    35433637    cmp cl, 007h                              ; 80 f9 07
    3544     jne short 02d96h                          ; 75 02
    3545     jmp short 02d89h                          ; eb f3
     3638    jne short 02e31h                          ; 75 06
     3639    xor cl, cl                                ; 30 c9
     3640    mov CH, strict byte 027h                  ; b5 27
     3641    jmp short 02deah                          ; eb b9
    35463642    cmp cl, 008h                              ; 80 f9 08
    3547     jne short 02d9dh                          ; 75 02
    3548     jmp short 02d89h                          ; eb ec
     3643    jne short 02e3ch                          ; 75 06
     3644    xor cl, cl                                ; 30 c9
     3645    mov CH, strict byte 027h                  ; b5 27
     3646    jmp short 02deah                          ; eb ae
     3647    cmp cl, 00eh                              ; 80 f9 0e
     3648    je short 02e46h                           ; 74 05
     3649    cmp cl, 00fh                              ; 80 f9 0f
     3650    jne short 02e4ch                          ; 75 06
     3651    mov CL, strict byte 0cch                  ; b1 cc
     3652    mov CH, strict byte 0d7h                  ; b5 d7
     3653    jmp short 02deah                          ; eb 9e
    35493654    xor cl, cl                                ; 30 c9
    35503655    xor ch, ch                                ; 30 ed
     
    35533658    mov dx, 0008bh                            ; ba 8b 00
    35543659    mov ax, strict word 00040h                ; b8 40 00
    3555     call 0160eh                               ; e8 5f e8
     3660    call 0160eh                               ; e8 b0 e7
    35563661    mov ax, di                                ; 89 f8
    3557     call 02c77h                               ; e8 c3 fe
     3662    call 02d2dh                               ; e8 ca fe
    35583663    test ax, ax                               ; 85 c0
    3559     jne short 02deah                          ; 75 32
     3664    jne short 02e99h                          ; 75 32
    35603665    mov al, cl                                ; 88 c8
    35613666    and AL, strict byte 0c0h                  ; 24 c0
    35623667    cmp AL, strict byte 080h                  ; 3c 80
    3563     je short 02deah                           ; 74 2a
     3668    je short 02e99h                           ; 74 2a
    35643669    mov al, cl                                ; 88 c8
    35653670    and AL, strict byte 0c0h                  ; 24 c0
    35663671    cmp AL, strict byte 0c0h                  ; 3c c0
    3567     je short 02dd7h                           ; 74 0f
     3672    je short 02e86h                           ; 74 0f
    35683673    mov ah, cl                                ; 88 cc
    35693674    and ah, 03fh                              ; 80 e4 3f
    35703675    cmp AL, strict byte 040h                  ; 3c 40
    3571     je short 02de3h                           ; 74 12
     3676    je short 02e92h                           ; 74 12
    35723677    test al, al                               ; 84 c0
    3573     je short 02ddch                           ; 74 07
    3574     jmp short 02da3h                          ; eb cc
     3678    je short 02e8bh                           ; 74 07
     3679    jmp short 02e52h                          ; eb cc
    35753680    and cl, 03fh                              ; 80 e1 3f
    3576     jmp short 02da3h                          ; eb c7
     3681    jmp short 02e52h                          ; eb c7
    35773682    mov cl, ah                                ; 88 e1
    35783683    or cl, 040h                               ; 80 c9 40
    3579     jmp short 02da3h                          ; eb c0
     3684    jmp short 02e52h                          ; eb c0
    35803685    mov cl, ah                                ; 88 e1
    35813686    or cl, 080h                               ; 80 c9 80
    3582     jmp short 02da3h                          ; eb b9
     3687    jmp short 02e52h                          ; eb b9
    35833688    test di, di                               ; 85 ff
    35843689    db  00fh, 095h, 0c0h
     
    35893694    mov dx, 0008bh                            ; ba 8b 00
    35903695    mov ax, strict word 00040h                ; b8 40 00
    3591     call 0160eh                               ; e8 0c e8
     3696    call 0160eh                               ; e8 5d e7
    35923697    movzx bx, ch                              ; 0f b6 dd
    35933698    mov dx, di                                ; 89 fa
    35943699    mov ax, strict word 00040h                ; b8 40 00
    3595     call 0160eh                               ; e8 01 e8
     3700    call 0160eh                               ; e8 52 e7
    35963701    mov cx, si                                ; 89 f1
    35973702    mov ax, cx                                ; 89 c8
    3598     pop bp                                    ; 5d
     3703    lea sp, [bp-00ah]                         ; 8d 66 f6
    35993704    pop di                                    ; 5f
    36003705    pop si                                    ; 5e
     
    36023707    pop cx                                    ; 59
    36033708    pop bx                                    ; 5b
     3709    pop bp                                    ; 5d
    36043710    retn                                      ; c3
    3605 floppy_drive_exists_:                        ; 0xf2e18 LB 0x33
    3606     push dx                                   ; 52
     3711floppy_drive_exists_:                        ; 0xf2eca LB 0x24
    36073712    push bp                                   ; 55
    36083713    mov bp, sp                                ; 89 e5
     3714    push dx                                   ; 52
    36093715    mov dx, ax                                ; 89 c2
    36103716    mov ax, strict word 00010h                ; b8 10 00
    3611     call 0165ch                               ; e8 38 e8
     3717    call 0165ch                               ; e8 86 e7
    36123718    test dx, dx                               ; 85 d2
    3613     jne short 02e2dh                          ; 75 05
     3719    jne short 02edfh                          ; 75 05
    36143720    shr al, 004h                              ; c0 e8 04
    3615     jmp short 02e2fh                          ; eb 02
     3721    jmp short 02ee1h                          ; eb 02
    36163722    and AL, strict byte 00fh                  ; 24 0f
    36173723    test al, al                               ; 84 c0
     
    36193725    ; setne al                                  ; 0f 95 c0
    36203726    xor ah, ah                                ; 30 e4
     3727    lea sp, [bp-002h]                         ; 8d 66 fe
     3728    pop dx                                    ; 5a
    36213729    pop bp                                    ; 5d
    3622     pop dx                                    ; 5a
    36233730    retn                                      ; c3
    3624     cmc                                       ; f5
    3625     xor AL, strict byte 000h                  ; 34 00
    3626     xor ax, 0350ah                            ; 35 0a 35
    3627     adc word [di], si                         ; 11 35
    3628     sbb byte [di], dh                         ; 18 35
    3629     pop DS                                    ; 1f
    3630     xor ax, 03526h                            ; 35 26 35
    3631     xor byte [di], dh                         ; 30 35
    3632     aaa                                       ; 37
    3633     db  035h
    3634 _int13_diskette_function:                    ; 0xf2e4b LB 0x78f
     3731_int13_diskette_function:                    ; 0xf2eee LB 0x740
     3732    push bp                                   ; 55
     3733    mov bp, sp                                ; 89 e5
    36353734    push si                                   ; 56
    36363735    push di                                   ; 57
    3637     enter 00012h, 000h                        ; c8 12 00 00
    3638     mov bx, word [bp+01ah]                    ; 8b 5e 1a
     3736    sub sp, strict byte 00012h                ; 83 ec 12
     3737    mov bx, word [bp+016h]                    ; 8b 5e 16
    36393738    shr bx, 008h                              ; c1 eb 08
    3640     mov ch, bl                                ; 88 dd
    3641     mov si, word [bp+01ah]                    ; 8b 76 1a
     3739    mov cl, bl                                ; 88 d9
     3740    mov si, word [bp+016h]                    ; 8b 76 16
    36423741    and si, 000ffh                            ; 81 e6 ff 00
    3643     mov ah, byte [bp+012h]                    ; 8a 66 12
     3742    mov al, byte [bp+00eh]                    ; 8a 46 0e
    36443743    cmp bl, 008h                              ; 80 fb 08
    3645     jc short 02ea2h                           ; 72 3a
    3646     mov dx, word [bp+020h]                    ; 8b 56 20
     3744    jc short 02f45h                           ; 72 38
     3745    mov dx, word [bp+01ch]                    ; 8b 56 1c
    36473746    or dl, 001h                               ; 80 ca 01
    36483747    cmp bl, 008h                              ; 80 fb 08
    3649     jbe near 03476h                           ; 0f 86 01 06
     3748    jbe near 0348fh                           ; 0f 86 75 05
    36503749    cmp bl, 016h                              ; 80 fb 16
    3651     jc short 02e98h                           ; 72 1e
     3750    jc short 02f3bh                           ; 72 1c
    36523751    or si, 00100h                             ; 81 ce 00 01
    3653     mov cx, si                                ; 89 f1
    36543752    cmp bl, 016h                              ; 80 fb 16
    3655     jbe near 03595h                           ; 0f 86 0e 07
     3753    jbe near 035eah                           ; 0f 86 c0 06
    36563754    cmp bl, 018h                              ; 80 fb 18
    3657     je near 0359ah                            ; 0f 84 0c 07
     3755    je near 035eeh                            ; 0f 84 bd 06
    36583756    cmp bl, 017h                              ; 80 fb 17
    3659     je near 0359ah                            ; 0f 84 05 07
    3660     jmp near 035b7h                           ; e9 1f 07
     3757    je near 035eeh                            ; 0f 84 b6 06
     3758    jmp near 0360bh                           ; e9 d0 06
    36613759    cmp bl, 015h                              ; 80 fb 15
    3662     je near 03559h                            ; 0f 84 ba 06
    3663     jmp near 035b7h                           ; e9 15 07
     3760    je near 035abh                            ; 0f 84 69 06
     3761    jmp near 0360bh                           ; e9 c6 06
    36643762    cmp bl, 001h                              ; 80 fb 01
    3665     jc short 02ebch                           ; 72 15
    3666     jbe near 02f32h                           ; 0f 86 87 00
     3763    jc short 02f5fh                           ; 72 15
     3764    jbe near 02fd3h                           ; 0f 86 85 00
    36673765    cmp bl, 005h                              ; 80 fb 05
    3668     je near 032cfh                            ; 0f 84 1d 04
     3766    je near 03315h                            ; 0f 84 c0 03
    36693767    cmp bl, 004h                              ; 80 fb 04
    3670     jbe near 02f50h                           ; 0f 86 97 00
    3671     jmp near 035b7h                           ; e9 fb 06
     3768    jbe near 02ff1h                           ; 0f 86 95 00
     3769    jmp near 0360bh                           ; e9 ac 06
    36723770    test bl, bl                               ; 84 db
    3673     jne near 035b7h                           ; 0f 85 f5 06
    3674     mov al, byte [bp+012h]                    ; 8a 46 12
    3675     mov byte [bp-00ah], al                    ; 88 46 f6
     3771    jne near 0360bh                           ; 0f 85 a6 06
     3772    mov al, byte [bp+00eh]                    ; 8a 46 0e
     3773    mov byte [bp-00eh], al                    ; 88 46 f2
    36763774    cmp AL, strict byte 001h                  ; 3c 01
    3677     jbe short 02ee0h                          ; 76 14
    3678     mov ax, word [bp+01ah]                    ; 8b 46 1a
     3775    jbe short 02f83h                          ; 76 14
     3776    mov ax, word [bp+016h]                    ; 8b 46 16
    36793777    xor ah, ah                                ; 30 e4
    36803778    or ah, 001h                               ; 80 cc 01
    3681     mov word [bp+01ah], ax                    ; 89 46 1a
     3779    mov word [bp+016h], ax                    ; 89 46 16
    36823780    mov ax, strict word 00001h                ; b8 01 00
    3683     call 02b44h                               ; e8 67 fc
    3684     jmp near 032abh                           ; e9 cb 03
     3781    call 02b92h                               ; e8 12 fc
     3782    jmp near 032f1h                           ; e9 6e 03
    36853783    mov ax, strict word 00010h                ; b8 10 00
    3686     call 0165ch                               ; e8 76 e7
    3687     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    3688     jne short 02ef3h                          ; 75 07
    3689     mov bl, al                                ; 88 c3
    3690     shr bl, 004h                              ; c0 eb 04
    3691     jmp short 02ef8h                          ; eb 05
    3692     mov bl, al                                ; 88 c3
    3693     and bl, 00fh                              ; 80 e3 0f
    3694     test bl, bl                               ; 84 db
    3695     jne short 02f0ch                          ; 75 10
    3696     mov ax, word [bp+01ah]                    ; 8b 46 1a
     3784    call 0165ch                               ; e8 d3 e6
     3785    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     3786    jne short 02f94h                          ; 75 05
     3787    shr al, 004h                              ; c0 e8 04
     3788    jmp short 02f96h                          ; eb 02
     3789    and AL, strict byte 00fh                  ; 24 0f
     3790    test al, al                               ; 84 c0
     3791    jne short 02faah                          ; 75 10
     3792    mov ax, word [bp+016h]                    ; 8b 46 16
    36973793    xor ah, ah                                ; 30 e4
    36983794    or ah, 080h                               ; 80 cc 80
    3699     mov word [bp+01ah], ax                    ; 89 46 1a
     3795    mov word [bp+016h], ax                    ; 89 46 16
    37003796    mov ax, 00080h                            ; b8 80 00
    3701     jmp short 02edah                          ; eb ce
     3797    jmp short 02f7dh                          ; eb d3
    37023798    xor bx, bx                                ; 31 db
    37033799    mov dx, strict word 0003eh                ; ba 3e 00
    37043800    mov ax, strict word 00040h                ; b8 40 00
    3705     call 0160eh                               ; e8 f7 e6
     3801    call 0160eh                               ; e8 59 e6
    37063802    xor al, al                                ; 30 c0
    3707     mov byte [bp+01bh], al                    ; 88 46 1b
     3803    mov byte [bp+017h], al                    ; 88 46 17
    37083804    xor ah, ah                                ; 30 e4
    3709     call 02b44h                               ; e8 23 fc
    3710     and byte [bp+020h], 0feh                  ; 80 66 20 fe
    3711     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3805    call 02b92h                               ; e8 d3 fb
     3806    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     3807    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    37123808    xor dx, dx                                ; 31 d2
    3713     call 02b59h                               ; e8 2b fc
    3714     leave                                     ; c9
     3809    call 02baah                               ; e8 de fb
     3810    lea sp, [bp-004h]                         ; 8d 66 fc
    37153811    pop di                                    ; 5f
    37163812    pop si                                    ; 5e
     3813    pop bp                                    ; 5d
    37173814    retn                                      ; c3
    3718     and byte [bp+020h], 0feh                  ; 80 66 20 fe
     3815    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    37193816    mov dx, 00441h                            ; ba 41 04
    37203817    xor ax, ax                                ; 31 c0
    3721     call 01600h                               ; e8 c2 e6
     3818    call 01600h                               ; e8 21 e6
    37223819    movzx dx, al                              ; 0f b6 d0
    37233820    sal dx, 008h                              ; c1 e2 08
    37243821    or si, dx                                 ; 09 d6
    3725     mov word [bp+01ah], si                    ; 89 76 1a
     3822    mov word [bp+016h], si                    ; 89 76 16
    37263823    test al, al                               ; 84 c0
    3727     je short 02f2eh                           ; 74 e1
    3728     jmp near 032abh                           ; e9 5b 03
    3729     mov al, byte [bp+01ah]                    ; 8a 46 1a
    3730     mov byte [bp-008h], al                    ; 88 46 f8
    3731     mov dx, word [bp+018h]                    ; 8b 56 18
     3824    je short 02fcch                           ; 74 de
     3825    jmp near 032f1h                           ; e9 00 03
     3826    mov ah, byte [bp+016h]                    ; 8a 66 16
     3827    mov byte [bp-00ch], ah                    ; 88 66 f4
     3828    mov dx, word [bp+014h]                    ; 8b 56 14
    37323829    shr dx, 008h                              ; c1 ea 08
    3733     mov byte [bp-004h], dl                    ; 88 56 fc
    3734     mov al, byte [bp+018h]                    ; 8a 46 18
    3735     mov byte [bp-006h], al                    ; 88 46 fa
    3736     mov dx, word [bp+016h]                    ; 8b 56 16
     3830    mov byte [bp-008h], dl                    ; 88 56 f8
     3831    mov ah, byte [bp+014h]                    ; 8a 66 14
     3832    mov byte [bp-00ah], ah                    ; 88 66 f6
     3833    mov dx, word [bp+012h]                    ; 8b 56 12
    37373834    shr dx, 008h                              ; c1 ea 08
    3738     mov byte [bp-002h], dl                    ; 88 56 fe
    3739     mov byte [bp-00ah], ah                    ; 88 66 f6
    3740     cmp ah, 001h                              ; 80 fc 01
    3741     jnbe short 02f86h                         ; 77 10
     3835    mov byte [bp-006h], dl                    ; 88 56 fa
     3836    mov byte [bp-00eh], al                    ; 88 46 f2
     3837    cmp AL, strict byte 001h                  ; 3c 01
     3838    jnbe short 03026h                         ; 77 10
    37423839    cmp dl, 001h                              ; 80 fa 01
    3743     jnbe short 02f86h                         ; 77 0b
    3744     mov al, byte [bp-008h]                    ; 8a 46 f8
     3840    jnbe short 03026h                         ; 77 0b
     3841    mov al, byte [bp-00ch]                    ; 8a 46 f4
    37453842    test al, al                               ; 84 c0
    3746     je short 02f86h                           ; 74 04
     3843    je short 03026h                           ; 74 04
    37473844    cmp AL, strict byte 048h                  ; 3c 48
    3748     jbe short 02fafh                          ; 76 29
    3749     mov bx, 00d32h                            ; bb 32 0d
     3845    jbe short 0304fh                          ; 76 29
     3846    mov bx, 00d38h                            ; bb 38 0d
    37503847    mov cx, ds                                ; 8c d9
    37513848    mov ax, strict word 00004h                ; b8 04 00
    3752     call 018aeh                               ; e8 1d e9
     3849    call 018cch                               ; e8 9b e8
    37533850    push 001e5h                               ; 68 e5 01
    37543851    push 001fdh                               ; 68 fd 01
    37553852    push strict byte 00004h                   ; 6a 04
    3756     call 018e9h                               ; e8 4d e9
     3853    call 0190dh                               ; e8 d1 e8
    37573854    add sp, strict byte 00006h                ; 83 c4 06
    3758     mov ax, word [bp+01ah]                    ; 8b 46 1a
     3855    mov ax, word [bp+016h]                    ; 8b 46 16
    37593856    xor ah, ah                                ; 30 e4
    37603857    or ah, 001h                               ; 80 cc 01
    3761     mov word [bp+01ah], ax                    ; 89 46 1a
     3858    mov word [bp+016h], ax                    ; 89 46 16
    37623859    mov ax, strict word 00001h                ; b8 01 00
    3763     jmp short 03020h                          ; eb 71
    3764     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3765     call 02e18h                               ; e8 62 fe
     3860    jmp short 030c0h                          ; eb 71
     3861    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3862    call 02ecah                               ; e8 74 fe
    37663863    test ax, ax                               ; 85 c0
    3767     je near 030b9h                            ; 0f 84 fd 00
    3768     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     3864    je near 03153h                            ; 0f 84 f7 00
     3865    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    37693866    mov ax, dx                                ; 89 d0
    3770     call 02c37h                               ; e8 72 fc
     3867    call 02ceah                               ; e8 85 fc
    37713868    test ax, ax                               ; 85 c0
    3772     jne short 02fe2h                          ; 75 19
     3869    jne short 03082h                          ; 75 19
    37733870    mov ax, dx                                ; 89 d0
    3774     call 02d1eh                               ; e8 50 fd
     3871    call 02db5h                               ; e8 47 fd
    37753872    test ax, ax                               ; 85 c0
    3776     jne short 02fe2h                          ; 75 10
    3777     mov ax, word [bp+01ah]                    ; 8b 46 1a
     3873    jne short 03082h                          ; 75 10
     3874    mov ax, word [bp+016h]                    ; 8b 46 16
    37783875    xor ah, ah                                ; 30 e4
    37793876    or ah, 00ch                               ; 80 cc 0c
    3780     mov word [bp+01ah], ax                    ; 89 46 1a
     3877    mov word [bp+016h], ax                    ; 89 46 16
    37813878    mov ax, strict word 0000ch                ; b8 0c 00
    3782     jmp short 03020h                          ; eb 3e
    3783     cmp ch, 002h                              ; 80 fd 02
    3784     jne near 03177h                           ; 0f 85 8e 01
    3785     mov dx, word [bp+00ah]                    ; 8b 56 0a
    3786     shr dx, 00ch                              ; c1 ea 0c
    3787     mov ah, dl                                ; 88 d4
    3788     mov cx, word [bp+00ah]                    ; 8b 4e 0a
    3789     sal cx, 004h                              ; c1 e1 04
    3790     mov bx, word [bp+014h]                    ; 8b 5e 14
    3791     add bx, cx                                ; 01 cb
    3792     cmp bx, cx                                ; 39 cb
    3793     jnc short 03002h                          ; 73 02
     3879    jmp short 030c0h                          ; eb 3e
     3880    cmp cl, 002h                              ; 80 f9 02
     3881    jne near 031eah                           ; 0f 85 61 01
     3882    mov cx, word [bp+006h]                    ; 8b 4e 06
     3883    shr cx, 00ch                              ; c1 e9 0c
     3884    mov ah, cl                                ; 88 cc
     3885    mov dx, word [bp+006h]                    ; 8b 56 06
     3886    sal dx, 004h                              ; c1 e2 04
     3887    mov bx, word [bp+010h]                    ; 8b 5e 10
     3888    add bx, dx                                ; 01 d3
     3889    cmp bx, dx                                ; 39 d3
     3890    jnc short 030a2h                          ; 73 02
    37943891    db  0feh, 0c4h
    37953892    ; inc ah                                    ; fe c4
    3796     movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
     3893    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    37973894    sal cx, 009h                              ; c1 e1 09
    37983895    dec cx                                    ; 49
     
    38003897    add dx, cx                                ; 01 ca
    38013898    cmp dx, bx                                ; 39 da
    3802     jnc short 0302ah                          ; 73 18
    3803     mov ax, word [bp+01ah]                    ; 8b 46 1a
     3899    jnc short 030cah                          ; 73 18
     3900    mov ax, word [bp+016h]                    ; 8b 46 16
    38043901    xor ah, ah                                ; 30 e4
    38053902    or ah, 009h                               ; 80 cc 09
    3806     mov word [bp+01ah], ax                    ; 89 46 1a
     3903    mov word [bp+016h], ax                    ; 89 46 16
    38073904    mov ax, strict word 00009h                ; b8 09 00
    3808     call 02b44h                               ; e8 21 fb
    3809     mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    3810     jmp near 032abh                           ; e9 81 02
     3905    call 02b92h                               ; e8 cf fa
     3906    mov byte [bp+016h], 000h                  ; c6 46 16 00
     3907    jmp near 032f1h                           ; e9 27 02
    38113908    mov AL, strict byte 006h                  ; b0 06
    38123909    mov dx, strict word 0000ah                ; ba 0a 00
     
    38403937    out DX, AL                                ; ee
    38413938    out DX, AL                                ; ee
    3842     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3843     call 02babh                               ; e8 3d fb
     3939    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3940    call 02c69h                               ; e8 5b fb
    38443941    mov AL, strict byte 0e6h                  ; b0 e6
    38453942    mov dx, 003f5h                            ; ba f5 03
    38463943    out DX, AL                                ; ee
    3847     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     3944    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    38483945    sal dx, 002h                              ; c1 e2 02
    3849     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3946    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    38503947    or ax, dx                                 ; 09 d0
    38513948    mov dx, 003f5h                            ; ba f5 03
    38523949    out DX, AL                                ; ee
    3853     mov al, byte [bp-004h]                    ; 8a 46 fc
    3854     out DX, AL                                ; ee
    3855     mov al, byte [bp-002h]                    ; 8a 46 fe
     3950    mov al, byte [bp-008h]                    ; 8a 46 f8
    38563951    out DX, AL                                ; ee
    38573952    mov al, byte [bp-006h]                    ; 8a 46 fa
    38583953    out DX, AL                                ; ee
     3954    mov al, byte [bp-00ah]                    ; 8a 46 f6
     3955    out DX, AL                                ; ee
    38593956    mov AL, strict byte 002h                  ; b0 02
    38603957    out DX, AL                                ; ee
    3861     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    3862     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     3958    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     3959    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    38633960    add ax, dx                                ; 01 d0
    38643961    dec ax                                    ; 48
     
    38693966    mov AL, strict byte 0ffh                  ; b0 ff
    38703967    out DX, AL                                ; ee
    3871     sti                                       ; fb
    3872     mov dx, strict word 00040h                ; ba 40 00
    3873     mov ax, dx                                ; 89 d0
    3874     call 01600h                               ; e8 4e e5
     3968    call 02bf8h                               ; e8 ac fa
    38753969    test al, al                               ; 84 c0
    3876     jne short 030cah                          ; 75 14
    3877     call 02b83h                               ; e8 ca fa
    3878     mov ax, word [bp+01ah]                    ; 8b 46 1a
     3970    jne short 03164h                          ; 75 14
     3971    call 02c3eh                               ; e8 eb fa
     3972    mov ax, word [bp+016h]                    ; 8b 46 16
    38793973    xor ah, ah                                ; 30 e4
    38803974    or ah, 080h                               ; 80 cc 80
    3881     mov word [bp+01ah], ax                    ; 89 46 1a
     3975    mov word [bp+016h], ax                    ; 89 46 16
    38823976    mov ax, 00080h                            ; b8 80 00
    3883     jmp near 03020h                           ; e9 56 ff
    3884     mov dx, strict word 0003eh                ; ba 3e 00
    3885     mov ax, strict word 00040h                ; b8 40 00
    3886     call 01600h                               ; e8 2d e5
    3887     and AL, strict byte 080h                  ; 24 80
    3888     test al, al                               ; 84 c0
    3889     je short 030aah                           ; 74 d1
    3890     cli                                       ; fa
    3891     mov dx, strict word 0003eh                ; ba 3e 00
    3892     mov ax, strict word 00040h                ; b8 40 00
    3893     call 01600h                               ; e8 1d e5
    3894     and AL, strict byte 07fh                  ; 24 7f
    3895     movzx bx, al                              ; 0f b6 d8
    3896     mov dx, strict word 0003eh                ; ba 3e 00
    3897     mov ax, strict word 00040h                ; b8 40 00
    3898     call 0160eh                               ; e8 1d e5
     3977    jmp near 030c0h                           ; e9 5c ff
    38993978    mov dx, 003f4h                            ; ba f4 03
    39003979    in AL, DX                                 ; ec
     
    39033982    and AL, strict byte 0c0h                  ; 24 c0
    39043983    cmp AL, strict byte 0c0h                  ; 3c c0
    3905     je short 0310bh                           ; 74 0e
     3984    je short 0317eh                           ; 74 0e
    39063985    push 001e5h                               ; 68 e5 01
    39073986    push 00218h                               ; 68 18 02
    39083987    push strict byte 00007h                   ; 6a 07
    3909     call 018e9h                               ; e8 e1 e7
     3988    call 0190dh                               ; e8 92 e7
    39103989    add sp, strict byte 00006h                ; 83 c4 06
    39113990    xor si, si                                ; 31 f6
    3912     jmp short 03114h                          ; eb 05
     3991    jmp short 03187h                          ; eb 05
    39133992    cmp si, strict byte 00007h                ; 83 fe 07
    3914     jnl short 0312ch                          ; 7d 18
     3993    jnl short 0319fh                          ; 7d 18
    39153994    mov dx, 003f5h                            ; ba f5 03
    39163995    in AL, DX                                 ; ec
    39173996    db  02ah, 0e4h
    39183997    ; sub ah, ah                                ; 2a e4
    3919     mov byte [bp+si-012h], al                 ; 88 42 ee
     3998    mov byte [bp+si-016h], al                 ; 88 42 ea
    39203999    movzx bx, al                              ; 0f b6 d8
    39214000    lea dx, [si+042h]                         ; 8d 54 42
    39224001    mov ax, strict word 00040h                ; b8 40 00
    3923     call 0160eh                               ; e8 e5 e4
     4002    call 0160eh                               ; e8 72 e4
    39244003    inc si                                    ; 46
    3925     jmp short 0310fh                          ; eb e3
    3926     test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    3927     je short 03143h                           ; 74 11
    3928     mov ax, word [bp+01ah]                    ; 8b 46 1a
     4004    jmp short 03182h                          ; eb e3
     4005    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
     4006    je short 031b6h                           ; 74 11
     4007    mov ax, word [bp+016h]                    ; 8b 46 16
    39294008    xor ah, ah                                ; 30 e4
    39304009    or ah, 020h                               ; 80 cc 20
    3931     mov word [bp+01ah], ax                    ; 89 46 1a
     4010    mov word [bp+016h], ax                    ; 89 46 16
    39324011    mov ax, strict word 00020h                ; b8 20 00
    3933     jmp near 03020h                           ; e9 dd fe
    3934     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4012    jmp near 030c0h                           ; e9 0a ff
     4013    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    39354014    sal ax, 009h                              ; c1 e0 09
    39364015    cwd                                       ; 99
     
    39384017    ; sub ax, dx                                ; 2b c2
    39394018    sar ax, 1                                 ; d1 f8
    3940     mov cx, ax                                ; 89 c1
    3941     mov si, word [bp+014h]                    ; 8b 76 14
    3942     mov dx, word [bp+00ah]                    ; 8b 56 0a
     4019    mov si, word [bp+010h]                    ; 8b 76 10
     4020    mov dx, word [bp+006h]                    ; 8b 56 06
    39434021    mov di, si                                ; 89 f7
    39444022    mov es, dx                                ; 8e c2
     4023    mov cx, ax                                ; 89 c1
    39454024    push DS                                   ; 1e
    39464025    mov ds, dx                                ; 8e da
    39474026    rep movsw                                 ; f3 a5
    39484027    pop DS                                    ; 1f
    3949     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    3950     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3951     call 02b59h                               ; e8 ed f9
    3952     mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    3953     and byte [bp+020h], 0feh                  ; 80 66 20 fe
    3954     jmp near 02f2eh                           ; e9 b7 fd
    3955     cmp ch, 003h                              ; 80 fd 03
    3956     jne near 032b9h                           ; 0f 85 3b 01
    3957     mov dx, word [bp+00ah]                    ; 8b 56 0a
     4028    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     4029    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4030    call 02baah                               ; e8 cb f9
     4031    mov byte [bp+017h], 000h                  ; c6 46 17 00
     4032    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4033    jmp near 02fcch                           ; e9 e2 fd
     4034    cmp cl, 003h                              ; 80 f9 03
     4035    jne near 032ffh                           ; 0f 85 0e 01
     4036    mov dx, word [bp+006h]                    ; 8b 56 06
    39584037    shr dx, 00ch                              ; c1 ea 0c
    39594038    mov ah, dl                                ; 88 d4
    3960     mov cx, word [bp+00ah]                    ; 8b 4e 0a
     4039    mov cx, word [bp+006h]                    ; 8b 4e 06
    39614040    sal cx, 004h                              ; c1 e1 04
    3962     mov bx, word [bp+014h]                    ; 8b 5e 14
     4041    mov bx, word [bp+010h]                    ; 8b 5e 10
    39634042    add bx, cx                                ; 01 cb
    39644043    cmp bx, cx                                ; 39 cb
    3965     jnc short 03197h                          ; 73 02
     4044    jnc short 0320ah                          ; 73 02
    39664045    db  0feh, 0c4h
    39674046    ; inc ah                                    ; fe c4
    3968     movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
     4047    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    39694048    sal cx, 009h                              ; c1 e1 09
    39704049    dec cx                                    ; 49
     
    39724051    add dx, cx                                ; 01 ca
    39734052    cmp dx, bx                                ; 39 da
    3974     jc near 03012h                            ; 0f 82 69 fe
     4053    jc near 030b2h                            ; 0f 82 96 fe
    39754054    mov AL, strict byte 006h                  ; b0 06
    39764055    mov dx, strict word 0000ah                ; ba 0a 00
     
    40034082    mov dx, strict word 0000ah                ; ba 0a 00
    40044083    out DX, AL                                ; ee
    4005     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4006     call 02babh                               ; e8 bf f9
     4084    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4085    call 02c69h                               ; e8 0a fa
    40074086    mov AL, strict byte 0c5h                  ; b0 c5
    40084087    mov dx, 003f5h                            ; ba f5 03
    40094088    out DX, AL                                ; ee
    4010     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     4089    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    40114090    sal dx, 002h                              ; c1 e2 02
    4012     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     4091    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    40134092    or ax, dx                                 ; 09 d0
    40144093    mov dx, 003f5h                            ; ba f5 03
    40154094    out DX, AL                                ; ee
    4016     mov al, byte [bp-004h]                    ; 8a 46 fc
    4017     out DX, AL                                ; ee
    4018     mov al, byte [bp-002h]                    ; 8a 46 fe
     4095    mov al, byte [bp-008h]                    ; 8a 46 f8
    40194096    out DX, AL                                ; ee
    40204097    mov al, byte [bp-006h]                    ; 8a 46 fa
    40214098    out DX, AL                                ; ee
     4099    mov al, byte [bp-00ah]                    ; 8a 46 f6
     4100    out DX, AL                                ; ee
    40224101    mov AL, strict byte 002h                  ; b0 02
    40234102    out DX, AL                                ; ee
    4024     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    4025     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4103    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     4104    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    40264105    add ax, dx                                ; 01 d0
    40274106    dec ax                                    ; 48
     
    40324111    mov AL, strict byte 0ffh                  ; b0 ff
    40334112    out DX, AL                                ; ee
    4034     sti                                       ; fb
    4035     mov dx, strict word 00040h                ; ba 40 00
    4036     mov ax, dx                                ; 89 d0
    4037     call 01600h                               ; e8 d0 e3
     4113    call 02bf8h                               ; e8 5b f9
    40384114    test al, al                               ; 84 c0
    4039     je near 030b6h                            ; 0f 84 80 fe
    4040     mov dx, strict word 0003eh                ; ba 3e 00
    4041     mov ax, strict word 00040h                ; b8 40 00
    4042     call 01600h                               ; e8 c1 e3
    4043     and AL, strict byte 080h                  ; 24 80
    4044     test al, al                               ; 84 c0
    4045     je short 03228h                           ; 74 e3
    4046     cli                                       ; fa
    4047     mov dx, strict word 0003eh                ; ba 3e 00
    4048     mov ax, strict word 00040h                ; b8 40 00
    4049     call 01600h                               ; e8 b1 e3
    4050     and AL, strict byte 07fh                  ; 24 7f
    4051     movzx bx, al                              ; 0f b6 d8
    4052     mov dx, strict word 0003eh                ; ba 3e 00
    4053     mov ax, strict word 00040h                ; b8 40 00
    4054     call 0160eh                               ; e8 b1 e3
     4115    je near 03150h                            ; 0f 84 ad fe
    40554116    mov dx, 003f4h                            ; ba f4 03
    40564117    in AL, DX                                 ; ec
     
    40594120    and AL, strict byte 0c0h                  ; 24 c0
    40604121    cmp AL, strict byte 0c0h                  ; 3c c0
    4061     je short 03277h                           ; 74 0e
     4122    je short 032bdh                           ; 74 0e
    40624123    push 001e5h                               ; 68 e5 01
    40634124    push 00218h                               ; 68 18 02
    40644125    push strict byte 00007h                   ; 6a 07
    4065     call 018e9h                               ; e8 75 e6
     4126    call 0190dh                               ; e8 53 e6
    40664127    add sp, strict byte 00006h                ; 83 c4 06
    40674128    xor si, si                                ; 31 f6
    4068     jmp short 03280h                          ; eb 05
     4129    jmp short 032c6h                          ; eb 05
    40694130    cmp si, strict byte 00007h                ; 83 fe 07
    4070     jnl short 03298h                          ; 7d 18
     4131    jnl short 032deh                          ; 7d 18
    40714132    mov dx, 003f5h                            ; ba f5 03
    40724133    in AL, DX                                 ; ec
    40734134    db  02ah, 0e4h
    40744135    ; sub ah, ah                                ; 2a e4
    4075     mov byte [bp+si-012h], al                 ; 88 42 ee
     4136    mov byte [bp+si-016h], al                 ; 88 42 ea
    40764137    movzx bx, al                              ; 0f b6 d8
    40774138    lea dx, [si+042h]                         ; 8d 54 42
    40784139    mov ax, strict word 00040h                ; b8 40 00
    4079     call 0160eh                               ; e8 79 e3
     4140    call 0160eh                               ; e8 33 e3
    40804141    inc si                                    ; 46
    4081     jmp short 0327bh                          ; eb e3
    4082     test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    4083     je near 03161h                            ; 0f 84 c1 fe
    4084     test byte [bp-011h], 002h                 ; f6 46 ef 02
    4085     je short 032b2h                           ; 74 0c
    4086     mov word [bp+01ah], 00300h                ; c7 46 1a 00 03
    4087     or byte [bp+020h], 001h                   ; 80 4e 20 01
    4088     jmp near 02f2eh                           ; e9 7c fc
    4089     mov word [bp+01ah], 00100h                ; c7 46 1a 00 01
    4090     jmp short 032abh                          ; eb f2
    4091     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    4092     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4093     call 02b59h                               ; e8 95 f8
    4094     and byte [bp+020h], 0feh                  ; 80 66 20 fe
    4095     mov byte [bp+01bh], 000h                  ; c6 46 1b 00
    4096     jmp near 02f2eh                           ; e9 5f fc
    4097     mov al, byte [bp+01ah]                    ; 8a 46 1a
    4098     mov byte [bp-008h], al                    ; 88 46 f8
    4099     mov dx, word [bp+018h]                    ; 8b 56 18
     4142    jmp short 032c1h                          ; eb e3
     4143    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
     4144    je near 031d4h                            ; 0f 84 ee fe
     4145    test byte [bp-015h], 002h                 ; f6 46 eb 02
     4146    je short 032f8h                           ; 74 0c
     4147    mov word [bp+016h], 00300h                ; c7 46 16 00 03
     4148    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     4149    jmp near 02fcch                           ; e9 d4 fc
     4150    mov word [bp+016h], 00100h                ; c7 46 16 00 01
     4151    jmp short 032f1h                          ; eb f2
     4152    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     4153    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4154    call 02baah                               ; e8 a0 f8
     4155    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4156    mov byte [bp+017h], 000h                  ; c6 46 17 00
     4157    jmp near 02fcch                           ; e9 b7 fc
     4158    mov al, byte [bp+016h]                    ; 8a 46 16
     4159    mov byte [bp-00ch], al                    ; 88 46 f4
     4160    mov dx, word [bp+014h]                    ; 8b 56 14
    41004161    shr dx, 008h                              ; c1 ea 08
     4162    mov ax, word [bp+012h]                    ; 8b 46 12
     4163    shr ax, 008h                              ; c1 e8 08
     4164    mov byte [bp-006h], al                    ; 88 46 fa
     4165    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     4166    mov byte [bp-00eh], bl                    ; 88 5e f2
     4167    cmp bl, 001h                              ; 80 fb 01
     4168    jnbe short 03349h                         ; 77 14
     4169    cmp AL, strict byte 001h                  ; 3c 01
     4170    jnbe short 03349h                         ; 77 10
     4171    cmp dl, 04fh                              ; 80 fa 4f
     4172    jnbe short 03349h                         ; 77 0b
     4173    mov al, byte [bp-00ch]                    ; 8a 46 f4
     4174    test al, al                               ; 84 c0
     4175    je short 03349h                           ; 74 04
     4176    cmp AL, strict byte 012h                  ; 3c 12
     4177    jbe short 0335eh                          ; 76 15
    41014178    mov ax, word [bp+016h]                    ; 8b 46 16
    4102     shr ax, 008h                              ; c1 e8 08
    4103     mov byte [bp-002h], al                    ; 88 46 fe
    4104     mov bl, byte [bp+012h]                    ; 8a 5e 12
    4105     mov byte [bp-00ah], bl                    ; 88 5e f6
    4106     cmp bl, 001h                              ; 80 fb 01
    4107     jnbe short 03303h                         ; 77 14
    4108     cmp AL, strict byte 001h                  ; 3c 01
    4109     jnbe short 03303h                         ; 77 10
    4110     cmp dl, 04fh                              ; 80 fa 4f
    4111     jnbe short 03303h                         ; 77 0b
    4112     mov al, byte [bp-008h]                    ; 8a 46 f8
    4113     test al, al                               ; 84 c0
    4114     je short 03303h                           ; 74 04
    4115     cmp AL, strict byte 012h                  ; 3c 12
    4116     jbe short 03318h                          ; 76 15
    4117     mov ax, word [bp+01ah]                    ; 8b 46 1a
    41184179    xor ah, ah                                ; 30 e4
    41194180    or ah, 001h                               ; 80 cc 01
    4120     mov word [bp+01ah], ax                    ; 89 46 1a
     4181    mov word [bp+016h], ax                    ; 89 46 16
    41214182    mov ax, strict word 00001h                ; b8 01 00
    4122     call 02b44h                               ; e8 30 f8
    4123     or byte [bp+020h], 001h                   ; 80 4e 20 01
    4124     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4125     call 02e18h                               ; e8 f9 fa
     4183    call 02b92h                               ; e8 38 f8
     4184    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     4185    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4186    call 02ecah                               ; e8 65 fb
    41264187    test ax, ax                               ; 85 c0
    4127     je near 02efch                            ; 0f 84 d7 fb
    4128     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     4188    je near 02f9ah                            ; 0f 84 2f fc
     4189    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    41294190    mov ax, dx                                ; 89 d0
    4130     call 02c37h                               ; e8 09 f9
     4191    call 02ceah                               ; e8 76 f9
    41314192    test ax, ax                               ; 85 c0
    4132     jne short 0333dh                          ; 75 0b
     4193    jne short 03383h                          ; 75 0b
    41334194    mov ax, dx                                ; 89 d0
    4134     call 02d1eh                               ; e8 e7 f9
     4195    call 02db5h                               ; e8 38 fa
    41354196    test ax, ax                               ; 85 c0
    4136     je near 02fd2h                            ; 0f 84 95 fc
    4137     mov dx, word [bp+00ah]                    ; 8b 56 0a
     4197    je near 03072h                            ; 0f 84 ef fc
     4198    mov dx, word [bp+006h]                    ; 8b 56 06
    41384199    shr dx, 00ch                              ; c1 ea 0c
    41394200    mov ah, dl                                ; 88 d4
    4140     mov cx, word [bp+00ah]                    ; 8b 4e 0a
     4201    mov cx, word [bp+006h]                    ; 8b 4e 06
    41414202    sal cx, 004h                              ; c1 e1 04
    4142     mov bx, word [bp+014h]                    ; 8b 5e 14
     4203    mov bx, word [bp+010h]                    ; 8b 5e 10
    41434204    add bx, cx                                ; 01 cb
    41444205    cmp bx, cx                                ; 39 cb
    4145     jnc short 03356h                          ; 73 02
     4206    jnc short 0339ch                          ; 73 02
    41464207    db  0feh, 0c4h
    41474208    ; inc ah                                    ; fe c4
    4148     movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
     4209    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    41494210    sal cx, 002h                              ; c1 e1 02
    41504211    dec cx                                    ; 49
     
    41524213    add dx, cx                                ; 01 ca
    41534214    cmp dx, bx                                ; 39 da
    4154     jc near 03012h                            ; 0f 82 aa fc
     4215    jc near 030b2h                            ; 0f 82 04 fd
    41554216    mov AL, strict byte 006h                  ; b0 06
    41564217    mov dx, strict word 0000ah                ; ba 0a 00
     
    41834244    mov dx, strict word 0000ah                ; ba 0a 00
    41844245    out DX, AL                                ; ee
    4185     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    4186     call 02babh                               ; e8 00 f8
     4246    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4247    call 02c69h                               ; e8 78 f8
    41874248    mov AL, strict byte 04dh                  ; b0 4d
    41884249    mov dx, 003f5h                            ; ba f5 03
    41894250    out DX, AL                                ; ee
    4190     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    4191     sal dx, 002h                              ; c1 e2 02
    4192     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     4251    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     4252    sal ax, 002h                              ; c1 e0 02
     4253    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    41934254    or ax, dx                                 ; 09 d0
    41944255    mov dx, 003f5h                            ; ba f5 03
     
    41964257    mov AL, strict byte 002h                  ; b0 02
    41974258    out DX, AL                                ; ee
    4198     mov al, byte [bp-008h]                    ; 8a 46 f8
     4259    mov al, byte [bp-00ch]                    ; 8a 46 f4
    41994260    out DX, AL                                ; ee
    42004261    xor al, al                                ; 30 c0
     
    42024263    mov AL, strict byte 0f6h                  ; b0 f6
    42034264    out DX, AL                                ; ee
    4204     sti                                       ; fb
    4205     mov dx, strict word 00040h                ; ba 40 00
    4206     mov ax, dx                                ; 89 d0
    4207     call 01600h                               ; e8 28 e2
     4265    call 02bf8h                               ; e8 e0 f7
    42084266    test al, al                               ; 84 c0
    4209     jne short 033e2h                          ; 75 06
    4210     call 02b83h                               ; e8 a4 f7
    4211     jmp near 02efch                           ; e9 1a fb
    4212     mov dx, strict word 0003eh                ; ba 3e 00
    4213     mov ax, strict word 00040h                ; b8 40 00
    4214     call 01600h                               ; e8 15 e2
    4215     and AL, strict byte 080h                  ; 24 80
    4216     test al, al                               ; 84 c0
    4217     je short 033d0h                           ; 74 df
    4218     cli                                       ; fa
    4219     mov dx, strict word 0003eh                ; ba 3e 00
    4220     mov ax, strict word 00040h                ; b8 40 00
    4221     call 01600h                               ; e8 05 e2
    4222     and AL, strict byte 07fh                  ; 24 7f
    4223     movzx bx, al                              ; 0f b6 d8
    4224     mov dx, strict word 0003eh                ; ba 3e 00
    4225     mov ax, strict word 00040h                ; b8 40 00
    4226     call 0160eh                               ; e8 05 e2
     4267    jne short 03422h                          ; 75 06
     4268    call 02c3eh                               ; e8 1f f8
     4269    jmp near 02f9ah                           ; e9 78 fb
    42274270    mov dx, 003f4h                            ; ba f4 03
    42284271    in AL, DX                                 ; ec
     
    42314274    and AL, strict byte 0c0h                  ; 24 c0
    42324275    cmp AL, strict byte 0c0h                  ; 3c c0
    4233     je short 03423h                           ; 74 0e
     4276    je short 0343ch                           ; 74 0e
    42344277    push 001e5h                               ; 68 e5 01
    42354278    push 00218h                               ; 68 18 02
    42364279    push strict byte 00007h                   ; 6a 07
    4237     call 018e9h                               ; e8 c9 e4
     4280    call 0190dh                               ; e8 d4 e4
    42384281    add sp, strict byte 00006h                ; 83 c4 06
    42394282    xor si, si                                ; 31 f6
    4240     jmp short 0342ch                          ; eb 05
     4283    jmp short 03445h                          ; eb 05
    42414284    cmp si, strict byte 00007h                ; 83 fe 07
    4242     jnl short 03444h                          ; 7d 18
     4285    jnl short 0345dh                          ; 7d 18
    42434286    mov dx, 003f5h                            ; ba f5 03
    42444287    in AL, DX                                 ; ec
    42454288    db  02ah, 0e4h
    42464289    ; sub ah, ah                                ; 2a e4
    4247     mov byte [bp+si-012h], al                 ; 88 42 ee
     4290    mov byte [bp+si-016h], al                 ; 88 42 ea
    42484291    movzx bx, al                              ; 0f b6 d8
    42494292    lea dx, [si+042h]                         ; 8d 54 42
    42504293    mov ax, strict word 00040h                ; b8 40 00
    4251     call 0160eh                               ; e8 cd e1
     4294    call 0160eh                               ; e8 b4 e1
    42524295    inc si                                    ; 46
    4253     jmp short 03427h                          ; eb e3
    4254     test byte [bp-012h], 0c0h                 ; f6 46 ee c0
    4255     je short 03460h                           ; 74 16
    4256     test byte [bp-011h], 002h                 ; f6 46 ef 02
    4257     jne near 032a6h                           ; 0f 85 54 fe
     4296    jmp short 03440h                          ; eb e3
     4297    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
     4298    je short 03479h                           ; 74 16
     4299    test byte [bp-015h], 002h                 ; f6 46 eb 02
     4300    jne near 032ech                           ; 0f 85 81 fe
    42584301    push 001e5h                               ; 68 e5 01
    42594302    push 0022ch                               ; 68 2c 02
    42604303    push strict byte 00007h                   ; 6a 07
    4261     call 018e9h                               ; e8 8c e4
     4304    call 0190dh                               ; e8 97 e4
    42624305    add sp, strict byte 00006h                ; 83 c4 06
    42634306    xor al, al                                ; 30 c0
    4264     mov byte [bp+01bh], al                    ; 88 46 1b
     4307    mov byte [bp+017h], al                    ; 88 46 17
    42654308    xor ah, ah                                ; 30 e4
    4266     call 02b44h                               ; e8 da f6
    4267     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     4309    call 02b92h                               ; e8 0f f7
     4310    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    42684311    xor dx, dx                                ; 31 d2
    4269     call 02b59h                               ; e8 e6 f6
    4270     jmp near 03170h                           ; e9 fa fc
    4271     mov byte [bp-00ah], ah                    ; 88 66 f6
    4272     cmp ah, 001h                              ; 80 fc 01
    4273     jbe short 0349eh                          ; 76 20
    4274     xor ax, ax                                ; 31 c0
    4275     mov word [bp+01ah], ax                    ; 89 46 1a
    4276     mov word [bp+014h], ax                    ; 89 46 14
    4277     mov word [bp+018h], ax                    ; 89 46 18
    4278     mov word [bp+016h], ax                    ; 89 46 16
    4279     mov word [bp+00ah], ax                    ; 89 46 0a
    4280     mov word [bp+00ch], ax                    ; 89 46 0c
    4281     movzx ax, cl                              ; 0f b6 c1
    4282     mov word [bp+016h], ax                    ; 89 46 16
    4283     mov word [bp+020h], dx                    ; 89 56 20
    4284     jmp near 02f2eh                           ; e9 90 fa
     4312    call 02baah                               ; e8 1e f7
     4313    jmp near 031e3h                           ; e9 54 fd
     4314    mov byte [bp-00eh], al                    ; 88 46 f2
     4315    cmp AL, strict byte 001h                  ; 3c 01
     4316    jbe short 034bch                          ; 76 26
     4317    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
     4318    mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
     4319    mov dword [bp+012h], strict dword 000000000h ; 66 c7 46 12 00 00 00 00
     4320    mov dword [bp+006h], strict dword 000000000h ; 66 c7 46 06 00 00 00 00
     4321    movzx ax, ah                              ; 0f b6 c4
     4322    mov word [bp+012h], ax                    ; 89 46 12
     4323    mov word [bp+01ch], dx                    ; 89 56 1c
     4324    jmp near 02fcch                           ; e9 10 fb
    42854325    mov ax, strict word 00010h                ; b8 10 00
    4286     call 0165ch                               ; e8 b8 e1
    4287     mov bl, al                                ; 88 c3
    4288     xor cl, cl                                ; 30 c9
     4326    call 0165ch                               ; e8 9a e1
     4327    xor ah, ah                                ; 30 e4
    42894328    test AL, strict byte 0f0h                 ; a8 f0
    4290     je short 034aeh                           ; 74 02
    4291     mov CL, strict byte 001h                  ; b1 01
    4292     test bl, 00fh                             ; f6 c3 0f
    4293     je short 034b5h                           ; 74 02
    4294     db  0feh, 0c1h
    4295     ; inc cl                                    ; fe c1
    4296     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    4297     jne short 034c0h                          ; 75 05
    4298     shr bl, 004h                              ; c0 eb 04
    4299     jmp short 034c3h                          ; eb 03
    4300     and bl, 00fh                              ; 80 e3 0f
    4301     xor al, al                                ; 30 c0
    4302     mov byte [bp+015h], al                    ; 88 46 15
    4303     movzx si, bl                              ; 0f b6 f3
    4304     mov word [bp+014h], si                    ; 89 76 14
    4305     xor ah, ah                                ; 30 e4
    4306     mov word [bp+01ah], ax                    ; 89 46 1a
    4307     mov dx, word [bp+016h]                    ; 8b 56 16
    4308     xor dl, dl                                ; 30 d2
    4309     movzx ax, cl                              ; 0f b6 c1
    4310     or dx, ax                                 ; 09 c2
    4311     mov word [bp+016h], dx                    ; 89 56 16
    4312     cmp bl, 008h                              ; 80 fb 08
    4313     jnbe short 0353eh                         ; 77 59
    4314     add si, si                                ; 01 f6
    4315     mov ax, dx                                ; 89 d0
    4316     xor ah, dh                                ; 30 f4
    4317     mov bx, ax                                ; 89 c3
    4318     or bh, 001h                               ; 80 cf 01
    4319     jmp word [cs:si+02e39h]                   ; 2e ff a4 39 2e
    4320     mov word [bp+018h], strict word 00000h    ; c7 46 18 00 00
    4321     mov byte [bp+017h], 000h                  ; c6 46 17 00
    4322     jmp short 0354ch                          ; eb 4c
    4323     mov word [bp+018h], 02709h                ; c7 46 18 09 27
    4324     mov word [bp+016h], bx                    ; 89 5e 16
    4325     jmp short 0354ch                          ; eb 42
    4326     mov word [bp+018h], 04f0fh                ; c7 46 18 0f 4f
    4327     jmp short 03505h                          ; eb f4
    4328     mov word [bp+018h], 04f09h                ; c7 46 18 09 4f
    4329     jmp short 03505h                          ; eb ed
    4330     mov word [bp+018h], 04f12h                ; c7 46 18 12 4f
    4331     jmp short 03505h                          ; eb e6
    4332     mov word [bp+018h], 04f24h                ; c7 46 18 24 4f
    4333     jmp short 03505h                          ; eb df
    4334     mov word [bp+018h], 02708h                ; c7 46 18 08 27
    4335     mov word [bp+016h], ax                    ; 89 46 16
    4336     jmp short 0354ch                          ; eb 1c
    4337     mov word [bp+018h], 02709h                ; c7 46 18 09 27
    4338     jmp short 0352bh                          ; eb f4
    4339     mov word [bp+018h], 02708h                ; c7 46 18 08 27
    4340     jmp short 03505h                          ; eb c7
     4329    je short 034cah                           ; 74 02
     4330    mov AH, strict byte 001h                  ; b4 01
     4331    test AL, strict byte 00fh                 ; a8 0f
     4332    je short 034d0h                           ; 74 02
     4333    db  0feh, 0c4h
     4334    ; inc ah                                    ; fe c4
     4335    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     4336    jne short 034dbh                          ; 75 05
     4337    shr al, 004h                              ; c0 e8 04
     4338    jmp short 034ddh                          ; eb 02
     4339    and AL, strict byte 00fh                  ; 24 0f
     4340    mov byte [bp+011h], 000h                  ; c6 46 11 00
     4341    movzx dx, al                              ; 0f b6 d0
     4342    mov word [bp+010h], dx                    ; 89 56 10
     4343    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
     4344    mov bx, word [bp+012h]                    ; 8b 5e 12
     4345    xor bl, bl                                ; 30 db
     4346    movzx dx, ah                              ; 0f b6 d4
     4347    or bx, dx                                 ; 09 d3
     4348    mov word [bp+012h], bx                    ; 89 5e 12
     4349    mov dx, bx                                ; 89 da
     4350    xor dh, bh                                ; 30 fe
     4351    or dh, 001h                               ; 80 ce 01
     4352    mov word [bp+012h], dx                    ; 89 56 12
     4353    cmp AL, strict byte 005h                  ; 3c 05
     4354    jc short 03528h                           ; 72 21
     4355    jbe short 03563h                          ; 76 5a
     4356    cmp AL, strict byte 008h                  ; 3c 08
     4357    jc short 03520h                           ; 72 13
     4358    jbe near 0357bh                           ; 0f 86 6a 00
     4359    cmp AL, strict byte 00fh                  ; 3c 0f
     4360    je near 03589h                            ; 0f 84 72 00
     4361    cmp AL, strict byte 00eh                  ; 3c 0e
     4362    je near 03582h                            ; 0f 84 65 00
     4363    jmp near 03590h                           ; e9 70 00
     4364    xor dh, dh                                ; 30 f6
     4365    cmp AL, strict byte 007h                  ; 3c 07
     4366    je short 03574h                           ; 74 4e
     4367    jmp short 0356ah                          ; eb 42
     4368    cmp AL, strict byte 002h                  ; 3c 02
     4369    jc short 03534h                           ; 72 08
     4370    jbe short 0354eh                          ; 76 20
     4371    cmp AL, strict byte 004h                  ; 3c 04
     4372    je short 0355ch                           ; 74 2a
     4373    jmp short 03555h                          ; eb 21
     4374    cmp AL, strict byte 001h                  ; 3c 01
     4375    je short 03547h                           ; 74 0f
     4376    test al, al                               ; 84 c0
     4377    jne short 03590h                          ; 75 54
     4378    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
     4379    mov byte [bp+013h], 000h                  ; c6 46 13 00
     4380    jmp short 0359eh                          ; eb 57
     4381    mov word [bp+014h], 02709h                ; c7 46 14 09 27
     4382    jmp short 0359eh                          ; eb 50
     4383    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
     4384    jmp short 0359eh                          ; eb 49
     4385    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
     4386    jmp short 0359eh                          ; eb 42
     4387    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
     4388    jmp short 0359eh                          ; eb 3b
     4389    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
     4390    jmp short 0359eh                          ; eb 34
     4391    mov word [bp+014h], 02708h                ; c7 46 14 08 27
     4392    mov word [bp+012h], dx                    ; 89 56 12
     4393    jmp short 0359eh                          ; eb 2a
     4394    mov word [bp+014h], 02709h                ; c7 46 14 09 27
     4395    jmp short 0356fh                          ; eb f4
     4396    mov word [bp+014h], 02708h                ; c7 46 14 08 27
     4397    jmp short 0359eh                          ; eb 1c
     4398    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
     4399    jmp short 0359eh                          ; eb 15
     4400    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
     4401    jmp short 0359eh                          ; eb 0e
    43414402    push 001e5h                               ; 68 e5 01
    43424403    push 0023dh                               ; 68 3d 02
    43434404    push strict byte 00007h                   ; 6a 07
    4344     call 018e9h                               ; e8 a0 e3
     4405    call 0190dh                               ; e8 72 e3
    43454406    add sp, strict byte 00006h                ; 83 c4 06
    4346     mov word [bp+00ah], 0f000h                ; c7 46 0a 00 f0
    4347     mov word [bp+00ch], 0efc7h                ; c7 46 0c c7 ef
    4348     jmp near 03170h                           ; e9 17 fc
    4349     mov byte [bp-00ah], ah                    ; 88 66 f6
    4350     cmp ah, 001h                              ; 80 fc 01
    4351     jbe short 03567h                          ; 76 06
    4352     mov word [bp+01ah], si                    ; 89 76 1a
    4353     jmp near 03498h                           ; e9 31 ff
     4407    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     4408    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
     4409    jmp near 031e3h                           ; e9 38 fc
     4410    mov byte [bp-00eh], al                    ; 88 46 f2
     4411    cmp AL, strict byte 001h                  ; 3c 01
     4412    jbe short 035b8h                          ; 76 06
     4413    mov word [bp+016h], si                    ; 89 76 16
     4414    jmp near 034b6h                           ; e9 fe fe
    43544415    mov ax, strict word 00010h                ; b8 10 00
    4355     call 0165ch                               ; e8 ef e0
    4356     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    4357     jne short 0357ah                          ; 75 07
    4358     mov bl, al                                ; 88 c3
    4359     shr bl, 004h                              ; c0 eb 04
    4360     jmp short 0357fh                          ; eb 05
    4361     mov bl, al                                ; 88 c3
    4362     and bl, 00fh                              ; 80 e3 0f
    4363     and byte [bp+020h], 0feh                  ; 80 66 20 fe
    4364     mov ax, word [bp+01ah]                    ; 8b 46 1a
    4365     xor ah, ah                                ; 30 e4
    4366     test bl, bl                               ; 84 db
    4367     je short 0358fh                           ; 74 03
    4368     or ah, 001h                               ; 80 cc 01
    4369     mov word [bp+01ah], ax                    ; 89 46 1a
    4370     jmp near 02f2eh                           ; e9 99 f9
    4371     cmp ah, 001h                              ; 80 fc 01
    4372     jbe short 035a6h                          ; 76 0c
    4373     mov word [bp+01ah], si                    ; 89 76 1a
     4416    call 0165ch                               ; e8 9e e0
     4417    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     4418    jne short 035c9h                          ; 75 05
     4419    shr al, 004h                              ; c0 e8 04
     4420    jmp short 035cbh                          ; eb 02
     4421    and AL, strict byte 00fh                  ; 24 0f
     4422    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4423    mov dx, word [bp+016h]                    ; 8b 56 16
     4424    xor dh, dh                                ; 30 f6
     4425    test al, al                               ; 84 c0
     4426    je short 035e4h                           ; 74 0c
     4427    cmp AL, strict byte 001h                  ; 3c 01
     4428    jbe short 035e1h                          ; 76 05
     4429    or dh, 002h                               ; 80 ce 02
     4430    jmp short 035e4h                          ; eb 03
     4431    or dh, 001h                               ; 80 ce 01
     4432    mov word [bp+016h], dx                    ; 89 56 16
     4433    jmp near 02fcch                           ; e9 e2 f9
     4434    cmp AL, strict byte 001h                  ; 3c 01
     4435    jbe short 035fah                          ; 76 0c
     4436    mov word [bp+016h], si                    ; 89 76 16
    43744437    mov ax, strict word 00001h                ; b8 01 00
    4375     call 02b44h                               ; e8 a1 f5
    4376     jmp near 03498h                           ; e9 f2 fe
    4377     mov ax, word [bp+01ah]                    ; 8b 46 1a
     4438    call 02b92h                               ; e8 9b f5
     4439    jmp near 034b6h                           ; e9 bc fe
     4440    mov ax, word [bp+016h]                    ; 8b 46 16
    43784441    xor ah, ah                                ; 30 e4
    43794442    or ah, 006h                               ; 80 cc 06
    4380     mov word [bp+01ah], ax                    ; 89 46 1a
     4443    mov word [bp+016h], ax                    ; 89 46 16
    43814444    mov ax, strict word 00006h                ; b8 06 00
    4382     jmp near 02edah                           ; e9 23 f9
    4383     mov bx, 00d32h                            ; bb 32 0d
     4445    jmp near 02f7dh                           ; e9 72 f9
     4446    mov bx, 00d38h                            ; bb 38 0d
    43844447    mov cx, ds                                ; 8c d9
    43854448    mov ax, strict word 00004h                ; b8 04 00
    4386     call 018aeh                               ; e8 ec e2
    4387     mov ax, word [bp+01ah]                    ; 8b 46 1a
     4449    call 018cch                               ; e8 b6 e2
     4450    mov ax, word [bp+016h]                    ; 8b 46 16
    43884451    shr ax, 008h                              ; c1 e8 08
    43894452    push ax                                   ; 50
     
    43914454    push 00252h                               ; 68 52 02
    43924455    push strict byte 00004h                   ; 6a 04
    4393     call 018e9h                               ; e8 15 e3
     4456    call 0190dh                               ; e8 e5 e2
    43944457    add sp, strict byte 00008h                ; 83 c4 08
    4395     jmp near 02ecch                           ; e9 f2 f8
    4396 _cdemu_init:                                 ; 0xf35da LB 0x16
     4458    jmp near 02f6fh                           ; e9 41 f9
     4459dummy_soft_reset_:                           ; 0xf362e LB 0x7
     4460    push bp                                   ; 55
     4461    mov bp, sp                                ; 89 e5
     4462    xor ax, ax                                ; 31 c0
     4463    pop bp                                    ; 5d
     4464    retn                                      ; c3
     4465_cdemu_init:                                 ; 0xf3635 LB 0x18
    43974466    push bp                                   ; 55
    43984467    mov bp, sp                                ; 89 e5
    43994468    mov dx, strict word 0000eh                ; ba 0e 00
    44004469    mov ax, strict word 00040h                ; b8 40 00
    4401     call 0161ch                               ; e8 36 e0
     4470    call 0161ch                               ; e8 db df
    44024471    xor bx, bx                                ; 31 db
    44034472    mov dx, 00322h                            ; ba 22 03
    4404     call 0160eh                               ; e8 20 e0
     4473    call 0160eh                               ; e8 c5 df
     4474    mov sp, bp                                ; 89 ec
    44054475    pop bp                                    ; 5d
    44064476    retn                                      ; c3
    4407 _cdemu_isactive:                             ; 0xf35f0 LB 0x14
     4477_cdemu_isactive:                             ; 0xf364d LB 0x16
    44084478    push bp                                   ; 55
    44094479    mov bp, sp                                ; 89 e5
    44104480    mov dx, strict word 0000eh                ; ba 0e 00
    44114481    mov ax, strict word 00040h                ; b8 40 00
    4412     call 0161ch                               ; e8 20 e0
     4482    call 0161ch                               ; e8 c3 df
    44134483    mov dx, 00322h                            ; ba 22 03
    4414     call 01600h                               ; e8 fe df
     4484    call 01600h                               ; e8 a1 df
     4485    mov sp, bp                                ; 89 ec
    44154486    pop bp                                    ; 5d
    44164487    retn                                      ; c3
    4417 _cdemu_emulated_drive:                       ; 0xf3604 LB 0x14
     4488_cdemu_emulated_drive:                       ; 0xf3663 LB 0x16
    44184489    push bp                                   ; 55
    44194490    mov bp, sp                                ; 89 e5
    44204491    mov dx, strict word 0000eh                ; ba 0e 00
    44214492    mov ax, strict word 00040h                ; b8 40 00
    4422     call 0161ch                               ; e8 0c e0
     4493    call 0161ch                               ; e8 ad df
    44234494    mov dx, 00324h                            ; ba 24 03
    4424     call 01600h                               ; e8 ea df
     4495    call 01600h                               ; e8 8b df
     4496    mov sp, bp                                ; 89 ec
    44254497    pop bp                                    ; 5d
    44264498    retn                                      ; c3
    4427 _int13_eltorito:                             ; 0xf3618 LB 0x186
     4499_int13_eltorito:                             ; 0xf3679 LB 0x189
     4500    push bp                                   ; 55
     4501    mov bp, sp                                ; 89 e5
    44284502    push si                                   ; 56
    44294503    push di                                   ; 57
    4430     push bp                                   ; 55
    4431     mov bp, sp                                ; 89 e5
    44324504    mov dx, strict word 0000eh                ; ba 0e 00
    44334505    mov ax, strict word 00040h                ; b8 40 00
    4434     call 0161ch                               ; e8 f6 df
     4506    call 0161ch                               ; e8 95 df
    44354507    mov si, 00322h                            ; be 22 03
    44364508    mov di, ax                                ; 89 c7
    4437     mov ax, word [bp+01ah]                    ; 8b 46 1a
     4509    mov ax, word [bp+016h]                    ; 8b 46 16
    44384510    shr ax, 008h                              ; c1 e8 08
    44394511    cmp ax, strict word 0004bh                ; 3d 4b 00
    4440     jc short 03640h                           ; 72 0a
    4441     jbe short 03666h                          ; 76 2e
     4512    jc short 036a1h                           ; 72 0a
     4513    jbe short 036c7h                          ; 76 2e
    44424514    cmp ax, strict word 0004dh                ; 3d 4d 00
    4443     jbe short 03647h                          ; 76 0a
    4444     jmp near 03762h                           ; e9 22 01
     4515    jbe short 036a8h                          ; 76 0a
     4516    jmp near 037c6h                           ; e9 25 01
    44454517    cmp ax, strict word 0004ah                ; 3d 4a 00
    4446     jne near 03762h                           ; 0f 85 1b 01
    4447     mov bx, 00d32h                            ; bb 32 0d
     4518    jne near 037c6h                           ; 0f 85 1e 01
     4519    mov bx, 00d38h                            ; bb 38 0d
    44484520    mov cx, ds                                ; 8c d9
    44494521    mov ax, strict word 00004h                ; b8 04 00
    4450     call 018aeh                               ; e8 5c e2
    4451     push word [bp+01ah]                       ; ff 76 1a
     4522    call 018cch                               ; e8 19 e2
     4523    push word [bp+016h]                       ; ff 76 16
    44524524    push 0026ch                               ; 68 6c 02
    44534525    push 0027bh                               ; 68 7b 02
    44544526    push strict byte 00004h                   ; 6a 04
    4455     call 018e9h                               ; e8 89 e2
     4527    call 0190dh                               ; e8 4c e2
    44564528    add sp, strict byte 00008h                ; 83 c4 08
    4457     jmp near 0377dh                           ; e9 17 01
    4458     mov dx, word [bp+00eh]                    ; 8b 56 0e
    4459     mov ax, word [bp+008h]                    ; 8b 46 08
     4529    jmp near 037e1h                           ; e9 1a 01
     4530    mov dx, word [bp+00ah]                    ; 8b 56 0a
     4531    mov ax, word [bp+004h]                    ; 8b 46 04
    44604532    mov bx, strict word 00013h                ; bb 13 00
    4461     call 0160eh                               ; e8 9c df
     4533    call 0160eh                               ; e8 3b df
    44624534    mov es, di                                ; 8e c7
    44634535    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
    4464     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4536    mov dx, word [bp+00ah]                    ; 8b 56 0a
    44654537    inc dx                                    ; 42
    4466     mov ax, word [bp+008h]                    ; 8b 46 08
    4467     call 0160eh                               ; e8 8b df
     4538    mov ax, word [bp+004h]                    ; 8b 46 04
     4539    call 0160eh                               ; e8 2a df
    44684540    mov es, di                                ; 8e c7
    44694541    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
    4470     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4542    mov dx, word [bp+00ah]                    ; 8b 56 0a
    44714543    inc dx                                    ; 42
    44724544    inc dx                                    ; 42
    4473     mov ax, word [bp+008h]                    ; 8b 46 08
    4474     call 0160eh                               ; e8 79 df
     4545    mov ax, word [bp+004h]                    ; 8b 46 04
     4546    call 0160eh                               ; e8 18 df
    44754547    mov es, di                                ; 8e c7
    44764548    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
    4477     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4549    mov dx, word [bp+00ah]                    ; 8b 56 0a
    44784550    add dx, strict byte 00003h                ; 83 c2 03
    4479     mov ax, word [bp+008h]                    ; 8b 46 08
    4480     call 0160eh                               ; e8 66 df
     4551    mov ax, word [bp+004h]                    ; 8b 46 04
     4552    call 0160eh                               ; e8 05 df
    44814553    mov es, di                                ; 8e c7
    44824554    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
    44834555    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
    4484     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4556    mov dx, word [bp+00ah]                    ; 8b 56 0a
    44854557    add dx, strict byte 00004h                ; 83 c2 04
    4486     mov ax, word [bp+008h]                    ; 8b 46 08
    4487     call 0164ah                               ; e8 8c df
     4558    mov ax, word [bp+004h]                    ; 8b 46 04
     4559    call 0164ah                               ; e8 2b df
    44884560    mov es, di                                ; 8e c7
    44894561    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
    4490     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4562    mov dx, word [bp+00ah]                    ; 8b 56 0a
    44914563    add dx, strict byte 00008h                ; 83 c2 08
    4492     mov ax, word [bp+008h]                    ; 8b 46 08
    4493     call 0162ah                               ; e8 5a df
     4564    mov ax, word [bp+004h]                    ; 8b 46 04
     4565    call 0162ah                               ; e8 f9 de
    44944566    mov es, di                                ; 8e c7
    44954567    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
    4496     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4568    mov dx, word [bp+00ah]                    ; 8b 56 0a
    44974569    add dx, strict byte 0000ah                ; 83 c2 0a
    4498     mov ax, word [bp+008h]                    ; 8b 46 08
    4499     call 0162ah                               ; e8 48 df
     4570    mov ax, word [bp+004h]                    ; 8b 46 04
     4571    call 0162ah                               ; e8 e7 de
    45004572    mov es, di                                ; 8e c7
    45014573    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
    4502     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4574    mov dx, word [bp+00ah]                    ; 8b 56 0a
    45034575    add dx, strict byte 0000ch                ; 83 c2 0c
    4504     mov ax, word [bp+008h]                    ; 8b 46 08
    4505     call 0162ah                               ; e8 36 df
     4576    mov ax, word [bp+004h]                    ; 8b 46 04
     4577    call 0162ah                               ; e8 d5 de
    45064578    mov es, di                                ; 8e c7
    45074579    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
    4508     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4580    mov dx, word [bp+00ah]                    ; 8b 56 0a
    45094581    add dx, strict byte 0000eh                ; 83 c2 0e
    4510     mov ax, word [bp+008h]                    ; 8b 46 08
    4511     call 0162ah                               ; e8 24 df
     4582    mov ax, word [bp+004h]                    ; 8b 46 04
     4583    call 0162ah                               ; e8 c3 de
    45124584    mov es, di                                ; 8e c7
    45134585    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
    4514     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4586    mov dx, word [bp+00ah]                    ; 8b 56 0a
    45154587    add dx, strict byte 00010h                ; 83 c2 10
    4516     mov ax, word [bp+008h]                    ; 8b 46 08
    4517     call 0160eh                               ; e8 f5 de
     4588    mov ax, word [bp+004h]                    ; 8b 46 04
     4589    call 0160eh                               ; e8 94 de
    45184590    mov es, di                                ; 8e c7
    45194591    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
    4520     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4592    mov dx, word [bp+00ah]                    ; 8b 56 0a
    45214593    add dx, strict byte 00011h                ; 83 c2 11
    4522     mov ax, word [bp+008h]                    ; 8b 46 08
    4523     call 0160eh                               ; e8 e2 de
     4594    mov ax, word [bp+004h]                    ; 8b 46 04
     4595    call 0160eh                               ; e8 81 de
    45244596    mov es, di                                ; 8e c7
    45254597    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
    4526     mov dx, word [bp+00eh]                    ; 8b 56 0e
     4598    mov dx, word [bp+00ah]                    ; 8b 56 0a
    45274599    add dx, strict byte 00012h                ; 83 c2 12
    4528     mov ax, word [bp+008h]                    ; 8b 46 08
    4529     call 0160eh                               ; e8 cf de
    4530     test byte [bp+01ah], 0ffh                 ; f6 46 1a ff
    4531     jne short 0374bh                          ; 75 06
     4600    mov ax, word [bp+004h]                    ; 8b 46 04
     4601    call 0160eh                               ; e8 6e de
     4602    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
     4603    jne short 037ach                          ; 75 06
    45324604    mov es, di                                ; 8e c7
    45334605    mov byte [es:si], 000h                    ; 26 c6 04 00
    4534     mov byte [bp+01bh], 000h                  ; c6 46 1b 00
     4606    mov byte [bp+017h], 000h                  ; c6 46 17 00
    45354607    xor bx, bx                                ; 31 db
    45364608    mov dx, strict word 00074h                ; ba 74 00
    45374609    mov ax, strict word 00040h                ; b8 40 00
    4538     call 0160eh                               ; e8 b4 de
    4539     and byte [bp+020h], 0feh                  ; 80 66 20 fe
    4540     pop bp                                    ; 5d
     4610    call 0160eh                               ; e8 53 de
     4611    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4612    lea sp, [bp-004h]                         ; 8d 66 fc
    45414613    pop di                                    ; 5f
    45424614    pop si                                    ; 5e
     4615    pop bp                                    ; 5d
    45434616    retn                                      ; c3
    4544     mov bx, 00d32h                            ; bb 32 0d
     4617    mov bx, 00d38h                            ; bb 38 0d
    45454618    mov cx, ds                                ; 8c d9
    45464619    mov ax, strict word 00004h                ; b8 04 00
    4547     call 018aeh                               ; e8 41 e1
    4548     mov ax, word [bp+01ah]                    ; 8b 46 1a
     4620    call 018cch                               ; e8 fb e0
     4621    mov ax, word [bp+016h]                    ; 8b 46 16
    45494622    shr ax, 008h                              ; c1 e8 08
    45504623    push ax                                   ; 50
    45514624    push 0026ch                               ; 68 6c 02
    45524625    push 002a3h                               ; 68 a3 02
    4553     jmp near 0365bh                           ; e9 de fe
    4554     mov ax, word [bp+01ah]                    ; 8b 46 1a
     4626    jmp near 036bch                           ; e9 db fe
     4627    mov ax, word [bp+016h]                    ; 8b 46 16
    45554628    xor ah, ah                                ; 30 e4
    45564629    or ah, 001h                               ; 80 cc 01
    4557     mov word [bp+01ah], ax                    ; 89 46 1a
     4630    mov word [bp+016h], ax                    ; 89 46 16
    45584631    mov bx, ax                                ; 89 c3
    45594632    shr bx, 008h                              ; c1 eb 08
     
    45614634    mov dx, strict word 00074h                ; ba 74 00
    45624635    mov ax, strict word 00040h                ; b8 40 00
    4563     call 0160eh                               ; e8 76 de
    4564     or byte [bp+020h], 001h                   ; 80 4e 20 01
    4565     jmp short 0375eh                          ; eb c0
    4566 device_is_cdrom_:                            ; 0xf379e LB 0x32
     4636    call 0160eh                               ; e8 12 de
     4637    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     4638    jmp short 037bfh                          ; eb bd
     4639device_is_cdrom_:                            ; 0xf3802 LB 0x35
     4640    push bp                                   ; 55
     4641    mov bp, sp                                ; 89 e5
    45674642    push bx                                   ; 53
    45684643    push dx                                   ; 52
    4569     push bp                                   ; 55
    4570     mov bp, sp                                ; 89 e5
    45714644    mov bl, al                                ; 88 c3
    45724645    mov dx, strict word 0000eh                ; ba 0e 00
    45734646    mov ax, strict word 00040h                ; b8 40 00
    4574     call 0161ch                               ; e8 6e de
     4647    call 0161ch                               ; e8 0a de
    45754648    cmp bl, 010h                              ; 80 fb 10
    4576     jc short 037b7h                           ; 72 04
     4649    jc short 0381bh                           ; 72 04
    45774650    xor ax, ax                                ; 31 c0
    4578     jmp short 037cch                          ; eb 15
     4651    jmp short 03830h                          ; eb 15
    45794652    xor bh, bh                                ; 30 ff
    45804653    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    45824655    add bx, 00122h                            ; 81 c3 22 01
    45834656    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    4584     jne short 037b3h                          ; 75 ea
     4657    jne short 03817h                          ; 75 ea
    45854658    mov ax, strict word 00001h                ; b8 01 00
    4586     pop bp                                    ; 5d
     4659    lea sp, [bp-004h]                         ; 8d 66 fc
    45874660    pop dx                                    ; 5a
    45884661    pop bx                                    ; 5b
     4662    pop bp                                    ; 5d
    45894663    retn                                      ; c3
    4590 cdrom_boot_:                                 ; 0xf37d0 LB 0x410
     4664cdrom_boot_:                                 ; 0xf3837 LB 0x416
     4665    push bp                                   ; 55
     4666    mov bp, sp                                ; 89 e5
    45914667    push bx                                   ; 53
    45924668    push cx                                   ; 51
     
    45944670    push si                                   ; 56
    45954671    push di                                   ; 57
    4596     enter 0081ch, 000h                        ; c8 1c 08 00
     4672    sub sp, 0081ch                            ; 81 ec 1c 08
    45974673    mov dx, strict word 0000eh                ; ba 0e 00
    45984674    mov ax, strict word 00040h                ; b8 40 00
    4599     call 0161ch                               ; e8 3a de
    4600     mov word [bp-00eh], ax                    ; 89 46 f2
     4675    call 0161ch                               ; e8 d0 dd
     4676    mov word [bp-018h], ax                    ; 89 46 e8
    46014677    mov si, 00322h                            ; be 22 03
    4602     mov word [bp-006h], ax                    ; 89 46 fa
    4603     mov word [bp-00ah], 00122h                ; c7 46 f6 22 01
    4604     mov word [bp-008h], ax                    ; 89 46 f8
    4605     mov byte [bp-002h], 000h                  ; c6 46 fe 00
    4606     jmp short 03802h                          ; eb 09
    4607     inc byte [bp-002h]                        ; fe 46 fe
    4608     cmp byte [bp-002h], 010h                  ; 80 7e fe 10
    4609     jnc short 0380dh                          ; 73 0b
    4610     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    4611     call 0379eh                               ; e8 95 ff
     4678    mov word [bp-010h], ax                    ; 89 46 f0
     4679    mov word [bp-014h], 00122h                ; c7 46 ec 22 01
     4680    mov word [bp-012h], ax                    ; 89 46 ee
     4681    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     4682    jmp short 0386ch                          ; eb 09
     4683    inc byte [bp-00ch]                        ; fe 46 f4
     4684    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
     4685    jnc short 03877h                          ; 73 0b
     4686    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4687    call 03802h                               ; e8 8f ff
    46124688    test ax, ax                               ; 85 c0
    4613     je short 037f9h                           ; 74 ec
    4614     cmp byte [bp-002h], 010h                  ; 80 7e fe 10
    4615     jc short 03819h                           ; 72 06
     4689    je short 03863h                           ; 74 ec
     4690    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
     4691    jc short 03883h                           ; 72 06
    46164692    mov ax, strict word 00002h                ; b8 02 00
    4617     jmp near 03b80h                           ; e9 67 03
     4693    jmp near 03beah                           ; e9 67 03
    46184694    mov cx, strict word 0000ch                ; b9 0c 00
    46194695    xor bx, bx                                ; 31 db
    46204696    mov dx, ss                                ; 8c d2
    4621     lea ax, [bp-01ch]                         ; 8d 46 e4
    4622     call 0907ah                               ; e8 54 58
    4623     mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
     4697    lea ax, [bp-026h]                         ; 8d 46 da
     4698    call 0924ah                               ; e8 ba 59
     4699    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    46244700    mov ax, strict word 00011h                ; b8 11 00
    46254701    xor dx, dx                                ; 31 d2
     
    46274703    xchg dh, dl                               ; 86 d6
    46284704    xchg dx, ax                               ; 92
    4629     mov word [bp-01ah], ax                    ; 89 46 e6
    4630     mov word [bp-018h], dx                    ; 89 56 e8
     4705    mov word [bp-024h], ax                    ; 89 46 dc
     4706    mov word [bp-022h], dx                    ; 89 56 de
    46314707    mov ax, strict word 00001h                ; b8 01 00
    46324708    xchg ah, al                               ; 86 c4
    4633     mov word [bp-015h], ax                    ; 89 46 eb
    4634     les bx, [bp-00ah]                         ; c4 5e f6
     4709    mov word [bp-01fh], ax                    ; 89 46 e1
     4710    les bx, [bp-014h]                         ; c4 5e ec
    46354711    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 008h
    46364712    ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08
    4637     mov byte [bp-004h], 000h                  ; c6 46 fc 00
    4638     jmp short 0385eh                          ; eb 09
    4639     inc byte [bp-004h]                        ; fe 46 fc
    4640     cmp byte [bp-004h], 004h                  ; 80 7e fc 04
    4641     jnbe short 03895h                         ; 77 37
    4642     movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     4713    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     4714    jmp short 038c8h                          ; eb 09
     4715    inc byte [bp-00eh]                        ; fe 46 f2
     4716    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
     4717    jnbe short 038ffh                         ; 77 37
     4718    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    46434719    imul di, di, strict byte 00018h           ; 6b ff 18
    4644     mov es, [bp-008h]                         ; 8e 46 f8
    4645     add di, word [bp-00ah]                    ; 03 7e f6
     4720    mov es, [bp-012h]                         ; 8e 46 ee
     4721    add di, word [bp-014h]                    ; 03 7e ec
    46464722    movzx di, byte [es:di+01eh]               ; 26 0f b6 7d 1e
    46474723    add di, di                                ; 01 ff
    4648     lea dx, [bp-0081ch]                       ; 8d 96 e4 f7
     4724    lea dx, [bp-00826h]                       ; 8d 96 da f7
    46494725    push SS                                   ; 16
    46504726    push dx                                   ; 52
     
    46534729    push 00800h                               ; 68 00 08
    46544730    push strict byte 00000h                   ; 6a 00
    4655     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     4731    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    46564732    mov cx, ss                                ; 8c d1
    4657     lea bx, [bp-01ch]                         ; 8d 5e e4
     4733    lea bx, [bp-026h]                         ; 8d 5e da
    46584734    mov dx, strict word 0000ch                ; ba 0c 00
    46594735    call word [word di+00000h]                ; ff 95 00 00
    46604736    test ax, ax                               ; 85 c0
    4661     jne short 03855h                          ; 75 c0
     4737    jne short 038bfh                          ; 75 c0
    46624738    test ax, ax                               ; 85 c0
    4663     je short 0389fh                           ; 74 06
     4739    je short 03909h                           ; 74 06
    46644740    mov ax, strict word 00003h                ; b8 03 00
    4665     jmp near 03b80h                           ; e9 e1 02
    4666     cmp byte [bp-0081ch], 000h                ; 80 be e4 f7 00
    4667     je short 038ach                           ; 74 06
     4741    jmp near 03beah                           ; e9 e1 02
     4742    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
     4743    je short 03916h                           ; 74 06
    46684744    mov ax, strict word 00004h                ; b8 04 00
    4669     jmp near 03b80h                           ; e9 d4 02
     4745    jmp near 03beah                           ; e9 d4 02
    46704746    xor di, di                                ; 31 ff
    4671     jmp short 038b6h                          ; eb 06
     4747    jmp short 03920h                          ; eb 06
    46724748    inc di                                    ; 47
    46734749    cmp di, strict byte 00005h                ; 83 ff 05
    4674     jnc short 038c6h                          ; 73 10
    4675     mov al, byte [bp+di-0081bh]               ; 8a 83 e5 f7
    4676     cmp al, byte [di+00d3ah]                  ; 3a 85 3a 0d
    4677     je short 038b0h                           ; 74 f0
     4750    jnc short 03930h                          ; 73 10
     4751    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
     4752    cmp al, byte [di+00d40h]                  ; 3a 85 40 0d
     4753    je short 0391ah                           ; 74 f0
    46784754    mov ax, strict word 00005h                ; b8 05 00
    4679     jmp near 03b80h                           ; e9 ba 02
     4755    jmp near 03beah                           ; e9 ba 02
    46804756    xor di, di                                ; 31 ff
    4681     jmp short 038d0h                          ; eb 06
     4757    jmp short 0393ah                          ; eb 06
    46824758    inc di                                    ; 47
    46834759    cmp di, strict byte 00017h                ; 83 ff 17
    4684     jnc short 038e0h                          ; 73 10
    4685     mov al, byte [bp+di-00815h]               ; 8a 83 eb f7
    4686     cmp al, byte [di+00d40h]                  ; 3a 85 40 0d
    4687     je short 038cah                           ; 74 f0
     4760    jnc short 0394ah                          ; 73 10
     4761    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
     4762    cmp al, byte [di+00d46h]                  ; 3a 85 46 0d
     4763    je short 03934h                           ; 74 f0
    46884764    mov ax, strict word 00006h                ; b8 06 00
    4689     jmp near 03b80h                           ; e9 a0 02
    4690     mov ax, word [bp-007d5h]                  ; 8b 86 2b f8
    4691     mov dx, word [bp-007d3h]                  ; 8b 96 2d f8
    4692     mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
     4765    jmp near 03beah                           ; e9 a0 02
     4766    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
     4767    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     4768    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    46934769    xchg ah, al                               ; 86 c4
    46944770    xchg dh, dl                               ; 86 d6
    46954771    xchg dx, ax                               ; 92
    4696     mov word [bp-01ah], ax                    ; 89 46 e6
    4697     mov word [bp-018h], dx                    ; 89 56 e8
     4772    mov word [bp-024h], ax                    ; 89 46 dc
     4773    mov word [bp-022h], dx                    ; 89 56 de
    46984774    mov ax, strict word 00001h                ; b8 01 00
    46994775    xchg ah, al                               ; 86 c4
    4700     mov word [bp-015h], ax                    ; 89 46 eb
    4701     movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     4776    mov word [bp-01fh], ax                    ; 89 46 e1
     4777    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    47024778    imul di, di, strict byte 00018h           ; 6b ff 18
    4703     mov es, [bp-008h]                         ; 8e 46 f8
    4704     add di, word [bp-00ah]                    ; 03 7e f6
     4779    mov es, [bp-012h]                         ; 8e 46 ee
     4780    add di, word [bp-014h]                    ; 03 7e ec
    47054781    movzx di, byte [es:di+01eh]               ; 26 0f b6 7d 1e
    47064782    add di, di                                ; 01 ff
    4707     lea dx, [bp-0081ch]                       ; 8d 96 e4 f7
     4783    lea dx, [bp-00826h]                       ; 8d 96 da f7
    47084784    push SS                                   ; 16
    47094785    push dx                                   ; 52
     
    47124788    push 00800h                               ; 68 00 08
    47134789    push strict byte 00000h                   ; 6a 00
    4714     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     4790    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    47154791    mov cx, ss                                ; 8c d1
    4716     lea bx, [bp-01ch]                         ; 8d 5e e4
     4792    lea bx, [bp-026h]                         ; 8d 5e da
    47174793    mov dx, strict word 0000ch                ; ba 0c 00
    47184794    call word [word di+00000h]                ; ff 95 00 00
    47194795    test ax, ax                               ; 85 c0
    4720     je short 0393dh                           ; 74 06
     4796    je short 039a7h                           ; 74 06
    47214797    mov ax, strict word 00007h                ; b8 07 00
    4722     jmp near 03b80h                           ; e9 43 02
    4723     cmp byte [bp-0081ch], 001h                ; 80 be e4 f7 01
    4724     je short 0394ah                           ; 74 06
     4798    jmp near 03beah                           ; e9 43 02
     4799    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
     4800    je short 039b4h                           ; 74 06
    47254801    mov ax, strict word 00008h                ; b8 08 00
    4726     jmp near 03b80h                           ; e9 36 02
    4727     cmp byte [bp-0081bh], 000h                ; 80 be e5 f7 00
    4728     je short 03957h                           ; 74 06
     4802    jmp near 03beah                           ; e9 36 02
     4803    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
     4804    je short 039c1h                           ; 74 06
    47294805    mov ax, strict word 00009h                ; b8 09 00
    4730     jmp near 03b80h                           ; e9 29 02
    4731     cmp byte [bp-007feh], 055h                ; 80 be 02 f8 55
    4732     je short 03964h                           ; 74 06
     4806    jmp near 03beah                           ; e9 29 02
     4807    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
     4808    je short 039ceh                           ; 74 06
    47334809    mov ax, strict word 0000ah                ; b8 0a 00
    4734     jmp near 03b80h                           ; e9 1c 02
    4735     cmp byte [bp-007fdh], 0aah                ; 80 be 03 f8 aa
    4736     jne short 0395eh                          ; 75 f3
    4737     cmp byte [bp-007fch], 088h                ; 80 be 04 f8 88
    4738     je short 03978h                           ; 74 06
     4810    jmp near 03beah                           ; e9 1c 02
     4811    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
     4812    jne short 039c8h                          ; 75 f3
     4813    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
     4814    je short 039e2h                           ; 74 06
    47394815    mov ax, strict word 0000bh                ; b8 0b 00
    4740     jmp near 03b80h                           ; e9 08 02
    4741     mov al, byte [bp-007fbh]                  ; 8a 86 05 f8
    4742     mov es, [bp-006h]                         ; 8e 46 fa
     4816    jmp near 03beah                           ; e9 08 02
     4817    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
     4818    mov es, [bp-010h]                         ; 8e 46 f0
    47434819    mov byte [es:si+001h], al                 ; 26 88 44 01
    4744     cmp byte [bp-007fbh], 000h                ; 80 be 05 f8 00
    4745     jne short 03991h                          ; 75 07
     4820    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
     4821    jne short 039fbh                          ; 75 07
    47464822    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    4747     jmp short 039a4h                          ; eb 13
    4748     cmp byte [bp-007fbh], 004h                ; 80 be 05 f8 04
    4749     jnc short 0399fh                          ; 73 07
     4823    jmp short 03a0eh                          ; eb 13
     4824    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
     4825    jnc short 03a09h                          ; 73 07
    47504826    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    4751     jmp short 039a4h                          ; eb 05
     4827    jmp short 03a0eh                          ; eb 05
    47524828    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    4753     movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     4829    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    47544830    mov ax, di                                ; 89 f8
    47554831    cwd                                       ; 99
     
    47574833    ; sub ax, dx                                ; 2b c2
    47584834    sar ax, 1                                 ; d1 f8
    4759     mov es, [bp-006h]                         ; 8e 46 fa
     4835    mov es, [bp-010h]                         ; 8e 46 f0
    47604836    mov byte [es:si+003h], al                 ; 26 88 44 03
    47614837    mov ax, di                                ; 89 f8
     
    47644840    idiv bx                                   ; f7 fb
    47654841    mov word [es:si+004h], dx                 ; 26 89 54 04
    4766     mov ax, word [bp-007fah]                  ; 8b 86 06 f8
    4767     mov word [bp-00ch], ax                    ; 89 46 f4
     4842    mov ax, word [bp-00804h]                  ; 8b 86 fc f7
     4843    mov word [bp-016h], ax                    ; 89 46 ea
    47684844    test ax, ax                               ; 85 c0
    4769     jne short 039d2h                          ; 75 05
    4770     mov word [bp-00ch], 007c0h                ; c7 46 f4 c0 07
    4771     mov ax, word [bp-00ch]                    ; 8b 46 f4
    4772     mov es, [bp-006h]                         ; 8e 46 fa
     4845    jne short 03a3ch                          ; 75 05
     4846    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
     4847    mov ax, word [bp-016h]                    ; 8b 46 ea
     4848    mov es, [bp-010h]                         ; 8e 46 f0
    47734849    mov word [es:si+00ch], ax                 ; 26 89 44 0c
    47744850    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
    4775     mov di, word [bp-007f6h]                  ; 8b be 0a f8
     4851    mov di, word [bp-00800h]                  ; 8b be 00 f8
    47764852    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    47774853    test di, di                               ; 85 ff
    4778     je short 039f4h                           ; 74 06
     4854    je short 03a5eh                           ; 74 06
    47794855    cmp di, 00400h                            ; 81 ff 00 04
    4780     jbe short 039fah                          ; 76 06
     4856    jbe short 03a64h                          ; 76 06
    47814857    mov ax, strict word 0000ch                ; b8 0c 00
    4782     jmp near 03b80h                           ; e9 86 01
    4783     mov ax, word [bp-007f4h]                  ; 8b 86 0c f8
    4784     mov dx, word [bp-007f2h]                  ; 8b 96 0e f8
     4858    jmp near 03beah                           ; e9 86 01
     4859    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
     4860    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
    47854861    mov word [es:si+008h], ax                 ; 26 89 44 08
    47864862    mov word [es:si+00ah], dx                 ; 26 89 54 0a
    4787     mov word [bp-01ch], strict word 00028h    ; c7 46 e4 28 00
     4863    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    47884864    xchg ah, al                               ; 86 c4
    47894865    xchg dh, dl                               ; 86 d6
    47904866    xchg dx, ax                               ; 92
    4791     mov word [bp-01ah], ax                    ; 89 46 e6
    4792     mov word [bp-018h], dx                    ; 89 56 e8
     4867    mov word [bp-024h], ax                    ; 89 46 dc
     4868    mov word [bp-022h], dx                    ; 89 56 de
    47934869    lea dx, [di-001h]                         ; 8d 55 ff
    47944870    shr dx, 002h                              ; c1 ea 02
     
    47964872    mov ax, dx                                ; 89 d0
    47974873    xchg ah, al                               ; 86 c4
    4798     mov word [bp-015h], ax                    ; 89 46 eb
    4799     les bx, [bp-00ah]                         ; c4 5e f6
     4874    mov word [bp-01fh], ax                    ; 89 46 e1
     4875    les bx, [bp-014h]                         ; c4 5e ec
    48004876    mov word [es:bx+00ah], dx                 ; 26 89 57 0a
    48014877    mov word [es:bx+00ch], 00200h             ; 26 c7 47 0c 00 02
     
    48074883    and ah, 007h                              ; 80 e4 07
    48084884    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    4809     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     4885    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    48104886    imul ax, ax, strict byte 00018h           ; 6b c0 18
    48114887    add bx, ax                                ; 01 c3
    48124888    movzx ax, byte [es:bx+01eh]               ; 26 0f b6 47 1e
    48134889    add ax, ax                                ; 01 c0
    4814     mov word [bp-010h], ax                    ; 89 46 f0
    4815     push word [bp-00ch]                       ; ff 76 f4
     4890    mov word [bp-01ah], ax                    ; 89 46 e6
     4891    push word [bp-016h]                       ; ff 76 ea
    48164892    push dword 000000001h                     ; 66 6a 01
    48174893    mov ax, di                                ; 89 f8
     
    48204896    sal ax, 1                                 ; d1 e0
    48214897    rcl di, 1                                 ; d1 d7
    4822     loop 03a68h                               ; e2 fa
     4898    loop 03ad2h                               ; e2 fa
    48234899    push di                                   ; 57
    48244900    push ax                                   ; 50
    48254901    push strict byte 00000h                   ; 6a 00
    4826     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     4902    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    48274903    mov cx, ss                                ; 8c d1
    4828     lea bx, [bp-01ch]                         ; 8d 5e e4
     4904    lea bx, [bp-026h]                         ; 8d 5e da
    48294905    mov dx, strict word 0000ch                ; ba 0c 00
    4830     mov di, word [bp-010h]                    ; 8b 7e f0
     4906    mov di, word [bp-01ah]                    ; 8b 7e e6
    48314907    call word [word di+00000h]                ; ff 95 00 00
    4832     les bx, [bp-00ah]                         ; c4 5e f6
     4908    les bx, [bp-014h]                         ; c4 5e ec
    48334909    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
    48344910    test ax, ax                               ; 85 c0
    4835     je short 03a98h                           ; 74 06
     4911    je short 03b02h                           ; 74 06
    48364912    mov ax, strict word 0000dh                ; b8 0d 00
    4837     jmp near 03b80h                           ; e9 e8 00
    4838     mov es, [bp-006h]                         ; 8e 46 fa
     4913    jmp near 03beah                           ; e9 e8 00
     4914    mov es, [bp-010h]                         ; 8e 46 f0
    48394915    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    48404916    cmp AL, strict byte 002h                  ; 3c 02
    4841     jc short 03ab0h                           ; 72 0d
    4842     jbe short 03ac8h                          ; 76 23
     4917    jc short 03b1ah                           ; 72 0d
     4918    jbe short 03b32h                          ; 76 23
    48434919    cmp AL, strict byte 004h                  ; 3c 04
    4844     je short 03adeh                           ; 74 35
     4920    je short 03b48h                           ; 74 35
    48454921    cmp AL, strict byte 003h                  ; 3c 03
    4846     je short 03ad3h                           ; 74 26
    4847     jmp near 03b29h                           ; e9 79 00
     4922    je short 03b3dh                           ; 74 26
     4923    jmp near 03b93h                           ; e9 79 00
    48484924    cmp AL, strict byte 001h                  ; 3c 01
    4849     jne short 03b29h                          ; 75 75
    4850     mov es, [bp-006h]                         ; 8e 46 fa
     4925    jne short 03b93h                          ; 75 75
     4926    mov es, [bp-010h]                         ; 8e 46 f0
    48514927    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    48524928    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    48534929    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    4854     jmp short 03b29h                          ; eb 61
     4930    jmp short 03b93h                          ; eb 61
    48554931    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    48564932    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    4857     jmp short 03ac0h                          ; eb ed
     4933    jmp short 03b2ah                          ; eb ed
    48584934    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    48594935    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    4860     jmp short 03ac0h                          ; eb e2
     4936    jmp short 03b2ah                          ; eb e2
    48614937    mov dx, 001c4h                            ; ba c4 01
    4862     mov ax, word [bp-00ch]                    ; 8b 46 f4
    4863     call 01600h                               ; e8 19 db
     4938    mov ax, word [bp-016h]                    ; 8b 46 ea
     4939    call 01600h                               ; e8 af da
    48644940    and AL, strict byte 03fh                  ; 24 3f
    48654941    xor ah, ah                                ; 30 e4
    4866     mov es, [bp-006h]                         ; 8e 46 fa
     4942    mov es, [bp-010h]                         ; 8e 46 f0
    48674943    mov word [es:si+014h], ax                 ; 26 89 44 14
    48684944    mov dx, 001c4h                            ; ba c4 01
    4869     mov ax, word [bp-00ch]                    ; 8b 46 f4
    4870     call 01600h                               ; e8 05 db
     4945    mov ax, word [bp-016h]                    ; 8b 46 ea
     4946    call 01600h                               ; e8 9b da
    48714947    movzx bx, al                              ; 0f b6 d8
    48724948    sal bx, 002h                              ; c1 e3 02
    48734949    mov dx, 001c5h                            ; ba c5 01
    4874     mov ax, word [bp-00ch]                    ; 8b 46 f4
    4875     call 01600h                               ; e8 f6 da
     4950    mov ax, word [bp-016h]                    ; 8b 46 ea
     4951    call 01600h                               ; e8 8c da
    48764952    xor ah, ah                                ; 30 e4
    48774953    add ax, bx                                ; 01 d8
    48784954    inc ax                                    ; 40
    4879     mov es, [bp-006h]                         ; 8e 46 fa
     4955    mov es, [bp-010h]                         ; 8e 46 f0
    48804956    mov word [es:si+012h], ax                 ; 26 89 44 12
    48814957    mov dx, 001c3h                            ; ba c3 01
    4882     mov ax, word [bp-00ch]                    ; 8b 46 f4
    4883     call 01600h                               ; e8 e1 da
     4958    mov ax, word [bp-016h]                    ; 8b 46 ea
     4959    call 01600h                               ; e8 77 da
    48844960    xor ah, ah                                ; 30 e4
    48854961    inc ax                                    ; 40
    4886     mov es, [bp-006h]                         ; 8e 46 fa
     4962    mov es, [bp-010h]                         ; 8e 46 f0
    48874963    mov word [es:si+010h], ax                 ; 26 89 44 10
    4888     mov es, [bp-006h]                         ; 8e 46 fa
     4964    mov es, [bp-010h]                         ; 8e 46 f0
    48894965    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4890     je short 03b67h                           ; 74 34
     4966    je short 03bd1h                           ; 74 34
    48914967    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    4892     jne short 03b50h                          ; 75 16
     4968    jne short 03bbah                          ; 75 16
    48934969    mov dx, strict word 00010h                ; ba 10 00
    48944970    mov ax, strict word 00040h                ; b8 40 00
    4895     call 01600h                               ; e8 bd da
     4971    call 01600h                               ; e8 53 da
    48964972    or AL, strict byte 041h                   ; 0c 41
    48974973    movzx bx, al                              ; 0f b6 d8
    48984974    mov dx, strict word 00010h                ; ba 10 00
    48994975    mov ax, strict word 00040h                ; b8 40 00
    4900     jmp short 03b64h                          ; eb 14
     4976    jmp short 03bceh                          ; eb 14
    49014977    mov dx, 002c0h                            ; ba c0 02
    4902     mov ax, word [bp-00eh]                    ; 8b 46 f2
    4903     call 01600h                               ; e8 a7 da
     4978    mov ax, word [bp-018h]                    ; 8b 46 e8
     4979    call 01600h                               ; e8 3d da
    49044980    db  0feh, 0c0h
    49054981    ; inc al                                    ; fe c0
    49064982    movzx bx, al                              ; 0f b6 d8
    49074983    mov dx, 002c0h                            ; ba c0 02
    4908     mov ax, word [bp-00eh]                    ; 8b 46 f2
    4909     call 0160eh                               ; e8 a7 da
    4910     mov es, [bp-006h]                         ; 8e 46 fa
     4984    mov ax, word [bp-018h]                    ; 8b 46 e8
     4985    call 0160eh                               ; e8 3d da
     4986    mov es, [bp-010h]                         ; 8e 46 f0
    49114987    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4912     je short 03b75h                           ; 74 04
     4988    je short 03bdfh                           ; 74 04
    49134989    mov byte [es:si], 001h                    ; 26 c6 04 01
    4914     mov es, [bp-006h]                         ; 8e 46 fa
     4990    mov es, [bp-010h]                         ; 8e 46 f0
    49154991    movzx ax, byte [es:si+002h]               ; 26 0f b6 44 02
    49164992    sal ax, 008h                              ; c1 e0 08
    4917     leave                                     ; c9
     4993    lea sp, [bp-00ah]                         ; 8d 66 f6
    49184994    pop di                                    ; 5f
    49194995    pop si                                    ; 5e
     
    49214997    pop cx                                    ; 59
    49224998    pop bx                                    ; 5b
     4999    pop bp                                    ; 5d
    49235000    retn                                      ; c3
    4924     push ax                                   ; 50
    4925     dec si                                    ; 4e
    4926     dec cx                                    ; 49
    4927     dec ax                                    ; 48
    4928     inc di                                    ; 47
    4929     inc si                                    ; 46
    4930     inc bp                                    ; 45
    4931     inc sp                                    ; 44
    4932     inc bx                                    ; 43
    4933     inc dx                                    ; 42
    4934     inc cx                                    ; 41
    4935     sbb byte [01415h], dl                     ; 18 16 15 14
    4936     adc word [bx+si], dx                      ; 11 10
    4937     or ax, 00b0ch                             ; 0d 0c 0b
    4938     or cl, byte [bx+di]                       ; 0a 09
    4939     or byte [di], al                          ; 08 05
    4940     add AL, strict byte 003h                  ; 04 03
    4941     add al, byte [bx+di]                      ; 02 01
    4942     add byte [bp+di+03fh], dh                 ; 00 73 3f
    4943     test byte [si], bh                        ; 84 3c
    4944     retf                                      ; cb
    4945     cmp AL, strict byte 0f3h                  ; 3c f3
    4946     cmp AL, strict byte 0c0h                  ; 3c c0
    4947     cmp AL, strict byte 0f3h                  ; 3c f3
    4948     cmp AL, strict byte 0c0h                  ; 3c c0
    4949     cmp AL, strict byte 0c9h                  ; 3c c9
    4950     db  03eh, 0a9h, 03ch, 073h
    4951     ; ds test ax, 0733ch                        ; 3e a9 3c 73
    4952     aas                                       ; 3f
    4953     jnc short 03bf9h                          ; 73 3f
    4954     test ax, 0a93ch                           ; a9 3c a9
    4955     cmp AL, strict byte 0a9h                  ; 3c a9
    4956     cmp AL, strict byte 0a9h                  ; 3c a9
    4957     cmp AL, strict byte 0a9h                  ; 3c a9
    4958     cmp AL, strict byte 06ah                  ; 3c 6a
    4959     aas                                       ; 3f
    4960     test ax, 0733ch                           ; a9 3c 73
    4961     aas                                       ; 3f
    4962     jnc short 03c0bh                          ; 73 3f
    4963     jnc short 03c0dh                          ; 73 3f
    4964     jnc short 03c0fh                          ; 73 3f
    4965     jnc short 03c11h                          ; 73 3f
    4966     jnc short 03c13h                          ; 73 3f
    4967     jnc short 03c15h                          ; 73 3f
    4968     jnc short 03c17h                          ; 73 3f
    4969     jnc short 03c19h                          ; 73 3f
    4970     jnc short 03c1bh                          ; 73 3f
    4971     jnc short 03c1dh                          ; 73 3f
    4972     jnc short 03c1fh                          ; 73 3f
    4973 _int13_cdemu:                                ; 0xf3be0 LB 0x42f
     5001    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
     5002    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e5h, 03fh, 0f3h
     5003    db  03ch, 03dh, 03dh, 065h, 03dh, 032h, 03dh, 065h, 03dh, 032h, 03dh, 03bh, 03fh, 018h, 03dh, 0e5h
     5004    db  03fh, 0e5h, 03fh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 0dch, 03fh, 018h
     5005    db  03dh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h
     5006    db  03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh
     5007_int13_cdemu:                                ; 0xf3c4d LB 0x434
     5008    push bp                                   ; 55
     5009    mov bp, sp                                ; 89 e5
    49745010    push si                                   ; 56
    49755011    push di                                   ; 57
    4976     enter 0002ah, 000h                        ; c8 2a 00 00
     5012    sub sp, strict byte 0002ah                ; 83 ec 2a
    49775013    mov dx, strict word 0000eh                ; ba 0e 00
    49785014    mov ax, strict word 00040h                ; b8 40 00
    4979     call 0161ch                               ; e8 2d da
     5015    call 0161ch                               ; e8 be d9
    49805016    mov di, 00322h                            ; bf 22 03
    49815017    mov cx, ax                                ; 89 c1
    49825018    mov si, di                                ; 89 fe
    4983     mov word [bp-004h], ax                    ; 89 46 fc
    4984     mov word [bp-00ah], 00122h                ; c7 46 f6 22 01
    49855019    mov word [bp-008h], ax                    ; 89 46 f8
     5020    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     5021    mov word [bp-00ch], ax                    ; 89 46 f4
    49865022    mov es, ax                                ; 8e c0
    49875023    mov al, byte [es:di+003h]                 ; 26 8a 45 03
    49885024    add al, al                                ; 00 c0
    4989     mov byte [bp-002h], al                    ; 88 46 fe
     5025    mov byte [bp-006h], al                    ; 88 46 fa
    49905026    mov al, byte [es:di+004h]                 ; 26 8a 45 04
    4991     add byte [bp-002h], al                    ; 00 46 fe
     5027    add byte [bp-006h], al                    ; 00 46 fa
    49925028    xor bx, bx                                ; 31 db
    49935029    mov dx, strict word 00074h                ; ba 74 00
    49945030    mov ax, strict word 00040h                ; b8 40 00
    4995     call 0160eh                               ; e8 f0 d9
     5031    call 0160eh                               ; e8 81 d9
    49965032    mov es, cx                                ; 8e c1
    49975033    cmp byte [es:di], 000h                    ; 26 80 3d 00
    4998     je short 03c34h                           ; 74 0e
     5034    je short 03ca3h                           ; 74 0e
    49995035    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    5000     mov ax, word [bp+016h]                    ; 8b 46 16
     5036    mov ax, word [bp+012h]                    ; 8b 46 12
    50015037    xor ah, ah                                ; 30 e4
    50025038    cmp dx, ax                                ; 39 c2
    5003     je short 03c5dh                           ; 74 29
    5004     mov bx, 00d32h                            ; bb 32 0d
     5039    je short 03ccch                           ; 74 29
     5040    mov bx, 00d38h                            ; bb 38 0d
    50055041    mov cx, ds                                ; 8c d9
    50065042    mov ax, strict word 00004h                ; b8 04 00
    5007     call 018aeh                               ; e8 6f dc
    5008     mov ax, word [bp+016h]                    ; 8b 46 16
     5043    call 018cch                               ; e8 1e dc
     5044    mov ax, word [bp+012h]                    ; 8b 46 12
    50095045    xor ah, ah                                ; 30 e4
    50105046    push ax                                   ; 50
    5011     mov ax, word [bp+01ah]                    ; 8b 46 1a
     5047    mov ax, word [bp+016h]                    ; 8b 46 16
    50125048    shr ax, 008h                              ; c1 e8 08
    50135049    push ax                                   ; 50
     
    50155051    push 002c8h                               ; 68 c8 02
    50165052    push strict byte 00004h                   ; 6a 04
    5017     call 018e9h                               ; e8 92 dc
     5053    call 0190dh                               ; e8 47 dc
    50185054    add sp, strict byte 0000ah                ; 83 c4 0a
    5019     jmp near 03f93h                           ; e9 36 03
    5020     mov ax, word [bp+01ah]                    ; 8b 46 1a
     5055    jmp near 04005h                           ; e9 39 03
     5056    mov ax, word [bp+016h]                    ; 8b 46 16
    50215057    shr ax, 008h                              ; c1 e8 08
    50225058    cmp ax, strict word 00050h                ; 3d 50 00
    5023     jnbe near 03f73h                          ; 0f 87 09 03
     5059    jnbe near 03fe5h                          ; 0f 87 0c 03
    50245060    push CS                                   ; 0e
    50255061    pop ES                                    ; 07
    50265062    mov cx, strict word 0001eh                ; b9 1e 00
    5027     mov di, 03b87h                            ; bf 87 3b
     5063    mov di, 03bf4h                            ; bf f4 3b
    50285064    repne scasb                               ; f2 ae
    50295065    sal cx, 1                                 ; d1 e1
    50305066    mov di, cx                                ; 89 cf
    5031     mov ax, word [cs:di+03ba4h]               ; 2e 8b 85 a4 3b
    5032     mov bx, word [bp+01ah]                    ; 8b 5e 1a
     5067    mov ax, word [cs:di+03c11h]               ; 2e 8b 85 11 3c
     5068    mov bx, word [bp+016h]                    ; 8b 5e 16
    50335069    xor bh, bh                                ; 30 ff
    50345070    jmp ax                                    ; ff e0
    5035     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     5071    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    50365072    imul bx, bx, strict byte 00018h           ; 6b db 18
    5037     mov es, [bp-008h]                         ; 8e 46 f8
    5038     add bx, word [bp-00ah]                    ; 03 5e f6
     5073    mov es, [bp-00ch]                         ; 8e 46 f4
     5074    add bx, word [bp-00eh]                    ; 03 5e f2
    50395075    movzx bx, byte [es:bx+01eh]               ; 26 0f b6 5f 1e
    50405076    add bx, bx                                ; 01 db
    50415077    cmp word [word bx+00000h], strict byte 00000h ; 83 bf 00 00 00
    5042     je near 03ca9h                            ; 0f 84 08 00
    5043     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5078    je near 03d18h                            ; 0f 84 08 00
     5079    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    50445080    call word [word bx+0000ch]                ; ff 97 0c 00
    5045     mov byte [bp+01bh], 000h                  ; c6 46 1b 00
     5081    mov byte [bp+017h], 000h                  ; c6 46 17 00
    50465082    xor bx, bx                                ; 31 db
    50475083    mov dx, strict word 00074h                ; ba 74 00
    50485084    mov ax, strict word 00040h                ; b8 40 00
    5049     call 0160eh                               ; e8 56 d9
    5050     and byte [bp+020h], 0feh                  ; 80 66 20 fe
    5051     leave                                     ; c9
     5085    call 0160eh                               ; e8 e7 d8
     5086    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     5087    lea sp, [bp-004h]                         ; 8d 66 fc
    50525088    pop di                                    ; 5f
    50535089    pop si                                    ; 5e
     5090    pop bp                                    ; 5d
    50545091    retn                                      ; c3
    5055     mov ax, word [bp+01ah]                    ; 8b 46 1a
     5092    mov ax, word [bp+016h]                    ; 8b 46 16
    50565093    xor ah, ah                                ; 30 e4
    50575094    or ah, 003h                               ; 80 cc 03
    5058     jmp near 03f9bh                           ; e9 d0 02
     5095    jmp near 0400dh                           ; e9 d0 02
    50595096    mov dx, strict word 00074h                ; ba 74 00
    50605097    mov ax, strict word 00040h                ; b8 40 00
    5061     call 01600h                               ; e8 2c d9
     5098    call 01600h                               ; e8 ba d8
    50625099    mov cl, al                                ; 88 c1
    50635100    movzx ax, cl                              ; 0f b6 c1
    50645101    sal ax, 008h                              ; c1 e0 08
    50655102    or bx, ax                                 ; 09 c3
    5066     mov word [bp+01ah], bx                    ; 89 5e 1a
     5103    mov word [bp+016h], bx                    ; 89 5e 16
    50675104    xor bx, bx                                ; 31 db
    50685105    mov dx, strict word 00074h                ; ba 74 00
    50695106    mov ax, strict word 00040h                ; b8 40 00
    5070     call 0160eh                               ; e8 22 d9
     5107    call 0160eh                               ; e8 b0 d8
    50715108    test cl, cl                               ; 84 c9
    5072     je short 03cadh                           ; 74 bd
    5073     jmp near 03fafh                           ; e9 bc 02
    5074     mov es, [bp-004h]                         ; 8e 46 fc
     5109    je short 03d1ch                           ; 74 ba
     5110    jmp near 04021h                           ; e9 bc 02
     5111    mov es, [bp-008h]                         ; 8e 46 f8
    50755112    mov di, word [es:si+014h]                 ; 26 8b 7c 14
    50765113    mov dx, word [es:si+012h]                 ; 26 8b 54 12
    50775114    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
    50785115    mov ax, word [es:si+008h]                 ; 26 8b 44 08
     5116    mov word [bp-014h], ax                    ; 89 46 ec
     5117    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
     5118    mov word [bp-012h], ax                    ; 89 46 ee
     5119    mov ax, word [bp+014h]                    ; 8b 46 14
     5120    and ax, strict word 0003fh                ; 25 3f 00
    50795121    mov word [bp-010h], ax                    ; 89 46 f0
    5080     mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
    5081     mov word [bp-00eh], ax                    ; 89 46 f2
    5082     mov ax, word [bp+018h]                    ; 8b 46 18
    5083     and ax, strict word 0003fh                ; 25 3f 00
    5084     mov word [bp-00ch], ax                    ; 89 46 f4
    5085     mov cx, word [bp+018h]                    ; 8b 4e 18
     5122    mov cx, word [bp+014h]                    ; 8b 4e 14
    50865123    and cx, 000c0h                            ; 81 e1 c0 00
    50875124    sal cx, 002h                              ; c1 e1 02
    5088     mov ax, word [bp+018h]                    ; 8b 46 18
     5125    mov ax, word [bp+014h]                    ; 8b 46 14
    50895126    shr ax, 008h                              ; c1 e8 08
    50905127    or ax, cx                                 ; 09 c8
    5091     mov si, word [bp+016h]                    ; 8b 76 16
     5128    mov si, word [bp+012h]                    ; 8b 76 12
    50925129    shr si, 008h                              ; c1 ee 08
    5093     mov cx, word [bp+01ah]                    ; 8b 4e 1a
     5130    mov cx, word [bp+016h]                    ; 8b 4e 16
    50945131    xor ch, ch                                ; 30 ed
    5095     mov word [bp-006h], cx                    ; 89 4e fa
     5132    mov word [bp-00ah], cx                    ; 89 4e f6
    50965133    test cx, cx                               ; 85 c9
    5097     jne short 03d40h                          ; 75 03
    5098     jmp near 03ca9h                           ; e9 69 ff
    5099     cmp di, word [bp-00ch]                    ; 3b 7e f4
    5100     jc near 03f93h                            ; 0f 82 4c 02
     5134    jne short 03db2h                          ; 75 03
     5135    jmp near 03d18h                           ; e9 66 ff
     5136    cmp di, word [bp-010h]                    ; 3b 7e f0
     5137    jc near 04005h                            ; 0f 82 4c 02
    51015138    cmp ax, dx                                ; 39 d0
    5102     jnc near 03f93h                           ; 0f 83 46 02
     5139    jnc near 04005h                           ; 0f 83 46 02
    51035140    cmp si, bx                                ; 39 de
    5104     jnc near 03f93h                           ; 0f 83 40 02
    5105     mov dx, word [bp+01ah]                    ; 8b 56 1a
     5141    jnc near 04005h                           ; 0f 83 40 02
     5142    mov dx, word [bp+016h]                    ; 8b 56 16
    51065143    shr dx, 008h                              ; c1 ea 08
    51075144    cmp dx, strict byte 00004h                ; 83 fa 04
    5108     jne short 03d61h                          ; 75 03
    5109     jmp near 03ca9h                           ; e9 48 ff
    5110     mov dx, word [bp+014h]                    ; 8b 56 14
     5145    jne short 03dd3h                          ; 75 03
     5146    jmp near 03d18h                           ; e9 45 ff
     5147    mov dx, word [bp+010h]                    ; 8b 56 10
    51115148    shr dx, 004h                              ; c1 ea 04
    5112     mov cx, word [bp+00ah]                    ; 8b 4e 0a
     5149    mov cx, word [bp+006h]                    ; 8b 4e 06
    51135150    add cx, dx                                ; 01 d1
    5114     mov word [bp-012h], cx                    ; 89 4e ee
    5115     mov dx, word [bp+014h]                    ; 8b 56 14
     5151    mov word [bp-016h], cx                    ; 89 4e ea
     5152    mov dx, word [bp+010h]                    ; 8b 56 10
    51165153    and dx, strict byte 0000fh                ; 83 e2 0f
    5117     mov word [bp-018h], dx                    ; 89 56 e8
     5154    mov word [bp-01ch], dx                    ; 89 56 e4
    51185155    xor dl, dl                                ; 30 d2
    51195156    xor cx, cx                                ; 31 c9
    5120     call 09049h                               ; e8 ca 52
     5157    call 09219h                               ; e8 28 54
    51215158    xor bx, bx                                ; 31 db
    51225159    add ax, si                                ; 01 f0
     
    51245161    mov bx, di                                ; 89 fb
    51255162    xor cx, cx                                ; 31 c9
    5126     call 09049h                               ; e8 bd 52
     5163    call 09219h                               ; e8 1b 54
    51275164    mov bx, ax                                ; 89 c3
    5128     mov ax, word [bp-00ch]                    ; 8b 46 f4
     5165    mov ax, word [bp-010h]                    ; 8b 46 f0
    51295166    dec ax                                    ; 48
    51305167    xor cx, cx                                ; 31 c9
    51315168    add ax, bx                                ; 01 d8
    51325169    adc dx, cx                                ; 11 ca
    5133     mov bx, word [bp+01ah]                    ; 8b 5e 1a
     5170    mov bx, word [bp+016h]                    ; 8b 5e 16
    51345171    xor bl, bl                                ; 30 db
    5135     mov cx, word [bp-006h]                    ; 8b 4e fa
     5172    mov cx, word [bp-00ah]                    ; 8b 4e f6
    51365173    or cx, bx                                 ; 09 d9
    5137     mov word [bp+01ah], cx                    ; 89 4e 1a
     5174    mov word [bp+016h], cx                    ; 89 4e 16
    51385175    mov si, ax                                ; 89 c6
    51395176    mov di, dx                                ; 89 d7
     
    51425179    shr di, 1                                 ; d1 ef
    51435180    rcr si, 1                                 ; d1 de
    5144     mov word [bp-01ah], di                    ; 89 7e e6
     5181    mov word [bp-01eh], di                    ; 89 7e e2
    51455182    mov di, ax                                ; 89 c7
    51465183    and di, strict byte 00003h                ; 83 e7 03
    51475184    xor bh, bh                                ; 30 ff
    5148     add ax, word [bp-006h]                    ; 03 46 fa
     5185    add ax, word [bp-00ah]                    ; 03 46 f6
    51495186    adc dx, bx                                ; 11 da
    51505187    add ax, strict word 0ffffh                ; 05 ff ff
    51515188    adc dx, strict byte 0ffffh                ; 83 d2 ff
    5152     mov word [bp-01eh], ax                    ; 89 46 e2
    5153     mov word [bp-01ch], dx                    ; 89 56 e4
    5154     shr word [bp-01ch], 1                     ; d1 6e e4
    5155     rcr word [bp-01eh], 1                     ; d1 5e e2
    5156     shr word [bp-01ch], 1                     ; d1 6e e4
    5157     rcr word [bp-01eh], 1                     ; d1 5e e2
     5189    mov word [bp-022h], ax                    ; 89 46 de
     5190    mov word [bp-020h], dx                    ; 89 56 e0
     5191    shr word [bp-020h], 1                     ; d1 6e e0
     5192    rcr word [bp-022h], 1                     ; d1 5e de
     5193    shr word [bp-020h], 1                     ; d1 6e e0
     5194    rcr word [bp-022h], 1                     ; d1 5e de
    51585195    mov cx, strict word 0000ch                ; b9 0c 00
    51595196    mov dx, ss                                ; 8c d2
    5160     lea ax, [bp-02ah]                         ; 8d 46 d6
    5161     call 0907ah                               ; e8 97 52
    5162     mov word [bp-02ah], strict word 00028h    ; c7 46 d6 28 00
    5163     mov ax, word [bp-010h]                    ; 8b 46 f0
     5197    lea ax, [bp-02eh]                         ; 8d 46 d2
     5198    call 0924ah                               ; e8 f5 53
     5199    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     5200    mov ax, word [bp-014h]                    ; 8b 46 ec
    51645201    add ax, si                                ; 01 f0
    5165     mov dx, word [bp-00eh]                    ; 8b 56 f2
    5166     adc dx, word [bp-01ah]                    ; 13 56 e6
     5202    mov dx, word [bp-012h]                    ; 8b 56 ee
     5203    adc dx, word [bp-01eh]                    ; 13 56 e2
    51675204    xchg ah, al                               ; 86 c4
    51685205    xchg dh, dl                               ; 86 d6
    51695206    xchg dx, ax                               ; 92
    5170     mov word [bp-028h], ax                    ; 89 46 d8
    5171     mov word [bp-026h], dx                    ; 89 56 da
    5172     mov ax, word [bp-01eh]                    ; 8b 46 e2
     5207    mov word [bp-02ch], ax                    ; 89 46 d4
     5208    mov word [bp-02ah], dx                    ; 89 56 d6
     5209    mov ax, word [bp-022h]                    ; 8b 46 de
    51735210    sub ax, si                                ; 29 f0
    51745211    inc ax                                    ; 40
    51755212    xchg ah, al                               ; 86 c4
    5176     mov word [bp-023h], ax                    ; 89 46 dd
    5177     mov ax, word [bp-006h]                    ; 8b 46 fa
    5178     les bx, [bp-00ah]                         ; c4 5e f6
     5213    mov word [bp-027h], ax                    ; 89 46 d9
     5214    mov ax, word [bp-00ah]                    ; 8b 46 f6
     5215    les bx, [bp-00eh]                         ; c4 5e f2
    51795216    mov word [es:bx+00ah], ax                 ; 26 89 47 0a
    51805217    mov word [es:bx+00ch], 00200h             ; 26 c7 47 0c 00 02
     
    51825219    sal ax, 009h                              ; c1 e0 09
    51835220    mov word [es:bx+01ah], ax                 ; 26 89 47 1a
    5184     mov dx, word [bp-006h]                    ; 8b 56 fa
     5221    mov dx, word [bp-00ah]                    ; 8b 56 f6
    51855222    xor dh, dh                                ; 30 f6
    51865223    and dl, 003h                              ; 80 e2 03
     
    51915228    sal dx, 009h                              ; c1 e2 09
    51925229    and dh, 007h                              ; 80 e6 07
    5193     mov bx, word [bp-00ah]                    ; 8b 5e f6
     5230    mov bx, word [bp-00eh]                    ; 8b 5e f2
    51945231    mov word [es:bx+01ch], dx                 ; 26 89 57 1c
    5195     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     5232    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    51965233    imul dx, dx, strict byte 00018h           ; 6b d2 18
    51975234    add bx, dx                                ; 01 d3
    51985235    movzx dx, byte [es:bx+01eh]               ; 26 0f b6 57 1e
    51995236    add dx, dx                                ; 01 d2
    5200     mov word [bp-016h], dx                    ; 89 56 ea
    5201     push word [bp-012h]                       ; ff 76 ee
    5202     push word [bp-018h]                       ; ff 76 e8
     5237    mov word [bp-01ah], dx                    ; 89 56 e6
     5238    push word [bp-016h]                       ; ff 76 ea
     5239    push word [bp-01ch]                       ; ff 76 e4
    52035240    push strict byte 00001h                   ; 6a 01
    5204     mov si, word [bp-006h]                    ; 8b 76 fa
     5241    mov si, word [bp-00ah]                    ; 8b 76 f6
    52055242    xor di, di                                ; 31 ff
    52065243    mov cx, strict word 00009h                ; b9 09 00
    52075244    sal si, 1                                 ; d1 e6
    52085245    rcl di, 1                                 ; d1 d7
    5209     loop 03e63h                               ; e2 fa
     5246    loop 03ed5h                               ; e2 fa
    52105247    push di                                   ; 57
    52115248    push si                                   ; 56
    52125249    push ax                                   ; 50
    5213     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     5250    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    52145251    mov cx, ss                                ; 8c d1
    5215     lea bx, [bp-02ah]                         ; 8d 5e d6
     5252    lea bx, [bp-02eh]                         ; 8d 5e d2
    52165253    mov dx, strict word 0000ch                ; ba 0c 00
    5217     mov si, word [bp-016h]                    ; 8b 76 ea
     5254    mov si, word [bp-01ah]                    ; 8b 76 e6
    52185255    call word [word si+00000h]                ; ff 94 00 00
    52195256    mov dx, ax                                ; 89 c2
    5220     les bx, [bp-00ah]                         ; c4 5e f6
     5257    les bx, [bp-00eh]                         ; c4 5e f2
    52215258    db  066h, 026h, 0c7h, 047h, 01ah, 000h, 000h, 000h, 000h
    52225259    ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00
    52235260    test al, al                               ; 84 c0
    5224     je near 03ca9h                            ; 0f 84 16 fe
    5225     mov bx, 00d32h                            ; bb 32 0d
     5261    je near 03d18h                            ; 0f 84 13 fe
     5262    mov bx, 00d38h                            ; bb 38 0d
    52265263    mov cx, ds                                ; 8c d9
    52275264    mov ax, strict word 00004h                ; b8 04 00
    5228     call 018aeh                               ; e8 10 da
     5265    call 018cch                               ; e8 bc d9
    52295266    movzx ax, dl                              ; 0f b6 c2
    52305267    push ax                                   ; 50
    5231     mov ax, word [bp+01ah]                    ; 8b 46 1a
     5268    mov ax, word [bp+016h]                    ; 8b 46 16
    52325269    shr ax, 008h                              ; c1 e8 08
    52335270    push ax                                   ; 50
     
    52355272    push 002feh                               ; 68 fe 02
    52365273    push strict byte 00004h                   ; 6a 04
    5237     call 018e9h                               ; e8 35 da
     5274    call 0190dh                               ; e8 e7 d9
    52385275    add sp, strict byte 0000ah                ; 83 c4 0a
    5239     mov ax, word [bp+01ah]                    ; 8b 46 1a
     5276    mov ax, word [bp+016h]                    ; 8b 46 16
    52405277    xor ah, ah                                ; 30 e4
    52415278    or ah, 002h                               ; 80 cc 02
    5242     mov word [bp+01ah], ax                    ; 89 46 1a
    5243     mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    5244     jmp near 03f9eh                           ; e9 d5 00
    5245     mov es, [bp-004h]                         ; 8e 46 fc
     5279    mov word [bp+016h], ax                    ; 89 46 16
     5280    mov byte [bp+016h], 000h                  ; c6 46 16 00
     5281    jmp near 04010h                           ; e9 d5 00
     5282    mov es, [bp-008h]                         ; 8e 46 f8
    52465283    mov di, word [es:si+014h]                 ; 26 8b 7c 14
    52475284    mov dx, word [es:si+012h]                 ; 26 8b 54 12
     
    52495286    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
    52505287    dec bx                                    ; 4b
    5251     mov byte [bp+01ah], 000h                  ; c6 46 1a 00
    5252     mov ax, word [bp+014h]                    ; 8b 46 14
     5288    mov byte [bp+016h], 000h                  ; c6 46 16 00
     5289    mov ax, word [bp+010h]                    ; 8b 46 10
    52535290    xor al, al                                ; 30 c0
    5254     mov cx, word [bp+018h]                    ; 8b 4e 18
     5291    mov cx, word [bp+014h]                    ; 8b 4e 14
    52555292    xor ch, ch                                ; 30 ed
    5256     mov word [bp-016h], cx                    ; 89 4e ea
     5293    mov word [bp-01ah], cx                    ; 89 4e e6
    52575294    mov cx, dx                                ; 89 d1
    52585295    xor ch, dh                                ; 30 f5
    52595296    sal cx, 008h                              ; c1 e1 08
    5260     mov word [bp-014h], cx                    ; 89 4e ec
    5261     mov cx, word [bp-016h]                    ; 8b 4e ea
    5262     or cx, word [bp-014h]                     ; 0b 4e ec
    5263     mov word [bp+018h], cx                    ; 89 4e 18
     5297    mov word [bp-018h], cx                    ; 89 4e e8
     5298    mov cx, word [bp-01ah]                    ; 8b 4e e6
     5299    or cx, word [bp-018h]                     ; 0b 4e e8
     5300    mov word [bp+014h], cx                    ; 89 4e 14
    52645301    shr dx, 002h                              ; c1 ea 02
    52655302    xor dh, dh                                ; 30 f6
     
    52695306    xor cl, cl                                ; 30 c9
    52705307    or cx, dx                                 ; 09 d1
    5271     mov word [bp+018h], cx                    ; 89 4e 18
    5272     mov dx, word [bp+016h]                    ; 8b 56 16
     5308    mov word [bp+014h], cx                    ; 89 4e 14
     5309    mov dx, word [bp+012h]                    ; 8b 56 12
    52735310    xor dh, dh                                ; 30 f6
    52745311    sal bx, 008h                              ; c1 e3 08
    52755312    or dx, bx                                 ; 09 da
    5276     mov word [bp+016h], dx                    ; 89 56 16
     5313    mov word [bp+012h], dx                    ; 89 56 12
    52775314    xor dl, dl                                ; 30 d2
    52785315    or dl, 002h                               ; 80 ca 02
    5279     mov word [bp+016h], dx                    ; 89 56 16
     5316    mov word [bp+012h], dx                    ; 89 56 12
    52805317    mov dl, byte [es:si+001h]                 ; 26 8a 54 01
    5281     mov word [bp+014h], ax                    ; 89 46 14
     5318    mov word [bp+010h], ax                    ; 89 46 10
    52825319    cmp dl, 003h                              ; 80 fa 03
    5283     je short 03f4dh                           ; 74 1a
     5320    je short 03fbfh                           ; 74 1a
    52845321    cmp dl, 002h                              ; 80 fa 02
    5285     je short 03f49h                           ; 74 11
     5322    je short 03fbbh                           ; 74 11
    52865323    cmp dl, 001h                              ; 80 fa 01
    5287     jne short 03f51h                          ; 75 14
    5288     mov ax, word [bp+014h]                    ; 8b 46 14
     5324    jne short 03fc3h                          ; 75 14
     5325    mov ax, word [bp+010h]                    ; 8b 46 10
    52895326    xor al, al                                ; 30 c0
    52905327    or AL, strict byte 002h                   ; 0c 02
    5291     mov word [bp+014h], ax                    ; 89 46 14
    5292     jmp short 03f51h                          ; eb 08
     5328    mov word [bp+010h], ax                    ; 89 46 10
     5329    jmp short 03fc3h                          ; eb 08
    52935330    or AL, strict byte 004h                   ; 0c 04
    5294     jmp short 03f44h                          ; eb f7
     5331    jmp short 03fb6h                          ; eb f7
    52955332    or AL, strict byte 005h                   ; 0c 05
    5296     jmp short 03f44h                          ; eb f3
    5297     mov es, [bp-004h]                         ; 8e 46 fc
     5333    jmp short 03fb6h                          ; eb f3
     5334    mov es, [bp-008h]                         ; 8e 46 f8
    52985335    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    5299     jnc near 03ca9h                           ; 0f 83 4c fd
    5300     mov word [bp+00ch], 0efc7h                ; c7 46 0c c7 ef
    5301     mov word [bp+00ah], 0f000h                ; c7 46 0a 00 f0
    5302     jmp near 03ca9h                           ; e9 3f fd
     5336    jnc near 03d18h                           ; 0f 83 49 fd
     5337    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
     5338    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     5339    jmp near 03d18h                           ; e9 3c fd
    53035340    or bh, 003h                               ; 80 cf 03
    5304     mov word [bp+01ah], bx                    ; 89 5e 1a
    5305     jmp near 03cadh                           ; e9 3a fd
    5306     mov bx, 00d32h                            ; bb 32 0d
     5341    mov word [bp+016h], bx                    ; 89 5e 16
     5342    jmp near 03d1ch                           ; e9 37 fd
     5343    mov bx, 00d38h                            ; bb 38 0d
    53075344    mov cx, ds                                ; 8c d9
    53085345    mov ax, strict word 00004h                ; b8 04 00
    5309     call 018aeh                               ; e8 30 d9
    5310     mov ax, word [bp+01ah]                    ; 8b 46 1a
     5346    call 018cch                               ; e8 dc d8
     5347    mov ax, word [bp+016h]                    ; 8b 46 16
    53115348    shr ax, 008h                              ; c1 e8 08
    53125349    push ax                                   ; 50
     
    53145351    push 0031fh                               ; 68 1f 03
    53155352    push strict byte 00004h                   ; 6a 04
    5316     call 018e9h                               ; e8 59 d9
     5353    call 0190dh                               ; e8 0b d9
    53175354    add sp, strict byte 00008h                ; 83 c4 08
    5318     mov ax, word [bp+01ah]                    ; 8b 46 1a
     5355    mov ax, word [bp+016h]                    ; 8b 46 16
    53195356    xor ah, ah                                ; 30 e4
    53205357    or ah, 001h                               ; 80 cc 01
    5321     mov word [bp+01ah], ax                    ; 89 46 1a
    5322     mov bx, word [bp+01ah]                    ; 8b 5e 1a
     5358    mov word [bp+016h], ax                    ; 89 46 16
     5359    mov bx, word [bp+016h]                    ; 8b 5e 16
    53235360    shr bx, 008h                              ; c1 eb 08
    53245361    xor bh, bh                                ; 30 ff
    53255362    mov dx, strict word 00074h                ; ba 74 00
    53265363    mov ax, strict word 00040h                ; b8 40 00
    5327     call 0160eh                               ; e8 5f d6
    5328     or byte [bp+020h], 001h                   ; 80 4e 20 01
    5329     jmp near 03cbch                           ; e9 06 fd
    5330     push ax                                   ; 50
    5331     dec si                                    ; 4e
    5332     dec cx                                    ; 49
    5333     dec ax                                    ; 48
    5334     inc di                                    ; 47
    5335     inc si                                    ; 46
    5336     inc bp                                    ; 45
    5337     inc sp                                    ; 44
    5338     inc bx                                    ; 43
    5339     inc dx                                    ; 42
    5340     inc cx                                    ; 41
    5341     sbb byte [01415h], dl                     ; 18 16 15 14
    5342     adc word [bx+si], dx                      ; 11 10
    5343     or ax, 00b0ch                             ; 0d 0c 0b
    5344     or cl, byte [bx+di]                       ; 0a 09
    5345     or byte [di], al                          ; 08 05
    5346     add AL, strict byte 003h                  ; 04 03
    5347     add al, byte [bx+di]                      ; 02 01
    5348     add byte [bx+045h], cl                    ; 00 4f 45
    5349     into                                      ; ce
    5350     inc dx                                    ; 42
    5351     mov dx, 04f40h                            ; ba 40 4f
    5352     inc bp                                    ; 45
    5353     scasw                                     ; af
    5354     inc ax                                    ; 40
    5355     dec di                                    ; 4f
    5356     inc bp                                    ; 45
    5357     scasw                                     ; af
    5358     inc ax                                    ; 40
    5359     dec di                                    ; 4f
    5360     inc bp                                    ; 45
    5361     into                                      ; ce
    5362     inc dx                                    ; 42
    5363     dec di                                    ; 4f
    5364     inc bp                                    ; 45
    5365     dec di                                    ; 4f
    5366     inc bp                                    ; 45
    5367     into                                      ; ce
    5368     inc dx                                    ; 42
    5369     into                                      ; ce
    5370     inc dx                                    ; 42
    5371     into                                      ; ce
    5372     inc dx                                    ; 42
    5373     into                                      ; ce
    5374     inc dx                                    ; 42
    5375     into                                      ; ce
    5376     inc dx                                    ; 42
    5377     in AL, strict byte 040h                   ; e4 40
    5378     into                                      ; ce
    5379     inc dx                                    ; 42
    5380     dec di                                    ; 4f
    5381     inc bp                                    ; 45
    5382     in ax, DX                                 ; ed
    5383     inc ax                                    ; 40
    5384     add byte [bx+di-051h], al                 ; 00 41 af
    5385     inc ax                                    ; 40
    5386     add byte [bx+di+02eh], al                 ; 00 41 2e
    5387     inc dx                                    ; 42
    5388     in ax, 042h                               ; e5 42
    5389     add byte [bx+di+00ch], al                 ; 00 41 0c
    5390     inc bx                                    ; 43
    5391     or byte [di+010h], al                     ; 08 45 10
    5392     inc bp                                    ; 45
    5393     dec di                                    ; 4f
    5394     inc bp                                    ; 45
    5395 _int13_cdrom:                                ; 0xf400f LB 0x55d
     5364    call 0160eh                               ; e8 ed d5
     5365    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     5366    jmp near 03d2bh                           ; e9 03 fd
     5367    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
     5368    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c6h, 045h, 042h
     5369    db  043h, 02eh, 041h, 0c6h, 045h, 023h, 041h, 0c6h, 045h, 023h, 041h, 0c6h, 045h, 042h, 043h, 0c6h
     5370    db  045h, 0c6h, 045h, 042h, 043h, 042h, 043h, 042h, 043h, 042h, 043h, 042h, 043h, 058h, 041h, 042h
     5371    db  043h, 0c6h, 045h, 061h, 041h, 074h, 041h, 023h, 041h, 074h, 041h, 0a2h, 042h, 05ch, 043h, 074h
     5372    db  041h, 083h, 043h, 07fh, 045h, 087h, 045h, 0c6h, 045h
     5373_int13_cdrom:                                ; 0xf4081 LB 0x562
     5374    push bp                                   ; 55
     5375    mov bp, sp                                ; 89 e5
    53965376    push si                                   ; 56
    53975377    push di                                   ; 57
    5398     enter 00028h, 000h                        ; c8 28 00 00
     5378    sub sp, strict byte 00028h                ; 83 ec 28
    53995379    mov dx, strict word 0000eh                ; ba 0e 00
    54005380    mov ax, strict word 00040h                ; b8 40 00
    5401     call 0161ch                               ; e8 fe d5
    5402     mov word [bp-016h], ax                    ; 89 46 ea
     5381    call 0161ch                               ; e8 8a d5
     5382    mov word [bp-01ah], ax                    ; 89 46 e6
    54035383    mov si, 00122h                            ; be 22 01
    5404     mov word [bp-008h], ax                    ; 89 46 f8
     5384    mov word [bp-00ch], ax                    ; 89 46 f4
    54055385    xor bx, bx                                ; 31 db
    54065386    mov dx, strict word 00074h                ; ba 74 00
    54075387    mov ax, strict word 00040h                ; b8 40 00
    5408     call 0160eh                               ; e8 dc d5
    5409     mov ax, word [bp+014h]                    ; 8b 46 14
     5388    call 0160eh                               ; e8 68 d5
     5389    mov ax, word [bp+010h]                    ; 8b 46 10
    54105390    xor ah, ah                                ; 30 e4
    54115391    cmp ax, 000e0h                            ; 3d e0 00
    5412     jc short 04041h                           ; 72 05
     5392    jc short 040b5h                           ; 72 05
    54135393    cmp ax, 000f0h                            ; 3d f0 00
    5414     jc short 0405fh                           ; 72 1e
    5415     mov ax, word [bp+014h]                    ; 8b 46 14
     5394    jc short 040d3h                           ; 72 1e
     5395    mov ax, word [bp+010h]                    ; 8b 46 10
    54165396    xor ah, ah                                ; 30 e4
    54175397    push ax                                   ; 50
    5418     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5398    mov ax, word [bp+018h]                    ; 8b 46 18
    54195399    shr ax, 008h                              ; c1 e8 08
    54205400    push ax                                   ; 50
     
    54225402    push 0035bh                               ; 68 5b 03
    54235403    push strict byte 00004h                   ; 6a 04
    5424     call 018e9h                               ; e8 90 d8
     5404    call 0190dh                               ; e8 40 d8
    54255405    add sp, strict byte 0000ah                ; 83 c4 0a
    5426     jmp near 0452ch                           ; e9 cd 04
    5427     mov ax, word [bp+014h]                    ; 8b 46 14
     5406    jmp near 045a3h                           ; e9 d0 04
     5407    mov ax, word [bp+010h]                    ; 8b 46 10
    54285408    xor ah, ah                                ; 30 e4
    5429     mov es, [bp-008h]                         ; 8e 46 f8
     5409    mov es, [bp-00ch]                         ; 8e 46 f4
    54305410    mov bx, si                                ; 89 f3
    54315411    add bx, ax                                ; 01 c3
    54325412    mov dl, byte [es:bx+000d0h]               ; 26 8a 97 d0 00
    5433     mov byte [bp-004h], dl                    ; 88 56 fc
     5413    mov byte [bp-008h], dl                    ; 88 56 f8
    54345414    cmp dl, 010h                              ; 80 fa 10
    5435     jc short 04088h                           ; 72 10
     5415    jc short 040fch                           ; 72 10
    54365416    push ax                                   ; 50
    5437     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5417    mov ax, word [bp+018h]                    ; 8b 46 18
    54385418    shr ax, 008h                              ; c1 e8 08
    54395419    push ax                                   ; 50
    54405420    push 0034fh                               ; 68 4f 03
    54415421    push 00386h                               ; 68 86 03
    5442     jmp short 04054h                          ; eb cc
    5443     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5422    jmp short 040c8h                          ; eb cc
     5423    mov ax, word [bp+018h]                    ; 8b 46 18
    54445424    shr ax, 008h                              ; c1 e8 08
    54455425    cmp ax, strict word 00050h                ; 3d 50 00
    5446     jnbe near 0454fh                          ; 0f 87 ba 04
     5426    jnbe near 045c6h                          ; 0f 87 bd 04
    54475427    push CS                                   ; 0e
    54485428    pop ES                                    ; 07
    54495429    mov cx, strict word 0001eh                ; b9 1e 00
    5450     mov di, 03fb6h                            ; bf b6 3f
     5430    mov di, 04028h                            ; bf 28 40
    54515431    repne scasb                               ; f2 ae
    54525432    sal cx, 1                                 ; d1 e1
    54535433    mov di, cx                                ; 89 cf
    5454     mov ax, word [cs:di+03fd3h]               ; 2e 8b 85 d3 3f
    5455     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     5434    mov ax, word [cs:di+04045h]               ; 2e 8b 85 45 40
     5435    mov bx, word [bp+018h]                    ; 8b 5e 18
    54565436    xor bh, bh                                ; 30 ff
    54575437    jmp ax                                    ; ff e0
    5458     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5438    mov ax, word [bp+018h]                    ; 8b 46 18
    54595439    xor ah, ah                                ; 30 e4
    54605440    or ah, 003h                               ; 80 cc 03
    5461     jmp near 04534h                           ; e9 7a 04
     5441    jmp near 045abh                           ; e9 7d 04
    54625442    mov dx, strict word 00074h                ; ba 74 00
    54635443    mov ax, strict word 00040h                ; b8 40 00
    5464     call 01600h                               ; e8 3d d5
     5444    call 01600h                               ; e8 c9 d4
    54655445    mov cl, al                                ; 88 c1
    54665446    movzx ax, cl                              ; 0f b6 c1
    54675447    sal ax, 008h                              ; c1 e0 08
    54685448    or bx, ax                                 ; 09 c3
    5469     mov word [bp+01ch], bx                    ; 89 5e 1c
     5449    mov word [bp+018h], bx                    ; 89 5e 18
    54705450    xor bx, bx                                ; 31 db
    54715451    mov dx, strict word 00074h                ; ba 74 00
    54725452    mov ax, strict word 00040h                ; b8 40 00
    5473     call 0160eh                               ; e8 33 d5
     5453    call 0160eh                               ; e8 bf d4
    54745454    test cl, cl                               ; 84 c9
    5475     je near 042d2h                            ; 0f 84 f1 01
    5476     jmp near 04548h                           ; e9 64 04
     5455    je near 04346h                            ; 0f 84 f1 01
     5456    jmp near 045bfh                           ; e9 67 04
    54775457    or bh, 002h                               ; 80 cf 02
    5478     mov word [bp+01ch], bx                    ; 89 5e 1c
    5479     jmp near 04537h                           ; e9 4a 04
    5480     mov word [bp+016h], 0aa55h                ; c7 46 16 55 aa
     5458    mov word [bp+018h], bx                    ; 89 5e 18
     5459    jmp near 045aeh                           ; e9 4d 04
     5460    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    54815461    or bh, 030h                               ; 80 cf 30
    5482     mov word [bp+01ch], bx                    ; 89 5e 1c
    5483     mov word [bp+01ah], strict word 00007h    ; c7 46 1a 07 00
    5484     jmp near 042d2h                           ; e9 d2 01
    5485     mov bx, word [bp+010h]                    ; 8b 5e 10
    5486     mov es, [bp+00ah]                         ; 8e 46 0a
    5487     mov word [bp-010h], bx                    ; 89 5e f0
    5488     mov [bp-00eh], es                         ; 8c 46 f2
     5462    mov word [bp+018h], bx                    ; 89 5e 18
     5463    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
     5464    jmp near 04346h                           ; e9 d2 01
     5465    mov bx, word [bp+00ch]                    ; 8b 5e 0c
     5466    mov es, [bp+006h]                         ; 8e 46 06
     5467    mov word [bp-014h], bx                    ; 89 5e ec
     5468    mov [bp-012h], es                         ; 8c 46 ee
    54895469    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
    5490     mov word [bp-00ch], ax                    ; 89 46 f4
     5470    mov word [bp-010h], ax                    ; 89 46 f0
    54915471    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     5472    mov word [bp-01ch], ax                    ; 89 46 e4
     5473    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     5474    mov word [bp-020h], ax                    ; 89 46 e0
     5475    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
    54925476    mov word [bp-018h], ax                    ; 89 46 e8
    5493     mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    5494     mov word [bp-01ch], ax                    ; 89 46 e4
    5495     mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
    5496     mov word [bp-014h], ax                    ; 89 46 ec
    54975477    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    54985478    or di, ax                                 ; 09 c7
    5499     je short 04148h                           ; 74 18
    5500     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5479    je short 041bch                           ; 74 18
     5480    mov ax, word [bp+018h]                    ; 8b 46 18
    55015481    shr ax, 008h                              ; c1 e8 08
    55025482    push ax                                   ; 50
     
    55045484    push 003b8h                               ; 68 b8 03
    55055485    push strict byte 00007h                   ; 6a 07
    5506     call 018e9h                               ; e8 a7 d7
     5486    call 0190dh                               ; e8 57 d7
    55075487    add sp, strict byte 00008h                ; 83 c4 08
    5508     jmp near 0452ch                           ; e9 e4 03
    5509     les bx, [bp-010h]                         ; c4 5e f0
     5488    jmp near 045a3h                           ; e9 e7 03
     5489    les bx, [bp-014h]                         ; c4 5e ec
    55105490    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
    5511     mov word [bp-014h], ax                    ; 89 46 ec
     5491    mov word [bp-018h], ax                    ; 89 46 e8
    55125492    mov di, bx                                ; 89 df
    55135493    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
    5514     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5494    mov ax, word [bp+018h]                    ; 8b 46 18
    55155495    shr ax, 008h                              ; c1 e8 08
    5516     mov word [bp-012h], ax                    ; 89 46 ee
     5496    mov word [bp-016h], ax                    ; 89 46 ea
    55175497    cmp ax, strict word 00044h                ; 3d 44 00
    5518     je near 042ceh                            ; 0f 84 66 01
     5498    je near 04342h                            ; 0f 84 66 01
    55195499    cmp ax, strict word 00047h                ; 3d 47 00
    5520     je near 042ceh                            ; 0f 84 5f 01
     5500    je near 04342h                            ; 0f 84 5f 01
    55215501    mov cx, strict word 0000ch                ; b9 0c 00
    55225502    xor bx, bx                                ; 31 db
    55235503    mov dx, ss                                ; 8c d2
    5524     lea ax, [bp-028h]                         ; 8d 46 d8
    5525     call 0907ah                               ; e8 fe 4e
    5526     mov word [bp-028h], strict word 00028h    ; c7 46 d8 28 00
    5527     mov ax, word [bp-014h]                    ; 8b 46 ec
     5504    lea ax, [bp-02ch]                         ; 8d 46 d4
     5505    call 0924ah                               ; e8 5a 50
     5506    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
     5507    mov ax, word [bp-018h]                    ; 8b 46 e8
    55285508    mov dx, di                                ; 89 fa
    55295509    xchg ah, al                               ; 86 c4
    55305510    xchg dh, dl                               ; 86 d6
    55315511    xchg dx, ax                               ; 92
    5532     mov word [bp-026h], ax                    ; 89 46 da
    5533     mov word [bp-024h], dx                    ; 89 56 dc
    5534     mov ax, word [bp-00ch]                    ; 8b 46 f4
     5512    mov word [bp-02ah], ax                    ; 89 46 d6
     5513    mov word [bp-028h], dx                    ; 89 56 d8
     5514    mov ax, word [bp-010h]                    ; 8b 46 f0
    55355515    xchg ah, al                               ; 86 c4
    5536     mov word [bp-021h], ax                    ; 89 46 df
    5537     mov ax, word [bp-00ch]                    ; 8b 46 f4
    5538     mov es, [bp-008h]                         ; 8e 46 f8
     5516    mov word [bp-025h], ax                    ; 89 46 db
     5517    mov ax, word [bp-010h]                    ; 8b 46 f0
     5518    mov es, [bp-00ch]                         ; 8e 46 f4
    55395519    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    55405520    mov word [es:si+00ch], 00800h             ; 26 c7 44 0c 00 08
    5541     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     5521    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    55425522    imul bx, bx, strict byte 00018h           ; 6b db 18
    55435523    add bx, si                                ; 01 f3
    55445524    movzx di, byte [es:bx+01eh]               ; 26 0f b6 7f 1e
    55455525    add di, di                                ; 01 ff
    5546     push word [bp-018h]                       ; ff 76 e8
    55475526    push word [bp-01ch]                       ; ff 76 e4
     5527    push word [bp-020h]                       ; ff 76 e0
    55485528    push strict byte 00001h                   ; 6a 01
    55495529    xor bx, bx                                ; 31 db
     
    55515531    sal ax, 1                                 ; d1 e0
    55525532    rcl bx, 1                                 ; d1 d3
    5553     loop 041c6h                               ; e2 fa
     5533    loop 0423ah                               ; e2 fa
    55545534    push bx                                   ; 53
    55555535    push ax                                   ; 50
    55565536    push strict byte 00000h                   ; 6a 00
    5557     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     5537    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    55585538    mov cx, ss                                ; 8c d1
    5559     lea bx, [bp-028h]                         ; 8d 5e d8
     5539    lea bx, [bp-02ch]                         ; 8d 5e d4
    55605540    mov dx, strict word 0000ch                ; ba 0c 00
    55615541    call word [word di+00000h]                ; ff 95 00 00
    55625542    mov dx, ax                                ; 89 c2
    5563     mov es, [bp-008h]                         ; 8e 46 f8
     5543    mov es, [bp-00ch]                         ; 8e 46 f4
    55645544    mov ax, word [es:si+016h]                 ; 26 8b 44 16
    55655545    mov di, word [es:si+018h]                 ; 26 8b 7c 18
     
    55675547    shr di, 1                                 ; d1 ef
    55685548    rcr ax, 1                                 ; d1 d8
    5569     loop 041f0h                               ; e2 fa
    5570     les bx, [bp-010h]                         ; c4 5e f0
     5549    loop 04264h                               ; e2 fa
     5550    les bx, [bp-014h]                         ; c4 5e ec
    55715551    mov word [es:bx+002h], ax                 ; 26 89 47 02
    55725552    test dl, dl                               ; 84 d2
    5573     je near 042ceh                            ; 0f 84 cb 00
    5574     mov bx, 00d32h                            ; bb 32 0d
     5553    je near 04342h                            ; 0f 84 cb 00
     5554    mov bx, 00d38h                            ; bb 38 0d
    55755555    mov cx, ds                                ; 8c d9
    55765556    mov ax, strict word 00004h                ; b8 04 00
    5577     call 018aeh                               ; e8 a0 d6
     5557    call 018cch                               ; e8 4a d6
    55785558    movzx ax, dl                              ; 0f b6 c2
    55795559    push ax                                   ; 50
    5580     push word [bp-012h]                       ; ff 76 ee
     5560    push word [bp-016h]                       ; ff 76 ea
    55815561    push 0034fh                               ; 68 4f 03
    55825562    push 003e1h                               ; 68 e1 03
    55835563    push strict byte 00004h                   ; 6a 04
    5584     call 018e9h                               ; e8 c9 d6
     5564    call 0190dh                               ; e8 79 d6
    55855565    add sp, strict byte 0000ah                ; 83 c4 0a
    5586     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5566    mov ax, word [bp+018h]                    ; 8b 46 18
    55875567    xor ah, ah                                ; 30 e4
    55885568    or ah, 00ch                               ; 80 cc 0c
    5589     jmp near 04534h                           ; e9 06 03
     5569    jmp near 045abh                           ; e9 09 03
    55905570    cmp bx, strict byte 00002h                ; 83 fb 02
    5591     jnbe near 0452ch                          ; 0f 87 f7 02
    5592     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     5571    jnbe near 045a3h                          ; 0f 87 fa 02
     5572    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    55935573    imul ax, ax, strict byte 00018h           ; 6b c0 18
    5594     mov es, [bp-008h]                         ; 8e 46 f8
     5574    mov es, [bp-00ch]                         ; 8e 46 f4
    55955575    mov di, si                                ; 89 f7
    55965576    add di, ax                                ; 01 c7
    55975577    mov al, byte [es:di+021h]                 ; 26 8a 45 21
    55985578    cmp bx, strict byte 00002h                ; 83 fb 02
    5599     je short 042bfh                           ; 74 73
     5579    je short 04333h                           ; 74 73
    56005580    cmp bx, strict byte 00001h                ; 83 fb 01
    5601     je short 0428ch                           ; 74 3b
     5581    je short 04300h                           ; 74 3b
    56025582    test bx, bx                               ; 85 db
    5603     jne near 042ceh                           ; 0f 85 77 00
     5583    jne near 04342h                           ; 0f 85 77 00
    56045584    cmp AL, strict byte 0ffh                  ; 3c ff
    5605     jne short 0426dh                          ; 75 12
    5606     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5585    jne short 042e1h                          ; 75 12
     5586    mov ax, word [bp+018h]                    ; 8b 46 18
    56075587    xor ah, ah                                ; 30 e4
    56085588    or ah, 0b4h                               ; 80 cc b4
    5609     mov word [bp+01ch], ax                    ; 89 46 1c
     5589    mov word [bp+018h], ax                    ; 89 46 18
    56105590    xor al, al                                ; 30 c0
    56115591    or AL, strict byte 001h                   ; 0c 01
    5612     jmp near 04534h                           ; e9 c7 02
    5613     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     5592    jmp near 045abh                           ; e9 ca 02
     5593    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    56145594    imul dx, dx, strict byte 00018h           ; 6b d2 18
    56155595    db  0feh, 0c0h
    56165596    ; inc al                                    ; fe c0
    5617     mov es, [bp-008h]                         ; 8e 46 f8
     5597    mov es, [bp-00ch]                         ; 8e 46 f4
    56185598    add si, dx                                ; 01 d6
    56195599    mov byte [es:si+021h], al                 ; 26 88 44 21
    5620     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5600    mov ax, word [bp+018h]                    ; 8b 46 18
    56215601    xor al, al                                ; 30 c0
    56225602    or AL, strict byte 001h                   ; 0c 01
    5623     mov word [bp+01ch], ax                    ; 89 46 1c
    5624     jmp near 042ceh                           ; e9 42 00
     5603    mov word [bp+018h], ax                    ; 89 46 18
     5604    jmp near 04342h                           ; e9 42 00
    56255605    test al, al                               ; 84 c0
    5626     jne short 0429ch                          ; 75 0c
     5606    jne short 04310h                          ; 75 0c
    56275607    or bh, 0b0h                               ; 80 cf b0
    5628     mov word [bp+01ch], bx                    ; 89 5e 1c
    5629     mov byte [bp+01ch], al                    ; 88 46 1c
    5630     jmp near 04537h                           ; e9 9b 02
    5631     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     5608    mov word [bp+018h], bx                    ; 89 5e 18
     5609    mov byte [bp+018h], al                    ; 88 46 18
     5610    jmp near 045aeh                           ; e9 9e 02
     5611    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    56325612    imul dx, dx, strict byte 00018h           ; 6b d2 18
    56335613    db  0feh, 0c8h
    56345614    ; dec al                                    ; fe c8
    5635     mov es, [bp-008h]                         ; 8e 46 f8
     5615    mov es, [bp-00ch]                         ; 8e 46 f4
    56365616    add si, dx                                ; 01 d6
    56375617    mov byte [es:si+021h], al                 ; 26 88 44 21
     
    56405620    ; setne al                                  ; 0f 95 c0
    56415621    movzx dx, al                              ; 0f b6 d0
    5642     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5622    mov ax, word [bp+018h]                    ; 8b 46 18
    56435623    xor al, al                                ; 30 c0
    56445624    or ax, dx                                 ; 09 d0
    5645     jmp short 04286h                          ; eb c7
     5625    jmp short 042fah                          ; eb c7
    56465626    test al, al                               ; 84 c0
    56475627    db  00fh, 095h, 0c0h
    56485628    ; setne al                                  ; 0f 95 c0
    56495629    xor ah, ah                                ; 30 e4
    5650     mov dx, word [bp+01ch]                    ; 8b 56 1c
     5630    mov dx, word [bp+018h]                    ; 8b 56 18
    56515631    mov dl, al                                ; 88 c2
    5652     mov word [bp+01ch], dx                    ; 89 56 1c
    5653     mov byte [bp+01dh], 000h                  ; c6 46 1d 00
     5632    mov word [bp+018h], dx                    ; 89 56 18
     5633    mov byte [bp+019h], 000h                  ; c6 46 19 00
    56545634    xor bx, bx                                ; 31 db
    56555635    mov dx, strict word 00074h                ; ba 74 00
    56565636    mov ax, strict word 00040h                ; b8 40 00
    5657     call 0160eh                               ; e8 31 d3
    5658     and byte [bp+022h], 0feh                  ; 80 66 22 fe
    5659     leave                                     ; c9
     5637    call 0160eh                               ; e8 bd d2
     5638    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
     5639    lea sp, [bp-004h]                         ; 8d 66 fc
    56605640    pop di                                    ; 5f
    56615641    pop si                                    ; 5e
     5642    pop bp                                    ; 5d
    56625643    retn                                      ; c3
    5663     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     5644    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    56645645    imul ax, ax, strict byte 00018h           ; 6b c0 18
    5665     mov es, [bp-008h]                         ; 8e 46 f8
     5646    mov es, [bp-00ch]                         ; 8e 46 f4
    56665647    add si, ax                                ; 01 c6
    56675648    mov al, byte [es:si+021h]                 ; 26 8a 44 21
    56685649    test al, al                               ; 84 c0
    5669     je short 042ffh                           ; 74 06
     5650    je short 04376h                           ; 74 06
    56705651    or bh, 0b1h                               ; 80 cf b1
    5671     jmp near 040e7h                           ; e9 e8 fd
    5672     je short 042ceh                           ; 74 cd
    5673     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5652    jmp near 0415bh                           ; e9 e5 fd
     5653    je short 04342h                           ; 74 ca
     5654    mov ax, word [bp+018h]                    ; 8b 46 18
    56745655    xor ah, ah                                ; 30 e4
    56755656    or ah, 0b1h                               ; 80 cc b1
    5676     jmp near 04534h                           ; e9 28 02
    5677     mov dx, word [bp+010h]                    ; 8b 56 10
    5678     mov cx, word [bp+00ah]                    ; 8b 4e 0a
     5657    jmp near 045abh                           ; e9 28 02
     5658    mov dx, word [bp+00ch]                    ; 8b 56 0c
     5659    mov cx, word [bp+006h]                    ; 8b 4e 06
    56795660    mov bx, dx                                ; 89 d3
    5680     mov word [bp-006h], cx                    ; 89 4e fa
     5661    mov word [bp-00ah], cx                    ; 89 4e f6
    56815662    mov es, cx                                ; 8e c1
    56825663    mov di, dx                                ; 89 d7
    56835664    mov ax, word [es:di]                      ; 26 8b 05
    5684     mov word [bp-00ah], ax                    ; 89 46 f6
     5665    mov word [bp-00eh], ax                    ; 89 46 f2
    56855666    cmp ax, strict word 0001ah                ; 3d 1a 00
    5686     jc near 0452ch                            ; 0f 82 04 02
    5687     jc short 04379h                           ; 72 4f
    5688     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     5667    jc near 045a3h                            ; 0f 82 04 02
     5668    jc short 043f0h                           ; 72 4f
     5669    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    56895670    imul ax, ax, strict byte 00018h           ; 6b c0 18
    5690     mov es, [bp-008h]                         ; 8e 46 f8
     5671    mov es, [bp-00ch]                         ; 8e 46 f4
    56915672    mov di, si                                ; 89 f7
    56925673    add di, ax                                ; 01 c7
     
    57075688    db  066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh
    57085689    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    5709     cmp word [bp-00ah], strict byte 0001eh    ; 83 7e f6 1e
    5710     jc near 04450h                            ; 0f 82 cf 00
    5711     mov es, [bp-006h]                         ; 8e 46 fa
     5690    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
     5691    jc near 044c7h                            ; 0f 82 cf 00
     5692    mov es, [bp-00ah]                         ; 8e 46 f6
    57125693    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
    5713     mov ax, word [bp-016h]                    ; 8b 46 ea
     5694    mov ax, word [bp-01ah]                    ; 8b 46 e6
    57145695    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
    57155696    mov word [es:bx+01ah], 00312h             ; 26 c7 47 1a 12 03
    5716     movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
     5697    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
    57175698    mov ax, cx                                ; 89 c8
    57185699    cwd                                       ; 99
     
    57225703    movzx di, al                              ; 0f b6 f8
    57235704    imul di, di, strict byte 00006h           ; 6b ff 06
    5724     mov es, [bp-008h]                         ; 8e 46 f8
     5705    mov es, [bp-00ch]                         ; 8e 46 f4
    57255706    add di, si                                ; 01 f7
    57265707    mov ax, word [es:di+001c2h]               ; 26 8b 85 c2 01
    5727     mov word [bp-01ah], ax                    ; 89 46 e6
     5708    mov word [bp-01eh], ax                    ; 89 46 e2
    57285709    mov dx, word [es:di+001c4h]               ; 26 8b 95 c4 01
    57295710    mov al, byte [es:di+001c1h]               ; 26 8a 85 c1 01
    5730     mov byte [bp-002h], al                    ; 88 46 fe
     5711    mov byte [bp-006h], al                    ; 88 46 fa
    57315712    imul cx, cx, strict byte 00018h           ; 6b c9 18
    57325713    mov di, si                                ; 89 f7
     
    57395720    or AL, strict byte 070h                   ; 0c 70
    57405721    mov di, ax                                ; 89 c7
    5741     mov ax, word [bp-01ah]                    ; 8b 46 e6
     5722    mov ax, word [bp-01eh]                    ; 8b 46 e2
    57425723    mov word [es:si+001f0h], ax               ; 26 89 84 f0 01
    57435724    mov word [es:si+001f2h], dx               ; 26 89 94 f2 01
    5744     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     5725    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    57455726    cwd                                       ; 99
    57465727    mov cx, strict word 00002h                ; b9 02 00
     
    57515732    mov byte [es:si+001f4h], al               ; 26 88 84 f4 01
    57525733    mov byte [es:si+001f5h], 0cbh             ; 26 c6 84 f5 01 cb
    5753     mov al, byte [bp-002h]                    ; 8a 46 fe
     5734    mov al, byte [bp-006h]                    ; 8a 46 fa
    57545735    mov byte [es:si+001f6h], al               ; 26 88 84 f6 01
    57555736    mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00
     
    57605741    xor cl, cl                                ; 30 c9
    57615742    xor ch, ch                                ; 30 ed
    5762     jmp short 04433h                          ; eb 05
     5743    jmp short 044aah                          ; eb 05
    57635744    cmp ch, 00fh                              ; 80 fd 0f
    5764     jnc short 04446h                          ; 73 13
     5745    jnc short 044bdh                          ; 73 13
    57655746    movzx dx, ch                              ; 0f b6 d5
    57665747    add dx, 00312h                            ; 81 c2 12 03
    5767     mov ax, word [bp-016h]                    ; 8b 46 ea
    5768     call 01600h                               ; e8 c0 d1
     5748    mov ax, word [bp-01ah]                    ; 8b 46 e6
     5749    call 01600h                               ; e8 49 d1
    57695750    add cl, al                                ; 00 c1
    57705751    db  0feh, 0c5h
    57715752    ; inc ch                                    ; fe c5
    5772     jmp short 0442eh                          ; eb e8
     5753    jmp short 044a5h                          ; eb e8
    57735754    neg cl                                    ; f6 d9
    5774     mov es, [bp-008h]                         ; 8e 46 f8
     5755    mov es, [bp-00ch]                         ; 8e 46 f4
    57755756    mov byte [es:si+001ffh], cl               ; 26 88 8c ff 01
    5776     cmp word [bp-00ah], strict byte 00042h    ; 83 7e f6 42
    5777     jc near 042ceh                            ; 0f 82 76 fe
    5778     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     5757    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
     5758    jc near 04342h                            ; 0f 82 73 fe
     5759    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    57795760    cwd                                       ; 99
    57805761    db  02bh, 0c2h
     
    57835764    xor ah, ah                                ; 30 e4
    57845765    imul ax, ax, strict byte 00006h           ; 6b c0 06
    5785     mov es, [bp-008h]                         ; 8e 46 f8
     5766    mov es, [bp-00ch]                         ; 8e 46 f4
    57865767    add si, ax                                ; 01 c6
    57875768    mov al, byte [es:si+001c0h]               ; 26 8a 84 c0 01
    57885769    mov dx, word [es:si+001c2h]               ; 26 8b 94 c2 01
    5789     mov es, [bp-006h]                         ; 8e 46 fa
     5770    mov es, [bp-00ah]                         ; 8e 46 f6
    57905771    mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
    57915772    db  066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h
     
    57935774    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    57945775    test al, al                               ; 84 c0
    5795     jne short 04499h                          ; 75 09
     5776    jne short 04510h                          ; 75 09
    57965777    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    57975778    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
    5798     mov es, [bp-006h]                         ; 8e 46 fa
     5779    mov es, [bp-00ah]                         ; 8e 46 f6
    57995780    db  066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h
    58005781    ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20
     
    58025783    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    58035784    test al, al                               ; 84 c0
    5804     jne short 044c5h                          ; 75 13
     5785    jne short 0453ch                          ; 75 13
    58055786    mov word [es:bx+030h], dx                 ; 26 89 57 30
    58065787    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
    58075788    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
    58085789    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
    5809     mov al, byte [bp-004h]                    ; 8a 46 fc
     5790    mov al, byte [bp-008h]                    ; 8a 46 f8
    58105791    and AL, strict byte 001h                  ; 24 01
    58115792    xor ah, ah                                ; 30 e4
    5812     mov es, [bp-006h]                         ; 8e 46 fa
     5793    mov es, [bp-00ah]                         ; 8e 46 f6
    58135794    mov word [es:bx+038h], ax                 ; 26 89 47 38
    58145795    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
     
    58175798    xor al, al                                ; 30 c0
    58185799    mov AH, strict byte 01eh                  ; b4 1e
    5819     jmp short 044edh                          ; eb 05
     5800    jmp short 04564h                          ; eb 05
    58205801    cmp ah, 040h                              ; 80 fc 40
    5821     jnc short 044fch                          ; 73 0f
     5802    jnc short 04573h                          ; 73 0f
    58225803    movzx si, ah                              ; 0f b6 f4
    5823     mov es, [bp-006h]                         ; 8e 46 fa
     5804    mov es, [bp-00ah]                         ; 8e 46 f6
    58245805    add si, bx                                ; 01 de
    58255806    add al, byte [es:si]                      ; 26 02 04
    58265807    db  0feh, 0c4h
    58275808    ; inc ah                                    ; fe c4
    5828     jmp short 044e8h                          ; eb ec
     5809    jmp short 0455fh                          ; eb ec
    58295810    neg al                                    ; f6 d8
    5830     mov es, [bp-006h]                         ; 8e 46 fa
     5811    mov es, [bp-00ah]                         ; 8e 46 f6
    58315812    mov byte [es:bx+041h], al                 ; 26 88 47 41
    5832     jmp near 042ceh                           ; e9 c6 fd
     5813    jmp near 04342h                           ; e9 c3 fd
    58335814    or bh, 006h                               ; 80 cf 06
    5834     mov word [bp+01ch], bx                    ; 89 5e 1c
    5835     jmp short 04548h                          ; eb 38
     5815    mov word [bp+018h], bx                    ; 89 5e 18
     5816    jmp short 045bfh                          ; eb 38
    58365817    cmp bx, strict byte 00006h                ; 83 fb 06
    5837     je near 042ceh                            ; 0f 84 b7 fd
     5818    je near 04342h                            ; 0f 84 b4 fd
    58385819    cmp bx, strict byte 00001h                ; 83 fb 01
    5839     jc short 0452ch                           ; 72 10
    5840     jbe near 042ceh                           ; 0f 86 ae fd
     5820    jc short 045a3h                           ; 72 10
     5821    jbe near 04342h                           ; 0f 86 ab fd
    58415822    cmp bx, strict byte 00003h                ; 83 fb 03
    5842     jc short 0452ch                           ; 72 07
     5823    jc short 045a3h                           ; 72 07
    58435824    cmp bx, strict byte 00004h                ; 83 fb 04
    5844     jbe near 042ceh                           ; 0f 86 a2 fd
    5845     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5825    jbe near 04342h                           ; 0f 86 9f fd
     5826    mov ax, word [bp+018h]                    ; 8b 46 18
    58465827    xor ah, ah                                ; 30 e4
    58475828    or ah, 001h                               ; 80 cc 01
    5848     mov word [bp+01ch], ax                    ; 89 46 1c
    5849     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     5829    mov word [bp+018h], ax                    ; 89 46 18
     5830    mov bx, word [bp+018h]                    ; 8b 5e 18
    58505831    shr bx, 008h                              ; c1 eb 08
    58515832    xor bh, bh                                ; 30 ff
    58525833    mov dx, strict word 00074h                ; ba 74 00
    58535834    mov ax, strict word 00040h                ; b8 40 00
    5854     call 0160eh                               ; e8 c6 d0
    5855     or byte [bp+022h], 001h                   ; 80 4e 22 01
    5856     jmp near 042e1h                           ; e9 92 fd
    5857     mov bx, 00d32h                            ; bb 32 0d
     5835    call 0160eh                               ; e8 4f d0
     5836    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
     5837    jmp near 04355h                           ; e9 8f fd
     5838    mov bx, 00d38h                            ; bb 38 0d
    58585839    mov cx, ds                                ; 8c d9
    58595840    mov ax, strict word 00004h                ; b8 04 00
    5860     call 018aeh                               ; e8 54 d3
    5861     mov ax, word [bp+01ch]                    ; 8b 46 1c
     5841    call 018cch                               ; e8 fb d2
     5842    mov ax, word [bp+018h]                    ; 8b 46 18
    58625843    shr ax, 008h                              ; c1 e8 08
    58635844    push ax                                   ; 50
     
    58655846    push 002a3h                               ; 68 a3 02
    58665847    push strict byte 00004h                   ; 6a 04
    5867     jmp near 0413fh                           ; e9 d3 fb
    5868 print_boot_device_:                          ; 0xf456c LB 0x48
    5869     push cx                                   ; 51
     5848    jmp near 041b3h                           ; e9 d0 fb
     5849print_boot_device_:                          ; 0xf45e3 LB 0x4b
    58705850    push bp                                   ; 55
    58715851    mov bp, sp                                ; 89 e5
     5852    push cx                                   ; 51
    58725853    test al, al                               ; 84 c0
    5873     je short 04579h                           ; 74 05
     5854    je short 045f0h                           ; 74 05
    58745855    mov dx, strict word 00002h                ; ba 02 00
    5875     jmp short 04593h                          ; eb 1a
     5856    jmp short 0460ah                          ; eb 1a
    58765857    test dl, dl                               ; 84 d2
    5877     je short 04582h                           ; 74 05
     5858    je short 045f9h                           ; 74 05
    58785859    mov dx, strict word 00003h                ; ba 03 00
    5879     jmp short 04593h                          ; eb 11
     5860    jmp short 0460ah                          ; eb 11
    58805861    test bl, 080h                             ; f6 c3 80
    5881     jne short 0458bh                          ; 75 04
     5862    jne short 04602h                          ; 75 04
    58825863    xor dh, dh                                ; 30 f6
    5883     jmp short 04593h                          ; eb 08
     5864    jmp short 0460ah                          ; eb 08
    58845865    test bl, 080h                             ; f6 c3 80
    5885     je short 045b1h                           ; 74 21
     5866    je short 04628h                           ; 74 21
    58865867    mov dx, strict word 00001h                ; ba 01 00
    5887     mov bx, 00d32h                            ; bb 32 0d
     5868    mov bx, 00d38h                            ; bb 38 0d
    58885869    mov cx, ds                                ; 8c d9
    58895870    mov ax, strict word 00004h                ; b8 04 00
    5890     call 018aeh                               ; e8 10 d3
     5871    call 018cch                               ; e8 b7 d2
    58915872    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    5892     add dx, 00d58h                            ; 81 c2 58 0d
     5873    add dx, 00d5eh                            ; 81 c2 5e 0d
    58935874    push dx                                   ; 52
    58945875    push 00404h                               ; 68 04 04
    58955876    push strict byte 00004h                   ; 6a 04
    5896     call 018e9h                               ; e8 3b d3
     5877    call 0190dh                               ; e8 e8 d2
    58975878    add sp, strict byte 00006h                ; 83 c4 06
     5879    lea sp, [bp-002h]                         ; 8d 66 fe
     5880    pop cx                                    ; 59
    58985881    pop bp                                    ; 5d
    5899     pop cx                                    ; 59
    59005882    retn                                      ; c3
    5901 print_boot_failure_:                         ; 0xf45b4 LB 0x90
    5902     push si                                   ; 56
     5883print_boot_failure_:                         ; 0xf462e LB 0x93
    59035884    push bp                                   ; 55
    59045885    mov bp, sp                                ; 89 e5
     5886    push si                                   ; 56
    59055887    mov dh, cl                                ; 88 ce
    59065888    mov ah, bl                                ; 88 dc
     
    59085890    movzx si, ah                              ; 0f b6 f4
    59095891    test al, al                               ; 84 c0
    5910     je short 045e1h                           ; 74 1b
    5911     mov bx, 00d32h                            ; bb 32 0d
     5892    je short 0465bh                           ; 74 1b
     5893    mov bx, 00d38h                            ; bb 38 0d
    59125894    mov cx, ds                                ; 8c d9
    59135895    mov ax, strict word 00004h                ; b8 04 00
    5914     call 018aeh                               ; e8 dd d2
    5915     push 00d6ch                               ; 68 6c 0d
     5896    call 018cch                               ; e8 81 d2
     5897    push 00d72h                               ; 68 72 0d
    59165898    push 00418h                               ; 68 18 04
    59175899    push strict byte 00004h                   ; 6a 04
    5918     call 018e9h                               ; e8 0d d3
     5900    call 0190dh                               ; e8 b7 d2
    59195901    add sp, strict byte 00006h                ; 83 c4 06
    5920     jmp short 04625h                          ; eb 44
     5902    jmp short 0469fh                          ; eb 44
    59215903    test dl, dl                               ; 84 d2
    5922     je short 045f5h                           ; 74 10
    5923     mov bx, 00d32h                            ; bb 32 0d
     5904    je short 0466fh                           ; 74 10
     5905    mov bx, 00d38h                            ; bb 38 0d
    59245906    mov cx, ds                                ; 8c d9
    59255907    mov ax, strict word 00004h                ; b8 04 00
    5926     call 018aeh                               ; e8 be d2
    5927     push 00d76h                               ; 68 76 0d
    5928     jmp short 045d4h                          ; eb df
     5908    call 018cch                               ; e8 62 d2
     5909    push 00d7ch                               ; 68 7c 0d
     5910    jmp short 0464eh                          ; eb df
    59295911    test bl, 080h                             ; f6 c3 80
    5930     je short 0460bh                           ; 74 11
    5931     mov bx, 00d32h                            ; bb 32 0d
     5912    je short 04685h                           ; 74 11
     5913    mov bx, 00d38h                            ; bb 38 0d
    59325914    mov cx, ds                                ; 8c d9
    59335915    mov ax, strict word 00004h                ; b8 04 00
    5934     call 018aeh                               ; e8 a9 d2
     5916    call 018cch                               ; e8 4d d2
    59355917    push si                                   ; 56
    5936     push 00d62h                               ; 68 62 0d
    5937     jmp short 0461ah                          ; eb 0f
    5938     mov bx, 00d32h                            ; bb 32 0d
     5918    push 00d68h                               ; 68 68 0d
     5919    jmp short 04694h                          ; eb 0f
     5920    mov bx, 00d38h                            ; bb 38 0d
    59395921    mov cx, ds                                ; 8c d9
    59405922    mov ax, strict word 00004h                ; b8 04 00
    5941     call 018aeh                               ; e8 98 d2
     5923    call 018cch                               ; e8 3c d2
    59425924    push si                                   ; 56
    5943     push 00d58h                               ; 68 58 0d
     5925    push 00d5eh                               ; 68 5e 0d
    59445926    push 0042dh                               ; 68 2d 04
    59455927    push strict byte 00004h                   ; 6a 04
    5946     call 018e9h                               ; e8 c7 d2
     5928    call 0190dh                               ; e8 71 d2
    59475929    add sp, strict byte 00008h                ; 83 c4 08
    5948     cmp byte [bp+006h], 001h                  ; 80 7e 06 01
    5949     jne short 0463fh                          ; 75 14
     5930    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
     5931    jne short 046b9h                          ; 75 14
    59505932    test dh, dh                               ; 84 f6
    5951     jne short 04634h                          ; 75 05
     5933    jne short 046aeh                          ; 75 05
    59525934    push 00445h                               ; 68 45 04
    5953     jmp short 04637h                          ; eb 03
     5935    jmp short 046b1h                          ; eb 03
    59545936    push 0046fh                               ; 68 6f 04
    59555937    push strict byte 00007h                   ; 6a 07
    5956     call 018e9h                               ; e8 ad d2
     5938    call 0190dh                               ; e8 57 d2
    59575939    add sp, strict byte 00004h                ; 83 c4 04
     5940    lea sp, [bp-002h]                         ; 8d 66 fe
     5941    pop si                                    ; 5e
    59585942    pop bp                                    ; 5d
    5959     pop si                                    ; 5e
    59605943    retn 00002h                               ; c2 02 00
    5961 print_cdromboot_failure_:                    ; 0xf4644 LB 0x24
     5944print_cdromboot_failure_:                    ; 0xf46c1 LB 0x27
     5945    push bp                                   ; 55
     5946    mov bp, sp                                ; 89 e5
    59625947    push bx                                   ; 53
    59635948    push cx                                   ; 51
    59645949    push dx                                   ; 52
    5965     push bp                                   ; 55
    5966     mov bp, sp                                ; 89 e5
    59675950    mov dx, ax                                ; 89 c2
    5968     mov bx, 00d32h                            ; bb 32 0d
     5951    mov bx, 00d38h                            ; bb 38 0d
    59695952    mov cx, ds                                ; 8c d9
    59705953    mov ax, strict word 00004h                ; b8 04 00
    5971     call 018aeh                               ; e8 57 d2
     5954    call 018cch                               ; e8 f8 d1
    59725955    push dx                                   ; 52
    59735956    push 004a4h                               ; 68 a4 04
    59745957    push strict byte 00004h                   ; 6a 04
    5975     call 018e9h                               ; e8 89 d2
     5958    call 0190dh                               ; e8 30 d2
    59765959    add sp, strict byte 00006h                ; 83 c4 06
    5977     pop bp                                    ; 5d
     5960    lea sp, [bp-006h]                         ; 8d 66 fa
    59785961    pop dx                                    ; 5a
    59795962    pop cx                                    ; 59
    59805963    pop bx                                    ; 5b
     5964    pop bp                                    ; 5d
    59815965    retn                                      ; c3
    5982 _int19_function:                             ; 0xf4668 LB 0x251
     5966_int19_function:                             ; 0xf46e8 LB 0x256
     5967    push bp                                   ; 55
     5968    mov bp, sp                                ; 89 e5
    59835969    push si                                   ; 56
    59845970    push di                                   ; 57
    5985     enter 0000eh, 000h                        ; c8 0e 00 00
     5971    sub sp, strict byte 0000eh                ; 83 ec 0e
    59865972    mov dx, strict word 0000eh                ; ba 0e 00
    59875973    mov ax, strict word 00040h                ; b8 40 00
    5988     call 0161ch                               ; e8 a5 cf
     5974    call 0161ch                               ; e8 23 cf
    59895975    mov bx, ax                                ; 89 c3
    5990     mov word [bp-00ah], ax                    ; 89 46 f6
    5991     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     5976    mov word [bp-00eh], ax                    ; 89 46 f2
     5977    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    59925978    mov ax, strict word 0003dh                ; b8 3d 00
    5993     call 0165ch                               ; e8 d6 cf
     5979    call 0165ch                               ; e8 54 cf
    59945980    movzx si, al                              ; 0f b6 f0
    59955981    mov ax, strict word 00038h                ; b8 38 00
    5996     call 0165ch                               ; e8 cd cf
     5982    call 0165ch                               ; e8 4b cf
    59975983    and AL, strict byte 0f0h                  ; 24 f0
    59985984    xor ah, ah                                ; 30 e4
     
    60005986    or si, ax                                 ; 09 c6
    60015987    mov ax, strict word 0003ch                ; b8 3c 00
    6002     call 0165ch                               ; e8 be cf
     5988    call 0165ch                               ; e8 3c cf
    60035989    and AL, strict byte 00fh                  ; 24 0f
    60045990    xor ah, ah                                ; 30 e4
     
    60075993    mov dx, 00339h                            ; ba 39 03
    60085994    mov ax, bx                                ; 89 d8
    6009     call 01600h                               ; e8 51 cf
     5995    call 01600h                               ; e8 cf ce
    60105996    test al, al                               ; 84 c0
    6011     je short 046beh                           ; 74 0b
     5997    je short 04740h                           ; 74 0b
    60125998    mov dx, 00339h                            ; ba 39 03
    60135999    mov ax, bx                                ; 89 d8
    6014     call 01600h                               ; e8 45 cf
     6000    call 01600h                               ; e8 c3 ce
    60156001    movzx si, al                              ; 0f b6 f0
    6016     cmp byte [bp+008h], 001h                  ; 80 7e 08 01
    6017     jne short 046d4h                          ; 75 10
     6002    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
     6003    jne short 04756h                          ; 75 10
    60186004    mov ax, strict word 0003ch                ; b8 3c 00
    6019     call 0165ch                               ; e8 92 cf
     6005    call 0165ch                               ; e8 10 cf
    60206006    and AL, strict byte 0f0h                  ; 24 f0
    60216007    xor ah, ah                                ; 30 e4
    60226008    sar ax, 004h                              ; c1 f8 04
    6023     call 07322h                               ; e8 4e 2c
    6024     cmp byte [bp+008h], 002h                  ; 80 7e 08 02
    6025     jne short 046ddh                          ; 75 03
     6009    call 0740bh                               ; e8 b5 2c
     6010    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
     6011    jne short 0475fh                          ; 75 03
    60266012    shr si, 004h                              ; c1 ee 04
    6027     cmp byte [bp+008h], 003h                  ; 80 7e 08 03
    6028     jne short 046e6h                          ; 75 03
     6013    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
     6014    jne short 04768h                          ; 75 03
    60296015    shr si, 008h                              ; c1 ee 08
    6030     cmp byte [bp+008h], 004h                  ; 80 7e 08 04
    6031     jne short 046efh                          ; 75 03
     6016    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
     6017    jne short 04771h                          ; 75 03
    60326018    shr si, 00ch                              ; c1 ee 0c
    60336019    cmp si, strict byte 00010h                ; 83 fe 10
    6034     jnc short 046f8h                          ; 73 04
    6035     mov byte [bp-004h], 001h                  ; c6 46 fc 01
     6020    jnc short 0477ah                          ; 73 04
     6021    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    60366022    xor al, al                                ; 30 c0
    6037     mov byte [bp-002h], al                    ; 88 46 fe
    60386023    mov byte [bp-006h], al                    ; 88 46 fa
    6039     mov byte [bp-008h], al                    ; 88 46 f8
    6040     mov bx, 00d32h                            ; bb 32 0d
     6024    mov byte [bp-00ah], al                    ; 88 46 f6
     6025    mov byte [bp-00ch], al                    ; 88 46 f4
     6026    mov bx, 00d38h                            ; bb 38 0d
    60416027    mov cx, ds                                ; 8c d9
    60426028    mov ax, strict word 00004h                ; b8 04 00
    6043     call 018aeh                               ; e8 a0 d1
     6029    call 018cch                               ; e8 3c d1
    60446030    push si                                   ; 56
    6045     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
     6031    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    60466032    push ax                                   ; 50
    60476033    push 004c4h                               ; 68 c4 04
    60486034    push strict byte 00004h                   ; 6a 04
    6049     call 018e9h                               ; e8 cd d1
     6035    call 0190dh                               ; e8 6f d1
    60506036    add sp, strict byte 00008h                ; 83 c4 08
    60516037    and si, strict byte 0000fh                ; 83 e6 0f
    60526038    cmp si, strict byte 00002h                ; 83 fe 02
    6053     jc short 04735h                           ; 72 0e
    6054     jbe short 04744h                          ; 76 1b
     6039    jc short 047b7h                           ; 72 0e
     6040    jbe short 047c6h                          ; 76 1b
    60556041    cmp si, strict byte 00004h                ; 83 fe 04
    6056     je short 04762h                           ; 74 34
     6042    je short 047e4h                           ; 74 34
    60576043    cmp si, strict byte 00003h                ; 83 fe 03
    6058     je short 04758h                           ; 74 25
    6059     jmp short 0478fh                          ; eb 5a
     6044    je short 047dah                           ; 74 25
     6045    jmp short 04811h                          ; eb 5a
    60606046    cmp si, strict byte 00001h                ; 83 fe 01
    6061     jne short 0478fh                          ; 75 55
     6047    jne short 04811h                          ; 75 55
    60626048    xor al, al                                ; 30 c0
    6063     mov byte [bp-002h], al                    ; 88 46 fe
    60646049    mov byte [bp-006h], al                    ; 88 46 fa
    6065     jmp short 047a7h                          ; eb 63
     6050    mov byte [bp-00ah], al                    ; 88 46 f6
     6051    jmp short 04829h                          ; eb 63
    60666052    mov dx, 00338h                            ; ba 38 03
    6067     mov ax, word [bp-00ah]                    ; 8b 46 f6
    6068     call 01600h                               ; e8 b3 ce
     6053    mov ax, word [bp-00eh]                    ; 8b 46 f2
     6054    call 01600h                               ; e8 31 ce
    60696055    add AL, strict byte 080h                  ; 04 80
    6070     mov byte [bp-002h], al                    ; 88 46 fe
     6056    mov byte [bp-006h], al                    ; 88 46 fa
     6057    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
     6058    jmp short 04829h                          ; eb 4f
    60716059    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    6072     jmp short 047a7h                          ; eb 4f
    6073     mov byte [bp-002h], 000h                  ; c6 46 fe 00
    6074     mov byte [bp-006h], 001h                  ; c6 46 fa 01
    6075     jmp short 0476ch                          ; eb 0a
    6076     mov byte [bp-008h], 001h                  ; c6 46 f8 01
    6077     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6078     je short 047a7h                           ; 74 3b
    6079     call 037d0h                               ; e8 61 f0
     6060    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
     6061    jmp short 047eeh                          ; eb 0a
     6062    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     6063    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     6064    je short 04829h                           ; 74 3b
     6065    call 03837h                               ; e8 46 f0
    60806066    mov bx, ax                                ; 89 c3
    60816067    test AL, strict byte 0ffh                 ; a8 ff
    6082     je short 04796h                           ; 74 21
    6083     call 04644h                               ; e8 cc fe
    6084     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     6068    je short 04818h                           ; 74 21
     6069    call 046c1h                               ; e8 c7 fe
     6070    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    60856071    push ax                                   ; 50
    6086     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    6087     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    6088     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     6072    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     6073    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     6074    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    60896075    mov cx, strict word 00001h                ; b9 01 00
    6090     call 045b4h                               ; e8 25 fe
     6076    call 0462eh                               ; e8 1d fe
    60916077    xor ax, ax                                ; 31 c0
    60926078    xor dx, dx                                ; 31 d2
    6093     jmp near 048b5h                           ; e9 1f 01
     6079    jmp near 04937h                           ; e9 1f 01
    60946080    mov dx, 0032eh                            ; ba 2e 03
    6095     mov ax, word [bp-00ah]                    ; 8b 46 f6
    6096     call 0161ch                               ; e8 7d ce
     6081    mov ax, word [bp-00eh]                    ; 8b 46 f2
     6082    call 0161ch                               ; e8 fb cd
    60976083    mov di, ax                                ; 89 c7
    60986084    shr bx, 008h                              ; c1 eb 08
    6099     mov byte [bp-002h], bl                    ; 88 5e fe
    6100     cmp byte [bp-008h], 001h                  ; 80 7e f8 01
    6101     jne near 04823h                           ; 0f 85 74 00
     6085    mov byte [bp-006h], bl                    ; 88 5e fa
     6086    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
     6087    jne near 048a5h                           ; 0f 85 74 00
    61026088    xor si, si                                ; 31 f6
    61036089    mov ax, 0e200h                            ; b8 00 e2
    61046090    mov es, ax                                ; 8e c0
    61056091    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6106     jne short 04778h                          ; 75 bb
     6092    jne short 047fah                          ; 75 bb
    61076093    mov cx, ax                                ; 89 c1
    61086094    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    61096095    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6110     jne short 04778h                          ; 75 ad
     6096    jne short 047fah                          ; 75 ad
    61116097    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6112     jne short 04778h                          ; 75 a6
     6098    jne short 047fah                          ; 75 a6
    61136099    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    61146100    mov dx, word [es:di]                      ; 26 8b 15
    61156101    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    61166102    cmp ax, 06568h                            ; 3d 68 65
    6117     jne short 04801h                          ; 75 1f
     6103    jne short 04883h                          ; 75 1f
    61186104    cmp dx, 07445h                            ; 81 fa 45 74
    6119     jne short 04801h                          ; 75 19
    6120     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    6121     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    6122     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6123     call 0456ch                               ; e8 75 fd
    6124     mov word [bp-00eh], strict word 00006h    ; c7 46 f2 06 00
    6125     mov word [bp-00ch], cx                    ; 89 4e f4
    6126     jmp short 0481dh                          ; eb 1c
    6127     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    6128     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    6129     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6130     call 0456ch                               ; e8 5c fd
     6105    jne short 04883h                          ; 75 19
     6106    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     6107    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     6108    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     6109    call 045e3h                               ; e8 6a fd
     6110    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
     6111    mov word [bp-010h], cx                    ; 89 4e f0
     6112    jmp short 0489fh                          ; eb 1c
     6113    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     6114    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     6115    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     6116    call 045e3h                               ; e8 51 fd
    61316117    sti                                       ; fb
    6132     mov word [bp-00ch], cx                    ; 89 4e f4
     6118    mov word [bp-010h], cx                    ; 89 4e f0
    61336119    mov es, cx                                ; 8e c1
    61346120    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    6135     mov word [bp-00eh], ax                    ; 89 46 f2
    6136     call far [bp-00eh]                        ; ff 5e f2
    6137     jmp near 04778h                           ; e9 55 ff
    6138     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6139     jne short 0484fh                          ; 75 26
    6140     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6141     jne short 0484fh                          ; 75 20
     6121    mov word [bp-012h], ax                    ; 89 46 ee
     6122    call far [bp-012h]                        ; ff 5e ee
     6123    jmp near 047fah                           ; e9 55 ff
     6124    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     6125    jne short 048d1h                          ; 75 26
     6126    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     6127    jne short 048d1h                          ; 75 20
    61426128    mov di, 007c0h                            ; bf c0 07
    61436129    mov es, di                                ; 8e c7
    6144     mov dl, byte [bp-002h]                    ; 8a 56 fe
     6130    mov dl, byte [bp-006h]                    ; 8a 56 fa
    61456131    mov ax, 00201h                            ; b8 01 02
    61466132    mov DH, strict byte 000h                  ; b6 00
     
    61526138    sbb ax, strict byte 00000h                ; 83 d8 00
    61536139    test ax, ax                               ; 85 c0
    6154     jne near 04778h                           ; 0f 85 29 ff
    6155     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
     6140    jne near 047fah                           ; 0f 85 29 ff
     6141    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    61566142    db  00fh, 094h, 0c1h
    61576143    ; sete cl                                   ; 0f 94 c1
    6158     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6159     je short 0485eh                           ; 74 02
     6144    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     6145    je short 048e0h                           ; 74 02
    61606146    mov CL, strict byte 001h                  ; b1 01
    61616147    xor dx, dx                                ; 31 d2
    61626148    mov ax, di                                ; 89 f8
    6163     call 0161ch                               ; e8 b7 cd
     6149    call 0161ch                               ; e8 35 cd
    61646150    mov bx, ax                                ; 89 c3
    61656151    mov dx, strict word 00002h                ; ba 02 00
    61666152    mov ax, di                                ; 89 f8
    6167     call 0161ch                               ; e8 ad cd
     6153    call 0161ch                               ; e8 2b cd
    61686154    cmp bx, ax                                ; 39 c3
    6169     je short 04884h                           ; 74 11
     6155    je short 04906h                           ; 74 11
    61706156    test cl, cl                               ; 84 c9
    6171     jne short 0489ah                          ; 75 23
     6157    jne short 0491ch                          ; 75 23
    61726158    mov dx, 001feh                            ; ba fe 01
    61736159    mov ax, di                                ; 89 f8
    6174     call 0161ch                               ; e8 9d cd
     6160    call 0161ch                               ; e8 1b cd
    61756161    cmp ax, 0aa55h                            ; 3d 55 aa
    6176     je short 0489ah                           ; 74 16
    6177     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     6162    je short 0491ch                           ; 74 16
     6163    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    61786164    push ax                                   ; 50
    6179     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    6180     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    6181     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     6165    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     6166    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     6167    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    61826168    xor cx, cx                                ; 31 c9
    6183     jmp near 0478ch                           ; e9 f2 fe
    6184     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    6185     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    6186     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6187     call 0456ch                               ; e8 c3 fc
    6188     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     6169    jmp near 0480eh                           ; e9 f2 fe
     6170    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     6171    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     6172    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     6173    call 045e3h                               ; e8 b8 fc
     6174    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    61896175    xor dx, dx                                ; 31 d2
    61906176    xor ax, ax                                ; 31 c0
    61916177    add ax, di                                ; 01 f8
    61926178    adc dx, bx                                ; 11 da
    6193     leave                                     ; c9
     6179    lea sp, [bp-004h]                         ; 8d 66 fc
    61946180    pop di                                    ; 5f
    61956181    pop si                                    ; 5e
     6182    pop bp                                    ; 5d
    61966183    retn                                      ; c3
    6197 keyboard_panic_:                             ; 0xf48b9 LB 0x11
     6184keyboard_panic_:                             ; 0xf493e LB 0x13
    61986185    push bp                                   ; 55
    61996186    mov bp, sp                                ; 89 e5
     
    62016188    push 004e4h                               ; 68 e4 04
    62026189    push strict byte 00007h                   ; 6a 07
    6203     call 018e9h                               ; e8 24 d0
     6190    call 0190dh                               ; e8 c3 cf
    62046191    add sp, strict byte 00006h                ; 83 c4 06
     6192    mov sp, bp                                ; 89 ec
    62056193    pop bp                                    ; 5d
    62066194    retn                                      ; c3
    6207 _keyboard_init:                              ; 0xf48ca LB 0x27a
     6195_keyboard_init:                              ; 0xf4951 LB 0x27c
    62086196    push bp                                   ; 55
    62096197    mov bp, sp                                ; 89 e5
     
    62176205    ; sub ah, ah                                ; 2a e4
    62186206    test AL, strict byte 002h                 ; a8 02
    6219     je short 048edh                           ; 74 0d
     6207    je short 04974h                           ; 74 0d
    62206208    dec bx                                    ; 4b
    62216209    test bx, bx                               ; 85 db
    6222     jbe short 048edh                          ; 76 08
     6210    jbe short 04974h                          ; 76 08
    62236211    xor al, al                                ; 30 c0
    62246212    mov dx, 00080h                            ; ba 80 00
    62256213    out DX, AL                                ; ee
    6226     jmp short 048d6h                          ; eb e9
     6214    jmp short 0495dh                          ; eb e9
    62276215    test bx, bx                               ; 85 db
    6228     jne short 048f6h                          ; 75 05
     6216    jne short 0497dh                          ; 75 05
    62296217    xor ax, ax                                ; 31 c0
    6230     call 048b9h                               ; e8 c3 ff
     6218    call 0493eh                               ; e8 c1 ff
    62316219    mov bx, strict word 0ffffh                ; bb ff ff
    62326220    mov dx, strict word 00064h                ; ba 64 00
     
    62356223    ; sub ah, ah                                ; 2a e4
    62366224    test AL, strict byte 001h                 ; a8 01
    6237     jne short 04910h                          ; 75 0d
     6225    jne short 04997h                          ; 75 0d
    62386226    dec bx                                    ; 4b
    62396227    test bx, bx                               ; 85 db
    6240     jbe short 04910h                          ; 76 08
     6228    jbe short 04997h                          ; 76 08
    62416229    mov AL, strict byte 001h                  ; b0 01
    62426230    mov dx, 00080h                            ; ba 80 00
    62436231    out DX, AL                                ; ee
    6244     jmp short 048f9h                          ; eb e9
     6232    jmp short 04980h                          ; eb e9
    62456233    test bx, bx                               ; 85 db
    6246     jne short 0491ah                          ; 75 06
     6234    jne short 049a1h                          ; 75 06
    62476235    mov ax, strict word 00001h                ; b8 01 00
    6248     call 048b9h                               ; e8 9f ff
     6236    call 0493eh                               ; e8 9d ff
    62496237    mov dx, strict word 00060h                ; ba 60 00
    62506238    in AL, DX                                 ; ec
     
    62526240    ; sub ah, ah                                ; 2a e4
    62536241    cmp ax, strict word 00055h                ; 3d 55 00
    6254     je short 0492bh                           ; 74 06
     6242    je short 049b2h                           ; 74 06
    62556243    mov ax, 003dfh                            ; b8 df 03
    6256     call 048b9h                               ; e8 8e ff
     6244    call 0493eh                               ; e8 8c ff
    62576245    mov AL, strict byte 0abh                  ; b0 ab
    62586246    mov dx, strict word 00064h                ; ba 64 00
     
    62646252    ; sub ah, ah                                ; 2a e4
    62656253    test AL, strict byte 002h                 ; a8 02
    6266     je short 0494bh                           ; 74 0d
     6254    je short 049d2h                           ; 74 0d
    62676255    dec bx                                    ; 4b
    62686256    test bx, bx                               ; 85 db
    6269     jbe short 0494bh                          ; 76 08
     6257    jbe short 049d2h                          ; 76 08
    62706258    mov AL, strict byte 010h                  ; b0 10
    62716259    mov dx, 00080h                            ; ba 80 00
    62726260    out DX, AL                                ; ee
    6273     jmp short 04934h                          ; eb e9
     6261    jmp short 049bbh                          ; eb e9
    62746262    test bx, bx                               ; 85 db
    6275     jne short 04955h                          ; 75 06
     6263    jne short 049dch                          ; 75 06
    62766264    mov ax, strict word 0000ah                ; b8 0a 00
    6277     call 048b9h                               ; e8 64 ff
     6265    call 0493eh                               ; e8 62 ff
    62786266    mov bx, strict word 0ffffh                ; bb ff ff
    62796267    mov dx, strict word 00064h                ; ba 64 00
     
    62826270    ; sub ah, ah                                ; 2a e4
    62836271    test AL, strict byte 001h                 ; a8 01
    6284     jne short 0496fh                          ; 75 0d
     6272    jne short 049f6h                          ; 75 0d
    62856273    dec bx                                    ; 4b
    62866274    test bx, bx                               ; 85 db
    6287     jbe short 0496fh                          ; 76 08
     6275    jbe short 049f6h                          ; 76 08
    62886276    mov AL, strict byte 011h                  ; b0 11
    62896277    mov dx, 00080h                            ; ba 80 00
    62906278    out DX, AL                                ; ee
    6291     jmp short 04958h                          ; eb e9
     6279    jmp short 049dfh                          ; eb e9
    62926280    test bx, bx                               ; 85 db
    6293     jne short 04979h                          ; 75 06
     6281    jne short 04a00h                          ; 75 06
    62946282    mov ax, strict word 0000bh                ; b8 0b 00
    6295     call 048b9h                               ; e8 40 ff
     6283    call 0493eh                               ; e8 3e ff
    62966284    mov dx, strict word 00060h                ; ba 60 00
    62976285    in AL, DX                                 ; ec
     
    62996287    ; sub ah, ah                                ; 2a e4
    63006288    test ax, ax                               ; 85 c0
    6301     je short 04989h                           ; 74 06
     6289    je short 04a10h                           ; 74 06
    63026290    mov ax, 003e0h                            ; b8 e0 03
    6303     call 048b9h                               ; e8 30 ff
     6291    call 0493eh                               ; e8 2e ff
    63046292    mov AL, strict byte 0ffh                  ; b0 ff
    63056293    mov dx, strict word 00060h                ; ba 60 00
     
    63116299    ; sub ah, ah                                ; 2a e4
    63126300    test AL, strict byte 002h                 ; a8 02
    6313     je short 049a9h                           ; 74 0d
     6301    je short 04a30h                           ; 74 0d
    63146302    dec bx                                    ; 4b
    63156303    test bx, bx                               ; 85 db
    6316     jbe short 049a9h                          ; 76 08
     6304    jbe short 04a30h                          ; 76 08
    63176305    mov AL, strict byte 020h                  ; b0 20
    63186306    mov dx, 00080h                            ; ba 80 00
    63196307    out DX, AL                                ; ee
    6320     jmp short 04992h                          ; eb e9
     6308    jmp short 04a19h                          ; eb e9
    63216309    test bx, bx                               ; 85 db
    6322     jne short 049b3h                          ; 75 06
     6310    jne short 04a3ah                          ; 75 06
    63236311    mov ax, strict word 00014h                ; b8 14 00
    6324     call 048b9h                               ; e8 06 ff
     6312    call 0493eh                               ; e8 04 ff
    63256313    mov bx, strict word 0ffffh                ; bb ff ff
    63266314    mov dx, strict word 00064h                ; ba 64 00
     
    63296317    ; sub ah, ah                                ; 2a e4
    63306318    test AL, strict byte 001h                 ; a8 01
    6331     jne short 049cdh                          ; 75 0d
     6319    jne short 04a54h                          ; 75 0d
    63326320    dec bx                                    ; 4b
    63336321    test bx, bx                               ; 85 db
    6334     jbe short 049cdh                          ; 76 08
     6322    jbe short 04a54h                          ; 76 08
    63356323    mov AL, strict byte 021h                  ; b0 21
    63366324    mov dx, 00080h                            ; ba 80 00
    63376325    out DX, AL                                ; ee
    6338     jmp short 049b6h                          ; eb e9
     6326    jmp short 04a3dh                          ; eb e9
    63396327    test bx, bx                               ; 85 db
    6340     jne short 049d7h                          ; 75 06
     6328    jne short 04a5eh                          ; 75 06
    63416329    mov ax, strict word 00015h                ; b8 15 00
    6342     call 048b9h                               ; e8 e2 fe
     6330    call 0493eh                               ; e8 e0 fe
    63436331    mov dx, strict word 00060h                ; ba 60 00
    63446332    in AL, DX                                 ; ec
     
    63466334    ; sub ah, ah                                ; 2a e4
    63476335    cmp ax, 000fah                            ; 3d fa 00
    6348     je short 049e8h                           ; 74 06
     6336    je short 04a6fh                           ; 74 06
    63496337    mov ax, 003e1h                            ; b8 e1 03
    6350     call 048b9h                               ; e8 d1 fe
     6338    call 0493eh                               ; e8 cf fe
    63516339    mov bx, strict word 0ffffh                ; bb ff ff
    63526340    mov dx, strict word 00064h                ; ba 64 00
     
    63556343    ; sub ah, ah                                ; 2a e4
    63566344    test AL, strict byte 001h                 ; a8 01
    6357     jne short 04a02h                          ; 75 0d
     6345    jne short 04a89h                          ; 75 0d
    63586346    dec bx                                    ; 4b
    63596347    test bx, bx                               ; 85 db
    6360     jbe short 04a02h                          ; 76 08
     6348    jbe short 04a89h                          ; 76 08
    63616349    mov AL, strict byte 031h                  ; b0 31
    63626350    mov dx, 00080h                            ; ba 80 00
    63636351    out DX, AL                                ; ee
    6364     jmp short 049ebh                          ; eb e9
     6352    jmp short 04a72h                          ; eb e9
    63656353    test bx, bx                               ; 85 db
    6366     jne short 04a0ch                          ; 75 06
     6354    jne short 04a93h                          ; 75 06
    63676355    mov ax, strict word 0001fh                ; b8 1f 00
    6368     call 048b9h                               ; e8 ad fe
     6356    call 0493eh                               ; e8 ab fe
    63696357    mov dx, strict word 00060h                ; ba 60 00
    63706358    in AL, DX                                 ; ec
     
    63726360    ; sub ah, ah                                ; 2a e4
    63736361    cmp ax, 000aah                            ; 3d aa 00
    6374     je short 04a25h                           ; 74 0e
     6362    je short 04aach                           ; 74 0e
    63756363    in AL, DX                                 ; ec
    63766364    db  02ah, 0e4h
    63776365    ; sub ah, ah                                ; 2a e4
    63786366    cmp ax, 000aah                            ; 3d aa 00
    6379     je short 04a25h                           ; 74 06
     6367    je short 04aach                           ; 74 06
    63806368    mov ax, 003e2h                            ; b8 e2 03
    6381     call 048b9h                               ; e8 94 fe
     6369    call 0493eh                               ; e8 92 fe
    63826370    mov AL, strict byte 0f5h                  ; b0 f5
    63836371    mov dx, strict word 00060h                ; ba 60 00
     
    63896377    ; sub ah, ah                                ; 2a e4
    63906378    test AL, strict byte 002h                 ; a8 02
    6391     je short 04a45h                           ; 74 0d
     6379    je short 04acch                           ; 74 0d
    63926380    dec bx                                    ; 4b
    63936381    test bx, bx                               ; 85 db
    6394     jbe short 04a45h                          ; 76 08
     6382    jbe short 04acch                          ; 76 08
    63956383    mov AL, strict byte 040h                  ; b0 40
    63966384    mov dx, 00080h                            ; ba 80 00
    63976385    out DX, AL                                ; ee
    6398     jmp short 04a2eh                          ; eb e9
     6386    jmp short 04ab5h                          ; eb e9
    63996387    test bx, bx                               ; 85 db
    6400     jne short 04a4fh                          ; 75 06
     6388    jne short 04ad6h                          ; 75 06
    64016389    mov ax, strict word 00028h                ; b8 28 00
    6402     call 048b9h                               ; e8 6a fe
     6390    call 0493eh                               ; e8 68 fe
    64036391    mov bx, strict word 0ffffh                ; bb ff ff
    64046392    mov dx, strict word 00064h                ; ba 64 00
     
    64076395    ; sub ah, ah                                ; 2a e4
    64086396    test AL, strict byte 001h                 ; a8 01
    6409     jne short 04a69h                          ; 75 0d
     6397    jne short 04af0h                          ; 75 0d
    64106398    dec bx                                    ; 4b
    64116399    test bx, bx                               ; 85 db
    6412     jbe short 04a69h                          ; 76 08
     6400    jbe short 04af0h                          ; 76 08
    64136401    mov AL, strict byte 041h                  ; b0 41
    64146402    mov dx, 00080h                            ; ba 80 00
    64156403    out DX, AL                                ; ee
    6416     jmp short 04a52h                          ; eb e9
     6404    jmp short 04ad9h                          ; eb e9
    64176405    test bx, bx                               ; 85 db
    6418     jne short 04a73h                          ; 75 06
     6406    jne short 04afah                          ; 75 06
    64196407    mov ax, strict word 00029h                ; b8 29 00
    6420     call 048b9h                               ; e8 46 fe
     6408    call 0493eh                               ; e8 44 fe
    64216409    mov dx, strict word 00060h                ; ba 60 00
    64226410    in AL, DX                                 ; ec
     
    64246412    ; sub ah, ah                                ; 2a e4
    64256413    cmp ax, 000fah                            ; 3d fa 00
    6426     je short 04a84h                           ; 74 06
     6414    je short 04b0bh                           ; 74 06
    64276415    mov ax, 003e3h                            ; b8 e3 03
    6428     call 048b9h                               ; e8 35 fe
     6416    call 0493eh                               ; e8 33 fe
    64296417    mov AL, strict byte 060h                  ; b0 60
    64306418    mov dx, strict word 00064h                ; ba 64 00
     
    64366424    ; sub ah, ah                                ; 2a e4
    64376425    test AL, strict byte 002h                 ; a8 02
    6438     je short 04aa4h                           ; 74 0d
     6426    je short 04b2bh                           ; 74 0d
    64396427    dec bx                                    ; 4b
    64406428    test bx, bx                               ; 85 db
    6441     jbe short 04aa4h                          ; 76 08
     6429    jbe short 04b2bh                          ; 76 08
    64426430    mov AL, strict byte 050h                  ; b0 50
    64436431    mov dx, 00080h                            ; ba 80 00
    64446432    out DX, AL                                ; ee
    6445     jmp short 04a8dh                          ; eb e9
     6433    jmp short 04b14h                          ; eb e9
    64466434    test bx, bx                               ; 85 db
    6447     jne short 04aaeh                          ; 75 06
     6435    jne short 04b35h                          ; 75 06
    64486436    mov ax, strict word 00032h                ; b8 32 00
    6449     call 048b9h                               ; e8 0b fe
     6437    call 0493eh                               ; e8 09 fe
    64506438    mov AL, strict byte 065h                  ; b0 65
    64516439    mov dx, strict word 00060h                ; ba 60 00
     
    64576445    ; sub ah, ah                                ; 2a e4
    64586446    test AL, strict byte 002h                 ; a8 02
    6459     je short 04aceh                           ; 74 0d
     6447    je short 04b55h                           ; 74 0d
    64606448    dec bx                                    ; 4b
    64616449    test bx, bx                               ; 85 db
    6462     jbe short 04aceh                          ; 76 08
     6450    jbe short 04b55h                          ; 76 08
    64636451    mov AL, strict byte 060h                  ; b0 60
    64646452    mov dx, 00080h                            ; ba 80 00
    64656453    out DX, AL                                ; ee
    6466     jmp short 04ab7h                          ; eb e9
     6454    jmp short 04b3eh                          ; eb e9
    64676455    test bx, bx                               ; 85 db
    6468     jne short 04ad8h                          ; 75 06
     6456    jne short 04b5fh                          ; 75 06
    64696457    mov ax, strict word 0003ch                ; b8 3c 00
    6470     call 048b9h                               ; e8 e1 fd
     6458    call 0493eh                               ; e8 df fd
    64716459    mov AL, strict byte 0f4h                  ; b0 f4
    64726460    mov dx, strict word 00060h                ; ba 60 00
     
    64786466    ; sub ah, ah                                ; 2a e4
    64796467    test AL, strict byte 002h                 ; a8 02
    6480     je short 04af8h                           ; 74 0d
     6468    je short 04b7fh                           ; 74 0d
    64816469    dec bx                                    ; 4b
    64826470    test bx, bx                               ; 85 db
    6483     jbe short 04af8h                          ; 76 08
     6471    jbe short 04b7fh                          ; 76 08
    64846472    mov AL, strict byte 070h                  ; b0 70
    64856473    mov dx, 00080h                            ; ba 80 00
    64866474    out DX, AL                                ; ee
    6487     jmp short 04ae1h                          ; eb e9
     6475    jmp short 04b68h                          ; eb e9
    64886476    test bx, bx                               ; 85 db
    6489     jne short 04b02h                          ; 75 06
     6477    jne short 04b89h                          ; 75 06
    64906478    mov ax, strict word 00046h                ; b8 46 00
    6491     call 048b9h                               ; e8 b7 fd
     6479    call 0493eh                               ; e8 b5 fd
    64926480    mov bx, strict word 0ffffh                ; bb ff ff
    64936481    mov dx, strict word 00064h                ; ba 64 00
     
    64966484    ; sub ah, ah                                ; 2a e4
    64976485    test AL, strict byte 001h                 ; a8 01
    6498     jne short 04b1ch                          ; 75 0d
     6486    jne short 04ba3h                          ; 75 0d
    64996487    dec bx                                    ; 4b
    65006488    test bx, bx                               ; 85 db
    6501     jbe short 04b1ch                          ; 76 08
     6489    jbe short 04ba3h                          ; 76 08
    65026490    mov AL, strict byte 071h                  ; b0 71
    65036491    mov dx, 00080h                            ; ba 80 00
    65046492    out DX, AL                                ; ee
    6505     jmp short 04b05h                          ; eb e9
     6493    jmp short 04b8ch                          ; eb e9
    65066494    test bx, bx                               ; 85 db
    6507     jne short 04b26h                          ; 75 06
     6495    jne short 04badh                          ; 75 06
    65086496    mov ax, strict word 00046h                ; b8 46 00
    6509     call 048b9h                               ; e8 93 fd
     6497    call 0493eh                               ; e8 91 fd
    65106498    mov dx, strict word 00060h                ; ba 60 00
    65116499    in AL, DX                                 ; ec
     
    65136501    ; sub ah, ah                                ; 2a e4
    65146502    cmp ax, 000fah                            ; 3d fa 00
    6515     je short 04b37h                           ; 74 06
     6503    je short 04bbeh                           ; 74 06
    65166504    mov ax, 003e4h                            ; b8 e4 03
    6517     call 048b9h                               ; e8 82 fd
     6505    call 0493eh                               ; e8 80 fd
    65186506    mov AL, strict byte 0a8h                  ; b0 a8
    65196507    mov dx, strict word 00064h                ; ba 64 00
    65206508    out DX, AL                                ; ee
    65216509    xor ax, ax                                ; 31 c0
    6522     call 05d94h                               ; e8 52 12
     6510    call 05e38h                               ; e8 6f 12
     6511    mov sp, bp                                ; 89 ec
    65236512    pop bp                                    ; 5d
    65246513    retn                                      ; c3
    6525 enqueue_key_:                                ; 0xf4b44 LB 0x90
     6514enqueue_key_:                                ; 0xf4bcd LB 0x93
     6515    push bp                                   ; 55
     6516    mov bp, sp                                ; 89 e5
    65266517    push bx                                   ; 53
    65276518    push cx                                   ; 51
    65286519    push si                                   ; 56
    65296520    push di                                   ; 57
    6530     enter 00002h, 000h                        ; c8 02 00 00
    6531     mov byte [bp-002h], al                    ; 88 46 fe
     6521    push ax                                   ; 50
     6522    mov byte [bp-00ah], al                    ; 88 46 f6
    65326523    mov bl, dl                                ; 88 d3
    65336524    mov dx, strict word 0001ah                ; ba 1a 00
    65346525    mov ax, strict word 00040h                ; b8 40 00
    6535     call 0161ch                               ; e8 c2 ca
     6526    call 0161ch                               ; e8 39 ca
    65366527    mov di, ax                                ; 89 c7
    65376528    mov dx, strict word 0001ch                ; ba 1c 00
    65386529    mov ax, strict word 00040h                ; b8 40 00
    6539     call 0161ch                               ; e8 b7 ca
     6530    call 0161ch                               ; e8 2e ca
    65406531    mov si, ax                                ; 89 c6
    65416532    lea cx, [si+002h]                         ; 8d 4c 02
    65426533    cmp cx, strict byte 0003eh                ; 83 f9 3e
    6543     jc short 04b72h                           ; 72 03
     6534    jc short 04bfbh                           ; 72 03
    65446535    mov cx, strict word 0001eh                ; b9 1e 00
    65456536    cmp cx, di                                ; 39 f9
    6546     jne short 04b7ah                          ; 75 04
     6537    jne short 04c03h                          ; 75 04
    65476538    xor ax, ax                                ; 31 c0
    6548     jmp short 04b9fh                          ; eb 25
     6539    jmp short 04c28h                          ; eb 25
    65496540    xor bh, bh                                ; 30 ff
    65506541    mov dx, si                                ; 89 f2
    65516542    mov ax, strict word 00040h                ; b8 40 00
    6552     call 0160eh                               ; e8 8a ca
    6553     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     6543    call 0160eh                               ; e8 01 ca
     6544    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    65546545    lea dx, [si+001h]                         ; 8d 54 01
    65556546    mov ax, strict word 00040h                ; b8 40 00
    6556     call 0160eh                               ; e8 7d ca
     6547    call 0160eh                               ; e8 f4 c9
    65576548    mov bx, cx                                ; 89 cb
    65586549    mov dx, strict word 0001ch                ; ba 1c 00
    65596550    mov ax, strict word 00040h                ; b8 40 00
    6560     call 0162ah                               ; e8 8e ca
     6551    call 0162ah                               ; e8 05 ca
    65616552    mov ax, strict word 00001h                ; b8 01 00
    6562     leave                                     ; c9
     6553    lea sp, [bp-008h]                         ; 8d 66 f8
    65636554    pop di                                    ; 5f
    65646555    pop si                                    ; 5e
    65656556    pop cx                                    ; 59
    65666557    pop bx                                    ; 5b
     6558    pop bp                                    ; 5d
    65676559    retn                                      ; c3
    65686560    db  0c6h, 0c5h, 0bah
     
    65756567    cmp bh, byte [bx+si]                      ; 3a 38
    65766568    sub bl, byte [ss:di]                      ; 36 2a 1d
    6577     or AL, strict byte 04eh                   ; 0c 4e
    6578     cwd                                       ; 99
     6569    call far 0f64dh:0274eh                    ; 9a 4e 27 4d f6
    65796570    dec sp                                    ; 4c
    6580     push 0684ch                               ; 68 4c 68
     6571    db  0f6h
    65816572    dec sp                                    ; 4c
    6582     sbb cx, word [di+041h]                    ; 1b 4d 41
     6573    test ax, 0cf4dh                           ; a9 4d cf
    65836574    dec sp                                    ; 4c
    6584     lea cx, [di-024h]                         ; 8d 4d dc
     6575    sbb cx, word [bp+06ah]                    ; 1b 4e 6a
     6576    dec si                                    ; 4e
     6577    lea cx, [bp+068h]                         ; 8d 4e 68
    65856578    dec bp                                    ; 4d
    6586     dec word [di-026h]                        ; ff 4d da
     6579    db  0f6h
    65876580    dec sp                                    ; 4c
    6588     push 0684ch                               ; 68 4c 68
     6581    db  0f6h
    65896582    dec sp                                    ; 4c
    6590     push sp                                   ; 54
    6591     dec bp                                    ; 4d
    6592     pop dx                                    ; 5a
    6593     dec sp                                    ; 4c
    6594     mov bp, 0f84dh                            ; bd 4d f8
    6595     dec bp                                    ; 4d
    6596 _int09_function:                             ; 0xf4bd4 LB 0x358
     6583    loop 04ca7h                               ; e2 4d
     6584    call 097a9h                               ; e8 4c 4b
     6585    dec si                                    ; 4e
     6586    db  086h
     6587    dec si                                    ; 4e
     6588_int09_function:                             ; 0xf4c60 LB 0x35d
     6589    push bp                                   ; 55
     6590    mov bp, sp                                ; 89 e5
    65976591    push si                                   ; 56
    65986592    push di                                   ; 57
    6599     enter 0000ch, 000h                        ; c8 0c 00 00
    6600     mov al, byte [bp+018h]                    ; 8a 46 18
    6601     mov byte [bp-006h], al                    ; 88 46 fa
     6593    sub sp, strict byte 0000ch                ; 83 ec 0c
     6594    mov al, byte [bp+014h]                    ; 8a 46 14
     6595    mov byte [bp-00ah], al                    ; 88 46 f6
    66026596    test al, al                               ; 84 c0
    6603     jne short 04bfdh                          ; 75 19
    6604     mov bx, 00d32h                            ; bb 32 0d
     6597    jne short 04c8bh                          ; 75 19
     6598    mov bx, 00d38h                            ; bb 38 0d
    66056599    mov cx, ds                                ; 8c d9
    66066600    mov ax, strict word 00004h                ; b8 04 00
    6607     call 018aeh                               ; e8 bf cc
     6601    call 018cch                               ; e8 4f cc
    66086602    push 004f7h                               ; 68 f7 04
    66096603    push strict byte 00004h                   ; 6a 04
    6610     call 018e9h                               ; e8 f2 cc
     6604    call 0190dh                               ; e8 88 cc
    66116605    add sp, strict byte 00004h                ; 83 c4 04
    6612     jmp near 04f28h                           ; e9 2b 03
     6606    jmp near 04fb6h                           ; e9 2b 03
    66136607    mov dx, strict word 00017h                ; ba 17 00
    66146608    mov ax, strict word 00040h                ; b8 40 00
    6615     call 01600h                               ; e8 fa c9
    6616     mov byte [bp-00ah], al                    ; 88 46 f6
     6609    call 01600h                               ; e8 6c c9
     6610    mov byte [bp-00eh], al                    ; 88 46 f2
    66176611    mov bl, al                                ; 88 c3
    66186612    mov dx, strict word 00018h                ; ba 18 00
    66196613    mov ax, strict word 00040h                ; b8 40 00
    6620     call 01600h                               ; e8 ec c9
     6614    call 01600h                               ; e8 5e c9
     6615    mov byte [bp-010h], al                    ; 88 46 f0
    66216616    mov byte [bp-00ch], al                    ; 88 46 f4
    6622     mov byte [bp-008h], al                    ; 88 46 f8
    66236617    mov dx, 00096h                            ; ba 96 00
    66246618    mov ax, strict word 00040h                ; b8 40 00
    6625     call 01600h                               ; e8 dd c9
    6626     mov byte [bp-004h], al                    ; 88 46 fc
    6627     mov byte [bp-002h], al                    ; 88 46 fe
    6628     mov al, byte [bp-006h]                    ; 8a 46 fa
     6619    call 01600h                               ; e8 4f c9
     6620    mov byte [bp-008h], al                    ; 88 46 f8
     6621    mov byte [bp-006h], al                    ; 88 46 fa
     6622    mov al, byte [bp-00ah]                    ; 8a 46 f6
    66296623    push CS                                   ; 0e
    66306624    pop ES                                    ; 07
    66316625    mov cx, strict word 00010h                ; b9 10 00
    6632     mov di, 04ba5h                            ; bf a5 4b
     6626    mov di, 04c31h                            ; bf 31 4c
    66336627    repne scasb                               ; f2 ae
    66346628    sal cx, 1                                 ; d1 e1
    66356629    mov di, cx                                ; 89 cf
    6636     mov ax, word [cs:di+04bb4h]               ; 2e 8b 85 b4 4b
     6630    mov ax, word [cs:di+04c40h]               ; 2e 8b 85 40 4c
    66376631    jmp ax                                    ; ff e0
    66386632    xor bl, 040h                              ; 80 f3 40
     
    66406634    mov dx, strict word 00017h                ; ba 17 00
    66416635    mov ax, strict word 00040h                ; b8 40 00
    6642     call 0160eh                               ; e8 bf c9
    6643     or byte [bp-008h], 040h                   ; 80 4e f8 40
    6644     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    6645     jmp near 04dd0h                           ; e9 76 01
    6646     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6636    call 0160eh                               ; e8 31 c9
     6637    or byte [bp-00ch], 040h                   ; 80 4e f4 40
     6638    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     6639    jmp near 04e5eh                           ; e9 76 01
     6640    mov al, byte [bp-010h]                    ; 8a 46 f0
    66476641    and AL, strict byte 0bfh                  ; 24 bf
    6648     mov byte [bp-008h], al                    ; 88 46 f8
     6642    mov byte [bp-00ch], al                    ; 88 46 f4
    66496643    movzx bx, al                              ; 0f b6 d8
    6650     jmp near 04dd0h                           ; e9 68 01
    6651     test byte [bp-002h], 002h                 ; f6 46 fe 02
    6652     jne near 04f0ah                           ; 0f 85 9a 02
    6653     mov al, byte [bp-006h]                    ; 8a 46 fa
     6644    jmp near 04e5eh                           ; e9 68 01
     6645    test byte [bp-006h], 002h                 ; f6 46 fa 02
     6646    jne near 04f98h                           ; 0f 85 9a 02
     6647    mov al, byte [bp-00ah]                    ; 8a 46 f6
    66546648    and AL, strict byte 07fh                  ; 24 7f
    66556649    cmp AL, strict byte 02ah                  ; 3c 2a
     
    66586652    xor ah, ah                                ; 30 e4
    66596653    inc ax                                    ; 40
    6660     test byte [bp-006h], 080h                 ; f6 46 fa 80
    6661     je short 04c89h                           ; 74 06
     6654    test byte [bp-00ah], 080h                 ; f6 46 f6 80
     6655    je short 04d17h                           ; 74 06
    66626656    not al                                    ; f6 d0
    66636657    and bl, al                                ; 20 c3
    6664     jmp short 04c8bh                          ; eb 02
     6658    jmp short 04d19h                          ; eb 02
    66656659    or bl, al                                 ; 08 c3
    66666660    xor bh, bh                                ; 30 ff
    66676661    mov dx, strict word 00017h                ; ba 17 00
    66686662    mov ax, strict word 00040h                ; b8 40 00
    6669     call 0160eh                               ; e8 78 c9
    6670     jmp near 04f0ah                           ; e9 71 02
    6671     test byte [bp-004h], 001h                 ; f6 46 fc 01
    6672     jne near 04f0ah                           ; 0f 85 69 02
     6663    call 0160eh                               ; e8 ea c8
     6664    jmp near 04f98h                           ; e9 71 02
     6665    test byte [bp-008h], 001h                 ; f6 46 f8 01
     6666    jne near 04f98h                           ; 0f 85 69 02
    66736667    or bl, 004h                               ; 80 cb 04
    66746668    xor bh, bh                                ; 30 ff
    66756669    mov dx, strict word 00017h                ; ba 17 00
    66766670    mov ax, strict word 00040h                ; b8 40 00
    6677     call 0160eh                               ; e8 5f c9
    6678     mov al, byte [bp-004h]                    ; 8a 46 fc
     6671    call 0160eh                               ; e8 d1 c8
     6672    mov al, byte [bp-008h]                    ; 8a 46 f8
    66796673    test AL, strict byte 002h                 ; a8 02
    6680     je short 04cc3h                           ; 74 0d
     6674    je short 04d51h                           ; 74 0d
    66816675    or AL, strict byte 004h                   ; 0c 04
    6682     mov byte [bp-002h], al                    ; 88 46 fe
     6676    mov byte [bp-006h], al                    ; 88 46 fa
    66836677    movzx bx, al                              ; 0f b6 d8
    66846678    mov dx, 00096h                            ; ba 96 00
    6685     jmp short 04cd1h                          ; eb 0e
    6686     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6679    jmp short 04d5fh                          ; eb 0e
     6680    mov al, byte [bp-010h]                    ; 8a 46 f0
    66876681    or AL, strict byte 001h                   ; 0c 01
    6688     mov byte [bp-008h], al                    ; 88 46 f8
     6682    mov byte [bp-00ch], al                    ; 88 46 f4
    66896683    movzx bx, al                              ; 0f b6 d8
    66906684    mov dx, strict word 00018h                ; ba 18 00
    66916685    mov ax, strict word 00040h                ; b8 40 00
    6692     call 0160eh                               ; e8 37 c9
    6693     jmp near 04f0ah                           ; e9 30 02
    6694     test byte [bp-004h], 001h                 ; f6 46 fc 01
    6695     jne near 04f0ah                           ; 0f 85 28 02
     6686    call 0160eh                               ; e8 a9 c8
     6687    jmp near 04f98h                           ; e9 30 02
     6688    test byte [bp-008h], 001h                 ; f6 46 f8 01
     6689    jne near 04f98h                           ; 0f 85 28 02
    66966690    and bl, 0fbh                              ; 80 e3 fb
    66976691    xor bh, bh                                ; 30 ff
    66986692    mov dx, strict word 00017h                ; ba 17 00
    66996693    mov ax, strict word 00040h                ; b8 40 00
    6700     call 0160eh                               ; e8 1e c9
    6701     mov al, byte [bp-004h]                    ; 8a 46 fc
     6694    call 0160eh                               ; e8 90 c8
     6695    mov al, byte [bp-008h]                    ; 8a 46 f8
    67026696    test AL, strict byte 002h                 ; a8 02
    6703     je short 04d04h                           ; 74 0d
     6697    je short 04d92h                           ; 74 0d
    67046698    and AL, strict byte 0fbh                  ; 24 fb
    6705     mov byte [bp-002h], al                    ; 88 46 fe
     6699    mov byte [bp-006h], al                    ; 88 46 fa
    67066700    movzx bx, al                              ; 0f b6 d8
    67076701    mov dx, 00096h                            ; ba 96 00
    6708     jmp short 04d12h                          ; eb 0e
    6709     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6702    jmp short 04da0h                          ; eb 0e
     6703    mov al, byte [bp-010h]                    ; 8a 46 f0
    67106704    and AL, strict byte 0feh                  ; 24 fe
    6711     mov byte [bp-008h], al                    ; 88 46 f8
     6705    mov byte [bp-00ch], al                    ; 88 46 f4
    67126706    movzx bx, al                              ; 0f b6 d8
    67136707    mov dx, strict word 00018h                ; ba 18 00
    67146708    mov ax, strict word 00040h                ; b8 40 00
    6715     call 0160eh                               ; e8 f6 c8
    6716     jmp near 04f0ah                           ; e9 ef 01
     6709    call 0160eh                               ; e8 68 c8
     6710    jmp near 04f98h                           ; e9 ef 01
    67176711    or bl, 008h                               ; 80 cb 08
    67186712    xor bh, bh                                ; 30 ff
    67196713    mov dx, strict word 00017h                ; ba 17 00
    67206714    mov ax, strict word 00040h                ; b8 40 00
    6721     call 0160eh                               ; e8 e5 c8
    6722     mov al, byte [bp-004h]                    ; 8a 46 fc
     6715    call 0160eh                               ; e8 57 c8
     6716    mov al, byte [bp-008h]                    ; 8a 46 f8
    67236717    test AL, strict byte 002h                 ; a8 02
    6724     je short 04d3dh                           ; 74 0d
     6718    je short 04dcbh                           ; 74 0d
    67256719    or AL, strict byte 008h                   ; 0c 08
    6726     mov byte [bp-002h], al                    ; 88 46 fe
     6720    mov byte [bp-006h], al                    ; 88 46 fa
    67276721    movzx bx, al                              ; 0f b6 d8
    67286722    mov dx, 00096h                            ; ba 96 00
    6729     jmp short 04d4bh                          ; eb 0e
    6730     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6723    jmp short 04dd9h                          ; eb 0e
     6724    mov al, byte [bp-010h]                    ; 8a 46 f0
    67316725    or AL, strict byte 002h                   ; 0c 02
    6732     mov byte [bp-008h], al                    ; 88 46 f8
     6726    mov byte [bp-00ch], al                    ; 88 46 f4
    67336727    movzx bx, al                              ; 0f b6 d8
    67346728    mov dx, strict word 00018h                ; ba 18 00
    67356729    mov ax, strict word 00040h                ; b8 40 00
    6736     call 0160eh                               ; e8 bd c8
    6737     jmp near 04f0ah                           ; e9 b6 01
     6730    call 0160eh                               ; e8 2f c8
     6731    jmp near 04f98h                           ; e9 b6 01
    67386732    and bl, 0f7h                              ; 80 e3 f7
    67396733    xor bh, bh                                ; 30 ff
    67406734    mov dx, strict word 00017h                ; ba 17 00
    67416735    mov ax, strict word 00040h                ; b8 40 00
    6742     call 0160eh                               ; e8 ac c8
    6743     mov al, byte [bp-004h]                    ; 8a 46 fc
     6736    call 0160eh                               ; e8 1e c8
     6737    mov al, byte [bp-008h]                    ; 8a 46 f8
    67446738    test AL, strict byte 002h                 ; a8 02
    6745     je short 04d76h                           ; 74 0d
     6739    je short 04e04h                           ; 74 0d
    67466740    and AL, strict byte 0f7h                  ; 24 f7
    6747     mov byte [bp-002h], al                    ; 88 46 fe
     6741    mov byte [bp-006h], al                    ; 88 46 fa
    67486742    movzx bx, al                              ; 0f b6 d8
    67496743    mov dx, 00096h                            ; ba 96 00
    6750     jmp short 04d84h                          ; eb 0e
    6751     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6744    jmp short 04e12h                          ; eb 0e
     6745    mov al, byte [bp-010h]                    ; 8a 46 f0
    67526746    and AL, strict byte 0fdh                  ; 24 fd
    6753     mov byte [bp-008h], al                    ; 88 46 f8
     6747    mov byte [bp-00ch], al                    ; 88 46 f4
    67546748    movzx bx, al                              ; 0f b6 d8
    67556749    mov dx, strict word 00018h                ; ba 18 00
    67566750    mov ax, strict word 00040h                ; b8 40 00
    6757     call 0160eh                               ; e8 84 c8
    6758     jmp near 04f0ah                           ; e9 7d 01
    6759     test byte [bp-004h], 003h                 ; f6 46 fc 03
    6760     jne near 04f0ah                           ; 0f 85 75 01
    6761     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6751    call 0160eh                               ; e8 f6 c7
     6752    jmp near 04f98h                           ; e9 7d 01
     6753    test byte [bp-008h], 003h                 ; f6 46 f8 03
     6754    jne near 04f98h                           ; 0f 85 75 01
     6755    mov al, byte [bp-010h]                    ; 8a 46 f0
    67626756    or AL, strict byte 020h                   ; 0c 20
    6763     mov byte [bp-008h], al                    ; 88 46 f8
     6757    mov byte [bp-00ch], al                    ; 88 46 f4
    67646758    movzx bx, al                              ; 0f b6 d8
    67656759    mov dx, strict word 00018h                ; ba 18 00
    67666760    mov ax, strict word 00040h                ; b8 40 00
    6767     call 0160eh                               ; e8 65 c8
    6768     mov bl, byte [bp-00ah]                    ; 8a 5e f6
     6761    call 0160eh                               ; e8 d7 c7
     6762    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    67696763    xor bl, 020h                              ; 80 f3 20
    67706764    xor bh, bh                                ; 30 ff
    67716765    mov dx, strict word 00017h                ; ba 17 00
    67726766    mov ax, strict word 00040h                ; b8 40 00
    6773     call 0160eh                               ; e8 54 c8
    6774     jmp near 04f0ah                           ; e9 4d 01
    6775     test byte [bp-004h], 003h                 ; f6 46 fc 03
    6776     jne near 04f0ah                           ; 0f 85 45 01
    6777     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6767    call 0160eh                               ; e8 c6 c7
     6768    jmp near 04f98h                           ; e9 4d 01
     6769    test byte [bp-008h], 003h                 ; f6 46 f8 03
     6770    jne near 04f98h                           ; 0f 85 45 01
     6771    mov al, byte [bp-010h]                    ; 8a 46 f0
    67786772    and AL, strict byte 0dfh                  ; 24 df
    6779     mov byte [bp-008h], al                    ; 88 46 f8
     6773    mov byte [bp-00ch], al                    ; 88 46 f4
    67806774    movzx bx, al                              ; 0f b6 d8
    67816775    mov dx, strict word 00018h                ; ba 18 00
    67826776    mov ax, strict word 00040h                ; b8 40 00
    6783     call 0160eh                               ; e8 35 c8
    6784     jmp near 04f0ah                           ; e9 2e 01
    6785     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6777    call 0160eh                               ; e8 a7 c7
     6778    jmp near 04f98h                           ; e9 2e 01
     6779    mov al, byte [bp-010h]                    ; 8a 46 f0
    67866780    or AL, strict byte 010h                   ; 0c 10
    6787     mov byte [bp-008h], al                    ; 88 46 f8
     6781    mov byte [bp-00ch], al                    ; 88 46 f4
    67886782    movzx bx, al                              ; 0f b6 d8
    67896783    mov dx, strict word 00018h                ; ba 18 00
    67906784    mov ax, strict word 00040h                ; b8 40 00
    6791     call 0160eh                               ; e8 1e c8
    6792     mov bl, byte [bp-00ah]                    ; 8a 5e f6
     6785    call 0160eh                               ; e8 90 c7
     6786    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    67936787    xor bl, 010h                              ; 80 f3 10
    6794     jmp short 04dafh                          ; eb b7
    6795     mov al, byte [bp-00ch]                    ; 8a 46 f4
     6788    jmp short 04e3dh                          ; eb b7
     6789    mov al, byte [bp-010h]                    ; 8a 46 f0
    67966790    and AL, strict byte 0efh                  ; 24 ef
    6797     jmp short 04dcah                          ; eb cb
     6791    jmp short 04e58h                          ; eb cb
    67986792    mov al, bl                                ; 88 d8
    67996793    and AL, strict byte 00ch                  ; 24 0c
    68006794    cmp AL, strict byte 00ch                  ; 3c 0c
    6801     jne short 04e0ch                          ; 75 05
     6795    jne short 04e9ah                          ; 75 05
    68026796    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    6803     test byte [bp-006h], 080h                 ; f6 46 fa 80
    6804     jne near 04f0ah                           ; 0f 85 f6 00
    6805     cmp byte [bp-006h], 058h                  ; 80 7e fa 58
    6806     jbe short 04e38h                          ; 76 1e
    6807     mov bx, 00d32h                            ; bb 32 0d
     6797    test byte [bp-00ah], 080h                 ; f6 46 f6 80
     6798    jne near 04f98h                           ; 0f 85 f6 00
     6799    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
     6800    jbe short 04ec6h                          ; 76 1e
     6801    mov bx, 00d38h                            ; bb 38 0d
    68086802    mov cx, ds                                ; 8c d9
    68096803    mov ax, strict word 00004h                ; b8 04 00
    6810     call 018aeh                               ; e8 89 ca
    6811     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     6804    call 018cch                               ; e8 19 ca
     6805    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    68126806    push ax                                   ; 50
    68136807    push 00511h                               ; 68 11 05
    68146808    push strict byte 00004h                   ; 6a 04
    6815     call 018e9h                               ; e8 b7 ca
     6809    call 0190dh                               ; e8 4d ca
    68166810    add sp, strict byte 00006h                ; 83 c4 06
    6817     jmp near 04f28h                           ; e9 f0 00
     6811    jmp near 04fb6h                           ; e9 f0 00
    68186812    test bl, 008h                             ; f6 c3 08
    6819     je short 04e4fh                           ; 74 12
    6820     movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     6813    je short 04eddh                           ; 74 12
     6814    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68216815    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6822     mov dl, byte [si+00d86h]                  ; 8a 94 86 0d
    6823     mov ax, word [si+00d86h]                  ; 8b 84 86 0d
    6824     jmp near 04edbh                           ; e9 8c 00
     6816    mov dl, byte [si+00d8ch]                  ; 8a 94 8c 0d
     6817    mov ax, word [si+00d8ch]                  ; 8b 84 8c 0d
     6818    jmp near 04f69h                           ; e9 8c 00
    68256819    test bl, 004h                             ; f6 c3 04
    6826     je short 04e66h                           ; 74 12
    6827     movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     6820    je short 04ef4h                           ; 74 12
     6821    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68286822    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6829     mov dl, byte [si+00d84h]                  ; 8a 94 84 0d
    6830     mov ax, word [si+00d84h]                  ; 8b 84 84 0d
    6831     jmp near 04edbh                           ; e9 75 00
    6832     mov al, byte [bp-002h]                    ; 8a 46 fe
     6823    mov dl, byte [si+00d8ah]                  ; 8a 94 8a 0d
     6824    mov ax, word [si+00d8ah]                  ; 8b 84 8a 0d
     6825    jmp near 04f69h                           ; e9 75 00
     6826    mov al, byte [bp-006h]                    ; 8a 46 fa
    68336827    and AL, strict byte 002h                  ; 24 02
    68346828    test al, al                               ; 84 c0
    6835     jbe short 04e84h                          ; 76 15
    6836     mov al, byte [bp-006h]                    ; 8a 46 fa
     6829    jbe short 04f12h                          ; 76 15
     6830    mov al, byte [bp-00ah]                    ; 8a 46 f6
    68376831    cmp AL, strict byte 047h                  ; 3c 47
    6838     jc short 04e84h                           ; 72 0e
     6832    jc short 04f12h                           ; 72 0e
    68396833    cmp AL, strict byte 053h                  ; 3c 53
    6840     jnbe short 04e84h                         ; 77 0a
     6834    jnbe short 04f12h                         ; 77 0a
    68416835    mov DL, strict byte 0e0h                  ; b2 e0
    68426836    movzx si, al                              ; 0f b6 f0
    68436837    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6844     jmp short 04ed7h                          ; eb 53
     6838    jmp short 04f65h                          ; eb 53
    68456839    test bl, 003h                             ; f6 c3 03
    6846     je short 04eb6h                           ; 74 2d
    6847     movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     6840    je short 04f44h                           ; 74 2d
     6841    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68486842    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6849     movzx ax, byte [si+00d88h]                ; 0f b6 84 88 0d
     6843    movzx ax, byte [si+00d8eh]                ; 0f b6 84 8e 0d
    68506844    movzx dx, bl                              ; 0f b6 d3
    68516845    test dx, ax                               ; 85 c2
    6852     je short 04ea6h                           ; 74 0a
    6853     mov dl, byte [si+00d80h]                  ; 8a 94 80 0d
    6854     mov ax, word [si+00d80h]                  ; 8b 84 80 0d
    6855     jmp short 04eaeh                          ; eb 08
    6856     mov dl, byte [si+00d82h]                  ; 8a 94 82 0d
    6857     mov ax, word [si+00d82h]                  ; 8b 84 82 0d
     6846    je short 04f34h                           ; 74 0a
     6847    mov dl, byte [si+00d86h]                  ; 8a 94 86 0d
     6848    mov ax, word [si+00d86h]                  ; 8b 84 86 0d
     6849    jmp short 04f3ch                          ; eb 08
     6850    mov dl, byte [si+00d88h]                  ; 8a 94 88 0d
     6851    mov ax, word [si+00d88h]                  ; 8b 84 88 0d
    68586852    shr ax, 008h                              ; c1 e8 08
    6859     mov byte [bp-006h], al                    ; 88 46 fa
    6860     jmp short 04ee1h                          ; eb 2b
    6861     movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     6853    mov byte [bp-00ah], al                    ; 88 46 f6
     6854    jmp short 04f6fh                          ; eb 2b
     6855    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68626856    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6863     movzx ax, byte [si+00d88h]                ; 0f b6 84 88 0d
     6857    movzx ax, byte [si+00d8eh]                ; 0f b6 84 8e 0d
    68646858    movzx dx, bl                              ; 0f b6 d3
    68656859    test dx, ax                               ; 85 c2
    6866     je short 04ed3h                           ; 74 0a
    6867     mov dl, byte [si+00d82h]                  ; 8a 94 82 0d
    6868     mov ax, word [si+00d82h]                  ; 8b 84 82 0d
    6869     jmp short 04edbh                          ; eb 08
    6870     mov dl, byte [si+00d80h]                  ; 8a 94 80 0d
    6871     mov ax, word [si+00d80h]                  ; 8b 84 80 0d
     6860    je short 04f61h                           ; 74 0a
     6861    mov dl, byte [si+00d88h]                  ; 8a 94 88 0d
     6862    mov ax, word [si+00d88h]                  ; 8b 84 88 0d
     6863    jmp short 04f69h                          ; eb 08
     6864    mov dl, byte [si+00d86h]                  ; 8a 94 86 0d
     6865    mov ax, word [si+00d86h]                  ; 8b 84 86 0d
    68726866    shr ax, 008h                              ; c1 e8 08
    6873     mov byte [bp-006h], al                    ; 88 46 fa
    6874     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6875     jne short 04f01h                          ; 75 1a
     6867    mov byte [bp-00ah], al                    ; 88 46 f6
     6868    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
     6869    jne short 04f8fh                          ; 75 1a
    68766870    test dl, dl                               ; 84 d2
    6877     jne short 04f01h                          ; 75 16
    6878     mov bx, 00d32h                            ; bb 32 0d
     6871    jne short 04f8fh                          ; 75 16
     6872    mov bx, 00d38h                            ; bb 38 0d
    68796873    mov cx, ds                                ; 8c d9
    68806874    mov ax, strict word 00004h                ; b8 04 00
    6881     call 018aeh                               ; e8 b8 c9
     6875    call 018cch                               ; e8 48 c9
    68826876    push 00548h                               ; 68 48 05
    68836877    push strict byte 00004h                   ; 6a 04
    6884     call 018e9h                               ; e8 eb c9
     6878    call 0190dh                               ; e8 81 c9
    68856879    add sp, strict byte 00004h                ; 83 c4 04
    68866880    xor dh, dh                                ; 30 f6
    6887     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    6888     call 04b44h                               ; e8 3a fc
    6889     mov al, byte [bp-006h]                    ; 8a 46 fa
     6881    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     6882    call 04bcdh                               ; e8 35 fc
     6883    mov al, byte [bp-00ah]                    ; 8a 46 f6
    68906884    and AL, strict byte 07fh                  ; 24 7f
    68916885    cmp AL, strict byte 01dh                  ; 3c 1d
    6892     je short 04f17h                           ; 74 04
    6893     and byte [bp-002h], 0feh                  ; 80 66 fe fe
    6894     and byte [bp-002h], 0fdh                  ; 80 66 fe fd
    6895     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     6886    je short 04fa5h                           ; 74 04
     6887    and byte [bp-006h], 0feh                  ; 80 66 fa fe
     6888    and byte [bp-006h], 0fdh                  ; 80 66 fa fd
     6889    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    68966890    mov dx, 00096h                            ; ba 96 00
    68976891    mov ax, strict word 00040h                ; b8 40 00
    6898     call 0160eh                               ; e8 e6 c6
    6899     leave                                     ; c9
     6892    call 0160eh                               ; e8 58 c6
     6893    lea sp, [bp-004h]                         ; 8d 66 fc
    69006894    pop di                                    ; 5f
    69016895    pop si                                    ; 5e
     6896    pop bp                                    ; 5d
    69026897    retn                                      ; c3
    6903 dequeue_key_:                                ; 0xf4f2c LB 0x90
     6898dequeue_key_:                                ; 0xf4fbd LB 0x94
     6899    push bp                                   ; 55
     6900    mov bp, sp                                ; 89 e5
    69046901    push si                                   ; 56
    69056902    push di                                   ; 57
    6906     enter 00004h, 000h                        ; c8 04 00 00
     6903    push ax                                   ; 50
     6904    push ax                                   ; 50
    69076905    mov di, ax                                ; 89 c7
    6908     mov word [bp-002h], dx                    ; 89 56 fe
     6906    mov word [bp-006h], dx                    ; 89 56 fa
    69096907    mov si, bx                                ; 89 de
    6910     mov word [bp-004h], cx                    ; 89 4e fc
     6908    mov word [bp-008h], cx                    ; 89 4e f8
    69116909    mov dx, strict word 0001ah                ; ba 1a 00
    69126910    mov ax, strict word 00040h                ; b8 40 00
    6913     call 0161ch                               ; e8 d7 c6
     6911    call 0161ch                               ; e8 45 c6
    69146912    mov bx, ax                                ; 89 c3
    69156913    mov dx, strict word 0001ch                ; ba 1c 00
    69166914    mov ax, strict word 00040h                ; b8 40 00
    6917     call 0161ch                               ; e8 cc c6
     6915    call 0161ch                               ; e8 3a c6
    69186916    cmp bx, ax                                ; 39 c3
    6919     je short 04f91h                           ; 74 3d
     6917    je short 05023h                           ; 74 3d
    69206918    mov dx, bx                                ; 89 da
    69216919    mov ax, strict word 00040h                ; b8 40 00
    6922     call 01600h                               ; e8 a4 c6
     6920    call 01600h                               ; e8 12 c6
    69236921    mov cl, al                                ; 88 c1
    69246922    lea dx, [bx+001h]                         ; 8d 57 01
    69256923    mov ax, strict word 00040h                ; b8 40 00
    6926     call 01600h                               ; e8 99 c6
    6927     mov es, [bp-004h]                         ; 8e 46 fc
     6924    call 01600h                               ; e8 07 c6
     6925    mov es, [bp-008h]                         ; 8e 46 f8
    69286926    mov byte [es:si], cl                      ; 26 88 0c
    6929     mov es, [bp-002h]                         ; 8e 46 fe
     6927    mov es, [bp-006h]                         ; 8e 46 fa
    69306928    mov byte [es:di], al                      ; 26 88 05
    6931     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    6932     je short 04f8ch                           ; 74 13
     6929    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
     6930    je short 0501eh                           ; 74 13
    69336931    inc bx                                    ; 43
    69346932    inc bx                                    ; 43
    69356933    cmp bx, strict byte 0003eh                ; 83 fb 3e
    6936     jc short 04f83h                           ; 72 03
     6934    jc short 05015h                           ; 72 03
    69376935    mov bx, strict word 0001eh                ; bb 1e 00
    69386936    mov dx, strict word 0001ah                ; ba 1a 00
    69396937    mov ax, strict word 00040h                ; b8 40 00
    6940     call 0162ah                               ; e8 9e c6
     6938    call 0162ah                               ; e8 0c c6
    69416939    mov ax, strict word 00001h                ; b8 01 00
    6942     jmp short 04f93h                          ; eb 02
     6940    jmp short 05025h                          ; eb 02
    69436941    xor ax, ax                                ; 31 c0
    6944     leave                                     ; c9
     6942    lea sp, [bp-004h]                         ; 8d 66 fc
    69456943    pop di                                    ; 5f
    69466944    pop si                                    ; 5e
     6945    pop bp                                    ; 5d
    69476946    retn 00002h                               ; c2 02 00
    69486947    mov byte [01292h], AL                     ; a2 92 12
     
    69506949    or cl, byte [bx+di]                       ; 0a 09
    69516950    add ax, 00102h                            ; 05 02 01
    6952     add byte [bx+si+052h], bl                 ; 00 58 52
    6953     outsb                                     ; 6e
    6954     push ax                                   ; 50
    6955     mov CH, strict byte 050h                  ; b5 50
    6956     add word [bx+di+011h], dx                 ; 01 51 11
     6951    add bh, ch                                ; 00 ef
     6952    push dx                                   ; 52
     6953    add ax, 04c51h                            ; 05 51 4c
    69576954    push cx                                   ; 51
    6958     cmp dx, word [bx+di+044h]                 ; 3b 51 44
     6955    cbw                                       ; 98
    69596956    push cx                                   ; 51
    6960     mov CH, strict byte 051h                  ; b5 51
    6961     out strict byte 051h, AL                  ; e6 51
    6962     adc dx, word [bp+si+04dh]                 ; 13 52 4d
     6957    test AL, strict byte 051h                 ; a8 51
     6958    rcl byte [bx+di-025h], CL                 ; d2 51 db
     6959    push cx                                   ; 51
     6960    dec sp                                    ; 4c
    69636961    push dx                                   ; 52
    6964     wait                                      ; 9b
     6962    jnl short 0509dh                          ; 7d 52
     6963    stosb                                     ; aa
    69656964    push dx                                   ; 52
    6966 _int16_function:                             ; 0xf4fbc LB 0x2e2
     6965    in AL, strict byte 052h                   ; e4 52
     6966    db  032h
     6967    push bx                                   ; 53
     6968_int16_function:                             ; 0xf5051 LB 0x2e7
     6969    push bp                                   ; 55
     6970    mov bp, sp                                ; 89 e5
    69676971    push di                                   ; 57
    6968     enter 00006h, 000h                        ; c8 06 00 00
     6972    sub sp, strict byte 00006h                ; 83 ec 06
    69696973    mov dx, strict word 00017h                ; ba 17 00
    69706974    mov ax, strict word 00040h                ; b8 40 00
    6971     call 01600h                               ; e8 36 c6
     6975    call 01600h                               ; e8 9f c5
    69726976    mov cl, al                                ; 88 c1
    69736977    mov bh, al                                ; 88 c7
    69746978    mov dx, 00097h                            ; ba 97 00
    69756979    mov ax, strict word 00040h                ; b8 40 00
    6976     call 01600h                               ; e8 29 c6
     6980    call 01600h                               ; e8 92 c5
    69776981    mov bl, al                                ; 88 c3
    69786982    movzx dx, cl                              ; 0f b6 d1
     
    69836987    xor al, dl                                ; 30 d0
    69846988    test ax, ax                               ; 85 c0
    6985     je short 0504ch                           ; 74 60
     6989    je short 050e3h                           ; 74 60
    69866990    cli                                       ; fa
    69876991    mov AL, strict byte 0edh                  ; b0 ed
     
    69936997    ; sub ah, ah                                ; 2a e4
    69946998    test AL, strict byte 001h                 ; a8 01
    6995     jne short 05005h                          ; 75 08
     6999    jne short 0509ch                          ; 75 08
    69967000    mov AL, strict byte 021h                  ; b0 21
    69977001    mov dx, 00080h                            ; ba 80 00
    69987002    out DX, AL                                ; ee
    6999     jmp short 04ff3h                          ; eb ee
     7003    jmp short 0508ah                          ; eb ee
    70007004    mov dx, strict word 00060h                ; ba 60 00
    70017005    in AL, DX                                 ; ec
     
    70037007    ; sub ah, ah                                ; 2a e4
    70047008    cmp ax, 000fah                            ; 3d fa 00
    7005     jne short 0504bh                          ; 75 3b
     7009    jne short 050e2h                          ; 75 3b
    70067010    and bl, 0f8h                              ; 80 e3 f8
    70077011    movzx ax, bh                              ; 0f b6 c7
     
    70197023    ; sub ah, ah                                ; 2a e4
    70207024    test AL, strict byte 001h                 ; a8 01
    7021     jne short 0503ah                          ; 75 08
     7025    jne short 050d1h                          ; 75 08
    70227026    mov AL, strict byte 021h                  ; b0 21
    70237027    mov dx, 00080h                            ; ba 80 00
    70247028    out DX, AL                                ; ee
    7025     jmp short 05028h                          ; eb ee
     7029    jmp short 050bfh                          ; eb ee
    70267030    mov dx, strict word 00060h                ; ba 60 00
    70277031    in AL, DX                                 ; ec
     
    70317035    mov dx, 00097h                            ; ba 97 00
    70327036    mov ax, strict word 00040h                ; b8 40 00
    7033     call 0160eh                               ; e8 c3 c5
     7037    call 0160eh                               ; e8 2c c5
    70347038    sti                                       ; fb
    7035     mov ax, word [bp+014h]                    ; 8b 46 14
     7039    mov ax, word [bp+012h]                    ; 8b 46 12
    70367040    shr ax, 008h                              ; c1 e8 08
    70377041    cmp ax, 000a2h                            ; 3d a2 00
    7038     jnbe near 05258h                          ; 0f 87 ff 01
     7042    jnbe near 052efh                          ; 0f 87 ff 01
    70397043    push CS                                   ; 0e
    70407044    pop ES                                    ; 07
    70417045    mov cx, strict word 0000ch                ; b9 0c 00
    7042     mov di, 04f99h                            ; bf 99 4f
     7046    mov di, 0502eh                            ; bf 2e 50
    70437047    repne scasb                               ; f2 ae
    70447048    sal cx, 1                                 ; d1 e1
    70457049    mov di, cx                                ; 89 cf
    7046     mov ax, word [cs:di+04fa4h]               ; 2e 8b 85 a4 4f
     7050    mov ax, word [cs:di+05039h]               ; 2e 8b 85 39 50
    70477051    jmp ax                                    ; ff e0
    70487052    push strict byte 00001h                   ; 6a 01
    70497053    mov cx, ss                                ; 8c d1
    7050     lea bx, [bp-006h]                         ; 8d 5e fa
     7054    lea bx, [bp-008h]                         ; 8d 5e f8
    70517055    mov dx, ss                                ; 8c d2
    7052     lea ax, [bp-004h]                         ; 8d 46 fc
    7053     call 04f2ch                               ; e8 af fe
     7056    lea ax, [bp-006h]                         ; 8d 46 fa
     7057    call 04fbdh                               ; e8 a9 fe
    70547058    test ax, ax                               ; 85 c0
    7055     jne short 0508ch                          ; 75 0b
     7059    jne short 05123h                          ; 75 0b
    70567060    push 0057fh                               ; 68 7f 05
    70577061    push strict byte 00007h                   ; 6a 07
    7058     call 018e9h                               ; e8 60 c8
     7062    call 0190dh                               ; e8 ed c7
    70597063    add sp, strict byte 00004h                ; 83 c4 04
    7060     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7061     je short 05098h                           ; 74 06
    7062     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7063     je short 0509eh                           ; 74 06
    7064     cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    7065     jne short 050a2h                          ; 75 04
    7066     mov byte [bp-006h], 000h                  ; c6 46 fa 00
    7067     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     7064    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     7065    je short 0512fh                           ; 74 06
     7066    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
     7067    je short 05135h                           ; 74 06
     7068    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
     7069    jne short 05139h                          ; 75 04
     7070    mov byte [bp-008h], 000h                  ; c6 46 f8 00
     7071    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    70687072    sal dx, 008h                              ; c1 e2 08
    7069     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     7073    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    70707074    or dx, ax                                 ; 09 c2
    7071     mov word [bp+014h], dx                    ; 89 56 14
    7072     leave                                     ; c9
    7073     pop di                                    ; 5f
    7074     retn                                      ; c3
    7075     or word [bp+01eh], 00200h                 ; 81 4e 1e 00 02
     7075    mov word [bp+012h], dx                    ; 89 56 12
     7076    jmp near 05332h                           ; e9 e6 01
     7077    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    70767078    push strict byte 00000h                   ; 6a 00
    70777079    mov cx, ss                                ; 8c d1
    7078     lea bx, [bp-006h]                         ; 8d 5e fa
     7080    lea bx, [bp-008h]                         ; 8d 5e f8
    70797081    mov dx, ss                                ; 8c d2
    7080     lea ax, [bp-004h]                         ; 8d 46 fc
    7081     call 04f2ch                               ; e8 63 fe
     7082    lea ax, [bp-006h]                         ; 8d 46 fa
     7083    call 04fbdh                               ; e8 5d fe
    70827084    test ax, ax                               ; 85 c0
    7083     jne short 050d4h                          ; 75 07
    7084     or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
    7085     leave                                     ; c9
    7086     pop di                                    ; 5f
    7087     retn                                      ; c3
    7088     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7089     je short 050e0h                           ; 74 06
    7090     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7091     je short 050e6h                           ; 74 06
    7092     cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    7093     jne short 050eah                          ; 75 04
    7094     mov byte [bp-006h], 000h                  ; c6 46 fa 00
    7095     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     7085    jne short 0516bh                          ; 75 07
     7086    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
     7087    jmp near 05332h                           ; e9 c7 01
     7088    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     7089    je short 05177h                           ; 74 06
     7090    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
     7091    je short 0517dh                           ; 74 06
     7092    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
     7093    jne short 05181h                          ; 75 04
     7094    mov byte [bp-008h], 000h                  ; c6 46 f8 00
     7095    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    70967096    sal dx, 008h                              ; c1 e2 08
    7097     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     7097    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    70987098    or dx, ax                                 ; 09 c2
    7099     mov word [bp+014h], dx                    ; 89 56 14
    7100     and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
    7101     leave                                     ; c9
    7102     pop di                                    ; 5f
    7103     retn                                      ; c3
     7099    mov word [bp+012h], dx                    ; 89 56 12
     7100    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
     7101    jmp near 05332h                           ; e9 9a 01
    71047102    mov dx, strict word 00017h                ; ba 17 00
    71057103    mov ax, strict word 00040h                ; b8 40 00
    7106     call 01600h                               ; e8 f6 c4
    7107     mov dx, word [bp+014h]                    ; 8b 56 14
     7104    call 01600h                               ; e8 5f c4
     7105    mov dx, word [bp+012h]                    ; 8b 56 12
    71087106    mov dl, al                                ; 88 c2
    7109     jmp short 050afh                          ; eb 9e
    7110     mov al, byte [bp+012h]                    ; 8a 46 12
     7107    jmp short 05146h                          ; eb 9e
     7108    mov al, byte [bp+010h]                    ; 8a 46 10
    71117109    movzx dx, al                              ; 0f b6 d0
    7112     mov ax, word [bp+012h]                    ; 8b 46 12
     7110    mov ax, word [bp+010h]                    ; 8b 46 10
    71137111    shr ax, 008h                              ; c1 e8 08
    71147112    xor ah, ah                                ; 30 e4
    7115     call 04b44h                               ; e8 22 fa
     7113    call 04bcdh                               ; e8 14 fa
    71167114    test ax, ax                               ; 85 c0
    7117     jne short 05133h                          ; 75 0d
    7118     mov ax, word [bp+014h]                    ; 8b 46 14
     7115    jne short 051cah                          ; 75 0d
     7116    mov ax, word [bp+012h]                    ; 8b 46 12
    71197117    xor al, al                                ; 30 c0
    71207118    or AL, strict byte 001h                   ; 0c 01
    7121     mov word [bp+014h], ax                    ; 89 46 14
    7122     leave                                     ; c9
    7123     pop di                                    ; 5f
    7124     retn                                      ; c3
    7125     and word [bp+014h], 0ff00h                ; 81 66 14 00 ff
    7126     leave                                     ; c9
    7127     pop di                                    ; 5f
    7128     retn                                      ; c3
    7129     mov ax, word [bp+014h]                    ; 8b 46 14
     7119    mov word [bp+012h], ax                    ; 89 46 12
     7120    jmp near 05332h                           ; e9 68 01
     7121    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
     7122    jmp near 05332h                           ; e9 60 01
     7123    mov ax, word [bp+012h]                    ; 8b 46 12
    71307124    xor al, al                                ; 30 c0
    71317125    or AL, strict byte 030h                   ; 0c 30
    7132     jmp short 0512dh                          ; eb e9
    7133     mov byte [bp-002h], 002h                  ; c6 46 fe 02
     7126    jmp short 051c4h                          ; eb e9
     7127    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    71347128    xor cx, cx                                ; 31 c9
    71357129    cli                                       ; fa
     
    71437137    ; sub ah, ah                                ; 2a e4
    71447138    test AL, strict byte 001h                 ; a8 01
    7145     jne short 0516bh                          ; 75 0d
     7139    jne short 05202h                          ; 75 0d
    71467140    dec bx                                    ; 4b
    71477141    test bx, bx                               ; 85 db
    7148     jbe short 0516bh                          ; 76 08
     7142    jbe short 05202h                          ; 76 08
    71497143    mov dx, 00080h                            ; ba 80 00
    71507144    in AL, DX                                 ; ec
    71517145    db  02ah, 0e4h
    71527146    ; sub ah, ah                                ; 2a e4
    7153     jmp short 05154h                          ; eb e9
     7147    jmp short 051ebh                          ; eb e9
    71547148    test bx, bx                               ; 85 db
    7155     jbe short 051afh                          ; 76 40
     7149    jbe short 05246h                          ; 76 40
    71567150    mov dx, strict word 00060h                ; ba 60 00
    71577151    in AL, DX                                 ; ec
     
    71597153    ; sub ah, ah                                ; 2a e4
    71607154    cmp ax, 000fah                            ; 3d fa 00
    7161     jne short 051afh                          ; 75 35
     7155    jne short 05246h                          ; 75 35
    71627156    mov bx, strict word 0ffffh                ; bb ff ff
    71637157    mov dx, strict word 00064h                ; ba 64 00
     
    71667160    ; sub ah, ah                                ; 2a e4
    71677161    test AL, strict byte 001h                 ; a8 01
    7168     jne short 05194h                          ; 75 0d
     7162    jne short 0522bh                          ; 75 0d
    71697163    dec bx                                    ; 4b
    71707164    test bx, bx                               ; 85 db
    7171     jbe short 05194h                          ; 76 08
     7165    jbe short 0522bh                          ; 76 08
    71727166    mov dx, 00080h                            ; ba 80 00
    71737167    in AL, DX                                 ; ec
    71747168    db  02ah, 0e4h
    71757169    ; sub ah, ah                                ; 2a e4
    7176     jmp short 0517dh                          ; eb e9
     7170    jmp short 05214h                          ; eb e9
    71777171    test bx, bx                               ; 85 db
    7178     jbe short 051a6h                          ; 76 0e
     7172    jbe short 0523dh                          ; 76 0e
    71797173    shr cx, 008h                              ; c1 e9 08
    71807174    mov dx, strict word 00060h                ; ba 60 00
     
    71847178    sal ax, 008h                              ; c1 e0 08
    71857179    or cx, ax                                 ; 09 c1
    7186     dec byte [bp-002h]                        ; fe 4e fe
    7187     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    7188     jnbe short 0517ah                         ; 77 cb
    7189     mov word [bp+00eh], cx                    ; 89 4e 0e
    7190     leave                                     ; c9
    7191     pop di                                    ; 5f
    7192     retn                                      ; c3
     7180    dec byte [bp-004h]                        ; fe 4e fc
     7181    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     7182    jnbe short 05211h                         ; 77 cb
     7183    mov word [bp+00ch], cx                    ; 89 4e 0c
     7184    jmp near 05332h                           ; e9 e6 00
    71937185    push strict byte 00001h                   ; 6a 01
    71947186    mov cx, ss                                ; 8c d1
    7195     lea bx, [bp-006h]                         ; 8d 5e fa
     7187    lea bx, [bp-008h]                         ; 8d 5e f8
    71967188    mov dx, ss                                ; 8c d2
    7197     lea ax, [bp-004h]                         ; 8d 46 fc
    7198     call 04f2ch                               ; e8 68 fd
     7189    lea ax, [bp-006h]                         ; 8d 46 fa
     7190    call 04fbdh                               ; e8 62 fd
    71997191    test ax, ax                               ; 85 c0
    7200     jne short 051d3h                          ; 75 0b
     7192    jne short 0526ah                          ; 75 0b
    72017193    push 0057fh                               ; 68 7f 05
    72027194    push strict byte 00007h                   ; 6a 07
    7203     call 018e9h                               ; e8 19 c7
     7195    call 0190dh                               ; e8 a6 c6
    72047196    add sp, strict byte 00004h                ; 83 c4 04
    7205     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7206     je near 050a2h                            ; 0f 84 c7 fe
    7207     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7208     je near 0509eh                            ; 0f 84 bb fe
    7209     jmp near 050a2h                           ; e9 bc fe
    7210     or word [bp+01eh], 00200h                 ; 81 4e 1e 00 02
     7197    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     7198    je near 05139h                            ; 0f 84 c7 fe
     7199    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
     7200    je near 05135h                            ; 0f 84 bb fe
     7201    jmp near 05139h                           ; e9 bc fe
     7202    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    72117203    push strict byte 00000h                   ; 6a 00
    72127204    mov cx, ss                                ; 8c d1
    7213     lea bx, [bp-006h]                         ; 8d 5e fa
     7205    lea bx, [bp-008h]                         ; 8d 5e f8
    72147206    mov dx, ss                                ; 8c d2
    7215     lea ax, [bp-004h]                         ; 8d 46 fc
    7216     call 04f2ch                               ; e8 32 fd
     7207    lea ax, [bp-006h]                         ; 8d 46 fa
     7208    call 04fbdh                               ; e8 2c fd
    72177209    test ax, ax                               ; 85 c0
    7218     je near 050cdh                            ; 0f 84 cd fe
    7219     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7220     je near 050eah                            ; 0f 84 e2 fe
    7221     cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    7222     je near 050e6h                            ; 0f 84 d6 fe
    7223     jmp near 050eah                           ; e9 d7 fe
     7210    je near 05164h                            ; 0f 84 cd fe
     7211    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     7212    je near 05181h                            ; 0f 84 e2 fe
     7213    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
     7214    je near 0517dh                            ; 0f 84 d6 fe
     7215    jmp near 05181h                           ; e9 d7 fe
    72247216    mov dx, strict word 00017h                ; ba 17 00
    72257217    mov ax, strict word 00040h                ; b8 40 00
    7226     call 01600h                               ; e8 e4 c3
    7227     mov dx, word [bp+014h]                    ; 8b 56 14
     7218    call 01600h                               ; e8 4d c3
     7219    mov dx, word [bp+012h]                    ; 8b 56 12
    72287220    mov dl, al                                ; 88 c2
    7229     mov word [bp+014h], dx                    ; 89 56 14
     7221    mov word [bp+012h], dx                    ; 89 56 12
    72307222    mov dx, strict word 00018h                ; ba 18 00
    72317223    mov ax, strict word 00040h                ; b8 40 00
    7232     call 01600h                               ; e8 d3 c3
     7224    call 01600h                               ; e8 3c c3
    72337225    mov bh, al                                ; 88 c7
    72347226    and bh, 073h                              ; 80 e7 73
    72357227    mov dx, 00096h                            ; ba 96 00
    72367228    mov ax, strict word 00040h                ; b8 40 00
    7237     call 01600h                               ; e8 c5 c3
     7229    call 01600h                               ; e8 2e c3
    72387230    and AL, strict byte 00ch                  ; 24 0c
    72397231    or bh, al                                 ; 08 c7
    7240     mov dx, word [bp+014h]                    ; 8b 56 14
     7232    mov dx, word [bp+012h]                    ; 8b 56 12
    72417233    xor dh, dh                                ; 30 f6
    72427234    movzx ax, bh                              ; 0f b6 c7
    72437235    sal ax, 008h                              ; c1 e0 08
    7244     jmp near 050adh                           ; e9 60 fe
    7245     mov ax, word [bp+014h]                    ; 8b 46 14
     7236    jmp near 05144h                           ; e9 60 fe
     7237    mov ax, word [bp+012h]                    ; 8b 46 12
    72467238    xor ah, ah                                ; 30 e4
    72477239    or ah, 080h                               ; 80 cc 80
    7248     jmp near 0512dh                           ; e9 d5 fe
    7249     mov bx, 00d32h                            ; bb 32 0d
     7240    jmp near 051c4h                           ; e9 d5 fe
     7241    mov bx, 00d38h                            ; bb 38 0d
    72507242    mov cx, ds                                ; 8c d9
    72517243    mov ax, strict word 00004h                ; b8 04 00
    7252     call 018aeh                               ; e8 4b c6
    7253     mov ax, word [bp+014h]                    ; 8b 46 14
     7244    call 018cch                               ; e8 d2 c5
     7245    mov ax, word [bp+012h]                    ; 8b 46 12
    72547246    shr ax, 008h                              ; c1 e8 08
    72557247    push ax                                   ; 50
    72567248    push 005a3h                               ; 68 a3 05
    72577249    push strict byte 00004h                   ; 6a 04
    7258     call 018e9h                               ; e8 77 c6
     7250    call 0190dh                               ; e8 04 c6
    72597251    add sp, strict byte 00006h                ; 83 c4 06
    7260     mov bx, 00d32h                            ; bb 32 0d
     7252    mov bx, 00d38h                            ; bb 38 0d
    72617253    mov cx, ds                                ; 8c d9
    72627254    mov ax, strict word 00004h                ; b8 04 00
    7263     call 018aeh                               ; e8 2e c6
     7255    call 018cch                               ; e8 b5 c5
     7256    mov ax, word [bp+00eh]                    ; 8b 46 0e
     7257    push ax                                   ; 50
    72647258    mov ax, word [bp+010h]                    ; 8b 46 10
     7259    push ax                                   ; 50
     7260    mov ax, word [bp+00ch]                    ; 8b 46 0c
    72657261    push ax                                   ; 50
    72667262    mov ax, word [bp+012h]                    ; 8b 46 12
    72677263    push ax                                   ; 50
    7268     mov ax, word [bp+00eh]                    ; 8b 46 0e
    7269     push ax                                   ; 50
    7270     mov ax, word [bp+014h]                    ; 8b 46 14
    7271     push ax                                   ; 50
    72727264    push 005cbh                               ; 68 cb 05
    72737265    push strict byte 00004h                   ; 6a 04
    7274     call 018e9h                               ; e8 51 c6
     7266    call 0190dh                               ; e8 de c5
    72757267    add sp, strict byte 0000ch                ; 83 c4 0c
    7276     leave                                     ; c9
     7268    lea sp, [bp-002h]                         ; 8d 66 fe
    72777269    pop di                                    ; 5f
     7270    pop bp                                    ; 5d
    72787271    retn                                      ; c3
    7279 set_geom_lba_:                               ; 0xf529e LB 0x9e
     7272set_geom_lba_:                               ; 0xf5338 LB 0x9e
    72807273    push si                                   ; 56
    72817274    push di                                   ; 57
     
    72897282    mov di, 000ffh                            ; bf ff 00
    72907283    xor bx, bx                                ; 31 db
    7291     jmp short 052bfh                          ; eb 05
     7284    jmp short 05359h                          ; eb 05
    72927285    cmp bx, strict byte 00004h                ; 83 fb 04
    7293     jnl short 052d5h                          ; 7d 16
     7286    jnl short 0536fh                          ; 7d 16
    72947287    cmp dx, word [bp-002h]                    ; 3b 56 fe
    7295     jnbe short 052cbh                         ; 77 07
    7296     jne short 052ceh                          ; 75 08
     7288    jnbe short 05365h                         ; 77 07
     7289    jne short 05368h                          ; 75 08
    72977290    cmp ax, word [bp-004h]                    ; 3b 46 fc
    7298     jc short 052ceh                           ; 72 03
     7291    jc short 05368h                           ; 72 03
    72997292    inc di                                    ; 47
    73007293    shr di, 1                                 ; d1 ef
     
    73027295    rcr ax, 1                                 ; d1 d8
    73037296    inc bx                                    ; 43
    7304     jmp short 052bah                          ; eb e5
     7297    jmp short 05354h                          ; eb e5
    73057298    mov ax, di                                ; 89 f8
    73067299    xor dx, dx                                ; 31 d2
    73077300    mov bx, strict word 0003fh                ; bb 3f 00
    73087301    xor cx, cx                                ; 31 c9
    7309     call 09049h                               ; e8 68 3d
     7302    call 09219h                               ; e8 9e 3e
    73107303    mov bx, ax                                ; 89 c3
    73117304    mov cx, dx                                ; 89 d1
    73127305    mov ax, word [bp-004h]                    ; 8b 46 fc
    73137306    mov dx, word [bp-002h]                    ; 8b 56 fe
    7314     call 09010h                               ; e8 22 3d
     7307    call 091e0h                               ; e8 58 3e
    73157308    mov word [es:si+002h], ax                 ; 26 89 44 02
    73167309    cmp ax, 00400h                            ; 3d 00 04
    7317     jbe short 052fdh                          ; 76 06
     7310    jbe short 05397h                          ; 76 06
    73187311    mov word [es:si+002h], 00400h             ; 26 c7 44 02 00 04
    73197312    mov word [es:si], di                      ; 26 89 3c
     
    73237316    pop si                                    ; 5e
    73247317    retn                                      ; c3
    7325     les dx, [bp+di-018h]                      ; c4 53 e8
    7326     push bx                                   ; 53
    7327     adc ax, 01554h                            ; 15 54 15
     7318    pushaw                                    ; 60
    73287319    push sp                                   ; 54
    7329     adc ax, 0ed54h                            ; 15 54 ed
     7320    xchg byte [si-04dh], dl                   ; 86 54 b3
     7321    push sp                                   ; 54
     7322    mov BL, strict byte 054h                  ; b3 54
     7323    mov BL, strict byte 054h                  ; b3 54
     7324    mov dx, word [bp-047h]                    ; 8b 56 b9
     7325    push di                                   ; 57
     7326    mov cx, 0a457h                            ; b9 57 a4
     7327    push si                                   ; 56
     7328    xchg si, ax                               ; 96
     7329    push di                                   ; 57
     7330    mov cx, 0b957h                            ; b9 57 b9
     7331    push di                                   ; 57
     7332    xchg si, ax                               ; 96
     7333    push di                                   ; 57
     7334    xchg si, ax                               ; 96
     7335    push di                                   ; 57
     7336    mov cx, 0b957h                            ; b9 57 b9
     7337    push di                                   ; 57
     7338    sbb dl, byte [bx-06ah]                    ; 1a 57 96
     7339    push di                                   ; 57
     7340    mov cx, 0b957h                            ; b9 57 b9
     7341    push di                                   ; 57
     7342    xchg si, ax                               ; 96
     7343    push di                                   ; 57
     7344    dec dx                                    ; 4a
     7345    push di                                   ; 57
     7346    mov cx, 0b957h                            ; b9 57 b9
     7347    push di                                   ; 57
     7348    db  0b9h
     7349    push di                                   ; 57
     7350_int13_harddisk:                             ; 0xf53d6 LB 0x441
    73307351    push bp                                   ; 55
    7331     sbb dx, word [bx+01bh]                    ; 1b 57 1b
    7332     push di                                   ; 57
    7333     push ES                                   ; 06
    7334     push si                                   ; 56
    7335     clc                                       ; f8
    7336     push si                                   ; 56
    7337     sbb dx, word [bx+01bh]                    ; 1b 57 1b
    7338     push di                                   ; 57
    7339     clc                                       ; f8
    7340     push si                                   ; 56
    7341     clc                                       ; f8
    7342     push si                                   ; 56
    7343     sbb dx, word [bx+01bh]                    ; 1b 57 1b
    7344     push di                                   ; 57
    7345     jl short 05382h                           ; 7c 56
    7346     clc                                       ; f8
    7347     push si                                   ; 56
    7348     sbb dx, word [bx+01bh]                    ; 1b 57 1b
    7349     push di                                   ; 57
    7350     clc                                       ; f8
    7351     push si                                   ; 56
    7352     lodsb                                     ; ac
    7353     push si                                   ; 56
    7354     sbb dx, word [bx+01bh]                    ; 1b 57 1b
    7355     push di                                   ; 57
    7356     db  01bh
    7357     push di                                   ; 57
    7358 _int13_harddisk:                             ; 0xf533c LB 0x43c
    7359     enter 00010h, 000h                        ; c8 10 00 00
     7352    mov bp, sp                                ; 89 e5
     7353    sub sp, strict byte 00010h                ; 83 ec 10
    73607354    mov dx, strict word 0000eh                ; ba 0e 00
    73617355    mov ax, strict word 00040h                ; b8 40 00
    7362     call 0161ch                               ; e8 d3 c2
     7356    call 0161ch                               ; e8 37 c2
    73637357    mov si, 00122h                            ; be 22 01
    73647358    mov word [bp-004h], ax                    ; 89 46 fc
     
    73667360    mov dx, 0008eh                            ; ba 8e 00
    73677361    mov ax, strict word 00040h                ; b8 40 00
    7368     call 0160eh                               ; e8 b4 c2
     7362    call 0160eh                               ; e8 18 c2
    73697363    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73707364    xor ah, ah                                ; 30 e4
    73717365    cmp ax, 00080h                            ; 3d 80 00
    7372     jc short 05369h                           ; 72 05
     7366    jc short 05405h                           ; 72 05
    73737367    cmp ax, 00090h                            ; 3d 90 00
    7374     jc short 05387h                           ; 72 1e
     7368    jc short 05423h                           ; 72 1e
    73757369    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73767370    xor ah, ah                                ; 30 e4
     
    73827376    push 005fdh                               ; 68 fd 05
    73837377    push strict byte 00004h                   ; 6a 04
    7384     call 018e9h                               ; e8 68 c5
     7378    call 0190dh                               ; e8 f0 c4
    73857379    add sp, strict byte 0000ah                ; 83 c4 0a
    7386     jmp near 05736h                           ; e9 af 03
     7380    jmp near 057d4h                           ; e9 b1 03
    73877381    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73887382    xor ah, ah                                ; 30 e4
     
    73937387    mov byte [bp-002h], dl                    ; 88 56 fe
    73947388    cmp dl, 010h                              ; 80 fa 10
    7395     jc short 053b0h                           ; 72 10
     7389    jc short 0544ch                           ; 72 10
    73967390    push ax                                   ; 50
    73977391    mov ax, word [bp+016h]                    ; 8b 46 16
     
    74007394    push 005eeh                               ; 68 ee 05
    74017395    push 00628h                               ; 68 28 06
    7402     jmp short 0537ch                          ; eb cc
     7396    jmp short 05418h                          ; eb cc
    74037397    mov bx, word [bp+016h]                    ; 8b 5e 16
    74047398    shr bx, 008h                              ; c1 eb 08
    74057399    cmp bx, strict byte 00018h                ; 83 fb 18
    7406     jnbe near 0571bh                          ; 0f 87 5e 03
     7400    jnbe near 057b9h                          ; 0f 87 60 03
    74077401    add bx, bx                                ; 01 db
    7408     jmp word [cs:bx+0530ah]                   ; 2e ff a7 0a 53
     7402    jmp word [cs:bx+053a4h]                   ; 2e ff a7 a4 53
    74097403    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7410     jnc near 053d3h                           ; 0f 83 07 00
     7404    jnc near 0546fh                           ; 0f 83 07 00
    74117405    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7412     call 01be0h                               ; e8 0d c8
     7406    call 01c0ch                               ; e8 9d c7
    74137407    mov byte [bp+017h], 000h                  ; c6 46 17 00
    74147408    xor bx, bx                                ; 31 db
    74157409    mov dx, strict word 00074h                ; ba 74 00
    74167410    mov ax, strict word 00040h                ; b8 40 00
    7417     call 0160eh                               ; e8 2c c2
     7411    call 0160eh                               ; e8 90 c1
    74187412    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    7419     leave                                     ; c9
     7413    mov sp, bp                                ; 89 ec
     7414    pop bp                                    ; 5d
    74207415    retn                                      ; c3
    74217416    mov dx, strict word 00074h                ; ba 74 00
    74227417    mov ax, strict word 00040h                ; b8 40 00
    7423     call 01600h                               ; e8 0f c2
     7418    call 01600h                               ; e8 71 c1
    74247419    mov cl, al                                ; 88 c1
    74257420    mov dx, word [bp+016h]                    ; 8b 56 16
     
    74327427    mov dx, strict word 00074h                ; ba 74 00
    74337428    mov ax, strict word 00040h                ; b8 40 00
    7434     call 0160eh                               ; e8 00 c2
     7429    call 0160eh                               ; e8 62 c1
    74357430    test cl, cl                               ; 84 c9
    7436     je short 053d7h                           ; 74 c5
    7437     jmp near 05752h                           ; e9 3d 03
     7431    je short 05473h                           ; 74 c3
     7432    jmp near 057f0h                           ; e9 3d 03
    74387433    mov ax, word [bp+016h]                    ; 8b 46 16
    74397434    xor ah, ah                                ; 30 e4
     
    74557450    mov ax, word [bp-00ch]                    ; 8b 46 f4
    74567451    cmp ax, 00080h                            ; 3d 80 00
    7457     jnbe short 05450h                         ; 77 04
     7452    jnbe short 054eeh                         ; 77 04
    74587453    test ax, ax                               ; 85 c0
    7459     jne short 05473h                          ; 75 23
    7460     mov bx, 00d32h                            ; bb 32 0d
     7454    jne short 05511h                          ; 75 23
     7455    mov bx, 00d38h                            ; bb 38 0d
    74617456    mov cx, ds                                ; 8c d9
    74627457    mov ax, strict word 00004h                ; b8 04 00
    7463     call 018aeh                               ; e8 53 c4
     7458    call 018cch                               ; e8 d3 c3
    74647459    mov ax, word [bp+016h]                    ; 8b 46 16
    74657460    shr ax, 008h                              ; c1 e8 08
     
    74687463    push 0065ah                               ; 68 5a 06
    74697464    push strict byte 00004h                   ; 6a 04
    7470     call 018e9h                               ; e8 7c c4
     7465    call 0190dh                               ; e8 02 c4
    74717466    add sp, strict byte 00008h                ; 83 c4 08
    7472     jmp near 05736h                           ; e9 c3 02
     7467    jmp near 057d4h                           ; e9 c3 02
    74737468    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    74747469    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    74817476    mov word [bp-00ah], dx                    ; 89 56 f6
    74827477    cmp di, ax                                ; 39 c7
    7483     jnc short 054a0h                          ; 73 0c
     7478    jnc short 0553eh                          ; 73 0c
    74847479    cmp cx, word [bp-008h]                    ; 3b 4e f8
    7485     jbe short 054a0h                          ; 76 07
     7480    jbe short 0553eh                          ; 76 07
    74867481    mov ax, word [bp-006h]                    ; 8b 46 fa
    74877482    cmp ax, dx                                ; 39 d0
    7488     jbe short 054ceh                          ; 76 2e
    7489     mov bx, 00d32h                            ; bb 32 0d
     7483    jbe short 0556ch                          ; 76 2e
     7484    mov bx, 00d38h                            ; bb 38 0d
    74907485    mov cx, ds                                ; 8c d9
    74917486    mov ax, strict word 00004h                ; b8 04 00
    7492     call 018aeh                               ; e8 03 c4
     7487    call 018cch                               ; e8 83 c3
    74937488    push dword [bp-008h]                      ; 66 ff 76 f8
    74947489    push di                                   ; 57
     
    75027497    push 00682h                               ; 68 82 06
    75037498    push strict byte 00004h                   ; 6a 04
    7504     call 018e9h                               ; e8 21 c4
     7499    call 0190dh                               ; e8 a7 c3
    75057500    add sp, strict byte 00010h                ; 83 c4 10
    7506     jmp near 05736h                           ; e9 68 02
     7501    jmp near 057d4h                           ; e9 68 02
    75077502    mov ax, word [bp+016h]                    ; 8b 46 16
    75087503    shr ax, 008h                              ; c1 e8 08
    75097504    cmp ax, strict word 00004h                ; 3d 04 00
    7510     jne short 054dch                          ; 75 03
    7511     jmp near 053d3h                           ; e9 f7 fe
     7505    jne short 0557ah                          ; 75 03
     7506    jmp near 0546fh                           ; e9 f5 fe
    75127507    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    75137508    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    75157510    add bx, si                                ; 01 f3
    75167511    cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    7517     jne short 054fdh                          ; 75 0f
     7512    jne short 0559bh                          ; 75 0f
    75187513    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    75197514    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    7520     jne short 054fdh                          ; 75 06
     7515    jne short 0559bh                          ; 75 06
    75217516    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7522     jc short 0552dh                           ; 72 30
     7517    jc short 055cbh                           ; 72 30
    75237518    mov ax, di                                ; 89 f8
    75247519    xor dx, dx                                ; 31 d2
    75257520    mov bx, cx                                ; 89 cb
    75267521    xor cx, cx                                ; 31 c9
    7527     call 09049h                               ; e8 41 3b
     7522    call 09219h                               ; e8 73 3c
    75287523    xor bx, bx                                ; 31 db
    75297524    add ax, word [bp-008h]                    ; 03 46 f8
     
    75317526    mov bx, word [bp-00ah]                    ; 8b 5e f6
    75327527    xor cx, cx                                ; 31 c9
    7533     call 09049h                               ; e8 32 3b
     7528    call 09219h                               ; e8 64 3c
    75347529    xor bx, bx                                ; 31 db
    75357530    add ax, word [bp-006h]                    ; 03 46 fa
     
    75847579    mov word [bp+016h], bx                    ; 89 5e 16
    75857580    test dl, dl                               ; 84 d2
    7586     je near 053d3h                            ; 0f 84 15 fe
    7587     mov bx, 00d32h                            ; bb 32 0d
     7581    je near 0546fh                            ; 0f 84 13 fe
     7582    mov bx, 00d38h                            ; bb 38 0d
    75887583    mov cx, ds                                ; 8c d9
    75897584    mov ax, strict word 00004h                ; b8 04 00
    7590     call 018aeh                               ; e8 e5 c2
     7585    call 018cch                               ; e8 65 c2
    75917586    movzx ax, dl                              ; 0f b6 c2
    75927587    push ax                                   ; 50
     
    75977592    push 006c9h                               ; 68 c9 06
    75987593    push strict byte 00004h                   ; 6a 04
    7599     call 018e9h                               ; e8 0a c3
     7594    call 0190dh                               ; e8 90 c2
    76007595    add sp, strict byte 0000ah                ; 83 c4 0a
    76017596    mov ax, word [bp+016h]                    ; 8b 46 16
    76027597    xor ah, ah                                ; 30 e4
    76037598    or ah, 00ch                               ; 80 cc 0c
    7604     jmp near 0573eh                           ; e9 51 01
    7605     mov bx, 00d32h                            ; bb 32 0d
     7599    jmp near 057dch                           ; e9 51 01
     7600    mov bx, 00d38h                            ; bb 38 0d
    76067601    mov cx, ds                                ; 8c d9
    76077602    mov ax, strict word 00004h                ; b8 04 00
    7608     call 018aeh                               ; e8 b6 c2
     7603    call 018cch                               ; e8 36 c2
    76097604    push 006eah                               ; 68 ea 06
    76107605    push strict byte 00004h                   ; 6a 04
    7611     call 018e9h                               ; e8 e9 c2
     7606    call 0190dh                               ; e8 6f c2
    76127607    add sp, strict byte 00004h                ; 83 c4 04
    7613     jmp near 053d3h                           ; e9 cd fd
     7608    jmp near 0546fh                           ; e9 cb fd
    76147609    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76157610    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    76547649    or dx, ax                                 ; 09 c2
    76557650    mov word [bp+012h], dx                    ; 89 56 12
    7656     jmp near 053d3h                           ; e9 57 fd
     7651    jmp near 0546fh                           ; e9 55 fd
    76577652    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76587653    cwd                                       ; 99
     
    76707665    and AL, strict byte 0c0h                  ; 24 c0
    76717666    cmp AL, strict byte 040h                  ; 3c 40
    7672     jne short 056a1h                          ; 75 03
    7673     jmp near 053d3h                           ; e9 32 fd
     7667    jne short 0573fh                          ; 75 03
     7668    jmp near 0546fh                           ; e9 30 fd
    76747669    mov ax, word [bp+016h]                    ; 8b 46 16
    76757670    xor ah, ah                                ; 30 e4
    76767671    or ah, 0aah                               ; 80 cc aa
    7677     jmp near 0573eh                           ; e9 92 00
     7672    jmp near 057dch                           ; e9 92 00
    76787673    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76797674    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    76897684    mov bx, word [bp-008h]                    ; 8b 5e f8
    76907685    xor cx, cx                                ; 31 c9
    7691     call 09049h                               ; e8 73 39
     7686    call 09219h                               ; e8 a5 3a
    76927687    mov bx, word [bp-006h]                    ; 8b 5e fa
    76937688    xor cx, cx                                ; 31 c9
    7694     call 09049h                               ; e8 6b 39
     7689    call 09219h                               ; e8 9d 3a
    76957690    mov word [bp-010h], ax                    ; 89 46 f0
    76967691    mov word [bp-00eh], dx                    ; 89 56 f2
     
    77017696    or ah, 003h                               ; 80 cc 03
    77027697    mov word [bp+016h], ax                    ; 89 46 16
    7703     jmp near 053d7h                           ; e9 df fc
    7704     mov bx, 00d32h                            ; bb 32 0d
     7698    jmp near 05473h                           ; e9 dd fc
     7699    mov bx, 00d38h                            ; bb 38 0d
    77057700    mov cx, ds                                ; 8c d9
    77067701    mov ax, strict word 00004h                ; b8 04 00
    7707     call 018aeh                               ; e8 ab c1
     7702    call 018cch                               ; e8 2b c1
    77087703    mov ax, word [bp+016h]                    ; 8b 46 16
    77097704    shr ax, 008h                              ; c1 e8 08
     
    77127707    push 00704h                               ; 68 04 07
    77137708    push strict byte 00004h                   ; 6a 04
    7714     call 018e9h                               ; e8 d4 c1
     7709    call 0190dh                               ; e8 5a c1
    77157710    add sp, strict byte 00008h                ; 83 c4 08
    7716     jmp near 053d3h                           ; e9 b8 fc
    7717     mov bx, 00d32h                            ; bb 32 0d
     7711    jmp near 0546fh                           ; e9 b6 fc
     7712    mov bx, 00d38h                            ; bb 38 0d
    77187713    mov cx, ds                                ; 8c d9
    77197714    mov ax, strict word 00004h                ; b8 04 00
    7720     call 018aeh                               ; e8 88 c1
     7715    call 018cch                               ; e8 08 c1
    77217716    mov ax, word [bp+016h]                    ; 8b 46 16
    77227717    shr ax, 008h                              ; c1 e8 08
     
    77247719    push 005eeh                               ; 68 ee 05
    77257720    push 00737h                               ; 68 37 07
    7726     jmp near 05468h                           ; e9 32 fd
     7721    jmp near 05506h                           ; e9 32 fd
    77277722    mov ax, word [bp+016h]                    ; 8b 46 16
    77287723    xor ah, ah                                ; 30 e4
     
    77347729    mov dx, strict word 00074h                ; ba 74 00
    77357730    mov ax, strict word 00040h                ; b8 40 00
    7736     call 0160eh                               ; e8 bc be
     7731    call 0160eh                               ; e8 1e be
    77377732    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    7738     leave                                     ; c9
    7739     retn                                      ; c3
    7740     adc word [bx+si+029h], bx                 ; 11 58 29
     7733    jmp near 05482h                           ; e9 8b fc
     7734    mov DL, strict byte 058h                  ; b2 58
     7735    retf 0ca58h                               ; ca 58 ca
    77417736    pop ax                                    ; 58
    7742     sub word [bx+si+029h], bx                 ; 29 58 29
     7737    retf 07958h                               ; ca 58 79
     7738    pop sp                                    ; 5c
     7739    or ax, 0ca5ah                             ; 0d 5a ca
    77437740    pop ax                                    ; 58
    7744     fcomp dword [bp+di+06ch]                  ; d8 5b 6c
    7745     pop cx                                    ; 59
    7746     sub word [bx+si+072h], bx                 ; 29 58 72
    7747     pop cx                                    ; 59
    7748     fcomp dword [bp+di+025h]                  ; d8 5b 25
     7741    adc bx, word [bp+si+079h]                 ; 13 5a 79
    77497742    pop sp                                    ; 5c
    7750     and ax, 0255ch                            ; 25 5c 25
     7743    enter 0c85ch, 05ch                        ; c8 5c c8 5c
     7744    enter 0c85ch, 05ch                        ; c8 5c c8 5c
     7745    nop                                       ; 90
    77517746    pop sp                                    ; 5c
    7752     and ax, 0ed5ch                            ; 25 5c ed
    7753     pop bx                                    ; 5b
    7754     and ax, 0255ch                            ; 25 5c 25
    7755     pop sp                                    ; 5c
    7756 _int13_harddisk_ext:                         ; 0xf5778 LB 0x4c8
    7757     enter 00028h, 000h                        ; c8 28 00 00
     7747    enter 0c85ch, 05ch                        ; c8 5c c8 5c
     7748_int13_harddisk_ext:                         ; 0xf5817 LB 0x4cc
     7749    push bp                                   ; 55
     7750    mov bp, sp                                ; 89 e5
     7751    sub sp, strict byte 00028h                ; 83 ec 28
    77587752    mov dx, strict word 0000eh                ; ba 0e 00
    77597753    mov ax, strict word 00040h                ; b8 40 00
    7760     call 0161ch                               ; e8 97 be
     7754    call 0161ch                               ; e8 f6 bd
    77617755    mov word [bp-014h], ax                    ; 89 46 ec
    77627756    mov dx, strict word 0000eh                ; ba 0e 00
    77637757    mov ax, strict word 00040h                ; b8 40 00
    7764     call 0161ch                               ; e8 8b be
     7758    call 0161ch                               ; e8 ea bd
    77657759    mov si, 00122h                            ; be 22 01
    77667760    mov word [bp-026h], ax                    ; 89 46 da
     
    77687762    mov dx, 0008eh                            ; ba 8e 00
    77697763    mov ax, strict word 00040h                ; b8 40 00
    7770     call 0160eh                               ; e8 6c be
     7764    call 0160eh                               ; e8 cb bd
    77717765    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77727766    xor ah, ah                                ; 30 e4
    77737767    cmp ax, 00080h                            ; 3d 80 00
    7774     jc short 057b1h                           ; 72 05
     7768    jc short 05852h                           ; 72 05
    77757769    cmp ax, 00090h                            ; 3d 90 00
    7776     jc short 057cfh                           ; 72 1e
     7770    jc short 05870h                           ; 72 1e
    77777771    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77787772    xor ah, ah                                ; 30 e4
     
    77847778    push 005fdh                               ; 68 fd 05
    77857779    push strict byte 00004h                   ; 6a 04
    7786     call 018e9h                               ; e8 20 c1
     7780    call 0190dh                               ; e8 a3 c0
    77877781    add sp, strict byte 0000ah                ; 83 c4 0a
    7788     jmp near 05c03h                           ; e9 34 04
     7782    jmp near 05ca6h                           ; e9 36 04
    77897783    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77907784    xor ah, ah                                ; 30 e4
     
    77947788    mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
    77957789    cmp cl, 010h                              ; 80 f9 10
    7796     jc short 057f5h                           ; 72 10
     7790    jc short 05896h                           ; 72 10
    77977791    push ax                                   ; 50
    77987792    mov ax, word [bp+016h]                    ; 8b 46 16
     
    78017795    push 00765h                               ; 68 65 07
    78027796    push 00628h                               ; 68 28 06
    7803     jmp short 057c4h                          ; eb cf
     7797    jmp short 05865h                          ; eb cf
    78047798    mov bx, word [bp+016h]                    ; 8b 5e 16
    78057799    shr bx, 008h                              ; c1 eb 08
    78067800    sub bx, strict byte 00041h                ; 83 eb 41
    78077801    cmp bx, strict byte 0000fh                ; 83 fb 0f
    7808     jnbe near 05c25h                          ; 0f 87 20 04
     7802    jnbe near 05cc8h                          ; 0f 87 22 04
    78097803    add bx, bx                                ; 01 db
    78107804    mov ax, word [bp+016h]                    ; 8b 46 16
    78117805    xor ah, ah                                ; 30 e4
    7812     jmp word [cs:bx+05758h]                   ; 2e ff a7 58 57
     7806    jmp word [cs:bx+057f7h]                   ; 2e ff a7 f7 57
    78137807    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    78147808    mov ax, word [bp+016h]                    ; 8b 46 16
     
    78177811    mov word [bp+016h], ax                    ; 89 46 16
    78187812    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    7819     jmp near 05bdch                           ; e9 b3 03
     7813    jmp near 05c7dh                           ; e9 b3 03
    78207814    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    78217815    mov es, [bp+004h]                         ; 8e 46 04
     
    78327826    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    78337827    or ax, word [bp-00ah]                     ; 0b 46 f6
    7834     je short 0586ah                           ; 74 11
     7828    je short 0590bh                           ; 74 11
    78357829    mov ax, word [bp+016h]                    ; 8b 46 16
    78367830    shr ax, 008h                              ; c1 e8 08
     
    78397833    push 00778h                               ; 68 78 07
    78407834    push strict byte 00007h                   ; 6a 07
    7841     jmp short 058b4h                          ; eb 4a
     7835    jmp short 05955h                          ; eb 4a
    78427836    mov es, [bp-010h]                         ; 8e 46 f0
    78437837    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    78517845    mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
    78527846    cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
    7853     jnbe short 0589ah                         ; 77 0b
    7854     jne short 058bdh                          ; 75 2c
     7847    jnbe short 0593bh                         ; 77 0b
     7848    jne short 0595eh                          ; 75 2c
    78557849    mov dx, word [bp-00ah]                    ; 8b 56 f6
    78567850    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    7857     jc short 058bdh                           ; 72 23
    7858     mov bx, 00d32h                            ; bb 32 0d
     7851    jc short 0595eh                           ; 72 23
     7852    mov bx, 00d38h                            ; bb 38 0d
    78597853    mov cx, ds                                ; 8c d9
    78607854    mov ax, strict word 00004h                ; b8 04 00
    7861     call 018aeh                               ; e8 09 c0
     7855    call 018cch                               ; e8 86 bf
    78627856    mov ax, word [bp+016h]                    ; 8b 46 16
    78637857    shr ax, 008h                              ; c1 e8 08
     
    78667860    push 007a1h                               ; 68 a1 07
    78677861    push strict byte 00004h                   ; 6a 04
    7868     call 018e9h                               ; e8 32 c0
     7862    call 0190dh                               ; e8 b5 bf
    78697863    add sp, strict byte 00008h                ; 83 c4 08
    7870     jmp near 05c03h                           ; e9 46 03
     7864    jmp near 05ca6h                           ; e9 48 03
    78717865    mov dx, word [bp+016h]                    ; 8b 56 16
    78727866    shr dx, 008h                              ; c1 ea 08
    78737867    mov word [bp-00ch], dx                    ; 89 56 f4
    78747868    cmp dx, strict byte 00044h                ; 83 fa 44
    7875     je near 05bd8h                            ; 0f 84 0b 03
     7869    je near 05c79h                            ; 0f 84 0b 03
    78767870    cmp dx, strict byte 00047h                ; 83 fa 47
    7877     je near 05bd8h                            ; 0f 84 04 03
     7871    je near 05c79h                            ; 0f 84 04 03
    78787872    mov es, [bp-026h]                         ; 8e 46 da
    78797873    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     
    79077901    mov word [es:di+002h], ax                 ; 26 89 45 02
    79087902    test dl, dl                               ; 84 d2
    7909     je near 05bd8h                            ; 0f 84 97 02
    7910     mov bx, 00d32h                            ; bb 32 0d
     7903    je near 05c79h                            ; 0f 84 97 02
     7904    mov bx, 00d38h                            ; bb 38 0d
    79117905    mov cx, ds                                ; 8c d9
    79127906    mov ax, strict word 00004h                ; b8 04 00
    7913     call 018aeh                               ; e8 62 bf
     7907    call 018cch                               ; e8 df be
    79147908    movzx ax, dl                              ; 0f b6 c2
    79157909    push ax                                   ; 50
     
    79187912    push 006c9h                               ; 68 c9 06
    79197913    push strict byte 00004h                   ; 6a 04
    7920     call 018e9h                               ; e8 8b bf
     7914    call 0190dh                               ; e8 0e bf
    79217915    add sp, strict byte 0000ah                ; 83 c4 0a
    79227916    mov ax, word [bp+016h]                    ; 8b 46 16
    79237917    xor ah, ah                                ; 30 e4
    79247918    or ah, 00ch                               ; 80 cc 0c
    7925     jmp near 05c0bh                           ; e9 9f 02
     7919    jmp near 05caeh                           ; e9 a1 02
    79267920    or ah, 0b2h                               ; 80 cc b2
    7927     jmp near 05c0bh                           ; e9 99 02
     7921    jmp near 05caeh                           ; e9 9b 02
    79287922    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    79297923    mov ax, word [bp+004h]                    ; 8b 46 04
     
    79357929    mov word [bp-00eh], ax                    ; 89 46 f2
    79367930    cmp ax, strict word 0001ah                ; 3d 1a 00
    7937     jc near 05c03h                            ; 0f 82 74 02
    7938     jc near 05a16h                            ; 0f 82 83 00
     7931    jc near 05ca6h                            ; 0f 82 76 02
     7932    jc near 05ab7h                            ; 0f 82 83 00
    79397933    movzx ax, cl                              ; 0f b6 c1
    79407934    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    79747968    ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
    79757969    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    7976     jc near 05b22h                            ; 0f 82 04 01
     7970    jc near 05bc3h                            ; 0f 82 04 01
    79777971    mov es, [bp-004h]                         ; 8e 46 fc
    79787972    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    80007994    mov al, byte [es:di+023h]                 ; 26 8a 45 23
    80017995    test al, al                               ; 84 c0
    8002     jne short 05a74h                          ; 75 04
     7996    jne short 05b15h                          ; 75 04
    80037997    xor dx, dx                                ; 31 d2
    8004     jmp short 05a77h                          ; eb 03
     7998    jmp short 05b18h                          ; eb 03
    80057999    mov dx, strict word 00008h                ; ba 08 00
    80068000    or dl, 010h                               ; 80 ca 10
     
    80178011    or word [bp-008h], dx                     ; 09 56 f8
    80188012    cmp AL, strict byte 003h                  ; 3c 03
    8019     jne short 05a9dh                          ; 75 05
     8013    jne short 05b3eh                          ; 75 05
    80208014    mov ax, strict word 00003h                ; b8 03 00
    8021     jmp short 05a9fh                          ; eb 02
     8015    jmp short 05b40h                          ; eb 02
    80228016    xor ax, ax                                ; 31 c0
    80238017    or word [bp-008h], ax                     ; 09 46 f8
     
    80448038    xor ch, ch                                ; 30 ed
    80458039    mov byte [bp-002h], ch                    ; 88 6e fe
    8046     jmp short 05b03h                          ; eb 06
     8040    jmp short 05ba4h                          ; eb 06
    80478041    cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
    8048     jnc short 05b18h                          ; 73 15
     8042    jnc short 05bb9h                          ; 73 15
    80498043    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    80508044    add dx, 00312h                            ; 81 c2 12 03
    80518045    mov ax, word [bp-014h]                    ; 8b 46 ec
    8052     call 01600h                               ; e8 ef ba
     8046    call 01600h                               ; e8 4e ba
    80538047    add ch, al                                ; 00 c5
    80548048    inc byte [bp-002h]                        ; fe 46 fe
    8055     jmp short 05afdh                          ; eb e5
     8049    jmp short 05b9eh                          ; eb e5
    80568050    neg ch                                    ; f6 dd
    80578051    mov es, [bp-026h]                         ; 8e 46 da
    80588052    mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
    80598053    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    8060     jc near 05bd8h                            ; 0f 82 ae 00
     8054    jc near 05c79h                            ; 0f 82 ae 00
    80618055    movzx ax, cl                              ; 0f b6 c1
    80628056    cwd                                       ; 99
     
    80768070    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    80778071    test al, al                               ; 84 c0
    8078     jne short 05b6ah                          ; 75 09
     8072    jne short 05c0bh                          ; 75 09
    80798073    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    80808074    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    80858079    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    80868080    test al, al                               ; 84 c0
    8087     jne short 05b96h                          ; 75 13
     8081    jne short 05c37h                          ; 75 13
    80888082    mov word [es:bx+030h], dx                 ; 26 89 57 30
    80898083    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    81008094    xor cl, cl                                ; 30 c9
    81018095    mov CH, strict byte 01eh                  ; b5 1e
    8102     jmp short 05bbdh                          ; eb 05
     8096    jmp short 05c5eh                          ; eb 05
    81038097    cmp ch, 040h                              ; 80 fd 40
    8104     jnc short 05bcfh                          ; 73 12
     8098    jnc short 05c70h                          ; 73 12
    81058099    movzx dx, ch                              ; 0f b6 d5
    81068100    add dx, word [bp+00ah]                    ; 03 56 0a
    81078101    mov ax, word [bp+004h]                    ; 8b 46 04
    8108     call 01600h                               ; e8 37 ba
     8102    call 01600h                               ; e8 96 b9
    81098103    add cl, al                                ; 00 c1
    81108104    db  0feh, 0c5h
    81118105    ; inc ch                                    ; fe c5
    8112     jmp short 05bb8h                          ; eb e9
     8106    jmp short 05c59h                          ; eb e9
    81138107    neg cl                                    ; f6 d9
    81148108    mov es, [bp-004h]                         ; 8e 46 fc
     
    81188112    mov dx, strict word 00074h                ; ba 74 00
    81198113    mov ax, strict word 00040h                ; b8 40 00
    8120     call 0160eh                               ; e8 27 ba
     8114    call 0160eh                               ; e8 86 b9
    81218115    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8122     leave                                     ; c9
     8116    mov sp, bp                                ; 89 ec
     8117    pop bp                                    ; 5d
    81238118    retn                                      ; c3
    81248119    cmp ax, strict word 00006h                ; 3d 06 00
    8125     je short 05bd8h                           ; 74 e6
     8120    je short 05c79h                           ; 74 e4
    81268121    cmp ax, strict word 00001h                ; 3d 01 00
    8127     jc short 05c03h                           ; 72 0c
    8128     jbe short 05bd8h                          ; 76 df
     8122    jc short 05ca6h                           ; 72 0c
     8123    jbe short 05c79h                          ; 76 dd
    81298124    cmp ax, strict word 00003h                ; 3d 03 00
    8130     jc short 05c03h                           ; 72 05
     8125    jc short 05ca6h                           ; 72 05
    81318126    cmp ax, strict word 00004h                ; 3d 04 00
    8132     jbe short 05bd8h                          ; 76 d5
     8127    jbe short 05c79h                          ; 76 d3
    81338128    mov ax, word [bp+016h]                    ; 8b 46 16
    81348129    xor ah, ah                                ; 30 e4
     
    81408135    mov dx, strict word 00074h                ; ba 74 00
    81418136    mov ax, strict word 00040h                ; b8 40 00
    8142     call 0160eh                               ; e8 ef b9
     8137    call 0160eh                               ; e8 4c b9
    81438138    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8144     leave                                     ; c9
    8145     retn                                      ; c3
    8146     mov bx, 00d32h                            ; bb 32 0d
     8139    jmp short 05c8ch                          ; eb c4
     8140    mov bx, 00d38h                            ; bb 38 0d
    81478141    mov cx, ds                                ; 8c d9
    81488142    mov ax, strict word 00004h                ; b8 04 00
    8149     call 018aeh                               ; e8 7e bc
     8143    call 018cch                               ; e8 f9 bb
    81508144    mov ax, word [bp+016h]                    ; 8b 46 16
    81518145    shr ax, 008h                              ; c1 e8 08
     
    81538147    push 00765h                               ; 68 65 07
    81548148    push 00737h                               ; 68 37 07
    8155     jmp near 058b2h                           ; e9 72 fc
    8156 _int14_function:                             ; 0xf5c40 LB 0x154
    8157     push si                                   ; 56
     8149    jmp near 05953h                           ; e9 70 fc
     8150_int14_function:                             ; 0xf5ce3 LB 0x155
    81588151    push bp                                   ; 55
    81598152    mov bp, sp                                ; 89 e5
     8153    push si                                   ; 56
    81608154    sti                                       ; fb
    8161     mov dx, word [bp+010h]                    ; 8b 56 10
     8155    mov dx, word [bp+00eh]                    ; 8b 56 0e
    81628156    add dx, dx                                ; 01 d2
    81638157    mov ax, strict word 00040h                ; b8 40 00
    8164     call 0161ch                               ; e8 cc b9
     8158    call 0161ch                               ; e8 29 b9
    81658159    mov si, ax                                ; 89 c6
    81668160    mov bx, ax                                ; 89 c3
    8167     mov dx, word [bp+010h]                    ; 8b 56 10
     8161    mov dx, word [bp+00eh]                    ; 8b 56 0e
    81688162    add dx, strict byte 0007ch                ; 83 c2 7c
    81698163    mov ax, strict word 00040h                ; b8 40 00
    8170     call 01600h                               ; e8 a0 b9
     8164    call 01600h                               ; e8 fd b8
    81718165    mov cl, al                                ; 88 c1
    8172     cmp word [bp+010h], strict byte 00004h    ; 83 7e 10 04
    8173     jnc near 05d8dh                           ; 0f 83 23 01
     8166    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
     8167    jnc near 05e2eh                           ; 0f 83 21 01
    81748168    test si, si                               ; 85 f6
    8175     jbe near 05d8dh                           ; 0f 86 1d 01
    8176     mov al, byte [bp+015h]                    ; 8a 46 15
     8169    jbe near 05e2eh                           ; 0f 86 1b 01
     8170    mov al, byte [bp+013h]                    ; 8a 46 13
    81778171    cmp AL, strict byte 001h                  ; 3c 01
    8178     jc short 05c88h                           ; 72 11
    8179     jbe short 05cdch                          ; 76 63
     8172    jc short 05d2bh                           ; 72 11
     8173    jbe short 05d7fh                          ; 76 63
    81808174    cmp AL, strict byte 003h                  ; 3c 03
    8181     je near 05d75h                            ; 0f 84 f6 00
     8175    je near 05e17h                            ; 0f 84 f5 00
    81828176    cmp AL, strict byte 002h                  ; 3c 02
    8183     je near 05d2ah                            ; 0f 84 a5 00
    8184     jmp near 05d86h                           ; e9 fe 00
     8177    je near 05dcdh                            ; 0f 84 a5 00
     8178    jmp near 05e28h                           ; e9 fd 00
    81858179    test al, al                               ; 84 c0
    8186     jne near 05d86h                           ; 0f 85 f8 00
     8180    jne near 05e28h                           ; 0f 85 f7 00
    81878181    lea dx, [bx+003h]                         ; 8d 57 03
    81888182    in AL, DX                                 ; ec
     
    81918185    or AL, strict byte 080h                   ; 0c 80
    81928186    out DX, AL                                ; ee
    8193     mov al, byte [bp+014h]                    ; 8a 46 14
     8187    mov al, byte [bp+012h]                    ; 8a 46 12
    81948188    and AL, strict byte 0e0h                  ; 24 e0
    81958189    movzx cx, al                              ; 0f b6 c8
     
    82028196    lea dx, [bx+001h]                         ; 8d 57 01
    82038197    out DX, AL                                ; ee
    8204     mov al, byte [bp+014h]                    ; 8a 46 14
     8198    mov al, byte [bp+012h]                    ; 8a 46 12
    82058199    and AL, strict byte 01fh                  ; 24 1f
    82068200    lea dx, [bx+003h]                         ; 8d 57 03
     
    82108204    db  02ah, 0e4h
    82118205    ; sub ah, ah                                ; 2a e4
    8212     mov byte [bp+015h], al                    ; 88 46 15
     8206    mov byte [bp+013h], al                    ; 88 46 13
    82138207    lea dx, [bx+006h]                         ; 8d 57 06
    82148208    in AL, DX                                 ; ec
    82158209    db  02ah, 0e4h
    82168210    ; sub ah, ah                                ; 2a e4
    8217     mov byte [bp+014h], al                    ; 88 46 14
    8218     jmp near 05d66h                           ; e9 97 00
     8211    mov byte [bp+012h], al                    ; 88 46 12
     8212    jmp near 05e09h                           ; e9 97 00
    82198213    mov AL, strict byte 017h                  ; b0 17
    82208214    mov dx, bx                                ; 89 da
     
    82238217    mov AL, strict byte 004h                  ; b0 04
    82248218    out DX, AL                                ; ee
    8225     jmp short 05cb1h                          ; eb d5
     8219    jmp short 05d54h                          ; eb d5
    82268220    mov dx, strict word 0006ch                ; ba 6c 00
    82278221    mov ax, strict word 00040h                ; b8 40 00
    8228     call 0161ch                               ; e8 37 b9
     8222    call 0161ch                               ; e8 94 b8
    82298223    mov si, ax                                ; 89 c6
    82308224    lea dx, [bx+005h]                         ; 8d 57 05
     
    82348228    and ax, strict word 00060h                ; 25 60 00
    82358229    cmp ax, strict word 00060h                ; 3d 60 00
    8236     je short 05d0ch                           ; 74 17
     8230    je short 05dafh                           ; 74 17
    82378231    test cl, cl                               ; 84 c9
    8238     je short 05d0ch                           ; 74 13
     8232    je short 05dafh                           ; 74 13
    82398233    mov dx, strict word 0006ch                ; ba 6c 00
    82408234    mov ax, strict word 00040h                ; b8 40 00
    8241     call 0161ch                               ; e8 1a b9
     8235    call 0161ch                               ; e8 77 b8
    82428236    cmp ax, si                                ; 39 f0
    8243     je short 05ce7h                           ; 74 e1
     8237    je short 05d8ah                           ; 74 e1
    82448238    mov si, ax                                ; 89 c6
    82458239    db  0feh, 0c9h
    82468240    ; dec cl                                    ; fe c9
    8247     jmp short 05ce7h                          ; eb db
     8241    jmp short 05d8ah                          ; eb db
    82488242    test cl, cl                               ; 84 c9
    8249     je short 05d16h                           ; 74 06
    8250     mov al, byte [bp+014h]                    ; 8a 46 14
     8243    je short 05db9h                           ; 74 06
     8244    mov al, byte [bp+012h]                    ; 8a 46 12
    82518245    mov dx, bx                                ; 89 da
    82528246    out DX, AL                                ; ee
     
    82558249    db  02ah, 0e4h
    82568250    ; sub ah, ah                                ; 2a e4
    8257     mov byte [bp+015h], al                    ; 88 46 15
     8251    mov byte [bp+013h], al                    ; 88 46 13
    82588252    test cl, cl                               ; 84 c9
    8259     jne short 05d66h                          ; 75 43
     8253    jne short 05e09h                          ; 75 43
    82608254    or AL, strict byte 080h                   ; 0c 80
    8261     mov byte [bp+015h], al                    ; 88 46 15
    8262     jmp short 05d66h                          ; eb 3c
     8255    mov byte [bp+013h], al                    ; 88 46 13
     8256    jmp short 05e09h                          ; eb 3c
    82638257    mov dx, strict word 0006ch                ; ba 6c 00
    82648258    mov ax, strict word 00040h                ; b8 40 00
    8265     call 0161ch                               ; e8 e9 b8
     8259    call 0161ch                               ; e8 46 b8
    82668260    mov si, ax                                ; 89 c6
    82678261    lea dx, [bx+005h]                         ; 8d 57 05
     
    82708264    ; sub ah, ah                                ; 2a e4
    82718265    test AL, strict byte 001h                 ; a8 01
    8272     jne short 05d56h                          ; 75 17
     8266    jne short 05df9h                          ; 75 17
    82738267    test cl, cl                               ; 84 c9
    8274     je short 05d56h                           ; 74 13
     8268    je short 05df9h                           ; 74 13
    82758269    mov dx, strict word 0006ch                ; ba 6c 00
    82768270    mov ax, strict word 00040h                ; b8 40 00
    8277     call 0161ch                               ; e8 d0 b8
     8271    call 0161ch                               ; e8 2d b8
    82788272    cmp ax, si                                ; 39 f0
    8279     je short 05d35h                           ; 74 e5
     8273    je short 05dd8h                           ; 74 e5
    82808274    mov si, ax                                ; 89 c6
    82818275    db  0feh, 0c9h
    82828276    ; dec cl                                    ; fe c9
    8283     jmp short 05d35h                          ; eb df
     8277    jmp short 05dd8h                          ; eb df
    82848278    test cl, cl                               ; 84 c9
    8285     je short 05d6dh                           ; 74 13
    8286     mov byte [bp+015h], 000h                  ; c6 46 15 00
     8279    je short 05e0fh                           ; 74 12
     8280    mov byte [bp+013h], 000h                  ; c6 46 13 00
    82878281    mov dx, bx                                ; 89 da
    82888282    in AL, DX                                 ; ec
    82898283    db  02ah, 0e4h
    82908284    ; sub ah, ah                                ; 2a e4
    8291     mov byte [bp+014h], al                    ; 88 46 14
    8292     and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    8293     pop bp                                    ; 5d
    8294     pop si                                    ; 5e
    8295     retn                                      ; c3
     8285    mov byte [bp+012h], al                    ; 88 46 12
     8286    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     8287    jmp short 05e32h                          ; eb 23
    82968288    lea dx, [bx+005h]                         ; 8d 57 05
    82978289    in AL, DX                                 ; ec
    82988290    db  02ah, 0e4h
    82998291    ; sub ah, ah                                ; 2a e4
    8300     jmp short 05d25h                          ; eb b0
     8292    jmp short 05dc8h                          ; eb b1
    83018293    lea dx, [si+005h]                         ; 8d 54 05
    83028294    in AL, DX                                 ; ec
    83038295    db  02ah, 0e4h
    83048296    ; sub ah, ah                                ; 2a e4
    8305     mov byte [bp+015h], al                    ; 88 46 15
     8297    mov byte [bp+013h], al                    ; 88 46 13
    83068298    lea dx, [si+006h]                         ; 8d 54 06
    83078299    in AL, DX                                 ; ec
    83088300    db  02ah, 0e4h
    83098301    ; sub ah, ah                                ; 2a e4
    8310     jmp short 05d63h                          ; eb dd
    8311     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
     8302    jmp short 05e06h                          ; eb de
     8303    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     8304    jmp short 05e32h                          ; eb 04
     8305    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     8306    lea sp, [bp-002h]                         ; 8d 66 fe
     8307    pop si                                    ; 5e
    83128308    pop bp                                    ; 5d
    8313     pop si                                    ; 5e
    83148309    retn                                      ; c3
    8315     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    8316     pop bp                                    ; 5d
    8317     pop si                                    ; 5e
    8318     retn                                      ; c3
    8319 set_enable_a20_:                             ; 0xf5d94 LB 0x29
     8310set_enable_a20_:                             ; 0xf5e38 LB 0x2c
     8311    push bp                                   ; 55
     8312    mov bp, sp                                ; 89 e5
    83208313    push bx                                   ; 53
    83218314    push cx                                   ; 51
    83228315    push dx                                   ; 52
    8323     push bp                                   ; 55
    8324     mov bp, sp                                ; 89 e5
    83258316    mov bx, ax                                ; 89 c3
    83268317    mov dx, 00092h                            ; ba 92 00
     
    83308321    mov cl, al                                ; 88 c1
    83318322    test bx, bx                               ; 85 db
    8332     je short 05dadh                           ; 74 05
     8323    je short 05e51h                           ; 74 05
    83338324    or AL, strict byte 002h                   ; 0c 02
    83348325    out DX, AL                                ; ee
    8335     jmp short 05db0h                          ; eb 03
     8326    jmp short 05e54h                          ; eb 03
    83368327    and AL, strict byte 0fdh                  ; 24 fd
    83378328    out DX, AL                                ; ee
     
    83408331    ; setne al                                  ; 0f 95 c0
    83418332    xor ah, ah                                ; 30 e4
    8342     pop bp                                    ; 5d
     8333    lea sp, [bp-006h]                         ; 8d 66 fa
    83438334    pop dx                                    ; 5a
    83448335    pop cx                                    ; 59
    83458336    pop bx                                    ; 5b
     8337    pop bp                                    ; 5d
    83468338    retn                                      ; c3
    8347 set_e820_range_:                             ; 0xf5dbd LB 0x8c
     8339set_e820_range_:                             ; 0xf5e64 LB 0x8c
    83488340    push si                                   ; 56
    83498341    push bp                                   ; 55
     
    83748366    retn 0000ah                               ; c2 0a 00
    83758367    in AL, DX                                 ; ec
    8376     jmp near 01ff0h                           ; e9 d8 c1
     8368    jmp near 02097h                           ; e9 d8 c1
    83778369    sar byte [bx-06f6fh], 089h                ; c0 bf 91 90 89
    83788370    mov byte [bx+05283h], al                  ; 88 87 83 52
     
    83808372    inc cx                                    ; 41
    83818373    and AL, strict byte 000h                  ; 24 00
    8382     in AL, strict byte 062h                   ; e4 62
    8383     xchg word [bp-066h], bx                   ; 87 5e 9a
    8384     pop si                                    ; 5e
    8385     sub AL, strict byte 05fh                  ; 2c 5f
    8386     xor bl, byte [bx+037h]                    ; 32 5f 37
     8374    db  08fh, 063h, 02fh
     8375    ; pop word [bp+di+02fh]                     ; 8f 63 2f
    83878376    pop di                                    ; 5f
    8388     cmp AL, strict byte 05fh                  ; 3c 5f
    8389     ficomp word [bx+07bh]                     ; de 5f 7b
    8390     popaw                                     ; 61
    8391     mov ax, word [02861h]                     ; a1 61 28
     8377    inc dx                                    ; 42
    83928378    pop di                                    ; 5f
    8393     sub byte [bx+06eh], bl                    ; 28 5f 6e
    8394     bound dx, [bp-0569eh]                     ; 62 96 62 a9
    8395     bound di, [bx+si+02c62h]                  ; 62 b8 62 2c
     8379    xlatb                                     ; d7
    83968380    pop di                                    ; 5f
    8397     db  0bfh
    8398     db  062h
    8399 _int15_function:                             ; 0xf5e49 LB 0x4c9
     8381    fstp qword [bx-01eh]                      ; dd 5f e2
     8382    pop di                                    ; 5f
     8383    out 05fh, ax                              ; e7 5f
     8384    mov word [bx+si+026h], sp                 ; 89 60 26
     8385    bound cx, [si+062h]                       ; 62 4c 62
     8386    rcr byte [bx-030h], 1                     ; d0 5f d0
     8387    pop di                                    ; 5f
     8388    sbb word [bp+di+041h], sp                 ; 19 63 41
     8389    arpl word [si+063h], dx                   ; 63 54 63
     8390    arpl word [bp+di-029h], sp                ; 63 63 d7
     8391    pop di                                    ; 5f
     8392    push strict byte 00063h                   ; 6a 63
     8393_int15_function:                             ; 0xf5ef0 LB 0x4cd
     8394    push bp                                   ; 55
     8395    mov bp, sp                                ; 89 e5
    84008396    push si                                   ; 56
    84018397    push di                                   ; 57
    8402     enter 00004h, 000h                        ; c8 04 00 00
    8403     mov ax, word [bp+016h]                    ; 8b 46 16
     8398    push ax                                   ; 50
     8399    push ax                                   ; 50
     8400    mov ax, word [bp+012h]                    ; 8b 46 12
    84048401    shr ax, 008h                              ; c1 e8 08
    84058402    cmp ax, 000ech                            ; 3d ec 00
    8406     jnbe near 062e4h                          ; 0f 87 88 04
     8403    jnbe near 0638fh                          ; 0f 87 8b 04
    84078404    push CS                                   ; 0e
    84088405    pop ES                                    ; 07
    84098406    mov cx, strict word 00012h                ; b9 12 00
    8410     mov di, 05e14h                            ; bf 14 5e
     8407    mov di, 05ebbh                            ; bf bb 5e
    84118408    repne scasb                               ; f2 ae
    84128409    sal cx, 1                                 ; d1 e1
    84138410    mov di, cx                                ; 89 cf
    8414     mov si, word [cs:di+05e25h]               ; 2e 8b b5 25 5e
    8415     mov ax, word [bp+016h]                    ; 8b 46 16
     8411    mov si, word [cs:di+05ecch]               ; 2e 8b b5 cc 5e
     8412    mov ax, word [bp+012h]                    ; 8b 46 12
    84168413    xor ah, ah                                ; 30 e4
    8417     mov cx, word [bp+01ch]                    ; 8b 4e 1c
     8414    mov cx, word [bp+018h]                    ; 8b 4e 18
    84188415    and cl, 0feh                              ; 80 e1 fe
    8419     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     8416    mov bx, word [bp+018h]                    ; 8b 5e 18
    84208417    or bl, 001h                               ; 80 cb 01
    84218418    mov dx, ax                                ; 89 c2
    84228419    or dh, 086h                               ; 80 ce 86
    84238420    jmp si                                    ; ff e6
    8424     mov ax, word [bp+016h]                    ; 8b 46 16
     8421    mov ax, word [bp+012h]                    ; 8b 46 12
    84258422    xor ah, ah                                ; 30 e4
    84268423    cmp ax, 000c0h                            ; 3d c0 00
    8427     jne near 062e4h                           ; 0f 85 51 04
    8428     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8429     jmp near 0628dh                           ; e9 f3 03
     8424    jne near 0638fh                           ; 0f 85 54 04
     8425    or byte [bp+018h], 001h                   ; 80 4e 18 01
     8426    jmp near 06338h                           ; e9 f6 03
    84308427    mov dx, ax                                ; 89 c2
    84318428    cmp ax, strict word 00001h                ; 3d 01 00
    8432     jc short 05eafh                           ; 72 0e
    8433     jbe short 05ec3h                          ; 76 20
     8429    jc short 05f57h                           ; 72 0e
     8430    jbe short 05f6bh                          ; 76 20
    84348431    cmp ax, strict word 00003h                ; 3d 03 00
    8435     je short 05ef0h                           ; 74 48
     8432    je short 05f98h                           ; 74 48
    84368433    cmp ax, strict word 00002h                ; 3d 02 00
    8437     je short 05ed3h                           ; 74 26
    8438     jmp short 05efdh                          ; eb 4e
     8434    je short 05f7bh                           ; 74 26
     8435    jmp short 05fa5h                          ; eb 4e
    84398436    test ax, ax                               ; 85 c0
    8440     jne short 05efdh                          ; 75 4a
     8437    jne short 05fa5h                          ; 75 4a
    84418438    xor ax, ax                                ; 31 c0
    8442     call 05d94h                               ; e8 dc fe
    8443     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8444     mov byte [bp+017h], 000h                  ; c6 46 17 00
    8445     jmp near 05f28h                           ; e9 65 00
     8439    call 05e38h                               ; e8 d8 fe
     8440    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     8441    mov byte [bp+013h], 000h                  ; c6 46 13 00
     8442    jmp near 05fd0h                           ; e9 65 00
    84468443    mov ax, strict word 00001h                ; b8 01 00
    8447     call 05d94h                               ; e8 cb fe
    8448     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8449     mov byte [bp+017h], dh                    ; 88 76 17
    8450     jmp near 05f28h                           ; e9 55 00
     8444    call 05e38h                               ; e8 c7 fe
     8445    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     8446    mov byte [bp+013h], dh                    ; 88 76 13
     8447    jmp near 05fd0h                           ; e9 55 00
    84518448    mov dx, 00092h                            ; ba 92 00
    84528449    in AL, DX                                 ; ec
     
    84558452    shr ax, 1                                 ; d1 e8
    84568453    and ax, strict word 00001h                ; 25 01 00
    8457     mov dx, word [bp+016h]                    ; 8b 56 16
     8454    mov dx, word [bp+012h]                    ; 8b 56 12
    84588455    mov dl, al                                ; 88 c2
    8459     mov word [bp+016h], dx                    ; 89 56 16
    8460     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8461     mov byte [bp+017h], ah                    ; 88 66 17
    8462     jmp near 05f28h                           ; e9 38 00
    8463     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8464     mov byte [bp+017h], ah                    ; 88 66 17
    8465     mov word [bp+010h], ax                    ; 89 46 10
    8466     jmp near 05f28h                           ; e9 2b 00
    8467     mov bx, 00d32h                            ; bb 32 0d
     8456    mov word [bp+012h], dx                    ; 89 56 12
     8457    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     8458    mov byte [bp+013h], ah                    ; 88 66 13
     8459    jmp near 05fd0h                           ; e9 38 00
     8460    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     8461    mov byte [bp+013h], ah                    ; 88 66 13
     8462    mov word [bp+00ch], ax                    ; 89 46 0c
     8463    jmp near 05fd0h                           ; e9 2b 00
     8464    mov bx, 00d38h                            ; bb 38 0d
    84688465    mov cx, ds                                ; 8c d9
    84698466    mov ax, strict word 00004h                ; b8 04 00
    8470     call 018aeh                               ; e8 a6 b9
    8471     mov ax, word [bp+016h]                    ; 8b 46 16
     8467    call 018cch                               ; e8 1c b9
     8468    mov ax, word [bp+012h]                    ; 8b 46 12
    84728469    xor ah, ah                                ; 30 e4
    84738470    push ax                                   ; 50
    84748471    push 007c6h                               ; 68 c6 07
    84758472    push strict byte 00004h                   ; 6a 04
    8476     call 018e9h                               ; e8 d3 b9
     8473    call 0190dh                               ; e8 4f b9
    84778474    add sp, strict byte 00006h                ; 83 c4 06
    8478     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8479     mov ax, word [bp+016h]                    ; 8b 46 16
     8475    or byte [bp+018h], 001h                   ; 80 4e 18 01
     8476    mov ax, word [bp+012h]                    ; 8b 46 12
    84808477    xor ah, ah                                ; 30 e4
    84818478    or ah, 086h                               ; 80 cc 86
    8482     mov word [bp+016h], ax                    ; 89 46 16
    8483     leave                                     ; c9
     8479    mov word [bp+012h], ax                    ; 89 46 12
     8480    lea sp, [bp-004h]                         ; 8d 66 fc
    84848481    pop di                                    ; 5f
    84858482    pop si                                    ; 5e
     8483    pop bp                                    ; 5d
    84868484    retn                                      ; c3
    8487     mov word [bp+01ch], bx                    ; 89 5e 1c
    8488     jmp near 05fd8h                           ; e9 a6 00
    8489     mov word [bp+01ch], bx                    ; 89 5e 1c
    8490     jmp short 05f28h                          ; eb f1
    8491     mov word [bp+01ch], cx                    ; 89 4e 1c
    8492     jmp short 05f25h                          ; eb e9
    8493     test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    8494     je short 05faeh                           ; 74 6c
     8485    mov word [bp+018h], bx                    ; 89 5e 18
     8486    jmp near 06083h                           ; e9 a6 00
     8487    mov word [bp+018h], bx                    ; 89 5e 18
     8488    jmp short 05fd0h                          ; eb ee
     8489    mov word [bp+018h], cx                    ; 89 4e 18
     8490    jmp short 05fcdh                          ; eb e6
     8491    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
     8492    je short 06059h                           ; 74 6c
    84958493    mov dx, 000a0h                            ; ba a0 00
    84968494    mov ax, strict word 00040h                ; b8 40 00
    8497     call 01600h                               ; e8 b5 b6
     8495    call 01600h                               ; e8 0a b6
    84988496    test AL, strict byte 001h                 ; a8 01
    8499     jne near 06284h                           ; 0f 85 33 03
     8497    jne near 0632fh                           ; 0f 85 33 03
    85008498    mov bx, strict word 00001h                ; bb 01 00
    85018499    mov dx, 000a0h                            ; ba a0 00
    85028500    mov ax, strict word 00040h                ; b8 40 00
    8503     call 0160eh                               ; e8 b1 b6
    8504     mov bx, word [bp+018h]                    ; 8b 5e 18
     8501    call 0160eh                               ; e8 06 b6
     8502    mov bx, word [bp+014h]                    ; 8b 5e 14
    85058503    mov dx, 00098h                            ; ba 98 00
    85068504    mov ax, strict word 00040h                ; b8 40 00
    8507     call 0162ah                               ; e8 c1 b6
    8508     mov bx, word [bp+010h]                    ; 8b 5e 10
     8505    call 0162ah                               ; e8 16 b6
     8506    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    85098507    mov dx, 0009ah                            ; ba 9a 00
    85108508    mov ax, strict word 00040h                ; b8 40 00
    8511     call 0162ah                               ; e8 b5 b6
    8512     mov bx, word [bp+012h]                    ; 8b 5e 12
     8509    call 0162ah                               ; e8 0a b6
     8510    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    85138511    mov dx, 0009ch                            ; ba 9c 00
    85148512    mov ax, strict word 00040h                ; b8 40 00
    8515     call 0162ah                               ; e8 a9 b6
    8516     mov bx, word [bp+014h]                    ; 8b 5e 14
     8513    call 0162ah                               ; e8 fe b5
     8514    mov bx, word [bp+010h]                    ; 8b 5e 10
    85178515    mov dx, 0009eh                            ; ba 9e 00
    85188516    mov ax, strict word 00040h                ; b8 40 00
    8519     call 0162ah                               ; e8 9d b6
    8520     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     8517    call 0162ah                               ; e8 f2 b5
     8518    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85218519    mov dx, 000a1h                            ; ba a1 00
    85228520    in AL, DX                                 ; ec
     
    85268524    out DX, AL                                ; ee
    85278525    mov ax, strict word 0000bh                ; b8 0b 00
    8528     call 0165ch                               ; e8 bc b6
     8526    call 0165ch                               ; e8 11 b6
    85298527    or AL, strict byte 040h                   ; 0c 40
    85308528    movzx dx, al                              ; 0f b6 d0
    85318529    mov ax, strict word 0000bh                ; b8 0b 00
    8532     call 0166dh                               ; e8 c2 b6
    8533     jmp near 05f28h                           ; e9 7a ff
     8530    call 01670h                               ; e8 1a b6
     8531    jmp near 05fd0h                           ; e9 77 ff
    85348532    cmp ax, strict word 00001h                ; 3d 01 00
    8535     jne short 05fcch                          ; 75 19
     8533    jne short 06077h                          ; 75 19
    85368534    xor bx, bx                                ; 31 db
    85378535    mov dx, 000a0h                            ; ba a0 00
    85388536    mov ax, strict word 00040h                ; b8 40 00
    8539     call 0160eh                               ; e8 50 b6
    8540     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     8537    call 0160eh                               ; e8 a5 b5
     8538    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85418539    mov ax, strict word 0000bh                ; b8 0b 00
    8542     call 0165ch                               ; e8 94 b6
     8540    call 0165ch                               ; e8 e9 b5
    85438541    and AL, strict byte 0bfh                  ; 24 bf
    8544     jmp short 05fa2h                          ; eb d6
    8545     mov word [bp+01ch], bx                    ; 89 5e 1c
     8542    jmp short 0604dh                          ; eb d6
     8543    mov word [bp+018h], bx                    ; 89 5e 18
    85468544    mov ax, dx                                ; 89 d0
    85478545    xor ah, dh                                ; 30 f4
     
    85498547    dec ax                                    ; 48
    85508548    or dx, ax                                 ; 09 c2
    8551     mov word [bp+016h], dx                    ; 89 56 16
    8552     jmp near 05f28h                           ; e9 4a ff
     8549    mov word [bp+012h], dx                    ; 89 56 12
     8550    jmp near 05fd0h                           ; e9 47 ff
    85538551    cli                                       ; fa
    85548552    mov ax, strict word 00001h                ; b8 01 00
    8555     call 05d94h                               ; e8 af fd
     8553    call 05e38h                               ; e8 a8 fd
    85568554    mov di, ax                                ; 89 c7
    8557     mov ax, word [bp+018h]                    ; 8b 46 18
     8555    mov ax, word [bp+014h]                    ; 8b 46 14
    85588556    sal ax, 004h                              ; c1 e0 04
    8559     mov cx, word [bp+00ah]                    ; 8b 4e 0a
     8557    mov cx, word [bp+006h]                    ; 8b 4e 06
    85608558    add cx, ax                                ; 01 c1
    8561     mov dx, word [bp+018h]                    ; 8b 56 18
     8559    mov dx, word [bp+014h]                    ; 8b 56 14
    85628560    shr dx, 00ch                              ; c1 ea 0c
    8563     mov byte [bp-002h], dl                    ; 88 56 fe
     8561    mov byte [bp-006h], dl                    ; 88 56 fa
    85648562    cmp cx, ax                                ; 39 c1
    8565     jnc short 06004h                          ; 73 05
     8563    jnc short 060afh                          ; 73 05
    85668564    db  0feh, 0c2h
    85678565    ; inc dl                                    ; fe c2
    8568     mov byte [bp-002h], dl                    ; 88 56 fe
    8569     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8566    mov byte [bp-006h], dl                    ; 88 56 fa
     8567    mov dx, word [bp+006h]                    ; 8b 56 06
    85708568    add dx, strict byte 00008h                ; 83 c2 08
    8571     mov ax, word [bp+018h]                    ; 8b 46 18
     8569    mov ax, word [bp+014h]                    ; 8b 46 14
    85728570    mov bx, strict word 0002fh                ; bb 2f 00
    8573     call 0162ah                               ; e8 17 b6
    8574     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8571    call 0162ah                               ; e8 6c b5
     8572    mov dx, word [bp+006h]                    ; 8b 56 06
    85758573    add dx, strict byte 0000ah                ; 83 c2 0a
    8576     mov ax, word [bp+018h]                    ; 8b 46 18
     8574    mov ax, word [bp+014h]                    ; 8b 46 14
    85778575    mov bx, cx                                ; 89 cb
    8578     call 0162ah                               ; e8 09 b6
    8579     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    8580     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8576    call 0162ah                               ; e8 5e b5
     8577    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     8578    mov dx, word [bp+006h]                    ; 8b 56 06
    85818579    add dx, strict byte 0000ch                ; 83 c2 0c
    8582     mov ax, word [bp+018h]                    ; 8b 46 18
    8583     call 0160eh                               ; e8 dd b5
    8584     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8580    mov ax, word [bp+014h]                    ; 8b 46 14
     8581    call 0160eh                               ; e8 32 b5
     8582    mov dx, word [bp+006h]                    ; 8b 56 06
    85858583    add dx, strict byte 0000dh                ; 83 c2 0d
    8586     mov ax, word [bp+018h]                    ; 8b 46 18
     8584    mov ax, word [bp+014h]                    ; 8b 46 14
    85878585    mov bx, 00093h                            ; bb 93 00
    8588     call 0160eh                               ; e8 ce b5
    8589     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8586    call 0160eh                               ; e8 23 b5
     8587    mov dx, word [bp+006h]                    ; 8b 56 06
    85908588    add dx, strict byte 0000eh                ; 83 c2 0e
    8591     mov ax, word [bp+018h]                    ; 8b 46 18
     8589    mov ax, word [bp+014h]                    ; 8b 46 14
    85928590    xor bx, bx                                ; 31 db
    8593     call 0162ah                               ; e8 dc b5
    8594     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8591    call 0162ah                               ; e8 31 b5
     8592    mov dx, word [bp+006h]                    ; 8b 56 06
    85958593    add dx, strict byte 00020h                ; 83 c2 20
    8596     mov ax, word [bp+018h]                    ; 8b 46 18
     8594    mov ax, word [bp+014h]                    ; 8b 46 14
    85978595    mov bx, strict word 0ffffh                ; bb ff ff
    8598     call 0162ah                               ; e8 cd b5
    8599     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8596    call 0162ah                               ; e8 22 b5
     8597    mov dx, word [bp+006h]                    ; 8b 56 06
    86008598    add dx, strict byte 00022h                ; 83 c2 22
    8601     mov ax, word [bp+018h]                    ; 8b 46 18
     8599    mov ax, word [bp+014h]                    ; 8b 46 14
    86028600    xor bx, bx                                ; 31 db
    8603     call 0162ah                               ; e8 bf b5
    8604     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8601    call 0162ah                               ; e8 14 b5
     8602    mov dx, word [bp+006h]                    ; 8b 56 06
    86058603    add dx, strict byte 00024h                ; 83 c2 24
    8606     mov ax, word [bp+018h]                    ; 8b 46 18
     8604    mov ax, word [bp+014h]                    ; 8b 46 14
    86078605    mov bx, strict word 0000fh                ; bb 0f 00
    8608     call 0160eh                               ; e8 94 b5
    8609     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8606    call 0160eh                               ; e8 e9 b4
     8607    mov dx, word [bp+006h]                    ; 8b 56 06
    86108608    add dx, strict byte 00025h                ; 83 c2 25
    8611     mov ax, word [bp+018h]                    ; 8b 46 18
     8609    mov ax, word [bp+014h]                    ; 8b 46 14
    86128610    mov bx, 0009bh                            ; bb 9b 00
    8613     call 0160eh                               ; e8 85 b5
    8614     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8611    call 0160eh                               ; e8 da b4
     8612    mov dx, word [bp+006h]                    ; 8b 56 06
    86158613    add dx, strict byte 00026h                ; 83 c2 26
    8616     mov ax, word [bp+018h]                    ; 8b 46 18
     8614    mov ax, word [bp+014h]                    ; 8b 46 14
    86178615    xor bx, bx                                ; 31 db
    8618     call 0162ah                               ; e8 93 b5
     8616    call 0162ah                               ; e8 e8 b4
    86198617    mov ax, ss                                ; 8c d0
    86208618    mov cx, ax                                ; 89 c1
    86218619    sal cx, 004h                              ; c1 e1 04
    86228620    shr ax, 00ch                              ; c1 e8 0c
    8623     mov word [bp-004h], ax                    ; 89 46 fc
    8624     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8621    mov word [bp-008h], ax                    ; 89 46 f8
     8622    mov dx, word [bp+006h]                    ; 8b 56 06
    86258623    add dx, strict byte 00028h                ; 83 c2 28
    8626     mov ax, word [bp+018h]                    ; 8b 46 18
     8624    mov ax, word [bp+014h]                    ; 8b 46 14
    86278625    mov bx, strict word 0ffffh                ; bb ff ff
    8628     call 0162ah                               ; e8 77 b5
    8629     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8626    call 0162ah                               ; e8 cc b4
     8627    mov dx, word [bp+006h]                    ; 8b 56 06
    86308628    add dx, strict byte 0002ah                ; 83 c2 2a
    8631     mov ax, word [bp+018h]                    ; 8b 46 18
     8629    mov ax, word [bp+014h]                    ; 8b 46 14
    86328630    mov bx, cx                                ; 89 cb
    8633     call 0162ah                               ; e8 69 b5
    8634     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    8635     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8631    call 0162ah                               ; e8 be b4
     8632    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     8633    mov dx, word [bp+006h]                    ; 8b 56 06
    86368634    add dx, strict byte 0002ch                ; 83 c2 2c
    8637     mov ax, word [bp+018h]                    ; 8b 46 18
    8638     call 0160eh                               ; e8 3d b5
    8639     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8635    mov ax, word [bp+014h]                    ; 8b 46 14
     8636    call 0160eh                               ; e8 92 b4
     8637    mov dx, word [bp+006h]                    ; 8b 56 06
    86408638    add dx, strict byte 0002dh                ; 83 c2 2d
    8641     mov ax, word [bp+018h]                    ; 8b 46 18
     8639    mov ax, word [bp+014h]                    ; 8b 46 14
    86428640    mov bx, 00093h                            ; bb 93 00
    8643     call 0160eh                               ; e8 2e b5
    8644     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8641    call 0160eh                               ; e8 83 b4
     8642    mov dx, word [bp+006h]                    ; 8b 56 06
    86458643    add dx, strict byte 0002eh                ; 83 c2 2e
    8646     mov ax, word [bp+018h]                    ; 8b 46 18
     8644    mov ax, word [bp+014h]                    ; 8b 46 14
    86478645    xor bx, bx                                ; 31 db
    8648     call 0162ah                               ; e8 3c b5
    8649     mov si, word [bp+00ah]                    ; 8b 76 0a
    8650     mov es, [bp+018h]                         ; 8e 46 18
    8651     mov cx, word [bp+014h]                    ; 8b 4e 14
     8646    call 0162ah                               ; e8 91 b4
     8647    mov si, word [bp+006h]                    ; 8b 76 06
     8648    mov es, [bp+014h]                         ; 8e 46 14
     8649    mov cx, word [bp+010h]                    ; 8b 4e 10
    86528650    push DS                                   ; 1e
    86538651    push eax                                  ; 66 50
     
    86578655    mov word [00467h], sp                     ; 89 26 67 04
    86588656    mov [00469h], ss                          ; 8c 16 69 04
    8659     call 0610ah                               ; e8 00 00
     8657    call 061b5h                               ; e8 00 00
    86608658    pop di                                    ; 5f
    86618659    add di, strict byte 0001bh                ; 83 c7 1b
     
    86808678    cld                                       ; fc
    86818679    rep movsw                                 ; f3 a5
    8682     call 0613eh                               ; e8 00 00
     8680    call 061e9h                               ; e8 00 00
    86838681    pop ax                                    ; 58
    86848682    push 0f000h                               ; 68 00 f0
     
    87018699    pop DS                                    ; 1f
    87028700    mov ax, di                                ; 89 f8
    8703     call 05d94h                               ; e8 25 fc
     8701    call 05e38h                               ; e8 1e fc
    87048702    sti                                       ; fb
    8705     mov byte [bp+017h], 000h                  ; c6 46 17 00
    8706     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8707     jmp near 05f28h                           ; e9 ad fd
     8703    mov byte [bp+013h], 000h                  ; c6 46 13 00
     8704    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     8705    jmp near 05fd0h                           ; e9 aa fd
    87088706    mov ax, strict word 00031h                ; b8 31 00
    8709     call 0165ch                               ; e8 db b4
     8707    call 0165ch                               ; e8 30 b4
    87108708    xor ah, ah                                ; 30 e4
    87118709    mov dx, ax                                ; 89 c2
    87128710    sal dx, 008h                              ; c1 e2 08
    87138711    mov ax, strict word 00030h                ; b8 30 00
    8714     call 0165ch                               ; e8 ce b4
     8712    call 0165ch                               ; e8 23 b4
    87158713    xor ah, ah                                ; 30 e4
    87168714    or dx, ax                                 ; 09 c2
    8717     mov word [bp+016h], dx                    ; 89 56 16
     8715    mov word [bp+012h], dx                    ; 89 56 12
    87188716    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    8719     jbe short 06174h                          ; 76 da
    8720     mov word [bp+016h], strict word 0ffc0h    ; c7 46 16 c0 ff
    8721     jmp short 06174h                          ; eb d3
     8717    jbe short 0621fh                          ; 76 da
     8718    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
     8719    jmp short 0621fh                          ; eb d3
    87228720    cli                                       ; fa
    87238721    mov ax, strict word 00001h                ; b8 01 00
    8724     call 05d94h                               ; e8 ec fb
    8725     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8722    call 05e38h                               ; e8 e5 fb
     8723    mov dx, word [bp+006h]                    ; 8b 56 06
    87268724    add dx, strict byte 00038h                ; 83 c2 38
    8727     mov ax, word [bp+018h]                    ; 8b 46 18
     8725    mov ax, word [bp+014h]                    ; 8b 46 14
    87288726    mov bx, strict word 0ffffh                ; bb ff ff
    8729     call 0162ah                               ; e8 73 b4
    8730     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8727    call 0162ah                               ; e8 c8 b3
     8728    mov dx, word [bp+006h]                    ; 8b 56 06
    87318729    add dx, strict byte 0003ah                ; 83 c2 3a
    8732     mov ax, word [bp+018h]                    ; 8b 46 18
     8730    mov ax, word [bp+014h]                    ; 8b 46 14
    87338731    xor bx, bx                                ; 31 db
    8734     call 0162ah                               ; e8 65 b4
    8735     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8732    call 0162ah                               ; e8 ba b3
     8733    mov dx, word [bp+006h]                    ; 8b 56 06
    87368734    add dx, strict byte 0003ch                ; 83 c2 3c
    8737     mov ax, word [bp+018h]                    ; 8b 46 18
     8735    mov ax, word [bp+014h]                    ; 8b 46 14
    87388736    mov bx, strict word 0000fh                ; bb 0f 00
    8739     call 0160eh                               ; e8 3a b4
    8740     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8737    call 0160eh                               ; e8 8f b3
     8738    mov dx, word [bp+006h]                    ; 8b 56 06
    87418739    add dx, strict byte 0003dh                ; 83 c2 3d
    8742     mov ax, word [bp+018h]                    ; 8b 46 18
     8740    mov ax, word [bp+014h]                    ; 8b 46 14
    87438741    mov bx, 0009bh                            ; bb 9b 00
    8744     call 0160eh                               ; e8 2b b4
    8745     mov dx, word [bp+00ah]                    ; 8b 56 0a
     8742    call 0160eh                               ; e8 80 b3
     8743    mov dx, word [bp+006h]                    ; 8b 56 06
    87468744    add dx, strict byte 0003eh                ; 83 c2 3e
    8747     mov ax, word [bp+018h]                    ; 8b 46 18
     8745    mov ax, word [bp+014h]                    ; 8b 46 14
    87488746    xor bx, bx                                ; 31 db
    8749     call 0162ah                               ; e8 39 b4
     8747    call 0162ah                               ; e8 8e b3
    87508748    mov AL, strict byte 011h                  ; b0 11
    87518749    mov dx, strict word 00020h                ; ba 20 00
     
    87538751    mov dx, 000a0h                            ; ba a0 00
    87548752    out DX, AL                                ; ee
    8755     mov ax, word [bp+010h]                    ; 8b 46 10
     8753    mov ax, word [bp+00ch]                    ; 8b 46 0c
    87568754    shr ax, 008h                              ; c1 e8 08
    87578755    mov dx, strict word 00021h                ; ba 21 00
    87588756    out DX, AL                                ; ee
    8759     mov ax, word [bp+010h]                    ; 8b 46 10
     8757    mov ax, word [bp+00ch]                    ; 8b 46 0c
    87608758    mov dx, 000a1h                            ; ba a1 00
    87618759    out DX, AL                                ; ee
     
    87768774    mov dx, 000a1h                            ; ba a1 00
    87778775    out DX, AL                                ; ee
    8778     mov si, word [bp+00ah]                    ; 8b 76 0a
    8779     call 06232h                               ; e8 00 00
     8776    mov si, word [bp+006h]                    ; 8b 76 06
     8777    call 062ddh                               ; e8 00 00
    87808778    pop di                                    ; 5f
    87818779    add di, strict byte 00018h                ; 83 c7 18
     
    87938791    mov ax, strict word 00020h                ; b8 20 00
    87948792    mov es, ax                                ; 8e c0
    8795     lea ax, [bp+008h]                         ; 8d 46 08
     8793    lea ax, [bp+004h]                         ; 8d 46 04
    87968794    db  08bh, 0e0h
    87978795    ; mov sp, ax                                ; 8b e0
     
    88058803    push cx                                   ; 51
    88068804    retf                                      ; cb
    8807     jmp near 05f28h                           ; e9 ba fc
    8808     mov bx, 00d32h                            ; bb 32 0d
     8805    jmp near 05fd0h                           ; e9 b7 fc
     8806    mov bx, 00d38h                            ; bb 38 0d
    88098807    mov cx, ds                                ; 8c d9
    88108808    mov ax, strict word 00004h                ; b8 04 00
    8811     call 018aeh                               ; e8 35 b6
     8809    call 018cch                               ; e8 a8 b5
    88128810    push 00806h                               ; 68 06 08
    88138811    push strict byte 00004h                   ; 6a 04
    8814     call 018e9h                               ; e8 68 b6
     8812    call 0190dh                               ; e8 e1 b5
    88158813    add sp, strict byte 00004h                ; 83 c4 04
    8816     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8817     mov ax, word [bp+016h]                    ; 8b 46 16
     8814    or byte [bp+018h], 001h                   ; 80 4e 18 01
     8815    mov ax, word [bp+012h]                    ; 8b 46 12
    88188816    xor ah, ah                                ; 30 e4
    88198817    or ah, 086h                               ; 80 cc 86
    8820     mov word [bp+016h], ax                    ; 89 46 16
    8821     jmp near 05f28h                           ; e9 92 fc
    8822     mov word [bp+01ch], cx                    ; 89 4e 1c
    8823     mov word [bp+016h], ax                    ; 89 46 16
    8824     mov word [bp+010h], 0e6f5h                ; c7 46 10 f5 e6
    8825     mov word [bp+018h], 0f000h                ; c7 46 18 00 f0
    8826     jmp near 05f28h                           ; e9 7f fc
     8818    mov word [bp+012h], ax                    ; 89 46 12
     8819    jmp near 05fd0h                           ; e9 8f fc
     8820    mov word [bp+018h], cx                    ; 89 4e 18
     8821    mov word [bp+012h], ax                    ; 89 46 12
     8822    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
     8823    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
     8824    jmp near 05fd0h                           ; e9 7c fc
    88278825    mov dx, strict word 0000eh                ; ba 0e 00
    88288826    mov ax, strict word 00040h                ; b8 40 00
    8829     call 0161ch                               ; e8 6a b3
    8830     mov word [bp+018h], ax                    ; 89 46 18
    8831     jmp near 06174h                           ; e9 bc fe
     8827    call 0161ch                               ; e8 bf b2
     8828    mov word [bp+014h], ax                    ; 89 46 14
     8829    jmp near 0621fh                           ; e9 bc fe
    88328830    push 00835h                               ; 68 35 08
    88338831    push strict byte 00008h                   ; 6a 08
    8834     jmp short 0627eh                          ; eb bf
    8835     test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    8836     jne short 062e4h                          ; 75 1f
    8837     mov word [bp+016h], ax                    ; 89 46 16
    8838     mov ax, word [bp+010h]                    ; 8b 46 10
     8832    jmp short 06329h                          ; eb bf
     8833    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
     8834    jne short 0638fh                          ; 75 1f
     8835    mov word [bp+012h], ax                    ; 89 46 12
     8836    mov ax, word [bp+00ch]                    ; 8b 46 0c
    88398837    xor ah, ah                                ; 30 e4
    88408838    cmp ax, strict word 00001h                ; 3d 01 00
    8841     jc short 062ddh                           ; 72 0b
     8839    jc short 06388h                           ; 72 0b
    88428840    cmp ax, strict word 00003h                ; 3d 03 00
    8843     jnbe short 062ddh                         ; 77 06
    8844     mov word [bp+01ch], cx                    ; 89 4e 1c
    8845     jmp near 05f28h                           ; e9 4b fc
    8846     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8847     jmp near 05f28h                           ; e9 44 fc
    8848     mov bx, 00d32h                            ; bb 32 0d
     8841    jnbe short 06388h                         ; 77 06
     8842    mov word [bp+018h], cx                    ; 89 4e 18
     8843    jmp near 05fd0h                           ; e9 48 fc
     8844    or byte [bp+018h], 001h                   ; 80 4e 18 01
     8845    jmp near 05fd0h                           ; e9 41 fc
     8846    mov bx, 00d38h                            ; bb 38 0d
    88498847    mov cx, ds                                ; 8c d9
    88508848    mov ax, strict word 00004h                ; b8 04 00
    8851     call 018aeh                               ; e8 bf b5
    8852     push word [bp+010h]                       ; ff 76 10
    8853     push word [bp+016h]                       ; ff 76 16
     8849    call 018cch                               ; e8 32 b5
     8850    push word [bp+00ch]                       ; ff 76 0c
     8851    push word [bp+012h]                       ; ff 76 12
    88548852    push 0084ch                               ; 68 4c 08
    88558853    push strict byte 00004h                   ; 6a 04
    8856     call 018e9h                               ; e8 ec b5
     8854    call 0190dh                               ; e8 65 b5
    88578855    add sp, strict byte 00008h                ; 83 c4 08
    8858     jmp short 06284h                          ; eb 82
    8859     mov cx, 0db64h                            ; b9 64 db
    8860     db  064h
    8861     db  0feh
    8862     and byte [fs:di+040h], ah                 ; 64 20 65 40
    8863     db  065h, 061h
    8864     ; gs popaw                                  ; 65 61
    8865     mov AL, byte [gs:0cc65h]                  ; 65 a0 65 cc
    8866     db  065h
    8867 _int15_function32:                           ; 0xf6312 LB 0x37b
     8856    jmp short 0632fh                          ; eb 82
     8857    db  066h, 065h, 088h, 065h, 0abh
     8858    ; mov byte [gs:di-055h], ah                 ; 66 65 88 65 ab
     8859    db  065h, 0cdh, 065h
     8860    ; gs int 065h                               ; 65 cd 65
     8861    in ax, DX                                 ; ed
     8862    db  065h, 00eh
     8863    ; gs push CS                                ; 65 0e
     8864    dec ebp                                   ; 66 4d
     8865    db  066h, 079h, 066h
     8866    ; jns short 06423h                          ; 66 79 66
     8867_int15_function32:                           ; 0xf63bd LB 0x37e
     8868    push bp                                   ; 55
     8869    mov bp, sp                                ; 89 e5
    88688870    push si                                   ; 56
    8869     enter 00008h, 000h                        ; c8 08 00 00
    8870     mov dx, word [bp+022h]                    ; 8b 56 22
     8871    sub sp, strict byte 00008h                ; 83 ec 08
     8872    mov dx, word [bp+020h]                    ; 8b 56 20
    88718873    shr dx, 008h                              ; c1 ea 08
    8872     mov bx, word [bp+02ah]                    ; 8b 5e 2a
     8874    mov bx, word [bp+028h]                    ; 8b 5e 28
    88738875    and bl, 0feh                              ; 80 e3 fe
    8874     mov ax, word [bp+022h]                    ; 8b 46 22
     8876    mov ax, word [bp+020h]                    ; 8b 46 20
    88758877    xor ah, ah                                ; 30 e4
    88768878    cmp dx, 000e8h                            ; 81 fa e8 00
    8877     je near 063ddh                            ; 0f 84 ad 00
     8879    je near 0648ah                            ; 0f 84 ad 00
    88788880    cmp dx, 000d0h                            ; 81 fa d0 00
    8879     je short 06378h                           ; 74 42
     8881    je short 06425h                           ; 74 42
    88808882    cmp dx, 00086h                            ; 81 fa 86 00
    8881     jne near 06660h                           ; 0f 85 22 03
     8883    jne near 0670bh                           ; 0f 85 20 03
    88828884    sti                                       ; fb
    8883     mov ax, word [bp+01eh]                    ; 8b 46 1e
    8884     mov dx, word [bp+01ah]                    ; 8b 56 1a
     8885    mov ax, word [bp+01ch]                    ; 8b 46 1c
     8886    mov dx, word [bp+018h]                    ; 8b 56 18
    88858887    sal eax, 010h                             ; 66 c1 e0 10
    88868888    db  08bh, 0c2h
     
    88988900    db  066h, 00bh, 0c9h
    88998901    ; or ecx, ecx                               ; 66 0b c9
    8900     je near 06375h                            ; 0f 84 0e 00
     8902    je near 06422h                            ; 0f 84 0e 00
    89018903    in AL, strict byte 061h                   ; e4 61
    89028904    and AL, strict byte 010h                  ; 24 10
    89038905    db  03ah, 0c4h
    89048906    ; cmp al, ah                                ; 3a c4
    8905     je short 06367h                           ; 74 f8
     8907    je short 06414h                           ; 74 f8
    89068908    db  08ah, 0e0h
    89078909    ; mov ah, al                                ; 8a e0
    89088910    dec ecx                                   ; 66 49
    8909     jne short 06367h                          ; 75 f2
    8910     leave                                     ; c9
    8911     pop si                                    ; 5e
    8912     retn                                      ; c3
     8911    jne short 06414h                          ; 75 f2
     8912    jmp near 06735h                           ; e9 10 03
    89138913    cmp ax, strict word 0004fh                ; 3d 4f 00
    8914     jne near 06660h                           ; 0f 85 e1 02
    8915     cmp word [bp+018h], 05052h                ; 81 7e 18 52 50
    8916     jne near 06660h                           ; 0f 85 d8 02
    8917     cmp word [bp+016h], 04f43h                ; 81 7e 16 43 4f
    8918     jne near 06660h                           ; 0f 85 cf 02
    8919     cmp word [bp+020h], 04d4fh                ; 81 7e 20 4f 4d
    8920     jne near 06660h                           ; 0f 85 c6 02
    8921     cmp word [bp+01eh], 04445h                ; 81 7e 1e 45 44
    8922     jne near 06660h                           ; 0f 85 bd 02
    8923     mov ax, word [bp+00ch]                    ; 8b 46 0c
    8924     or ax, word [bp+00ah]                     ; 0b 46 0a
    8925     jne near 06660h                           ; 0f 85 b3 02
    8926     mov ax, word [bp+008h]                    ; 8b 46 08
    8927     or ax, word [bp+006h]                     ; 0b 46 06
    8928     jne near 06660h                           ; 0f 85 a9 02
    8929     mov word [bp+02ah], bx                    ; 89 5e 2a
     8914    jne near 0670bh                           ; 0f 85 df 02
     8915    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
     8916    jne near 0670bh                           ; 0f 85 d6 02
     8917    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
     8918    jne near 0670bh                           ; 0f 85 cd 02
     8919    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
     8920    jne near 0670bh                           ; 0f 85 c4 02
     8921    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
     8922    jne near 0670bh                           ; 0f 85 bb 02
     8923    mov ax, word [bp+00ah]                    ; 8b 46 0a
     8924    or ax, word [bp+008h]                     ; 0b 46 08
     8925    jne near 0670bh                           ; 0f 85 b1 02
     8926    mov ax, word [bp+006h]                    ; 8b 46 06
     8927    or ax, word [bp+004h]                     ; 0b 46 04
     8928    jne near 0670bh                           ; 0f 85 a7 02
     8929    mov word [bp+028h], bx                    ; 89 5e 28
     8930    mov ax, word [bp+014h]                    ; 8b 46 14
     8931    mov word [bp+008h], ax                    ; 89 46 08
    89308932    mov ax, word [bp+016h]                    ; 8b 46 16
    89318933    mov word [bp+00ah], ax                    ; 89 46 0a
    8932     mov ax, word [bp+018h]                    ; 8b 46 18
    8933     mov word [bp+00ch], ax                    ; 89 46 0c
     8934    mov ax, word [bp+01ch]                    ; 8b 46 1c
     8935    mov word [bp+004h], ax                    ; 89 46 04
    89348936    mov ax, word [bp+01eh]                    ; 8b 46 1e
    89358937    mov word [bp+006h], ax                    ; 89 46 06
    8936     mov ax, word [bp+020h]                    ; 8b 46 20
    8937     mov word [bp+008h], ax                    ; 89 46 08
    8938     mov dword [bp+022h], strict dword 049413332h ; 66 c7 46 22 32 33 41 49
    8939     leave                                     ; c9
    8940     pop si                                    ; 5e
    8941     retn                                      ; c3
     8938    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
     8939    jmp near 06735h                           ; e9 ab 02
    89428940    cmp ax, strict word 00020h                ; 3d 20 00
    8943     je short 063ech                           ; 74 0a
     8941    je short 06499h                           ; 74 0a
    89448942    cmp ax, strict word 00001h                ; 3d 01 00
    8945     je near 06614h                            ; 0f 84 2b 02
    8946     jmp near 06660h                           ; e9 74 02
    8947     cmp word [bp+01ch], 0534dh                ; 81 7e 1c 4d 53
    8948     jne near 06660h                           ; 0f 85 6b 02
    8949     cmp word [bp+01ah], 04150h                ; 81 7e 1a 50 41
    8950     jne near 06660h                           ; 0f 85 62 02
     8943    je near 066c0h                            ; 0f 84 2a 02
     8944    jmp near 0670bh                           ; e9 72 02
     8945    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
     8946    jne near 0670bh                           ; 0f 85 69 02
     8947    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
     8948    jne near 0670bh                           ; 0f 85 60 02
    89518949    mov ax, strict word 00035h                ; b8 35 00
    8952     call 0165ch                               ; e8 58 b2
     8950    call 0165ch                               ; e8 ab b1
    89538951    movzx bx, al                              ; 0f b6 d8
    89548952    xor dx, dx                                ; 31 d2
     
    89568954    sal bx, 1                                 ; d1 e3
    89578955    rcl dx, 1                                 ; d1 d2
    8958     loop 0640ch                               ; e2 fa
     8956    loop 064b9h                               ; e2 fa
    89598957    mov ax, strict word 00034h                ; b8 34 00
    8960     call 0165ch                               ; e8 44 b2
     8958    call 0165ch                               ; e8 97 b1
    89618959    xor ah, ah                                ; 30 e4
    89628960    mov dx, bx                                ; 89 da
     
    89668964    adc dx, 00100h                            ; 81 d2 00 01
    89678965    cmp dx, 00100h                            ; 81 fa 00 01
    8968     jc short 06432h                           ; 72 06
    8969     jne short 0645fh                          ; 75 31
     8966    jc short 064dfh                           ; 72 06
     8967    jne short 0650ch                          ; 75 31
    89708968    test bx, bx                               ; 85 db
    8971     jnbe short 0645fh                         ; 77 2d
     8969    jnbe short 0650ch                         ; 77 2d
    89728970    mov ax, strict word 00031h                ; b8 31 00
    8973     call 0165ch                               ; e8 24 b2
     8971    call 0165ch                               ; e8 77 b1
    89748972    movzx bx, al                              ; 0f b6 d8
    89758973    xor dx, dx                                ; 31 d2
     
    89778975    sal bx, 1                                 ; d1 e3
    89788976    rcl dx, 1                                 ; d1 d2
    8979     loop 06440h                               ; e2 fa
     8977    loop 064edh                               ; e2 fa
    89808978    mov ax, strict word 00030h                ; b8 30 00
    8981     call 0165ch                               ; e8 10 b2
     8979    call 0165ch                               ; e8 63 b1
    89828980    xor ah, ah                                ; 30 e4
    89838981    or bx, ax                                 ; 09 c3
     
    89858983    sal bx, 1                                 ; d1 e3
    89868984    rcl dx, 1                                 ; d1 d2
    8987     loop 06453h                               ; e2 fa
     8985    loop 06500h                               ; e2 fa
    89888986    add bx, strict byte 00000h                ; 83 c3 00
    89898987    adc dx, strict byte 00010h                ; 83 d2 10
    89908988    mov ax, strict word 00062h                ; b8 62 00
    8991     call 0165ch                               ; e8 f7 b1
     8989    call 0165ch                               ; e8 4a b1
    89928990    xor ah, ah                                ; 30 e4
     8991    mov word [bp-00ah], ax                    ; 89 46 f6
     8992    xor al, al                                ; 30 c0
    89938993    mov word [bp-008h], ax                    ; 89 46 f8
    8994     xor al, al                                ; 30 c0
    8995     mov word [bp-006h], ax                    ; 89 46 fa
    89968994    mov cx, strict word 00008h                ; b9 08 00
    8997     sal word [bp-008h], 1                     ; d1 66 f8
    8998     rcl word [bp-006h], 1                     ; d1 56 fa
    8999     loop 06472h                               ; e2 f8
     8995    sal word [bp-00ah], 1                     ; d1 66 f6
     8996    rcl word [bp-008h], 1                     ; d1 56 f8
     8997    loop 0651fh                               ; e2 f8
    90008998    mov ax, strict word 00061h                ; b8 61 00
    9001     call 0165ch                               ; e8 dc b1
     8999    call 0165ch                               ; e8 2f b1
    90029000    xor ah, ah                                ; 30 e4
    9003     or word [bp-008h], ax                     ; 09 46 f8
    9004     mov ax, word [bp-008h]                    ; 8b 46 f8
    9005     mov word [bp-006h], ax                    ; 89 46 fa
    9006     mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
     9001    or word [bp-00ah], ax                     ; 09 46 f6
     9002    mov ax, word [bp-00ah]                    ; 8b 46 f6
     9003    mov word [bp-008h], ax                    ; 89 46 f8
     9004    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    90079005    mov ax, strict word 00063h                ; b8 63 00
    9008     call 0165ch                               ; e8 c6 b1
    9009     mov byte [bp-002h], al                    ; 88 46 fe
     9006    call 0165ch                               ; e8 19 b1
    90109007    mov byte [bp-004h], al                    ; 88 46 fc
    9011     mov ax, word [bp+016h]                    ; 8b 46 16
     9008    mov byte [bp-006h], al                    ; 88 46 fa
     9009    mov ax, word [bp+014h]                    ; 8b 46 14
    90129010    cmp ax, strict word 00007h                ; 3d 07 00
    9013     jnbe near 06660h                          ; 0f 87 ba 01
     9011    jnbe near 0670bh                          ; 0f 87 b8 01
    90149012    mov si, ax                                ; 89 c6
    90159013    add si, ax                                ; 01 c6
     
    90189016    mov ax, dx                                ; 89 d0
    90199017    adc ax, strict word 0ffffh                ; 15 ff ff
    9020     jmp word [cs:si+06302h]                   ; 2e ff a4 02 63
     9018    jmp word [cs:si+063adh]                   ; 2e ff a4 ad 63
    90219019    push strict byte 00001h                   ; 6a 01
    90229020    push dword 000000000h                     ; 66 6a 00
    90239021    push strict byte 00009h                   ; 6a 09
    90249022    push 0fc00h                               ; 68 00 fc
    9025     mov dx, word [bp+006h]                    ; 8b 56 06
    9026     mov ax, word [bp+026h]                    ; 8b 46 26
     9023    mov dx, word [bp+004h]                    ; 8b 56 04
     9024    mov ax, word [bp+024h]                    ; 8b 46 24
    90279025    xor bx, bx                                ; 31 db
    90289026    xor cx, cx                                ; 31 c9
    9029     call 05dbdh                               ; e8 ed f8
    9030     mov dword [bp+016h], strict dword 000000001h ; 66 c7 46 16 01 00 00 00
    9031     jmp near 065fdh                           ; e9 22 01
     9027    call 05e64h                               ; e8 e7 f8
     9028    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
     9029    jmp near 066aah                           ; e9 22 01
    90329030    push strict byte 00002h                   ; 6a 02
    90339031    push dword 000000000h                     ; 66 6a 00
    90349032    push strict byte 0000ah                   ; 6a 0a
    90359033    push strict byte 00000h                   ; 6a 00
    9036     mov dx, word [bp+006h]                    ; 8b 56 06
    9037     mov ax, word [bp+026h]                    ; 8b 46 26
     9034    mov dx, word [bp+004h]                    ; 8b 56 04
     9035    mov ax, word [bp+024h]                    ; 8b 46 24
    90389036    mov bx, 0fc00h                            ; bb 00 fc
    90399037    mov cx, strict word 00009h                ; b9 09 00
    9040     call 05dbdh                               ; e8 ca f8
    9041     mov dword [bp+016h], strict dword 000000002h ; 66 c7 46 16 02 00 00 00
    9042     jmp near 065fdh                           ; e9 ff 00
     9038    call 05e64h                               ; e8 c4 f8
     9039    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
     9040    jmp near 066aah                           ; e9 ff 00
    90439041    push strict byte 00002h                   ; 6a 02
    90449042    push dword 000000000h                     ; 66 6a 00
    90459043    push strict byte 00010h                   ; 6a 10
    90469044    push strict byte 00000h                   ; 6a 00
    9047     mov dx, word [bp+006h]                    ; 8b 56 06
    9048     mov ax, word [bp+026h]                    ; 8b 46 26
     9045    mov dx, word [bp+004h]                    ; 8b 56 04
     9046    mov ax, word [bp+024h]                    ; 8b 46 24
    90499047    xor bx, bx                                ; 31 db
    90509048    mov cx, strict word 0000fh                ; b9 0f 00
    9051     call 05dbdh                               ; e8 a8 f8
    9052     mov dword [bp+016h], strict dword 000000003h ; 66 c7 46 16 03 00 00 00
    9053     jmp near 065fdh                           ; e9 dd 00
     9049    call 05e64h                               ; e8 a2 f8
     9050    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
     9051    jmp near 066aah                           ; e9 dd 00
    90549052    push strict byte 00001h                   ; 6a 01
    90559053    push dword 000000000h                     ; 66 6a 00
    90569054    push ax                                   ; 50
    90579055    push cx                                   ; 51
    9058     mov dx, word [bp+006h]                    ; 8b 56 06
    9059     mov ax, word [bp+026h]                    ; 8b 46 26
     9056    mov dx, word [bp+004h]                    ; 8b 56 04
     9057    mov ax, word [bp+024h]                    ; 8b 46 24
    90609058    xor bx, bx                                ; 31 db
    90619059    mov cx, strict word 00010h                ; b9 10 00
    9062     call 05dbdh                               ; e8 88 f8
    9063     mov dword [bp+016h], strict dword 000000004h ; 66 c7 46 16 04 00 00 00
    9064     jmp near 065fdh                           ; e9 bd 00
     9060    call 05e64h                               ; e8 82 f8
     9061    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
     9062    jmp near 066aah                           ; e9 bd 00
    90659063    push strict byte 00003h                   ; 6a 03
    90669064    push dword 000000000h                     ; 66 6a 00
    90679065    push dx                                   ; 52
    90689066    push bx                                   ; 53
    9069     mov dx, word [bp+006h]                    ; 8b 56 06
    9070     mov si, word [bp+026h]                    ; 8b 76 26
     9067    mov dx, word [bp+004h]                    ; 8b 56 04
     9068    mov si, word [bp+024h]                    ; 8b 76 24
    90719069    mov bx, cx                                ; 89 cb
    90729070    mov cx, ax                                ; 89 c1
    90739071    mov ax, si                                ; 89 f0
    9074     call 05dbdh                               ; e8 67 f8
    9075     mov dword [bp+016h], strict dword 000000005h ; 66 c7 46 16 05 00 00 00
    9076     jmp near 065fdh                           ; e9 9c 00
     9072    call 05e64h                               ; e8 61 f8
     9073    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
     9074    jmp near 066aah                           ; e9 9c 00
    90779075    push strict byte 00002h                   ; 6a 02
    90789076    push dword 000000000h                     ; 66 6a 00
    90799077    push dword 000000000h                     ; 66 6a 00
    9080     mov dx, word [bp+006h]                    ; 8b 56 06
    9081     mov ax, word [bp+026h]                    ; 8b 46 26
     9078    mov dx, word [bp+004h]                    ; 8b 56 04
     9079    mov ax, word [bp+024h]                    ; 8b 46 24
    90829080    xor bx, bx                                ; 31 db
    90839081    mov cx, strict word 0fffch                ; b9 fc ff
    9084     call 05dbdh                               ; e8 46 f8
    9085     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    9086     jne short 06584h                          ; 75 07
    9087     mov ax, word [bp-006h]                    ; 8b 46 fa
     9082    call 05e64h                               ; e8 40 f8
     9083    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     9084    jne short 06631h                          ; 75 07
     9085    mov ax, word [bp-008h]                    ; 8b 46 f8
    90889086    test ax, ax                               ; 85 c0
    9089     je short 06598h                           ; 74 14
    9090     mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00
    9091     jmp short 065fdh                          ; eb 6f
    9092     mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00
    9093     jmp short 065fdh                          ; eb 65
     9087    je short 06645h                           ; 74 14
     9088    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
     9089    jmp short 066aah                          ; eb 6f
     9090    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
     9091    jmp short 066aah                          ; eb 65
     9092    mov word [bp+014h], ax                    ; 89 46 14
    90949093    mov word [bp+016h], ax                    ; 89 46 16
    9095     mov word [bp+018h], ax                    ; 89 46 18
    9096     jmp short 065fdh                          ; eb 5d
     9094    jmp short 066aah                          ; eb 5d
    90979095    push strict byte 00002h                   ; 6a 02
    90989096    push dword 000000000h                     ; 66 6a 00
    90999097    push dword 000000000h                     ; 66 6a 00
    9100     mov dx, word [bp+006h]                    ; 8b 56 06
    9101     mov ax, word [bp+026h]                    ; 8b 46 26
     9098    mov dx, word [bp+004h]                    ; 8b 56 04
     9099    mov ax, word [bp+024h]                    ; 8b 46 24
    91029100    xor bx, bx                                ; 31 db
    91039101    xor cx, cx                                ; 31 c9
    9104     call 05dbdh                               ; e8 08 f8
    9105     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    9106     jne short 065c2h                          ; 75 07
    9107     mov ax, word [bp-006h]                    ; 8b 46 fa
     9102    call 05e64h                               ; e8 02 f8
     9103    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     9104    jne short 0666fh                          ; 75 07
     9105    mov ax, word [bp-008h]                    ; 8b 46 f8
    91089106    test ax, ax                               ; 85 c0
    9109     je short 065c4h                           ; 74 02
    9110     jmp short 06584h                          ; eb c0
     9107    je short 06671h                           ; 74 02
     9108    jmp short 06631h                          ; eb c0
     9109    mov word [bp+014h], ax                    ; 89 46 14
    91119110    mov word [bp+016h], ax                    ; 89 46 16
    9112     mov word [bp+018h], ax                    ; 89 46 18
    9113     jmp short 065fdh                          ; eb 31
    9114     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    9115     jne short 065d8h                          ; 75 06
    9116     cmp word [bp-006h], strict byte 00000h    ; 83 7e fa 00
    9117     je short 065fdh                           ; 74 25
     9111    jmp short 066aah                          ; eb 31
     9112    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
     9113    jne short 06685h                          ; 75 06
     9114    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
     9115    je short 066aah                           ; 74 25
    91189116    push strict byte 00001h                   ; 6a 01
    9119     mov al, byte [bp-004h]                    ; 8a 46 fc
     9117    mov al, byte [bp-006h]                    ; 8a 46 fa
    91209118    db  0feh, 0c0h
    91219119    ; inc al                                    ; fe c0
     
    91239121    push ax                                   ; 50
    91249122    push strict byte 00001h                   ; 6a 01
    9125     push dword [bp-008h]                      ; 66 ff 76 f8
    9126     mov dx, word [bp+006h]                    ; 8b 56 06
    9127     mov ax, word [bp+026h]                    ; 8b 46 26
     9123    push dword [bp-00ah]                      ; 66 ff 76 f6
     9124    mov dx, word [bp+004h]                    ; 8b 56 04
     9125    mov ax, word [bp+024h]                    ; 8b 46 24
    91289126    xor bx, bx                                ; 31 db
    91299127    xor cx, cx                                ; 31 c9
    9130     call 05dbdh                               ; e8 c8 f7
     9128    call 05e64h                               ; e8 c2 f7
    91319129    xor ax, ax                                ; 31 c0
     9130    mov word [bp+014h], ax                    ; 89 46 14
    91329131    mov word [bp+016h], ax                    ; 89 46 16
    9133     mov word [bp+018h], ax                    ; 89 46 18
    9134     mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53
    9135     mov dword [bp+01eh], strict dword 000000014h ; 66 c7 46 1e 14 00 00 00
    9136     and byte [bp+02ah], 0feh                  ; 80 66 2a fe
    9137     leave                                     ; c9
    9138     pop si                                    ; 5e
    9139     retn                                      ; c3
    9140     mov word [bp+02ah], bx                    ; 89 5e 2a
     9132    mov dword [bp+020h], strict dword 0534d4150h ; 66 c7 46 20 50 41 4d 53
     9133    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
     9134    and byte [bp+028h], 0feh                  ; 80 66 28 fe
     9135    jmp short 06735h                          ; eb 75
     9136    mov word [bp+028h], bx                    ; 89 5e 28
    91419137    mov ax, strict word 00031h                ; b8 31 00
    9142     call 0165ch                               ; e8 3f b0
     9138    call 0165ch                               ; e8 93 af
    91439139    movzx dx, al                              ; 0f b6 d0
    91449140    sal dx, 008h                              ; c1 e2 08
    91459141    mov ax, strict word 00030h                ; b8 30 00
    9146     call 0165ch                               ; e8 33 b0
     9142    call 0165ch                               ; e8 87 af
    91479143    xor ah, ah                                ; 30 e4
    91489144    or dx, ax                                 ; 09 c2
    9149     mov word [bp+01eh], dx                    ; 89 56 1e
     9145    mov word [bp+01ch], dx                    ; 89 56 1c
    91509146    cmp dx, 03c00h                            ; 81 fa 00 3c
    9151     jbe short 0663bh                          ; 76 05
    9152     mov word [bp+01eh], 03c00h                ; c7 46 1e 00 3c
     9147    jbe short 066e7h                          ; 76 05
     9148    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    91539149    mov ax, strict word 00035h                ; b8 35 00
    9154     call 0165ch                               ; e8 1b b0
     9150    call 0165ch                               ; e8 6f af
    91559151    movzx dx, al                              ; 0f b6 d0
    91569152    sal dx, 008h                              ; c1 e2 08
    91579153    mov ax, strict word 00034h                ; b8 34 00
    9158     call 0165ch                               ; e8 0f b0
     9154    call 0165ch                               ; e8 63 af
    91599155    xor ah, ah                                ; 30 e4
    91609156    or dx, ax                                 ; 09 c2
    9161     mov word [bp+01ah], dx                    ; 89 56 1a
    9162     mov ax, word [bp+01eh]                    ; 8b 46 1e
    9163     mov word [bp+022h], ax                    ; 89 46 22
    9164     mov word [bp+016h], dx                    ; 89 56 16
    9165     leave                                     ; c9
    9166     pop si                                    ; 5e
    9167     retn                                      ; c3
    9168     mov bx, 00d32h                            ; bb 32 0d
     9157    mov word [bp+018h], dx                    ; 89 56 18
     9158    mov ax, word [bp+01ch]                    ; 8b 46 1c
     9159    mov word [bp+020h], ax                    ; 89 46 20
     9160    mov word [bp+014h], dx                    ; 89 56 14
     9161    jmp short 06735h                          ; eb 2a
     9162    mov bx, 00d38h                            ; bb 38 0d
    91699163    mov cx, ds                                ; 8c d9
    91709164    mov ax, strict word 00004h                ; b8 04 00
    9171     call 018aeh                               ; e8 43 b2
    9172     push word [bp+016h]                       ; ff 76 16
    9173     push word [bp+022h]                       ; ff 76 22
     9165    call 018cch                               ; e8 b6 b1
     9166    push word [bp+014h]                       ; ff 76 14
     9167    push word [bp+020h]                       ; ff 76 20
    91749168    push 0084ch                               ; 68 4c 08
    91759169    push strict byte 00004h                   ; 6a 04
    9176     call 018e9h                               ; e8 70 b2
     9170    call 0190dh                               ; e8 e9 b1
    91779171    add sp, strict byte 00008h                ; 83 c4 08
    9178     or byte [bp+02ah], 001h                   ; 80 4e 2a 01
    9179     mov ax, word [bp+022h]                    ; 8b 46 22
     9172    or byte [bp+028h], 001h                   ; 80 4e 28 01
     9173    mov ax, word [bp+020h]                    ; 8b 46 20
    91809174    xor al, al                                ; 30 c0
    91819175    or AL, strict byte 086h                   ; 0c 86
    9182     mov word [bp+022h], ax                    ; 89 46 22
    9183     leave                                     ; c9
     9176    mov word [bp+020h], ax                    ; 89 46 20
     9177    lea sp, [bp-002h]                         ; 8d 66 fe
    91849178    pop si                                    ; 5e
     9179    pop bp                                    ; 5d
    91859180    retn                                      ; c3
    9186 init_rtc_:                                   ; 0xf668d LB 0x25
    9187     push dx                                   ; 52
     9181init_rtc_:                                   ; 0xf673b LB 0x28
    91889182    push bp                                   ; 55
    91899183    mov bp, sp                                ; 89 e5
     9184    push dx                                   ; 52
    91909185    mov dx, strict word 00026h                ; ba 26 00
    91919186    mov ax, strict word 0000ah                ; b8 0a 00
    9192     call 0166dh                               ; e8 d3 af
     9187    call 01670h                               ; e8 28 af
    91939188    mov dx, strict word 00002h                ; ba 02 00
    91949189    mov ax, strict word 0000bh                ; b8 0b 00
    9195     call 0166dh                               ; e8 ca af
     9190    call 01670h                               ; e8 1f af
    91969191    mov ax, strict word 0000ch                ; b8 0c 00
    9197     call 0165ch                               ; e8 b3 af
     9192    call 0165ch                               ; e8 05 af
    91989193    mov ax, strict word 0000dh                ; b8 0d 00
    9199     call 0165ch                               ; e8 ad af
     9194    call 0165ch                               ; e8 ff ae
     9195    lea sp, [bp-002h]                         ; 8d 66 fe
     9196    pop dx                                    ; 5a
    92009197    pop bp                                    ; 5d
    9201     pop dx                                    ; 5a
    92029198    retn                                      ; c3
    9203 rtc_updating_:                               ; 0xf66b2 LB 0x1f
    9204     push dx                                   ; 52
     9199rtc_updating_:                               ; 0xf6763 LB 0x21
    92059200    push bp                                   ; 55
    92069201    mov bp, sp                                ; 89 e5
     9202    push dx                                   ; 52
    92079203    mov dx, 061a8h                            ; ba a8 61
    92089204    dec dx                                    ; 4a
    9209     je short 066cbh                           ; 74 0f
     9205    je short 0677bh                           ; 74 0e
    92109206    mov ax, strict word 0000ah                ; b8 0a 00
    9211     call 0165ch                               ; e8 9a af
     9207    call 0165ch                               ; e8 e9 ae
    92129208    test AL, strict byte 080h                 ; a8 80
    9213     jne short 066b9h                          ; 75 f3
     9209    jne short 0676ah                          ; 75 f3
    92149210    xor ax, ax                                ; 31 c0
     9211    jmp short 0677eh                          ; eb 03
     9212    mov ax, strict word 00001h                ; b8 01 00
     9213    lea sp, [bp-002h]                         ; 8d 66 fe
     9214    pop dx                                    ; 5a
    92159215    pop bp                                    ; 5d
    9216     pop dx                                    ; 5a
    92179216    retn                                      ; c3
    9218     mov ax, strict word 00001h                ; b8 01 00
    9219     pop bp                                    ; 5d
    9220     pop dx                                    ; 5a
    9221     retn                                      ; c3
    9222 _int70_function:                             ; 0xf66d1 LB 0xbb
     9217_int70_function:                             ; 0xf6784 LB 0xbe
     9218    push bp                                   ; 55
     9219    mov bp, sp                                ; 89 e5
    92239220    push si                                   ; 56
    9224     enter 00002h, 000h                        ; c8 02 00 00
     9221    push ax                                   ; 50
    92259222    mov ax, strict word 0000bh                ; b8 0b 00
    9226     call 0165ch                               ; e8 80 af
     9223    call 0165ch                               ; e8 cd ae
    92279224    mov dl, al                                ; 88 c2
    9228     mov byte [bp-002h], al                    ; 88 46 fe
     9225    mov byte [bp-004h], al                    ; 88 46 fc
    92299226    mov ax, strict word 0000ch                ; b8 0c 00
    9230     call 0165ch                               ; e8 75 af
     9227    call 0165ch                               ; e8 c2 ae
    92319228    mov dh, al                                ; 88 c6
    92329229    test dl, 060h                             ; f6 c2 60
    9233     je near 06776h                            ; 0f 84 86 00
     9230    je near 06829h                            ; 0f 84 86 00
    92349231    test AL, strict byte 020h                 ; a8 20
    9235     je short 066f8h                           ; 74 04
     9232    je short 067abh                           ; 74 04
    92369233    sti                                       ; fb
    92379234    int 04ah                                  ; cd 4a
    92389235    cli                                       ; fa
    92399236    test dh, 040h                             ; f6 c6 40
    9240     je near 06776h                            ; 0f 84 77 00
     9237    je near 06829h                            ; 0f 84 77 00
    92419238    mov dx, 000a0h                            ; ba a0 00
    92429239    mov ax, strict word 00040h                ; b8 40 00
    9243     call 01600h                               ; e8 f8 ae
     9240    call 01600h                               ; e8 45 ae
    92449241    test al, al                               ; 84 c0
    9245     je short 06776h                           ; 74 6a
     9242    je short 06829h                           ; 74 6a
    92469243    mov dx, 0009ch                            ; ba 9c 00
    92479244    mov ax, strict word 00040h                ; b8 40 00
    9248     call 01638h                               ; e8 23 af
     9245    call 01638h                               ; e8 70 ae
    92499246    test dx, dx                               ; 85 d2
    9250     jne short 06762h                          ; 75 49
     9247    jne short 06815h                          ; 75 49
    92519248    cmp ax, 003d1h                            ; 3d d1 03
    9252     jnc short 06762h                          ; 73 44
     9249    jnc short 06815h                          ; 73 44
    92539250    mov dx, 00098h                            ; ba 98 00
    92549251    mov ax, strict word 00040h                ; b8 40 00
    9255     call 0161ch                               ; e8 f5 ae
     9252    call 0161ch                               ; e8 42 ae
    92569253    mov si, ax                                ; 89 c6
    92579254    mov dx, 0009ah                            ; ba 9a 00
    92589255    mov ax, strict word 00040h                ; b8 40 00
    9259     call 0161ch                               ; e8 ea ae
     9256    call 0161ch                               ; e8 37 ae
    92609257    mov cx, ax                                ; 89 c1
    92619258    xor bx, bx                                ; 31 db
    92629259    mov dx, 000a0h                            ; ba a0 00
    92639260    mov ax, strict word 00040h                ; b8 40 00
    9264     call 0160eh                               ; e8 cf ae
    9265     mov al, byte [bp-002h]                    ; 8a 46 fe
     9261    call 0160eh                               ; e8 1c ae
     9262    mov al, byte [bp-004h]                    ; 8a 46 fc
    92669263    and AL, strict byte 037h                  ; 24 37
    92679264    movzx dx, al                              ; 0f b6 d0
    92689265    mov ax, strict word 0000bh                ; b8 0b 00
    9269     call 0166dh                               ; e8 20 af
     9266    call 01670h                               ; e8 70 ae
    92709267    mov dx, cx                                ; 89 ca
    92719268    mov ax, si                                ; 89 f0
    9272     call 01600h                               ; e8 ac ae
     9269    call 01600h                               ; e8 f9 ad
    92739270    or AL, strict byte 080h                   ; 0c 80
    92749271    movzx bx, al                              ; 0f b6 d8
    92759272    mov dx, cx                                ; 89 ca
    92769273    mov ax, si                                ; 89 f0
    9277     call 0160eh                               ; e8 ae ae
    9278     jmp short 06776h                          ; eb 14
     9274    call 0160eh                               ; e8 fb ad
     9275    jmp short 06829h                          ; eb 14
    92799276    mov bx, ax                                ; 89 c3
    92809277    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    92839280    mov dx, 0009ch                            ; ba 9c 00
    92849281    mov ax, strict word 00040h                ; b8 40 00
    9285     call 0164ah                               ; e8 d4 ae
    9286     call 0e03bh                               ; e8 c2 78
    9287     leave                                     ; c9
     9282    call 0164ah                               ; e8 21 ae
     9283    call 0e03bh                               ; e8 0f 78
     9284    lea sp, [bp-002h]                         ; 8d 66 fe
    92889285    pop si                                    ; 5e
     9286    pop bp                                    ; 5d
    92899287    retn                                      ; c3
    9290     db  0a3h, 067h, 0cah, 067h, 0efh, 067h, 021h, 068h, 06fh, 068h, 0a5h, 068h, 0e7h, 068h, 03ch, 069h
    9291 _int1a_function:                             ; 0xf678c LB 0x1c0
     9288    pop cx                                    ; 59
     9289    push 06882h                               ; 68 82 68
     9290    cmpsw                                     ; a7
     9291    push 068d9h                               ; 68 d9 68
     9292    sub byte [bx+di+060h], ch                 ; 28 69 60
     9293    db  069h
     9294    mov word [0fa69h], ax                     ; a3 69 fa
     9295    db  069h
     9296_int1a_function:                             ; 0xf6842 LB 0x1c8
    92929297    push bp                                   ; 55
    92939298    mov bp, sp                                ; 89 e5
     
    92959300    mov al, byte [bp+013h]                    ; 8a 46 13
    92969301    cmp AL, strict byte 007h                  ; 3c 07
    9297     jnbe near 067c8h                          ; 0f 87 2f 00
     9302    jnbe near 0687eh                          ; 0f 87 2f 00
    92989303    movzx bx, al                              ; 0f b6 d8
    92999304    add bx, bx                                ; 01 db
    9300     jmp word [cs:bx+0677ch]                   ; 2e ff a7 7c 67
     9305    jmp word [cs:bx+06832h]                   ; 2e ff a7 32 68
    93019306    cli                                       ; fa
    93029307    mov bx, 0046eh                            ; bb 6e 04
     
    93139318    mov byte [es:bx], 000h                    ; 26 c6 07 00
    93149319    sti                                       ; fb
     9320    mov sp, bp                                ; 89 ec
    93159321    pop bp                                    ; 5d
    93169322    retn                                      ; c3
     
    93289334    sti                                       ; fb
    93299335    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9330     pop bp                                    ; 5d
    9331     retn                                      ; c3
    9332     call 066b2h                               ; e8 c0 fe
     9336    jmp short 0687eh                          ; eb d7
     9337    call 06763h                               ; e8 b9 fe
    93339338    test ax, ax                               ; 85 c0
    9334     je short 067f8h                           ; 74 02
    9335     pop bp                                    ; 5d
    9336     retn                                      ; c3
     9339    je short 068b0h                           ; 74 02
     9340    jmp short 0687eh                          ; eb ce
    93379341    xor ax, ax                                ; 31 c0
    9338     call 0165ch                               ; e8 5f ae
     9342    call 0165ch                               ; e8 a7 ad
    93399343    mov byte [bp+00fh], al                    ; 88 46 0f
    93409344    mov ax, strict word 00002h                ; b8 02 00
    9341     call 0165ch                               ; e8 56 ae
     9345    call 0165ch                               ; e8 9e ad
    93429346    mov byte [bp+010h], al                    ; 88 46 10
    93439347    mov ax, strict word 00004h                ; b8 04 00
    9344     call 0165ch                               ; e8 4d ae
     9348    call 0165ch                               ; e8 95 ad
    93459349    mov bl, al                                ; 88 c3
    93469350    mov byte [bp+011h], al                    ; 88 46 11
    93479351    mov ax, strict word 0000bh                ; b8 0b 00
    9348     call 0165ch                               ; e8 42 ae
     9352    call 0165ch                               ; e8 8a ad
    93499353    and AL, strict byte 001h                  ; 24 01
    93509354    mov byte [bp+00eh], al                    ; 88 46 0e
    9351     jmp short 06866h                          ; eb 45
    9352     call 066b2h                               ; e8 8e fe
     9355    jmp short 0691eh                          ; eb 45
     9356    call 06763h                               ; e8 87 fe
    93539357    test ax, ax                               ; 85 c0
    9354     je short 0682bh                           ; 74 03
    9355     call 0668dh                               ; e8 62 fe
     9358    je short 068e3h                           ; 74 03
     9359    call 0673bh                               ; e8 58 fe
    93569360    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    93579361    xor ax, ax                                ; 31 c0
    9358     call 0166dh                               ; e8 39 ae
     9362    call 01670h                               ; e8 84 ad
    93599363    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    93609364    mov ax, strict word 00002h                ; b8 02 00
    9361     call 0166dh                               ; e8 2f ae
     9365    call 01670h                               ; e8 7a ad
    93629366    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    93639367    mov ax, strict word 00004h                ; b8 04 00
    9364     call 0166dh                               ; e8 25 ae
     9368    call 01670h                               ; e8 70 ad
    93659369    mov ax, strict word 0000bh                ; b8 0b 00
    9366     call 0165ch                               ; e8 0e ae
     9370    call 0165ch                               ; e8 56 ad
    93679371    mov bl, al                                ; 88 c3
    93689372    and bl, 060h                              ; 80 e3 60
     
    93739377    movzx dx, bl                              ; 0f b6 d3
    93749378    mov ax, strict word 0000bh                ; b8 0b 00
    9375     call 0166dh                               ; e8 07 ae
     9379    call 01670h                               ; e8 52 ad
    93769380    mov byte [bp+013h], 000h                  ; c6 46 13 00
    93779381    mov byte [bp+012h], bl                    ; 88 5e 12
    9378     pop bp                                    ; 5d
    9379     retn                                      ; c3
     9382    jmp near 0687eh                           ; e9 56 ff
    93809383    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9381     call 066b2h                               ; e8 3c fe
     9384    call 06763h                               ; e8 34 fe
    93829385    test ax, ax                               ; 85 c0
    9383     je short 0687ch                           ; 74 02
    9384     pop bp                                    ; 5d
    9385     retn                                      ; c3
     9386    je short 06936h                           ; 74 03
     9387    jmp near 0687eh                           ; e9 48 ff
    93869388    mov ax, strict word 00009h                ; b8 09 00
    9387     call 0165ch                               ; e8 da ad
     9389    call 0165ch                               ; e8 20 ad
    93889390    mov byte [bp+010h], al                    ; 88 46 10
    93899391    mov ax, strict word 00008h                ; b8 08 00
    9390     call 0165ch                               ; e8 d1 ad
     9392    call 0165ch                               ; e8 17 ad
    93919393    mov byte [bp+00fh], al                    ; 88 46 0f
    93929394    mov ax, strict word 00007h                ; b8 07 00
    9393     call 0165ch                               ; e8 c8 ad
     9395    call 0165ch                               ; e8 0e ad
    93949396    mov byte [bp+00eh], al                    ; 88 46 0e
    93959397    mov ax, strict word 00032h                ; b8 32 00
    9396     call 0165ch                               ; e8 bf ad
     9398    call 0165ch                               ; e8 05 ad
    93979399    mov byte [bp+011h], al                    ; 88 46 11
    93989400    mov byte [bp+012h], al                    ; 88 46 12
    9399     pop bp                                    ; 5d
    9400     retn                                      ; c3
    9401     call 066b2h                               ; e8 0a fe
     9401    jmp near 0687eh                           ; e9 1e ff
     9402    call 06763h                               ; e8 00 fe
    94029403    test ax, ax                               ; 85 c0
    9403     je short 068b1h                           ; 74 05
    9404     call 0668dh                               ; e8 de fd
    9405     pop bp                                    ; 5d
    9406     retn                                      ; c3
     9404    je short 0696dh                           ; 74 06
     9405    call 0673bh                               ; e8 d1 fd
     9406    jmp near 0687eh                           ; e9 11 ff
    94079407    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    94089408    mov ax, strict word 00009h                ; b8 09 00
    9409     call 0166dh                               ; e8 b2 ad
     9409    call 01670h                               ; e8 f9 ac
    94109410    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    94119411    mov ax, strict word 00008h                ; b8 08 00
    9412     call 0166dh                               ; e8 a8 ad
     9412    call 01670h                               ; e8 ef ac
    94139413    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    94149414    mov ax, strict word 00007h                ; b8 07 00
    9415     call 0166dh                               ; e8 9e ad
     9415    call 01670h                               ; e8 e5 ac
    94169416    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    94179417    mov ax, strict word 00032h                ; b8 32 00
    9418     call 0166dh                               ; e8 94 ad
     9418    call 01670h                               ; e8 db ac
    94199419    mov ax, strict word 0000bh                ; b8 0b 00
    9420     call 0165ch                               ; e8 7d ad
     9420    call 0165ch                               ; e8 c1 ac
    94219421    mov bl, al                                ; 88 c3
    94229422    and bl, 07fh                              ; 80 e3 7f
    9423     jmp near 0685dh                           ; e9 76 ff
     9423    jmp near 06915h                           ; e9 72 ff
    94249424    mov ax, strict word 0000bh                ; b8 0b 00
    9425     call 0165ch                               ; e8 6f ad
     9425    call 0165ch                               ; e8 b3 ac
    94269426    mov bl, al                                ; 88 c3
    94279427    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    94289428    test AL, strict byte 020h                 ; a8 20
    9429     je short 068fah                           ; 74 02
    9430     pop bp                                    ; 5d
    9431     retn                                      ; c3
    9432     call 066b2h                               ; e8 b5 fd
     9429    je short 069b7h                           ; 74 03
     9430    jmp near 0687eh                           ; e9 c7 fe
     9431    call 06763h                               ; e8 a9 fd
    94339432    test ax, ax                               ; 85 c0
    9434     je short 06904h                           ; 74 03
    9435     call 0668dh                               ; e8 89 fd
     9433    je short 069c1h                           ; 74 03
     9434    call 0673bh                               ; e8 7a fd
    94369435    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    94379436    mov ax, strict word 00001h                ; b8 01 00
    9438     call 0166dh                               ; e8 5f ad
     9437    call 01670h                               ; e8 a5 ac
    94399438    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    94409439    mov ax, strict word 00003h                ; b8 03 00
    9441     call 0166dh                               ; e8 55 ad
     9440    call 01670h                               ; e8 9b ac
    94429441    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    94439442    mov ax, strict word 00005h                ; b8 05 00
    9444     call 0166dh                               ; e8 4b ad
     9443    call 01670h                               ; e8 91 ac
    94459444    mov dx, 000a1h                            ; ba a1 00
    94469445    in AL, DX                                 ; ec
     
    94549453    movzx dx, al                              ; 0f b6 d0
    94559454    mov ax, strict word 0000bh                ; b8 0b 00
    9456     call 0166dh                               ; e8 33 ad
    9457     pop bp                                    ; 5d
    9458     retn                                      ; c3
     9455    call 01670h                               ; e8 79 ac
     9456    jmp near 0687eh                           ; e9 84 fe
    94599457    mov ax, strict word 0000bh                ; b8 0b 00
    9460     call 0165ch                               ; e8 1a ad
     9458    call 0165ch                               ; e8 5c ac
    94619459    mov bl, al                                ; 88 c3
    94629460    and AL, strict byte 057h                  ; 24 57
    94639461    movzx dx, al                              ; 0f b6 d0
    9464     jmp near 06860h                           ; e9 14 ff
    9465 send_to_mouse_ctrl_:                         ; 0xf694c LB 0x31
     9462    jmp near 06918h                           ; e9 0e ff
     9463send_to_mouse_ctrl_:                         ; 0xf6a0a LB 0x34
     9464    push bp                                   ; 55
     9465    mov bp, sp                                ; 89 e5
    94669466    push bx                                   ; 53
    94679467    push dx                                   ; 52
    9468     push bp                                   ; 55
    9469     mov bp, sp                                ; 89 e5
    94709468    mov bl, al                                ; 88 c3
    94719469    mov dx, strict word 00064h                ; ba 64 00
     
    94749472    ; sub ah, ah                                ; 2a e4
    94759473    test AL, strict byte 002h                 ; a8 02
    9476     je short 0696bh                           ; 74 0e
     9474    je short 06a29h                           ; 74 0e
    94779475    push 00886h                               ; 68 86 08
    9478     push 010fah                               ; 68 fa 10
     9476    push 01100h                               ; 68 00 11
    94799477    push strict byte 00007h                   ; 6a 07
    9480     call 018e9h                               ; e8 81 af
     9478    call 0190dh                               ; e8 e7 ae
    94819479    add sp, strict byte 00006h                ; 83 c4 06
    94829480    mov AL, strict byte 0d4h                  ; b0 d4
     
    94879485    out DX, AL                                ; ee
    94889486    xor al, bl                                ; 30 d8
    9489     pop bp                                    ; 5d
     9487    lea sp, [bp-004h]                         ; 8d 66 fc
    94909488    pop dx                                    ; 5a
    94919489    pop bx                                    ; 5b
     9490    pop bp                                    ; 5d
    94929491    retn                                      ; c3
    9493 get_mouse_data_:                             ; 0xf697d LB 0x38
     9492get_mouse_data_:                             ; 0xf6a3e LB 0x3b
     9493    push bp                                   ; 55
     9494    mov bp, sp                                ; 89 e5
    94949495    push bx                                   ; 53
    94959496    push cx                                   ; 51
    9496     push bp                                   ; 55
    9497     mov bp, sp                                ; 89 e5
    94989497    mov bx, ax                                ; 89 c3
    94999498    mov es, dx                                ; 8e c2
     
    95059504    and ax, strict word 00021h                ; 25 21 00
    95069505    cmp ax, strict word 00021h                ; 3d 21 00
    9507     je short 0699eh                           ; 74 07
     9506    je short 06a5fh                           ; 74 07
    95089507    test cx, cx                               ; 85 c9
    9509     je short 0699eh                           ; 74 03
     9508    je short 06a5fh                           ; 74 03
    95109509    dec cx                                    ; 49
    9511     jmp short 06989h                          ; eb eb
     9510    jmp short 06a4ah                          ; eb eb
    95129511    test cx, cx                               ; 85 c9
    9513     jne short 069a6h                          ; 75 04
     9512    jne short 06a67h                          ; 75 04
    95149513    mov AL, strict byte 001h                  ; b0 01
    9515     jmp short 069b1h                          ; eb 0b
     9514    jmp short 06a72h                          ; eb 0b
    95169515    mov dx, strict word 00060h                ; ba 60 00
    95179516    in AL, DX                                 ; ec
     
    95209519    mov byte [es:bx], al                      ; 26 88 07
    95219520    xor al, al                                ; 30 c0
    9522     pop bp                                    ; 5d
     9521    lea sp, [bp-004h]                         ; 8d 66 fc
    95239522    pop cx                                    ; 59
    95249523    pop bx                                    ; 5b
     9524    pop bp                                    ; 5d
    95259525    retn                                      ; c3
    9526 set_kbd_command_byte_:                       ; 0xf69b5 LB 0x2f
     9526set_kbd_command_byte_:                       ; 0xf6a79 LB 0x32
     9527    push bp                                   ; 55
     9528    mov bp, sp                                ; 89 e5
    95279529    push bx                                   ; 53
    95289530    push dx                                   ; 52
    9529     push bp                                   ; 55
    9530     mov bp, sp                                ; 89 e5
    95319531    mov bl, al                                ; 88 c3
    95329532    mov dx, strict word 00064h                ; ba 64 00
     
    95359535    ; sub ah, ah                                ; 2a e4
    95369536    test AL, strict byte 002h                 ; a8 02
    9537     je short 069d4h                           ; 74 0e
     9537    je short 06a98h                           ; 74 0e
    95389538    push 00890h                               ; 68 90 08
    9539     push 010fah                               ; 68 fa 10
     9539    push 01100h                               ; 68 00 11
    95409540    push strict byte 00007h                   ; 6a 07
    9541     call 018e9h                               ; e8 18 af
     9541    call 0190dh                               ; e8 78 ae
    95429542    add sp, strict byte 00006h                ; 83 c4 06
    95439543    mov AL, strict byte 060h                  ; b0 60
     
    95479547    mov dx, strict word 00060h                ; ba 60 00
    95489548    out DX, AL                                ; ee
    9549     pop bp                                    ; 5d
     9549    lea sp, [bp-004h]                         ; 8d 66 fc
    95509550    pop dx                                    ; 5a
    95519551    pop bx                                    ; 5b
     9552    pop bp                                    ; 5d
    95529553    retn                                      ; c3
    9553 _int74_function:                             ; 0xf69e4 LB 0xc6
    9554     enter 00008h, 000h                        ; c8 08 00 00
     9554_int74_function:                             ; 0xf6aab LB 0xca
     9555    push bp                                   ; 55
     9556    mov bp, sp                                ; 89 e5
     9557    sub sp, strict byte 00008h                ; 83 ec 08
    95559558    mov dx, strict word 0000eh                ; ba 0e 00
    95569559    mov ax, strict word 00040h                ; b8 40 00
    9557     call 0161ch                               ; e8 2b ac
     9560    call 0161ch                               ; e8 62 ab
    95589561    mov cx, ax                                ; 89 c1
    95599562    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    95649567    and AL, strict byte 021h                  ; 24 21
    95659568    cmp AL, strict byte 021h                  ; 3c 21
    9566     jne near 06a98h                           ; 0f 85 92 00
     9569    jne near 06b61h                           ; 0f 85 92 00
    95679570    mov dx, strict word 00060h                ; ba 60 00
    95689571    in AL, DX                                 ; ec
     
    95729575    mov dx, strict word 00026h                ; ba 26 00
    95739576    mov ax, cx                                ; 89 c8
    9574     call 01600h                               ; e8 ea ab
     9577    call 01600h                               ; e8 21 ab
    95759578    mov byte [bp-006h], al                    ; 88 46 fa
    95769579    mov dx, strict word 00027h                ; ba 27 00
    95779580    mov ax, cx                                ; 89 c8
    9578     call 01600h                               ; e8 df ab
     9581    call 01600h                               ; e8 16 ab
    95799582    mov byte [bp-008h], al                    ; 88 46 f8
    95809583    test AL, strict byte 080h                 ; a8 80
    9581     je short 06a98h                           ; 74 70
     9584    je short 06b61h                           ; 74 70
    95829585    mov al, byte [bp-008h]                    ; 8a 46 f8
    95839586    and AL, strict byte 007h                  ; 24 07
     
    95909593    add dx, strict byte 00028h                ; 83 c2 28
    95919594    mov ax, cx                                ; 89 c8
    9592     call 0160eh                               ; e8 c9 ab
     9595    call 0160eh                               ; e8 00 ab
    95939596    mov al, byte [bp-004h]                    ; 8a 46 fc
    95949597    cmp al, byte [bp-002h]                    ; 3a 46 fe
    9595     jc short 06a89h                           ; 72 3c
     9598    jc short 06b52h                           ; 72 3c
    95969599    mov dx, strict word 00028h                ; ba 28 00
    95979600    mov ax, cx                                ; 89 c8
    9598     call 01600h                               ; e8 ab ab
     9601    call 01600h                               ; e8 e2 aa
    95999602    xor ah, ah                                ; 30 e4
    96009603    mov word [bp+00ch], ax                    ; 89 46 0c
    96019604    mov dx, strict word 00029h                ; ba 29 00
    96029605    mov ax, cx                                ; 89 c8
    9603     call 01600h                               ; e8 9e ab
     9606    call 01600h                               ; e8 d5 aa
    96049607    xor ah, ah                                ; 30 e4
    96059608    mov word [bp+00ah], ax                    ; 89 46 0a
    96069609    mov dx, strict word 0002ah                ; ba 2a 00
    96079610    mov ax, cx                                ; 89 c8
    9608     call 01600h                               ; e8 91 ab
     9611    call 01600h                               ; e8 c8 aa
    96099612    xor ah, ah                                ; 30 e4
    96109613    mov word [bp+008h], ax                    ; 89 46 08
     
    96139616    mov byte [bp-006h], ah                    ; 88 66 fa
    96149617    test byte [bp-008h], 080h                 ; f6 46 f8 80
    9615     je short 06a8ch                           ; 74 0a
     9618    je short 06b55h                           ; 74 0a
    96169619    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    9617     jmp short 06a8ch                          ; eb 03
     9620    jmp short 06b55h                          ; eb 03
    96189621    inc byte [bp-006h]                        ; fe 46 fa
    96199622    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    96209623    mov dx, strict word 00026h                ; ba 26 00
    96219624    mov ax, cx                                ; 89 c8
    9622     call 0160eh                               ; e8 76 ab
    9623     leave                                     ; c9
     9625    call 0160eh                               ; e8 ad aa
     9626    mov sp, bp                                ; 89 ec
     9627    pop bp                                    ; 5d
    96249628    retn                                      ; c3
    9625     in AL, DX                                 ; ec
    9626     push strict byte 00062h                   ; 6a 62
    9627     imul sp, bp, strict byte 0006bh           ; 6b e5 6b
    9628     jbe short 06b0eh                          ; 76 6c
    9629     in AL, strict byte 06ch                   ; e4 6c
    9630     cmp byte [bp+di+00ch], ch                 ; 38 6b 0c
     9629    mov cx, 02f6bh                            ; b9 6b 2f
     9630    insb                                      ; 6c
     9631    mov DL, strict byte 06ch                  ; b2 6c
     9632    inc bx                                    ; 43
    96319633    insw                                      ; 6d
    9632     db  0d1h
     9634    mov CL, strict byte 06dh                  ; b1 6d
     9635    add ax, 0d96ch                            ; 05 6c d9
    96339636    insw                                      ; 6d
    9634 _int15_function_mouse:                       ; 0xf6aaa LB 0x386
     9637    sahf                                      ; 9e
     9638    outsb                                     ; 6e
     9639_int15_function_mouse:                       ; 0xf6b75 LB 0x38b
     9640    push bp                                   ; 55
     9641    mov bp, sp                                ; 89 e5
    96359642    push si                                   ; 56
    9636     enter 00006h, 000h                        ; c8 06 00 00
     9643    sub sp, strict byte 00006h                ; 83 ec 06
    96379644    mov dx, strict word 0000eh                ; ba 0e 00
    96389645    mov ax, strict word 00040h                ; b8 40 00
    9639     call 0161ch                               ; e8 64 ab
     9646    call 0161ch                               ; e8 97 aa
    96409647    mov cx, ax                                ; 89 c1
    9641     cmp byte [bp+014h], 007h                  ; 80 7e 14 07
    9642     jbe short 06acbh                          ; 76 0b
    9643     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9644     mov byte [bp+015h], 001h                  ; c6 46 15 01
    9645     leave                                     ; c9
    9646     pop si                                    ; 5e
    9647     retn                                      ; c3
     9648    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
     9649    jbe short 06b98h                          ; 76 0b
     9650    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9651    mov byte [bp+013h], 001h                  ; c6 46 13 01
     9652    jmp near 06efah                           ; e9 62 03
    96489653    mov ax, strict word 00065h                ; b8 65 00
    9649     call 069b5h                               ; e8 e4 fe
    9650     and word [bp+01ah], strict byte 0fffeh    ; 83 66 1a fe
    9651     mov byte [bp+015h], 000h                  ; c6 46 15 00
    9652     mov al, byte [bp+014h]                    ; 8a 46 14
     9654    call 06a79h                               ; e8 db fe
     9655    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
     9656    mov byte [bp+013h], 000h                  ; c6 46 13 00
     9657    mov al, byte [bp+012h]                    ; 8a 46 12
    96539658    cmp AL, strict byte 007h                  ; 3c 07
    9654     jnbe near 06e14h                          ; 0f 87 32 03
     9659    jnbe near 06ee1h                          ; 0f 87 32 03
    96559660    movzx si, al                              ; 0f b6 f0
    96569661    add si, si                                ; 01 f6
    9657     jmp word [cs:si+06a9ah]                   ; 2e ff a4 9a 6a
    9658     cmp byte [bp+00fh], 001h                  ; 80 7e 0f 01
    9659     jnbe near 06e1fh                          ; 0f 87 2b 03
     9662    jmp word [cs:si+06b65h]                   ; 2e ff a4 65 6b
     9663    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
     9664    jnbe near 06eech                          ; 0f 87 2b 03
    96609665    mov dx, strict word 00027h                ; ba 27 00
    96619666    mov ax, cx                                ; 89 c8
    9662     call 01600h                               ; e8 04 ab
     9667    call 01600h                               ; e8 37 aa
    96639668    test AL, strict byte 080h                 ; a8 80
    9664     jne short 06b0bh                          ; 75 0b
    9665     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9666     mov byte [bp+015h], 005h                  ; c6 46 15 05
    9667     jmp near 06e27h                           ; e9 1c 03
    9668     cmp byte [bp+00fh], 000h                  ; 80 7e 0f 00
     9669    jne short 06bd8h                          ; 75 0b
     9670    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9671    mov byte [bp+013h], 005h                  ; c6 46 13 05
     9672    jmp near 06ef4h                           ; e9 1c 03
     9673    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    96699674    db  00fh, 094h, 0c0h
    96709675    ; sete al                                   ; 0f 94 c0
    96719676    add AL, strict byte 0f4h                  ; 04 f4
    96729677    xor ah, ah                                ; 30 e4
    9673     call 0694ch                               ; e8 33 fe
     9678    call 06a0ah                               ; e8 24 fe
    96749679    test al, al                               ; 84 c0
    9675     jne near 06dadh                           ; 0f 85 8e 02
     9680    jne near 06e7ah                           ; 0f 85 8e 02
    96769681    mov dx, ss                                ; 8c d2
    9677     lea ax, [bp-006h]                         ; 8d 46 fa
    9678     call 0697dh                               ; e8 56 fe
     9682    lea ax, [bp-008h]                         ; 8d 46 f8
     9683    call 06a3eh                               ; e8 4a fe
    96799684    test al, al                               ; 84 c0
    9680     je near 06e27h                            ; 0f 84 fa 02
    9681     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9682     jne near 06dadh                           ; 0f 85 78 02
    9683     jmp near 06e27h                           ; e9 ef 02
    9684     mov al, byte [bp+00fh]                    ; 8a 46 0f
     9685    je near 06ef4h                            ; 0f 84 fa 02
     9686    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
     9687    jne near 06e7ah                           ; 0f 85 78 02
     9688    jmp near 06ef4h                           ; e9 ef 02
     9689    mov al, byte [bp+00dh]                    ; 8a 46 0d
    96859690    cmp AL, strict byte 001h                  ; 3c 01
    9686     jc short 06b43h                           ; 72 04
     9691    jc short 06c10h                           ; 72 04
    96879692    cmp AL, strict byte 008h                  ; 3c 08
    9688     jbe short 06b46h                          ; 76 03
    9689     jmp near 06cd9h                           ; e9 93 01
     9693    jbe short 06c13h                          ; 76 03
     9694    jmp near 06da6h                           ; e9 93 01
    96909695    mov dx, strict word 00027h                ; ba 27 00
    96919696    mov ax, cx                                ; 89 c8
    9692     call 01600h                               ; e8 b2 aa
    9693     mov ah, byte [bp+00fh]                    ; 8a 66 0f
     9697    call 01600h                               ; e8 e5 a9
     9698    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    96949699    db  0feh, 0cch
    96959700    ; dec ah                                    ; fe cc
     
    96999704    mov dx, strict word 00027h                ; ba 27 00
    97009705    mov ax, cx                                ; 89 c8
    9701     call 0160eh                               ; e8 ac aa
     9706    call 0160eh                               ; e8 df a9
    97029707    mov dx, strict word 00026h                ; ba 26 00
    97039708    mov ax, cx                                ; 89 c8
    9704     call 01600h                               ; e8 96 aa
     9709    call 01600h                               ; e8 c9 a9
    97059710    and AL, strict byte 0f8h                  ; 24 f8
    97069711    movzx bx, al                              ; 0f b6 d8
    97079712    mov dx, strict word 00026h                ; ba 26 00
    97089713    mov ax, cx                                ; 89 c8
    9709     call 0160eh                               ; e8 97 aa
     9714    call 0160eh                               ; e8 ca a9
    97109715    mov ax, 000ffh                            ; b8 ff 00
    9711     call 0694ch                               ; e8 cf fd
     9716    call 06a0ah                               ; e8 c0 fd
    97129717    test al, al                               ; 84 c0
    9713     jne near 06dadh                           ; 0f 85 2a 02
     9718    jne near 06e7ah                           ; 0f 85 2a 02
    97149719    mov dx, ss                                ; 8c d2
    9715     lea ax, [bp-002h]                         ; 8d 46 fe
    9716     call 0697dh                               ; e8 f2 fd
     9720    lea ax, [bp-004h]                         ; 8d 46 fc
     9721    call 06a3eh                               ; e8 e6 fd
    97179722    mov cl, al                                ; 88 c1
    9718     cmp byte [bp-002h], 0feh                  ; 80 7e fe fe
    9719     jne short 06b9eh                          ; 75 0b
    9720     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9721     mov byte [bp+015h], 004h                  ; c6 46 15 04
    9722     jmp near 06e27h                           ; e9 89 02
    9723     cmp byte [bp-002h], 0fah                  ; 80 7e fe fa
    9724     je short 06bb4h                           ; 74 10
    9725     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     9723    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
     9724    jne short 06c6bh                          ; 75 0b
     9725    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9726    mov byte [bp+013h], 004h                  ; c6 46 13 04
     9727    jmp near 06ef4h                           ; e9 89 02
     9728    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
     9729    je short 06c81h                           ; 74 10
     9730    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    97269731    push ax                                   ; 50
    97279732    push 0089bh                               ; 68 9b 08
    97289733    push strict byte 00007h                   ; 6a 07
    9729     call 018e9h                               ; e8 38 ad
     9734    call 0190dh                               ; e8 8f ac
    97309735    add sp, strict byte 00006h                ; 83 c4 06
    97319736    test cl, cl                               ; 84 c9
    9732     jne near 06dadh                           ; 0f 85 f3 01
     9737    jne near 06e7ah                           ; 0f 85 f3 01
     9738    mov dx, ss                                ; 8c d2
     9739    lea ax, [bp-008h]                         ; 8d 46 f8
     9740    call 06a3eh                               ; e8 af fd
     9741    test al, al                               ; 84 c0
     9742    jne near 06e7ah                           ; 0f 85 e5 01
    97339743    mov dx, ss                                ; 8c d2
    97349744    lea ax, [bp-006h]                         ; 8d 46 fa
    9735     call 0697dh                               ; e8 bb fd
     9745    call 06a3eh                               ; e8 a1 fd
    97369746    test al, al                               ; 84 c0
    9737     jne near 06dadh                           ; 0f 85 e5 01
    9738     mov dx, ss                                ; 8c d2
    9739     lea ax, [bp-004h]                         ; 8d 46 fc
    9740     call 0697dh                               ; e8 ad fd
     9747    jne near 06e7ah                           ; 0f 85 d7 01
     9748    mov al, byte [bp-008h]                    ; 8a 46 f8
     9749    mov byte [bp+00ch], al                    ; 88 46 0c
     9750    mov al, byte [bp-006h]                    ; 8a 46 fa
     9751    mov byte [bp+00dh], al                    ; 88 46 0d
     9752    jmp near 06ef4h                           ; e9 42 02
     9753    mov al, byte [bp+00dh]                    ; 8a 46 0d
     9754    cmp AL, strict byte 003h                  ; 3c 03
     9755    jc short 06cc9h                           ; 72 10
     9756    jbe short 06ce7h                          ; 76 2c
     9757    cmp AL, strict byte 006h                  ; 3c 06
     9758    je short 06cf9h                           ; 74 3a
     9759    cmp AL, strict byte 005h                  ; 3c 05
     9760    je short 06cf3h                           ; 74 30
     9761    cmp AL, strict byte 004h                  ; 3c 04
     9762    je short 06cedh                           ; 74 26
     9763    jmp short 06cffh                          ; eb 36
     9764    cmp AL, strict byte 002h                  ; 3c 02
     9765    je short 06ce1h                           ; 74 14
     9766    cmp AL, strict byte 001h                  ; 3c 01
     9767    je short 06cdbh                           ; 74 0a
    97419768    test al, al                               ; 84 c0
    9742     jne near 06dadh                           ; 0f 85 d7 01
    9743     mov al, byte [bp-006h]                    ; 8a 46 fa
    9744     mov byte [bp+00eh], al                    ; 88 46 0e
    9745     mov al, byte [bp-004h]                    ; 8a 46 fc
    9746     mov byte [bp+00fh], al                    ; 88 46 0f
    9747     jmp near 06e27h                           ; e9 42 02
    9748     mov al, byte [bp+00fh]                    ; 8a 46 0f
    9749     cmp AL, strict byte 003h                  ; 3c 03
    9750     jc short 06bfch                           ; 72 10
    9751     jbe short 06c1ah                          ; 76 2c
    9752     cmp AL, strict byte 006h                  ; 3c 06
    9753     je short 06c2ch                           ; 74 3a
    9754     cmp AL, strict byte 005h                  ; 3c 05
    9755     je short 06c26h                           ; 74 30
    9756     cmp AL, strict byte 004h                  ; 3c 04
    9757     je short 06c20h                           ; 74 26
    9758     jmp short 06c32h                          ; eb 36
    9759     cmp AL, strict byte 002h                  ; 3c 02
    9760     je short 06c14h                           ; 74 14
    9761     cmp AL, strict byte 001h                  ; 3c 01
    9762     je short 06c0eh                           ; 74 0a
     9769    jne short 06cffh                          ; 75 2a
     9770    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
     9771    jmp short 06d03h                          ; eb 28
     9772    mov byte [bp-008h], 014h                  ; c6 46 f8 14
     9773    jmp short 06d03h                          ; eb 22
     9774    mov byte [bp-008h], 028h                  ; c6 46 f8 28
     9775    jmp short 06d03h                          ; eb 1c
     9776    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
     9777    jmp short 06d03h                          ; eb 16
     9778    mov byte [bp-008h], 050h                  ; c6 46 f8 50
     9779    jmp short 06d03h                          ; eb 10
     9780    mov byte [bp-008h], 064h                  ; c6 46 f8 64
     9781    jmp short 06d03h                          ; eb 0a
     9782    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
     9783    jmp short 06d03h                          ; eb 04
     9784    mov byte [bp-008h], 000h                  ; c6 46 f8 00
     9785    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     9786    jbe short 06d38h                          ; 76 2f
     9787    mov ax, 000f3h                            ; b8 f3 00
     9788    call 06a0ah                               ; e8 fb fc
    97639789    test al, al                               ; 84 c0
    9764     jne short 06c32h                          ; 75 2a
    9765     mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    9766     jmp short 06c36h                          ; eb 28
    9767     mov byte [bp-006h], 014h                  ; c6 46 fa 14
    9768     jmp short 06c36h                          ; eb 22
    9769     mov byte [bp-006h], 028h                  ; c6 46 fa 28
    9770     jmp short 06c36h                          ; eb 1c
    9771     mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    9772     jmp short 06c36h                          ; eb 16
    9773     mov byte [bp-006h], 050h                  ; c6 46 fa 50
    9774     jmp short 06c36h                          ; eb 10
    9775     mov byte [bp-006h], 064h                  ; c6 46 fa 64
    9776     jmp short 06c36h                          ; eb 0a
    9777     mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    9778     jmp short 06c36h                          ; eb 04
    9779     mov byte [bp-006h], 000h                  ; c6 46 fa 00
    9780     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    9781     jbe short 06c6bh                          ; 76 2f
    9782     mov ax, 000f3h                            ; b8 f3 00
    9783     call 0694ch                               ; e8 0a fd
    9784     test al, al                               ; 84 c0
    9785     jne short 06c60h                          ; 75 1a
    9786     mov dx, ss                                ; 8c d2
    9787     lea ax, [bp-004h]                         ; 8d 46 fc
    9788     call 0697dh                               ; e8 2f fd
    9789     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    9790     call 0694ch                               ; e8 f7 fc
    9791     mov dx, ss                                ; 8c d2
    9792     lea ax, [bp-004h]                         ; 8d 46 fc
    9793     call 0697dh                               ; e8 20 fd
    9794     jmp near 06e27h                           ; e9 c7 01
    9795     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9796     mov byte [bp+015h], 003h                  ; c6 46 15 03
    9797     jmp near 06e27h                           ; e9 bc 01
    9798     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9799     mov byte [bp+015h], 002h                  ; c6 46 15 02
    9800     jmp near 06e27h                           ; e9 b1 01
    9801     cmp byte [bp+00fh], 004h                  ; 80 7e 0f 04
    9802     jnc short 06cd9h                          ; 73 5d
    9803     mov ax, 000e8h                            ; b8 e8 00
    9804     call 0694ch                               ; e8 ca fc
    9805     test al, al                               ; 84 c0
    9806     jne short 06cceh                          ; 75 48
     9790    jne short 06d2dh                          ; 75 1a
    98079791    mov dx, ss                                ; 8c d2
    98089792    lea ax, [bp-006h]                         ; 8d 46 fa
    9809     call 0697dh                               ; e8 ef fc
    9810     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9811     je short 06ca4h                           ; 74 10
    9812     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     9793    call 06a3eh                               ; e8 23 fd
     9794    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     9795    call 06a0ah                               ; e8 e8 fc
     9796    mov dx, ss                                ; 8c d2
     9797    lea ax, [bp-006h]                         ; 8d 46 fa
     9798    call 06a3eh                               ; e8 14 fd
     9799    jmp near 06ef4h                           ; e9 c7 01
     9800    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9801    mov byte [bp+013h], 003h                  ; c6 46 13 03
     9802    jmp near 06ef4h                           ; e9 bc 01
     9803    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9804    mov byte [bp+013h], 002h                  ; c6 46 13 02
     9805    jmp near 06ef4h                           ; e9 b1 01
     9806    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
     9807    jnc short 06da6h                          ; 73 5d
     9808    mov ax, 000e8h                            ; b8 e8 00
     9809    call 06a0ah                               ; e8 bb fc
     9810    test al, al                               ; 84 c0
     9811    jne short 06d9bh                          ; 75 48
     9812    mov dx, ss                                ; 8c d2
     9813    lea ax, [bp-008h]                         ; 8d 46 f8
     9814    call 06a3eh                               ; e8 e3 fc
     9815    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
     9816    je short 06d71h                           ; 74 10
     9817    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    98139818    push ax                                   ; 50
    98149819    push 008c6h                               ; 68 c6 08
    98159820    push strict byte 00007h                   ; 6a 07
    9816     call 018e9h                               ; e8 48 ac
     9821    call 0190dh                               ; e8 9f ab
    98179822    add sp, strict byte 00006h                ; 83 c4 06
    9818     movzx ax, byte [bp+00fh]                  ; 0f b6 46 0f
    9819     call 0694ch                               ; e8 a1 fc
     9823    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
     9824    call 06a0ah                               ; e8 92 fc
    98209825    mov dx, ss                                ; 8c d2
    9821     lea ax, [bp-006h]                         ; 8d 46 fa
    9822     call 0697dh                               ; e8 ca fc
    9823     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9824     je near 06e27h                            ; 0f 84 6c 01
    9825     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     9826    lea ax, [bp-008h]                         ; 8d 46 f8
     9827    call 06a3eh                               ; e8 be fc
     9828    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
     9829    je near 06ef4h                            ; 0f 84 6c 01
     9830    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    98269831    push ax                                   ; 50
    98279832    push 008c6h                               ; 68 c6 08
    98289833    push strict byte 00007h                   ; 6a 07
    9829     call 018e9h                               ; e8 21 ac
     9834    call 0190dh                               ; e8 78 ab
    98309835    add sp, strict byte 00006h                ; 83 c4 06
    9831     jmp near 06e27h                           ; e9 59 01
    9832     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9833     mov byte [bp+015h], 003h                  ; c6 46 15 03
    9834     jmp near 06e27h                           ; e9 4e 01
    9835     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9836     mov byte [bp+015h], 002h                  ; c6 46 15 02
    9837     jmp near 06e27h                           ; e9 43 01
     9836    jmp near 06ef4h                           ; e9 59 01
     9837    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9838    mov byte [bp+013h], 003h                  ; c6 46 13 03
     9839    jmp near 06ef4h                           ; e9 4e 01
     9840    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9841    mov byte [bp+013h], 002h                  ; c6 46 13 02
     9842    jmp near 06ef4h                           ; e9 43 01
    98389843    mov ax, 000f2h                            ; b8 f2 00
    9839     call 0694ch                               ; e8 62 fc
     9844    call 06a0ah                               ; e8 53 fc
    98409845    test al, al                               ; 84 c0
    9841     jne short 06d01h                          ; 75 13
     9846    jne short 06dceh                          ; 75 13
     9847    mov dx, ss                                ; 8c d2
     9848    lea ax, [bp-008h]                         ; 8d 46 f8
     9849    call 06a3eh                               ; e8 7b fc
    98429850    mov dx, ss                                ; 8c d2
    98439851    lea ax, [bp-006h]                         ; 8d 46 fa
    9844     call 0697dh                               ; e8 87 fc
     9852    call 06a3eh                               ; e8 73 fc
     9853    jmp near 06ca9h                           ; e9 db fe
     9854    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9855    mov byte [bp+013h], 003h                  ; c6 46 13 03
     9856    jmp near 06ef4h                           ; e9 1b 01
     9857    mov al, byte [bp+00dh]                    ; 8a 46 0d
     9858    test al, al                               ; 84 c0
     9859    jbe short 06de7h                          ; 76 07
     9860    cmp AL, strict byte 002h                  ; 3c 02
     9861    jbe short 06e50h                          ; 76 6c
     9862    jmp near 06e84h                           ; e9 9d 00
     9863    mov ax, 000e9h                            ; b8 e9 00
     9864    call 06a0ah                               ; e8 1d fc
     9865    test al, al                               ; 84 c0
     9866    jne near 06e7ah                           ; 0f 85 87 00
    98459867    mov dx, ss                                ; 8c d2
    9846     lea ax, [bp-004h]                         ; 8d 46 fc
    9847     call 0697dh                               ; e8 7f fc
    9848     jmp near 06bdch                           ; e9 db fe
    9849     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9850     mov byte [bp+015h], 003h                  ; c6 46 15 03
    9851     jmp near 06e27h                           ; e9 1b 01
    9852     mov al, byte [bp+00fh]                    ; 8a 46 0f
    9853     test al, al                               ; 84 c0
    9854     jbe short 06d1ah                          ; 76 07
    9855     cmp AL, strict byte 002h                  ; 3c 02
    9856     jbe short 06d83h                          ; 76 6c
    9857     jmp near 06db7h                           ; e9 9d 00
    9858     mov ax, 000e9h                            ; b8 e9 00
    9859     call 0694ch                               ; e8 2c fc
    9860     test al, al                               ; 84 c0
    9861     jne near 06dadh                           ; 0f 85 87 00
    9862     mov dx, ss                                ; 8c d2
    9863     lea ax, [bp-006h]                         ; 8d 46 fa
    9864     call 0697dh                               ; e8 4f fc
     9868    lea ax, [bp-008h]                         ; 8d 46 f8
     9869    call 06a3eh                               ; e8 43 fc
    98659870    mov cl, al                                ; 88 c1
    9866     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    9867     je short 06d46h                           ; 74 10
    9868     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     9871    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
     9872    je short 06e13h                           ; 74 10
     9873    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    98699874    push ax                                   ; 50
    98709875    push 008c6h                               ; 68 c6 08
    98719876    push strict byte 00007h                   ; 6a 07
    9872     call 018e9h                               ; e8 a6 ab
     9877    call 0190dh                               ; e8 fd aa
    98739878    add sp, strict byte 00006h                ; 83 c4 06
    98749879    test cl, cl                               ; 84 c9
    9875     jne short 06dadh                          ; 75 63
     9880    jne short 06e7ah                          ; 75 63
     9881    mov dx, ss                                ; 8c d2
     9882    lea ax, [bp-008h]                         ; 8d 46 f8
     9883    call 06a3eh                               ; e8 1f fc
     9884    test al, al                               ; 84 c0
     9885    jne short 06e7ah                          ; 75 57
    98769886    mov dx, ss                                ; 8c d2
    98779887    lea ax, [bp-006h]                         ; 8d 46 fa
    9878     call 0697dh                               ; e8 2b fc
     9888    call 06a3eh                               ; e8 13 fc
    98799889    test al, al                               ; 84 c0
    9880     jne short 06dadh                          ; 75 57
     9890    jne short 06e7ah                          ; 75 4b
    98819891    mov dx, ss                                ; 8c d2
    98829892    lea ax, [bp-004h]                         ; 8d 46 fc
    9883     call 0697dh                               ; e8 1f fc
     9893    call 06a3eh                               ; e8 07 fc
    98849894    test al, al                               ; 84 c0
    9885     jne short 06dadh                          ; 75 4b
    9886     mov dx, ss                                ; 8c d2
    9887     lea ax, [bp-002h]                         ; 8d 46 fe
    9888     call 0697dh                               ; e8 13 fc
    9889     test al, al                               ; 84 c0
    9890     jne short 06dadh                          ; 75 3f
     9895    jne short 06e7ah                          ; 75 3f
     9896    mov al, byte [bp-008h]                    ; 8a 46 f8
     9897    mov byte [bp+00ch], al                    ; 88 46 0c
    98919898    mov al, byte [bp-006h]                    ; 8a 46 fa
     9899    mov byte [bp+010h], al                    ; 88 46 10
     9900    mov al, byte [bp-004h]                    ; 8a 46 fc
    98929901    mov byte [bp+00eh], al                    ; 88 46 0e
    9893     mov al, byte [bp-004h]                    ; 8a 46 fc
    9894     mov byte [bp+012h], al                    ; 88 46 12
    9895     mov al, byte [bp-002h]                    ; 8a 46 fe
    9896     mov byte [bp+010h], al                    ; 88 46 10
    9897     jmp near 06e27h                           ; e9 a4 00
     9902    jmp near 06ef4h                           ; e9 a4 00
    98989903    cmp AL, strict byte 001h                  ; 3c 01
    9899     jne short 06d8ch                          ; 75 05
     9904    jne short 06e59h                          ; 75 05
    99009905    mov ax, 000e6h                            ; b8 e6 00
    9901     jmp short 06d8fh                          ; eb 03
     9906    jmp short 06e5ch                          ; eb 03
    99029907    mov ax, 000e7h                            ; b8 e7 00
    9903     call 0694ch                               ; e8 ba fb
     9908    call 06a0ah                               ; e8 ab fb
    99049909    mov cl, al                                ; 88 c1
    99059910    test cl, cl                               ; 84 c9
    9906     jne short 06da7h                          ; 75 0f
     9911    jne short 06e74h                          ; 75 0f
    99079912    mov dx, ss                                ; 8c d2
    9908     lea ax, [bp-006h]                         ; 8d 46 fa
    9909     call 0697dh                               ; e8 dd fb
    9910     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
     9913    lea ax, [bp-008h]                         ; 8d 46 f8
     9914    call 06a3eh                               ; e8 d1 fb
     9915    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    99119916    db  00fh, 095h, 0c1h
    99129917    ; setne cl                                  ; 0f 95 c1
    99139918    test cl, cl                               ; 84 c9
    9914     je near 06e27h                            ; 0f 84 7a 00
    9915     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9916     mov byte [bp+015h], 003h                  ; c6 46 15 03
    9917     jmp short 06e27h                          ; eb 70
    9918     movzx ax, byte [bp+00fh]                  ; 0f b6 46 0f
     9919    je near 06ef4h                            ; 0f 84 7a 00
     9920    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9921    mov byte [bp+013h], 003h                  ; c6 46 13 03
     9922    jmp short 06ef4h                          ; eb 70
     9923    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    99199924    push ax                                   ; 50
    99209925    push 008f2h                               ; 68 f2 08
    99219926    push strict byte 00007h                   ; 6a 07
    9922     call 018e9h                               ; e8 25 ab
     9927    call 0190dh                               ; e8 7c aa
    99239928    add sp, strict byte 00006h                ; 83 c4 06
    9924     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9925     mov byte [bp+015h], 001h                  ; c6 46 15 01
    9926     jmp short 06e27h                          ; eb 56
    9927     mov si, word [bp+00eh]                    ; 8b 76 0e
     9929    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9930    mov byte [bp+013h], 001h                  ; c6 46 13 01
     9931    jmp short 06ef4h                          ; eb 56
     9932    mov si, word [bp+00ch]                    ; 8b 76 0c
    99289933    mov bx, si                                ; 89 f3
    99299934    mov dx, strict word 00022h                ; ba 22 00
    99309935    mov ax, cx                                ; 89 c8
    9931     call 0162ah                               ; e8 4c a8
    9932     mov bx, word [bp+016h]                    ; 8b 5e 16
     9936    call 0162ah                               ; e8 7f a7
     9937    mov bx, word [bp+014h]                    ; 8b 5e 14
    99339938    mov dx, strict word 00024h                ; ba 24 00
    99349939    mov ax, cx                                ; 89 c8
    9935     call 0162ah                               ; e8 41 a8
     9940    call 0162ah                               ; e8 74 a7
    99369941    mov dx, strict word 00027h                ; ba 27 00
    99379942    mov ax, cx                                ; 89 c8
    9938     call 01600h                               ; e8 0f a8
     9943    call 01600h                               ; e8 42 a7
    99399944    mov ah, al                                ; 88 c4
    99409945    test si, si                               ; 85 f6
    9941     jne short 06e05h                          ; 75 0e
    9942     cmp word [bp+016h], strict byte 00000h    ; 83 7e 16 00
    9943     jne short 06e05h                          ; 75 08
     9946    jne short 06ed2h                          ; 75 0e
     9947    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
     9948    jne short 06ed2h                          ; 75 08
    99449949    test AL, strict byte 080h                 ; a8 80
    9945     je short 06e07h                           ; 74 06
     9950    je short 06ed4h                           ; 74 06
    99469951    and AL, strict byte 07fh                  ; 24 7f
    9947     jmp short 06e07h                          ; eb 02
     9952    jmp short 06ed4h                          ; eb 02
    99489953    or AL, strict byte 080h                   ; 0c 80
    99499954    movzx bx, al                              ; 0f b6 d8
    99509955    mov dx, strict word 00027h                ; ba 27 00
    99519956    mov ax, cx                                ; 89 c8
    9952     call 0160eh                               ; e8 fc a7
    9953     jmp short 06e27h                          ; eb 13
     9957    call 0160eh                               ; e8 2f a7
     9958    jmp short 06ef4h                          ; eb 13
    99549959    push 0090ch                               ; 68 0c 09
    99559960    push strict byte 00007h                   ; 6a 07
    9956     call 018e9h                               ; e8 cd aa
     9961    call 0190dh                               ; e8 24 aa
    99579962    add sp, strict byte 00004h                ; 83 c4 04
    9958     or word [bp+01ah], strict byte 00001h     ; 83 4e 1a 01
    9959     mov byte [bp+015h], 001h                  ; c6 46 15 01
     9963    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     9964    mov byte [bp+013h], 001h                  ; c6 46 13 01
    99609965    mov ax, strict word 00047h                ; b8 47 00
    9961     call 069b5h                               ; e8 88 fb
    9962     leave                                     ; c9
     9966    call 06a79h                               ; e8 7f fb
     9967    lea sp, [bp-002h]                         ; 8d 66 fe
    99639968    pop si                                    ; 5e
     9969    pop bp                                    ; 5d
    99649970    retn                                      ; c3
    9965 _int17_function:                             ; 0xf6e30 LB 0xb1
     9971_int17_function:                             ; 0xf6f00 LB 0xb3
     9972    push bp                                   ; 55
     9973    mov bp, sp                                ; 89 e5
    99669974    push si                                   ; 56
    9967     enter 00002h, 000h                        ; c8 02 00 00
     9975    push ax                                   ; 50
    99689976    sti                                       ; fb
    9969     mov dx, word [bp+010h]                    ; 8b 56 10
     9977    mov dx, word [bp+00eh]                    ; 8b 56 0e
    99709978    add dx, dx                                ; 01 d2
    99719979    add dx, strict byte 00008h                ; 83 c2 08
    99729980    mov ax, strict word 00040h                ; b8 40 00
    9973     call 0161ch                               ; e8 d8 a7
     9981    call 0161ch                               ; e8 08 a7
    99749982    mov bx, ax                                ; 89 c3
    99759983    mov si, ax                                ; 89 c6
    9976     cmp byte [bp+015h], 003h                  ; 80 7e 15 03
    9977     jnc near 06edah                           ; 0f 83 8a 00
    9978     mov ax, word [bp+010h]                    ; 8b 46 10
     9984    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
     9985    jnc near 06fa9h                           ; 0f 83 89 00
     9986    mov ax, word [bp+00eh]                    ; 8b 46 0e
    99799987    cmp ax, strict word 00003h                ; 3d 03 00
    9980     jnc near 06edah                           ; 0f 83 80 00
     9988    jnc near 06fa9h                           ; 0f 83 7f 00
    99819989    test bx, bx                               ; 85 db
    9982     jbe near 06edah                           ; 0f 86 7a 00
     9990    jbe near 06fa9h                           ; 0f 86 79 00
    99839991    mov dx, ax                                ; 89 c2
    99849992    add dx, strict byte 00078h                ; 83 c2 78
    99859993    mov ax, strict word 00040h                ; b8 40 00
    9986     call 01600h                               ; e8 95 a7
     9994    call 01600h                               ; e8 c5 a6
    99879995    movzx cx, al                              ; 0f b6 c8
    99889996    sal cx, 008h                              ; c1 e1 08
    9989     cmp byte [bp+015h], 000h                  ; 80 7e 15 00
    9990     jne short 06ea4h                          ; 75 2d
    9991     mov al, byte [bp+014h]                    ; 8a 46 14
     9997    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
     9998    jne short 06f74h                          ; 75 2d
     9999    mov al, byte [bp+012h]                    ; 8a 46 12
    999210000    mov dx, bx                                ; 89 da
    999310001    out DX, AL                                ; ee
     
    999610004    db  02ah, 0e4h
    999710005    ; sub ah, ah                                ; 2a e4
    9998     mov word [bp-002h], ax                    ; 89 46 fe
    9999     mov al, byte [bp-002h]                    ; 8a 46 fe
     10006    mov word [bp-004h], ax                    ; 89 46 fc
     10007    mov al, byte [bp-004h]                    ; 8a 46 fc
    1000010008    or AL, strict byte 001h                   ; 0c 01
    1000110009    out DX, AL                                ; ee
    10002     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     10010    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1000310011    and AL, strict byte 0feh                  ; 24 fe
    1000410012    out DX, AL                                ; ee
     
    1000810016    ; sub ah, ah                                ; 2a e4
    1000910017    test AL, strict byte 040h                 ; a8 40
    10010     je short 06ea4h                           ; 74 07
     10018    je short 06f74h                           ; 74 07
    1001110019    test cx, cx                               ; 85 c9
    10012     je short 06ea4h                           ; 74 03
     10020    je short 06f74h                           ; 74 03
    1001310021    dec cx                                    ; 49
    10014     jmp short 06e93h                          ; eb ef
    10015     cmp byte [bp+015h], 001h                  ; 80 7e 15 01
    10016     jne short 06ec0h                          ; 75 16
     10022    jmp short 06f63h                          ; eb ef
     10023    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
     10024    jne short 06f90h                          ; 75 16
    1001710025    lea dx, [si+002h]                         ; 8d 54 02
    1001810026    in AL, DX                                 ; ec
    1001910027    db  02ah, 0e4h
    1002010028    ; sub ah, ah                                ; 2a e4
    10021     mov word [bp-002h], ax                    ; 89 46 fe
    10022     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     10029    mov word [bp-004h], ax                    ; 89 46 fc
     10030    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1002310031    and AL, strict byte 0fbh                  ; 24 fb
    1002410032    out DX, AL                                ; ee
    10025     mov al, byte [bp-002h]                    ; 8a 46 fe
     10033    mov al, byte [bp-004h]                    ; 8a 46 fc
    1002610034    or AL, strict byte 004h                   ; 0c 04
    1002710035    out DX, AL                                ; ee
     
    1003110039    ; sub ah, ah                                ; 2a e4
    1003210040    xor AL, strict byte 048h                  ; 34 48
    10033     mov byte [bp+015h], al                    ; 88 46 15
     10041    mov byte [bp+013h], al                    ; 88 46 13
    1003410042    test cx, cx                               ; 85 c9
    10035     jne short 06ed3h                          ; 75 04
    10036     or byte [bp+015h], 001h                   ; 80 4e 15 01
    10037     and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    10038     leave                                     ; c9
     10043    jne short 06fa3h                          ; 75 04
     10044    or byte [bp+013h], 001h                   ; 80 4e 13 01
     10045    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     10046    jmp short 06fadh                          ; eb 04
     10047    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     10048    lea sp, [bp-002h]                         ; 8d 66 fe
    1003910049    pop si                                    ; 5e
     10050    pop bp                                    ; 5d
    1004010051    retn                                      ; c3
    10041     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    10042     leave                                     ; c9
    10043     pop si                                    ; 5e
    10044     retn                                      ; c3
    10045 wait_:                                       ; 0xf6ee1 LB 0xad
     10052wait_:                                       ; 0xf6fb3 LB 0xb2
     10053    push bp                                   ; 55
     10054    mov bp, sp                                ; 89 e5
    1004610055    push bx                                   ; 53
    1004710056    push cx                                   ; 51
    1004810057    push si                                   ; 56
    1004910058    push di                                   ; 57
    10050     enter 0000ah, 000h                        ; c8 0a 00 00
     10059    sub sp, strict byte 0000ah                ; 83 ec 0a
    1005110060    mov si, ax                                ; 89 c6
    10052     mov byte [bp-004h], dl                    ; 88 56 fc
    10053     mov byte [bp-002h], 000h                  ; c6 46 fe 00
     10061    mov byte [bp-00ch], dl                    ; 88 56 f4
     10062    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    1005410063    pushfw                                    ; 9c
    1005510064    pop ax                                    ; 58
    10056     mov word [bp-008h], ax                    ; 89 46 f8
     10065    mov word [bp-010h], ax                    ; 89 46 f0
    1005710066    sti                                       ; fb
    1005810067    xor cx, cx                                ; 31 c9
    1005910068    mov dx, 0046ch                            ; ba 6c 04
    1006010069    xor ax, ax                                ; 31 c0
    10061     call 01638h                               ; e8 36 a7
    10062     mov word [bp-006h], ax                    ; 89 46 fa
     10070    call 01638h                               ; e8 62 a6
     10071    mov word [bp-00eh], ax                    ; 89 46 f2
    1006310072    mov bx, dx                                ; 89 d3
    1006410073    hlt                                       ; f4
    1006510074    mov dx, 0046ch                            ; ba 6c 04
    1006610075    xor ax, ax                                ; 31 c0
    10067     call 01638h                               ; e8 28 a7
    10068     mov word [bp-00ah], ax                    ; 89 46 f6
     10076    call 01638h                               ; e8 54 a6
     10077    mov word [bp-012h], ax                    ; 89 46 ee
    1006910078    mov di, dx                                ; 89 d7
    1007010079    cmp dx, bx                                ; 39 da
    10071     jnbe short 06f20h                         ; 77 07
    10072     jne short 06f27h                          ; 75 0c
    10073     cmp ax, word [bp-006h]                    ; 3b 46 fa
    10074     jbe short 06f27h                          ; 76 07
    10075     sub ax, word [bp-006h]                    ; 2b 46 fa
     10080    jnbe short 06ff4h                         ; 77 07
     10081    jne short 06ffbh                          ; 75 0c
     10082    cmp ax, word [bp-00eh]                    ; 3b 46 f2
     10083    jbe short 06ffbh                          ; 76 07
     10084    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1007610085    sbb dx, bx                                ; 19 da
    10077     jmp short 06f32h                          ; eb 0b
     10086    jmp short 07006h                          ; eb 0b
    1007810087    cmp dx, bx                                ; 39 da
    10079     jc short 06f32h                           ; 72 07
    10080     jne short 06f36h                          ; 75 09
    10081     cmp ax, word [bp-006h]                    ; 3b 46 fa
    10082     jnc short 06f36h                          ; 73 04
     10088    jc short 07006h                           ; 72 07
     10089    jne short 0700ah                          ; 75 09
     10090    cmp ax, word [bp-00eh]                    ; 3b 46 f2
     10091    jnc short 0700ah                          ; 73 04
    1008310092    sub si, ax                                ; 29 c6
    1008410093    sbb cx, dx                                ; 19 d1
    10085     mov ax, word [bp-00ah]                    ; 8b 46 f6
    10086     mov word [bp-006h], ax                    ; 89 46 fa
     10094    mov ax, word [bp-012h]                    ; 8b 46 ee
     10095    mov word [bp-00eh], ax                    ; 89 46 f2
    1008710096    mov bx, di                                ; 89 fb
    1008810097    mov ax, 00100h                            ; b8 00 01
    1008910098    int 016h                                  ; cd 16
    10090     je near 06f4ch                            ; 0f 84 05 00
     10099    je near 07020h                            ; 0f 84 05 00
    1009110100    mov AL, strict byte 001h                  ; b0 01
    10092     jmp near 06f4eh                           ; e9 02 00
     10101    jmp near 07022h                           ; e9 02 00
    1009310102    db  032h, 0c0h
    1009410103    ; xor al, al                                ; 32 c0
    1009510104    test al, al                               ; 84 c0
    10096     je short 06f76h                           ; 74 24
     10105    je short 0704ah                           ; 74 24
    1009710106    db  033h, 0c0h
    1009810107    ; xor ax, ax                                ; 33 c0
     
    1010010109    xchg ah, al                               ; 86 c4
    1010110110    mov dl, al                                ; 88 c2
    10102     mov byte [bp-002h], al                    ; 88 46 fe
     10111    mov byte [bp-00ah], al                    ; 88 46 f6
    1010310112    movzx ax, dl                              ; 0f b6 c2
    1010410113    push ax                                   ; 50
    1010510114    push 0092eh                               ; 68 2e 09
    1010610115    push strict byte 00004h                   ; 6a 04
    10107     call 018e9h                               ; e8 80 a9
     10116    call 0190dh                               ; e8 d0 a8
    1010810117    add sp, strict byte 00006h                ; 83 c4 06
    10109     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10110     je short 06f76h                           ; 74 04
     10118    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     10119    je short 0704ah                           ; 74 04
    1011110120    mov al, dl                                ; 88 d0
    10112     jmp short 06f88h                          ; eb 12
     10121    jmp short 0705ch                          ; eb 12
    1011310122    test cx, cx                               ; 85 c9
    10114     jnle short 06f07h                         ; 7f 8d
    10115     jne short 06f80h                          ; 75 04
     10123    jnle short 06fdbh                         ; 7f 8d
     10124    jne short 07054h                          ; 75 04
    1011610125    test si, si                               ; 85 f6
    10117     jnbe short 06f07h                         ; 77 87
    10118     mov ax, word [bp-008h]                    ; 8b 46 f8
     10126    jnbe short 06fdbh                         ; 77 87
     10127    mov ax, word [bp-010h]                    ; 8b 46 f0
    1011910128    push ax                                   ; 50
    1012010129    popfw                                     ; 9d
    10121     mov al, byte [bp-002h]                    ; 8a 46 fe
    10122     leave                                     ; c9
     10130    mov al, byte [bp-00ah]                    ; 8a 46 f6
     10131    lea sp, [bp-008h]                         ; 8d 66 f8
    1012310132    pop di                                    ; 5f
    1012410133    pop si                                    ; 5e
    1012510134    pop cx                                    ; 59
    1012610135    pop bx                                    ; 5b
     10136    pop bp                                    ; 5d
    1012710137    retn                                      ; c3
    10128 read_logo_byte_:                             ; 0xf6f8e LB 0x13
    10129     push dx                                   ; 52
     10138read_logo_byte_:                             ; 0xf7065 LB 0x16
    1013010139    push bp                                   ; 55
    1013110140    mov bp, sp                                ; 89 e5
     10141    push dx                                   ; 52
    1013210142    xor ah, ah                                ; 30 e4
    1013310143    or ah, 001h                               ; 80 cc 01
     
    1013710147    db  02ah, 0e4h
    1013810148    ; sub ah, ah                                ; 2a e4
     10149    lea sp, [bp-002h]                         ; 8d 66 fe
     10150    pop dx                                    ; 5a
    1013910151    pop bp                                    ; 5d
    10140     pop dx                                    ; 5a
    1014110152    retn                                      ; c3
    10142 read_logo_word_:                             ; 0xf6fa1 LB 0x11
    10143     push dx                                   ; 52
     10153read_logo_word_:                             ; 0xf707b LB 0x14
    1014410154    push bp                                   ; 55
    1014510155    mov bp, sp                                ; 89 e5
     10156    push dx                                   ; 52
    1014610157    xor ah, ah                                ; 30 e4
    1014710158    or ah, 001h                               ; 80 cc 01
     
    1014910160    out DX, ax                                ; ef
    1015010161    in ax, DX                                 ; ed
     10162    lea sp, [bp-002h]                         ; 8d 66 fe
     10163    pop dx                                    ; 5a
    1015110164    pop bp                                    ; 5d
    10152     pop dx                                    ; 5a
    1015310165    retn                                      ; c3
    10154 print_detected_harddisks_:                   ; 0xf6fb2 LB 0x12c
     10166print_detected_harddisks_:                   ; 0xf708f LB 0x130
     10167    push bp                                   ; 55
     10168    mov bp, sp                                ; 89 e5
    1015510169    push bx                                   ; 53
    1015610170    push cx                                   ; 51
     
    1015810172    push si                                   ; 56
    1015910173    push di                                   ; 57
    10160     enter 00004h, 000h                        ; c8 04 00 00
     10174    push ax                                   ; 50
     10175    push ax                                   ; 50
    1016110176    mov dx, strict word 0000eh                ; ba 0e 00
    1016210177    mov ax, strict word 00040h                ; b8 40 00
    10163     call 0161ch                               ; e8 58 a6
     10178    call 0161ch                               ; e8 7a a5
    1016410179    mov si, ax                                ; 89 c6
    10165     mov byte [bp-002h], 000h                  ; c6 46 fe 00
     10180    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1016610181    xor cl, cl                                ; 30 c9
    1016710182    xor ch, ch                                ; 30 ed
    1016810183    mov dx, 002c0h                            ; ba c0 02
    10169     call 01600h                               ; e8 2c a6
    10170     mov byte [bp-004h], al                    ; 88 46 fc
     10184    call 01600h                               ; e8 4e a5
     10185    mov byte [bp-00eh], al                    ; 88 46 f2
    1017110186    xor bl, bl                                ; 30 db
    10172     cmp bl, byte [bp-004h]                    ; 3a 5e fc
    10173     jnc near 070b3h                           ; 0f 83 d3 00
     10187    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
     10188    jnc near 07191h                           ; 0f 83 d3 00
    1017410189    movzx dx, bl                              ; 0f b6 d3
    1017510190    add dx, 002c1h                            ; 81 c2 c1 02
    1017610191    mov ax, si                                ; 89 f0
    10177     call 01600h                               ; e8 14 a6
     10192    call 01600h                               ; e8 36 a5
    1017810193    mov bh, al                                ; 88 c7
    1017910194    cmp AL, strict byte 00ch                  ; 3c 0c
    10180     jc short 07016h                           ; 72 24
     10195    jc short 070f4h                           ; 72 24
    1018110196    test cl, cl                               ; 84 c9
    10182     jne short 07003h                          ; 75 0d
     10197    jne short 070e1h                          ; 75 0d
    1018310198    push 0093fh                               ; 68 3f 09
    1018410199    push strict byte 00002h                   ; 6a 02
    10185     call 018e9h                               ; e8 eb a8
     10200    call 0190dh                               ; e8 31 a8
    1018610201    add sp, strict byte 00004h                ; 83 c4 04
    1018710202    mov CL, strict byte 001h                  ; b1 01
     
    1019110206    push 00953h                               ; 68 53 09
    1019210207    push strict byte 00002h                   ; 6a 02
    10193     call 018e9h                               ; e8 d9 a8
     10208    call 0190dh                               ; e8 1f a8
    1019410209    add sp, strict byte 00006h                ; 83 c4 06
    10195     jmp near 070aeh                           ; e9 98 00
     10210    jmp near 0718ch                           ; e9 98 00
    1019610211    cmp AL, strict byte 008h                  ; 3c 08
    10197     jc short 0702dh                           ; 72 13
     10212    jc short 0710bh                           ; 72 13
    1019810213    test ch, ch                               ; 84 ed
    10199     jne short 0702bh                          ; 75 0d
     10214    jne short 07109h                          ; 75 0d
    1020010215    push 00966h                               ; 68 66 09
    1020110216    push strict byte 00002h                   ; 6a 02
    10202     call 018e9h                               ; e8 c3 a8
     10217    call 0190dh                               ; e8 09 a8
    1020310218    add sp, strict byte 00004h                ; 83 c4 04
    1020410219    mov CH, strict byte 001h                  ; b5 01
    10205     jmp short 07003h                          ; eb d6
     10220    jmp short 070e1h                          ; eb d6
    1020610221    cmp AL, strict byte 004h                  ; 3c 04
    10207     jnc short 07048h                          ; 73 17
    10208     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10209     jne short 07048h                          ; 75 11
     10222    jnc short 07126h                          ; 73 17
     10223    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     10224    jne short 07126h                          ; 75 11
    1021010225    push 0097ah                               ; 68 7a 09
    1021110226    push strict byte 00002h                   ; 6a 02
    10212     call 018e9h                               ; e8 aa a8
     10227    call 0190dh                               ; e8 f0 a7
    1021310228    add sp, strict byte 00004h                ; 83 c4 04
    10214     mov byte [bp-002h], 001h                  ; c6 46 fe 01
    10215     jmp short 0705eh                          ; eb 16
     10229    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     10230    jmp short 0713ch                          ; eb 16
    1021610231    cmp bh, 004h                              ; 80 ff 04
    10217     jc short 0705eh                           ; 72 11
     10232    jc short 0713ch                           ; 72 11
    1021810233    test cl, cl                               ; 84 c9
    10219     jne short 0705eh                          ; 75 0d
     10234    jne short 0713ch                          ; 75 0d
    1022010235    push 0093fh                               ; 68 3f 09
    1022110236    push strict byte 00002h                   ; 6a 02
    10222     call 018e9h                               ; e8 90 a8
     10237    call 0190dh                               ; e8 d6 a7
    1022310238    add sp, strict byte 00004h                ; 83 c4 04
    1022410239    mov CL, strict byte 001h                  ; b1 01
     
    1022810243    push 0098bh                               ; 68 8b 09
    1022910244    push strict byte 00002h                   ; 6a 02
    10230     call 018e9h                               ; e8 7e a8
     10245    call 0190dh                               ; e8 c4 a7
    1023110246    add sp, strict byte 00006h                ; 83 c4 06
    1023210247    cmp bh, 004h                              ; 80 ff 04
    10233     jc short 07076h                           ; 72 03
     10248    jc short 07154h                           ; 72 03
    1023410249    sub bh, 004h                              ; 80 ef 04
    1023510250    movzx ax, bh                              ; 0f b6 c7
     
    1023910254    sar ax, 1                                 ; d1 f8
    1024010255    test ax, ax                               ; 85 c0
    10241     je short 07087h                           ; 74 05
     10256    je short 07165h                           ; 74 05
    1024210257    push 00995h                               ; 68 95 09
    10243     jmp short 0708ah                          ; eb 03
     10258    jmp short 07168h                          ; eb 03
    1024410259    push 009a0h                               ; 68 a0 09
    1024510260    push strict byte 00002h                   ; 6a 02
    10246     call 018e9h                               ; e8 5a a8
     10261    call 0190dh                               ; e8 a0 a7
    1024710262    add sp, strict byte 00004h                ; 83 c4 04
    1024810263    movzx ax, bh                              ; 0f b6 c7
     
    1025110266    idiv di                                   ; f7 ff
    1025210267    test dx, dx                               ; 85 d2
    10253     je short 070a4h                           ; 74 05
     10268    je short 07182h                           ; 74 05
    1025410269    push 009a9h                               ; 68 a9 09
    10255     jmp short 070a7h                          ; eb 03
     10270    jmp short 07185h                          ; eb 03
    1025610271    push 009afh                               ; 68 af 09
    1025710272    push di                                   ; 57
    10258     call 018e9h                               ; e8 3e a8
     10273    call 0190dh                               ; e8 84 a7
    1025910274    add sp, strict byte 00004h                ; 83 c4 04
    1026010275    db  0feh, 0c3h
    1026110276    ; inc bl                                    ; fe c3
    10262     jmp near 06fd9h                           ; e9 26 ff
    10263     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10264     jne short 070cch                          ; 75 13
     10277    jmp near 070b7h                           ; e9 26 ff
     10278    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     10279    jne short 071aah                          ; 75 13
    1026510280    test cl, cl                               ; 84 c9
    10266     jne short 070cch                          ; 75 0f
     10281    jne short 071aah                          ; 75 0f
    1026710282    test ch, ch                               ; 84 ed
    10268     jne short 070cch                          ; 75 0b
     10283    jne short 071aah                          ; 75 0b
    1026910284    push 009b6h                               ; 68 b6 09
    1027010285    push strict byte 00002h                   ; 6a 02
    10271     call 018e9h                               ; e8 20 a8
     10286    call 0190dh                               ; e8 66 a7
    1027210287    add sp, strict byte 00004h                ; 83 c4 04
    1027310288    push 009cah                               ; 68 ca 09
    1027410289    push strict byte 00002h                   ; 6a 02
    10275     call 018e9h                               ; e8 15 a8
     10290    call 0190dh                               ; e8 5b a7
    1027610291    add sp, strict byte 00004h                ; 83 c4 04
    10277     leave                                     ; c9
     10292    lea sp, [bp-00ah]                         ; 8d 66 f6
    1027810293    pop di                                    ; 5f
    1027910294    pop si                                    ; 5e
     
    1028110296    pop cx                                    ; 59
    1028210297    pop bx                                    ; 5b
     10298    pop bp                                    ; 5d
    1028310299    retn                                      ; c3
    10284 get_boot_drive_:                             ; 0xf70de LB 0x25
     10300get_boot_drive_:                             ; 0xf71bf LB 0x28
     10301    push bp                                   ; 55
     10302    mov bp, sp                                ; 89 e5
    1028510303    push bx                                   ; 53
    1028610304    push dx                                   ; 52
    10287     push bp                                   ; 55
    10288     mov bp, sp                                ; 89 e5
    1028910305    mov bl, al                                ; 88 c3
    1029010306    mov dx, strict word 0000eh                ; ba 0e 00
    1029110307    mov ax, strict word 00040h                ; b8 40 00
    10292     call 0161ch                               ; e8 2e a5
     10308    call 0161ch                               ; e8 4d a4
    1029310309    mov dx, 002c0h                            ; ba c0 02
    10294     call 01600h                               ; e8 0c a5
     10310    call 01600h                               ; e8 2b a4
    1029510311    sub bl, 002h                              ; 80 eb 02
    1029610312    cmp bl, al                                ; 38 c3
    10297     jc short 070fdh                           ; 72 02
     10313    jc short 071deh                           ; 72 02
    1029810314    mov BL, strict byte 0ffh                  ; b3 ff
    1029910315    mov al, bl                                ; 88 d8
    10300     pop bp                                    ; 5d
     10316    lea sp, [bp-004h]                         ; 8d 66 fc
    1030110317    pop dx                                    ; 5a
    1030210318    pop bx                                    ; 5b
     10319    pop bp                                    ; 5d
    1030310320    retn                                      ; c3
    10304 show_logo_:                                  ; 0xf7103 LB 0x21f
     10321show_logo_:                                  ; 0xf71e7 LB 0x224
     10322    push bp                                   ; 55
     10323    mov bp, sp                                ; 89 e5
    1030510324    push bx                                   ; 53
    1030610325    push cx                                   ; 51
     
    1030810327    push si                                   ; 56
    1030910328    push di                                   ; 57
    10310     enter 0000ch, 000h                        ; c8 0c 00 00
     10329    sub sp, strict byte 0000ch                ; 83 ec 0c
    1031110330    mov dx, strict word 0000eh                ; ba 0e 00
    1031210331    mov ax, strict word 00040h                ; b8 40 00
    10313     call 0161ch                               ; e8 07 a5
     10332    call 0161ch                               ; e8 21 a4
    1031410333    mov si, ax                                ; 89 c6
    1031510334    xor cl, cl                                ; 30 c9
     
    1032210341    out strict byte 040h, AL                  ; e6 40
    1032310342    movzx ax, dl                              ; 0f b6 c2
    10324     call 06fa1h                               ; e8 74 fe
     10343    call 0707bh                               ; e8 68 fe
    1032510344    cmp ax, 066bbh                            ; 3d bb 66
    10326     jne near 07205h                           ; 0f 85 d1 00
     10345    jne near 072ebh                           ; 0f 85 d1 00
    1032710346    push SS                                   ; 16
    1032810347    pop ES                                    ; 07
    10329     lea di, [bp-00ch]                         ; 8d 7e f4
     10348    lea di, [bp-016h]                         ; 8d 7e ea
    1033010349    mov ax, 04f03h                            ; b8 03 4f
    1033110350    int 010h                                  ; cd 10
    1033210351    mov word [es:di], bx                      ; 26 89 1d
    1033310352    cmp ax, strict word 0004fh                ; 3d 4f 00
    10334     jne near 07205h                           ; 0f 85 bd 00
     10353    jne near 072ebh                           ; 0f 85 bd 00
    1033510354    mov al, dl                                ; 88 d0
    1033610355    add AL, strict byte 004h                  ; 04 04
    1033710356    xor ah, ah                                ; 30 e4
    10338     call 06f8eh                               ; e8 3d fe
     10357    call 07065h                               ; e8 2e fe
    1033910358    mov ch, al                                ; 88 c5
    10340     mov byte [bp-002h], al                    ; 88 46 fe
     10359    mov byte [bp-00ch], al                    ; 88 46 f4
    1034110360    mov al, dl                                ; 88 d0
    1034210361    add AL, strict byte 005h                  ; 04 05
    1034310362    xor ah, ah                                ; 30 e4
    10344     call 06f8eh                               ; e8 2f fe
     10363    call 07065h                               ; e8 20 fe
    1034510364    mov dh, al                                ; 88 c6
    10346     mov byte [bp-006h], al                    ; 88 46 fa
     10365    mov byte [bp-010h], al                    ; 88 46 f0
    1034710366    mov al, dl                                ; 88 d0
    1034810367    add AL, strict byte 002h                  ; 04 02
    1034910368    xor ah, ah                                ; 30 e4
    10350     call 06fa1h                               ; e8 34 fe
     10369    call 0707bh                               ; e8 28 fe
    1035110370    mov bx, ax                                ; 89 c3
    10352     mov word [bp-00ah], ax                    ; 89 46 f6
     10371    mov word [bp-014h], ax                    ; 89 46 ec
    1035310372    mov al, dl                                ; 88 d0
    1035410373    add AL, strict byte 006h                  ; 04 06
    1035510374    xor ah, ah                                ; 30 e4
    10356     call 06f8eh                               ; e8 13 fe
    10357     mov byte [bp-008h], al                    ; 88 46 f8
     10375    call 07065h                               ; e8 04 fe
     10376    mov byte [bp-012h], al                    ; 88 46 ee
    1035810377    test ch, ch                               ; 84 ed
    10359     jne short 0718ch                          ; 75 0a
     10378    jne short 07272h                          ; 75 0a
    1036010379    test dh, dh                               ; 84 f6
    10361     jne short 0718ch                          ; 75 06
     10380    jne short 07272h                          ; 75 06
    1036210381    test bx, bx                               ; 85 db
    10363     je near 07205h                            ; 0f 84 79 00
     10382    je near 072ebh                            ; 0f 84 79 00
    1036410383    mov bx, 00142h                            ; bb 42 01
    1036510384    mov ax, 04f02h                            ; b8 02 4f
    1036610385    int 010h                                  ; cd 10
    10367     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10368     je short 071bdh                           ; 74 23
     10386    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     10387    je short 072a3h                           ; 74 23
    1036910388    xor bx, bx                                ; 31 db
    10370     jmp short 071a4h                          ; eb 06
     10389    jmp short 0728ah                          ; eb 06
    1037110390    inc bx                                    ; 43
    1037210391    cmp bx, strict byte 00010h                ; 83 fb 10
    10373     jnbe short 071c4h                         ; 77 20
     10392    jnbe short 072aah                         ; 77 20
    1037410393    mov ax, bx                                ; 89 d8
    1037510394    or ah, 002h                               ; 80 cc 02
     
    1037810397    xor dx, dx                                ; 31 d2
    1037910398    mov ax, strict word 00001h                ; b8 01 00
    10380     call 06ee1h                               ; e8 2c fd
     10399    call 06fb3h                               ; e8 18 fd
    1038110400    cmp AL, strict byte 086h                  ; 3c 86
    10382     jne short 0719eh                          ; 75 e5
     10401    jne short 07284h                          ; 75 e5
    1038310402    mov CL, strict byte 001h                  ; b1 01
    10384     jmp short 071c4h                          ; eb 07
     10403    jmp short 072aah                          ; eb 07
    1038510404    mov ax, 00210h                            ; b8 10 02
    1038610405    mov dx, 003b8h                            ; ba b8 03
    1038710406    out DX, ax                                ; ef
    1038810407    test cl, cl                               ; 84 c9
    10389     jne short 071dah                          ; 75 12
    10390     mov ax, word [bp-00ah]                    ; 8b 46 f6
     10408    jne short 072c0h                          ; 75 12
     10409    mov ax, word [bp-014h]                    ; 8b 46 ec
    1039110410    shr ax, 004h                              ; c1 e8 04
    1039210411    mov dx, strict word 00001h                ; ba 01 00
    10393     call 06ee1h                               ; e8 0d fd
     10412    call 06fb3h                               ; e8 f9 fc
    1039410413    cmp AL, strict byte 086h                  ; 3c 86
    10395     jne short 071dah                          ; 75 02
     10414    jne short 072c0h                          ; 75 02
    1039610415    mov CL, strict byte 001h                  ; b1 01
    10397     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10398     je short 07205h                           ; 74 25
     10416    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     10417    je short 072ebh                           ; 74 25
    1039910418    test cl, cl                               ; 84 c9
    10400     jne short 07205h                          ; 75 21
     10419    jne short 072ebh                          ; 75 21
    1040110420    mov bx, strict word 00010h                ; bb 10 00
    10402     jmp short 071eeh                          ; eb 05
     10421    jmp short 072d4h                          ; eb 05
    1040310422    dec bx                                    ; 4b
    1040410423    test bx, bx                               ; 85 db
    10405     jbe short 07205h                          ; 76 17
     10424    jbe short 072ebh                          ; 76 17
    1040610425    mov ax, bx                                ; 89 d8
    1040710426    or ah, 002h                               ; 80 cc 02
     
    1041010429    xor dx, dx                                ; 31 d2
    1041110430    mov ax, strict word 00001h                ; b8 01 00
    10412     call 06ee1h                               ; e8 e2 fc
     10431    call 06fb3h                               ; e8 ce fc
    1041310432    cmp AL, strict byte 086h                  ; 3c 86
    10414     jne short 071e9h                          ; 75 e6
     10433    jne short 072cfh                          ; 75 e6
    1041510434    mov CL, strict byte 001h                  ; b1 01
    1041610435    xor bx, bx                                ; 31 db
    1041710436    mov dx, 00339h                            ; ba 39 03
    1041810437    mov ax, si                                ; 89 f0
    10419     call 0160eh                               ; e8 ff a3
     10438    call 0160eh                               ; e8 19 a3
    1042010439    mov AL, strict byte 003h                  ; b0 03
    1042110440    mov AH, strict byte 000h                  ; b4 00
    1042210441    int 010h                                  ; cd 10
    10423     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10424     je near 07306h                            ; 0f 84 e9 00
    10425     cmp byte [bp-002h], 000h                  ; 80 7e fe 00
    10426     jne short 07253h                          ; 75 30
    10427     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    10428     jne short 07253h                          ; 75 2a
    10429     cmp word [bp-00ah], strict byte 00000h    ; 83 7e f6 00
    10430     jne short 07253h                          ; 75 24
    10431     cmp byte [bp-008h], 002h                  ; 80 7e f8 02
    10432     jne short 07240h                          ; 75 0b
     10442    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
     10443    je near 073ech                            ; 0f 84 e9 00
     10444    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     10445    jne short 07339h                          ; 75 30
     10446    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
     10447    jne short 07339h                          ; 75 2a
     10448    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
     10449    jne short 07339h                          ; 75 24
     10450    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
     10451    jne short 07326h                          ; 75 0b
    1043310452    push 009cch                               ; 68 cc 09
    1043410453    push strict byte 00002h                   ; 6a 02
    10435     call 018e9h                               ; e8 ac a6
     10454    call 0190dh                               ; e8 ea a5
    1043610455    add sp, strict byte 00004h                ; 83 c4 04
    1043710456    test cl, cl                               ; 84 c9
    10438     jne short 07253h                          ; 75 0f
     10457    jne short 07339h                          ; 75 0f
    1043910458    mov dx, strict word 00001h                ; ba 01 00
    1044010459    mov ax, 000c0h                            ; b8 c0 00
    10441     call 06ee1h                               ; e8 94 fc
     10460    call 06fb3h                               ; e8 80 fc
    1044210461    cmp AL, strict byte 086h                  ; 3c 86
    10443     jne short 07253h                          ; 75 02
     10462    jne short 07339h                          ; 75 02
    1044410463    mov CL, strict byte 001h                  ; b1 01
    1044510464    test cl, cl                               ; 84 c9
    10446     je near 07306h                            ; 0f 84 ad 00
    10447     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     10465    je near 073ech                            ; 0f 84 ad 00
     10466    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1044810467    mov ax, 00100h                            ; b8 00 01
    1044910468    mov cx, 01000h                            ; b9 00 10
     
    1046310482    push 009eeh                               ; 68 ee 09
    1046410483    push strict byte 00002h                   ; 6a 02
    10465     call 018e9h                               ; e8 67 a6
     10484    call 0190dh                               ; e8 a5 a5
    1046610485    add sp, strict byte 00004h                ; 83 c4 04
    10467     call 06fb2h                               ; e8 2a fd
     10486    call 0708fh                               ; e8 21 fd
    1046810487    push 00a32h                               ; 68 32 0a
    1046910488    push strict byte 00002h                   ; 6a 02
    10470     call 018e9h                               ; e8 59 a6
     10489    call 0190dh                               ; e8 97 a5
    1047110490    add sp, strict byte 00004h                ; 83 c4 04
    1047210491    mov dx, strict word 00001h                ; ba 01 00
    1047310492    mov ax, strict word 00040h                ; b8 40 00
    10474     call 06ee1h                               ; e8 45 fc
     10493    call 06fb3h                               ; e8 31 fc
    1047510494    mov bl, al                                ; 88 c3
    1047610495    test al, al                               ; 84 c0
    10477     je short 07293h                           ; 74 f1
     10496    je short 07379h                           ; 74 f1
    1047810497    cmp AL, strict byte 030h                  ; 3c 30
    10479     je short 072f4h                           ; 74 4e
     10498    je short 073dah                           ; 74 4e
    1048010499    cmp bl, 002h                              ; 80 fb 02
    10481     jc short 072cdh                           ; 72 22
     10500    jc short 073b3h                           ; 72 22
    1048210501    cmp bl, 009h                              ; 80 fb 09
    10483     jnbe short 072cdh                         ; 77 1d
     10502    jnbe short 073b3h                         ; 77 1d
    1048410503    movzx ax, bl                              ; 0f b6 c3
    10485     call 070deh                               ; e8 28 fe
     10504    call 071bfh                               ; e8 23 fe
    1048610505    cmp AL, strict byte 0ffh                  ; 3c ff
    10487     jne short 072bch                          ; 75 02
    10488     jmp short 07293h                          ; eb d7
     10506    jne short 073a2h                          ; 75 02
     10507    jmp short 07379h                          ; eb d7
    1048910508    movzx bx, al                              ; 0f b6 d8
    1049010509    mov dx, 00338h                            ; ba 38 03
    1049110510    mov ax, si                                ; 89 f0
    10492     call 0160eh                               ; e8 47 a3
    10493     mov byte [bp-004h], 002h                  ; c6 46 fc 02
    10494     jmp short 072f4h                          ; eb 27
     10511    call 0160eh                               ; e8 61 a2
     10512    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
     10513    jmp short 073dah                          ; eb 27
    1049510514    cmp bl, 02eh                              ; 80 fb 2e
    10496     je short 072e2h                           ; 74 10
     10515    je short 073c8h                           ; 74 10
    1049710516    cmp bl, 026h                              ; 80 fb 26
    10498     je short 072e8h                           ; 74 11
     10517    je short 073ceh                           ; 74 11
    1049910518    cmp bl, 021h                              ; 80 fb 21
    10500     jne short 072eeh                          ; 75 12
    10501     mov byte [bp-004h], 001h                  ; c6 46 fc 01
    10502     jmp short 072f4h                          ; eb 12
    10503     mov byte [bp-004h], 003h                  ; c6 46 fc 03
    10504     jmp short 072f4h                          ; eb 0c
    10505     mov byte [bp-004h], 004h                  ; c6 46 fc 04
    10506     jmp short 072f4h                          ; eb 06
    10507     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10508     je short 07293h                           ; 74 9f
    10509     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     10519    jne short 073d4h                          ; 75 12
     10520    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
     10521    jmp short 073dah                          ; eb 12
     10522    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
     10523    jmp short 073dah                          ; eb 0c
     10524    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
     10525    jmp short 073dah                          ; eb 06
     10526    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
     10527    je short 07379h                           ; 74 9f
     10528    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1051010529    mov dx, 00339h                            ; ba 39 03
    1051110530    mov ax, si                                ; 89 f0
    10512     call 0160eh                               ; e8 0e a3
     10531    call 0160eh                               ; e8 28 a2
    1051310532    mov AL, strict byte 003h                  ; b0 03
    1051410533    mov AH, strict byte 000h                  ; b4 00
     
    1052310542    push DS                                   ; 1e
    1052410543    mov ds, ax                                ; 8e d8
    10525     call 0edbfh                               ; e8 a7 7a
     10544    call 0edbfh                               ; e8 c1 79
    1052610545    pop DS                                    ; 1f
    1052710546    popad                                     ; 66 61
    10528     leave                                     ; c9
     10547    lea sp, [bp-00ah]                         ; 8d 66 f6
    1052910548    pop di                                    ; 5f
    1053010549    pop si                                    ; 5e
     
    1053210551    pop cx                                    ; 59
    1053310552    pop bx                                    ; 5b
     10553    pop bp                                    ; 5d
    1053410554    retn                                      ; c3
    10535 delay_boot_:                                 ; 0xf7322 LB 0x64
     10555delay_boot_:                                 ; 0xf740b LB 0x67
     10556    push bp                                   ; 55
     10557    mov bp, sp                                ; 89 e5
    1053610558    push bx                                   ; 53
    1053710559    push dx                                   ; 52
    10538     push bp                                   ; 55
    10539     mov bp, sp                                ; 89 e5
    1054010560    mov dx, ax                                ; 89 c2
    1054110561    test ax, ax                               ; 85 c0
    10542     je short 07382h                           ; 74 55
     10562    je short 0746bh                           ; 74 55
    1054310563    mov AL, strict byte 034h                  ; b0 34
    1054410564    out strict byte 043h, AL                  ; e6 43
     
    1055010570    push 00a7ch                               ; 68 7c 0a
    1055110571    push strict byte 00002h                   ; 6a 02
    10552     call 018e9h                               ; e8 a7 a5
     10572    call 0190dh                               ; e8 e2 a4
    1055310573    add sp, strict byte 00006h                ; 83 c4 06
    1055410574    mov bx, dx                                ; 89 d3
    1055510575    test bx, bx                               ; 85 db
    10556     jbe short 07362h                          ; 76 17
     10576    jbe short 0744bh                          ; 76 17
    1055710577    push bx                                   ; 53
    1055810578    push 00a9ah                               ; 68 9a 0a
    1055910579    push strict byte 00002h                   ; 6a 02
    10560     call 018e9h                               ; e8 95 a5
     10580    call 0190dh                               ; e8 d0 a4
    1056110581    add sp, strict byte 00006h                ; 83 c4 06
    1056210582    xor dx, dx                                ; 31 d2
    1056310583    mov ax, strict word 00040h                ; b8 40 00
    10564     call 06ee1h                               ; e8 82 fb
     10584    call 06fb3h                               ; e8 6b fb
    1056510585    dec bx                                    ; 4b
    10566     jmp short 07347h                          ; eb e5
     10586    jmp short 07430h                          ; eb e5
    1056710587    push 009cah                               ; 68 ca 09
    1056810588    push strict byte 00002h                   ; 6a 02
    10569     call 018e9h                               ; e8 7f a5
     10589    call 0190dh                               ; e8 ba a4
    1057010590    add sp, strict byte 00004h                ; 83 c4 04
    1057110591    mov AL, strict byte 034h                  ; b0 34
     
    1057810598    push DS                                   ; 1e
    1057910599    mov ds, ax                                ; 8e d8
    10580     call 0edbfh                               ; e8 40 7a
     10600    call 0edbfh                               ; e8 57 79
    1058110601    pop DS                                    ; 1f
    1058210602    popad                                     ; 66 61
    10583     pop bp                                    ; 5d
     10603    lea sp, [bp-004h]                         ; 8d 66 fc
    1058410604    pop dx                                    ; 5a
    1058510605    pop bx                                    ; 5b
     10606    pop bp                                    ; 5d
    1058610607    retn                                      ; c3
    10587 scsi_cmd_data_in_:                           ; 0xf7386 LB 0x88
     10608scsi_cmd_data_in_:                           ; 0xf7472 LB 0xb2
     10609    push bp                                   ; 55
     10610    mov bp, sp                                ; 89 e5
    1058810611    push si                                   ; 56
    1058910612    push di                                   ; 57
    10590     enter 00006h, 000h                        ; c8 06 00 00
     10613    sub sp, strict byte 00006h                ; 83 ec 06
    1059110614    mov si, ax                                ; 89 c6
    10592     mov byte [bp-002h], dl                    ; 88 56 fe
    10593     mov word [bp-006h], bx                    ; 89 5e fa
    10594     mov word [bp-004h], cx                    ; 89 4e fc
     10615    mov byte [bp-006h], dl                    ; 88 56 fa
     10616    mov word [bp-00ah], bx                    ; 89 5e f6
     10617    mov word [bp-008h], cx                    ; 89 4e f8
     10618    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1059510619    mov dx, si                                ; 89 f2
    1059610620    in AL, DX                                 ; ec
     
    1059810622    ; sub ah, ah                                ; 2a e4
    1059910623    test AL, strict byte 001h                 ; a8 01
    10600     jne short 07397h                          ; 75 f7
    10601     mov ax, word [bp+00eh]                    ; 8b 46 0e
    10602     mov dx, word [bp+010h]                    ; 8b 56 10
     10624    jne short 07488h                          ; 75 f7
     10625    mov ax, bx                                ; 89 d8
     10626    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1060310627    mov cx, strict word 0000ch                ; b9 0c 00
    1060410628    shr dx, 1                                 ; d1 ea
    1060510629    rcr ax, 1                                 ; d1 d8
    10606     loop 073a9h                               ; e2 fa
     10630    loop 07499h                               ; e2 fa
    1060710631    and ax, 000f0h                            ; 25 f0 00
    10608     movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
    10609     or bx, ax                                 ; 09 c3
    10610     mov al, byte [bp-002h]                    ; 8a 46 fe
     10632    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     10633    or cx, ax                                 ; 09 c1
     10634    mov al, byte [bp-006h]                    ; 8a 46 fa
    1061110635    mov dx, si                                ; 89 f2
    1061210636    out DX, AL                                ; ee
    1061310637    xor al, al                                ; 30 c0
    1061410638    out DX, AL                                ; ee
     10639    mov al, cl                                ; 88 c8
     10640    out DX, AL                                ; ee
    1061510641    mov al, bl                                ; 88 d8
    1061610642    out DX, AL                                ; ee
    10617     mov al, byte [bp+00eh]                    ; 8a 46 0e
    10618     out DX, AL                                ; ee
    10619     mov ax, word [bp+00eh]                    ; 8b 46 0e
    10620     mov dx, word [bp+010h]                    ; 8b 56 10
     10643    mov ax, bx                                ; 89 d8
     10644    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1062110645    mov cx, strict word 00008h                ; b9 08 00
    1062210646    shr dx, 1                                 ; d1 ea
    1062310647    rcr ax, 1                                 ; d1 d8
    10624     loop 073d1h                               ; e2 fa
     10648    loop 074bfh                               ; e2 fa
    1062510649    mov dx, si                                ; 89 f2
    1062610650    out DX, AL                                ; ee
    10627     xor bx, bx                                ; 31 db
    10628     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    10629     cmp bx, ax                                ; 39 c3
    10630     jnc short 073f2h                          ; 73 0e
    10631     les di, [bp-006h]                         ; c4 7e fa
    10632     add di, bx                                ; 01 df
     10651    xor cx, cx                                ; 31 c9
     10652    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     10653    cmp cx, ax                                ; 39 c1
     10654    jnc short 074e0h                          ; 73 0e
     10655    les di, [bp-00ah]                         ; c4 7e f6
     10656    add di, cx                                ; 01 cf
    1063310657    mov al, byte [es:di]                      ; 26 8a 05
    1063410658    mov dx, si                                ; 89 f2
    1063510659    out DX, AL                                ; ee
    10636     inc bx                                    ; 43
    10637     jmp short 073dch                          ; eb ea
     10660    inc cx                                    ; 41
     10661    jmp short 074cah                          ; eb ea
    1063810662    mov dx, si                                ; 89 f2
    1063910663    in AL, DX                                 ; ec
     
    1064110665    ; sub ah, ah                                ; 2a e4
    1064210666    test AL, strict byte 001h                 ; a8 01
    10643     jne short 073f2h                          ; 75 f7
     10667    jne short 074e0h                          ; 75 f7
    1064410668    lea dx, [si+001h]                         ; 8d 54 01
    10645     mov cx, word [bp+00eh]                    ; 8b 4e 0e
    10646     les di, [bp+00ah]                         ; c4 7e 0a
     10669    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
     10670    jne short 074f8h                          ; 75 06
     10671    cmp bx, 08000h                            ; 81 fb 00 80
     10672    jbe short 07512h                          ; 76 1a
     10673    mov cx, 08000h                            ; b9 00 80
     10674    les di, [bp+006h]                         ; c4 7e 06
     10675    rep insb                                  ; f3 6c
     10676    add bx, 08000h                            ; 81 c3 00 80
     10677    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
     10678    mov ax, es                                ; 8c c0
     10679    add ax, 00800h                            ; 05 00 08
     10680    mov word [bp+008h], ax                    ; 89 46 08
     10681    jmp short 074e9h                          ; eb d7
     10682    mov cx, bx                                ; 89 d9
     10683    les di, [bp+006h]                         ; c4 7e 06
    1064710684    rep insb                                  ; f3 6c
    1064810685    xor ax, ax                                ; 31 c0
    10649     leave                                     ; c9
     10686    lea sp, [bp-004h]                         ; 8d 66 fc
    1065010687    pop di                                    ; 5f
    1065110688    pop si                                    ; 5e
     10689    pop bp                                    ; 5d
    1065210690    retn 0000ah                               ; c2 0a 00
    10653 scsi_cmd_data_out_:                          ; 0xf740e LB 0x89
     10691scsi_cmd_data_out_:                          ; 0xf7524 LB 0xb4
     10692    push bp                                   ; 55
     10693    mov bp, sp                                ; 89 e5
    1065410694    push si                                   ; 56
    1065510695    push di                                   ; 57
    10656     enter 00006h, 000h                        ; c8 06 00 00
     10696    sub sp, strict byte 00006h                ; 83 ec 06
    1065710697    mov di, ax                                ; 89 c7
    10658     mov byte [bp-002h], dl                    ; 88 56 fe
    10659     mov word [bp-006h], bx                    ; 89 5e fa
    10660     mov word [bp-004h], cx                    ; 89 4e fc
     10698    mov byte [bp-006h], dl                    ; 88 56 fa
     10699    mov word [bp-00ah], bx                    ; 89 5e f6
     10700    mov word [bp-008h], cx                    ; 89 4e f8
     10701    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    1066110702    mov dx, di                                ; 89 fa
    1066210703    in AL, DX                                 ; ec
     
    1066410705    ; sub ah, ah                                ; 2a e4
    1066510706    test AL, strict byte 001h                 ; a8 01
    10666     jne short 0741fh                          ; 75 f7
    10667     mov ax, word [bp+00eh]                    ; 8b 46 0e
    10668     mov dx, word [bp+010h]                    ; 8b 56 10
     10707    jne short 0753ah                          ; 75 f7
     10708    mov ax, bx                                ; 89 d8
     10709    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1066910710    mov cx, strict word 0000ch                ; b9 0c 00
    1067010711    shr dx, 1                                 ; d1 ea
    1067110712    rcr ax, 1                                 ; d1 d8
    10672     loop 07431h                               ; e2 fa
     10713    loop 0754bh                               ; e2 fa
    1067310714    and ax, 000f0h                            ; 25 f0 00
    10674     movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
    10675     or bx, ax                                 ; 09 c3
    10676     mov al, byte [bp-002h]                    ; 8a 46 fe
     10715    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     10716    or cx, ax                                 ; 09 c1
     10717    mov al, byte [bp-006h]                    ; 8a 46 fa
    1067710718    mov dx, di                                ; 89 fa
    1067810719    out DX, AL                                ; ee
    1067910720    mov AL, strict byte 001h                  ; b0 01
    1068010721    out DX, AL                                ; ee
     10722    mov al, cl                                ; 88 c8
     10723    out DX, AL                                ; ee
    1068110724    mov al, bl                                ; 88 d8
    1068210725    out DX, AL                                ; ee
    10683     mov al, byte [bp+00eh]                    ; 8a 46 0e
    10684     out DX, AL                                ; ee
    10685     mov ax, word [bp+00eh]                    ; 8b 46 0e
    10686     mov dx, word [bp+010h]                    ; 8b 56 10
     10726    mov ax, bx                                ; 89 d8
     10727    mov dx, word [bp+00ch]                    ; 8b 56 0c
    1068710728    mov cx, strict word 00008h                ; b9 08 00
    1068810729    shr dx, 1                                 ; d1 ea
    1068910730    rcr ax, 1                                 ; d1 d8
    10690     loop 07459h                               ; e2 fa
     10731    loop 07571h                               ; e2 fa
    1069110732    mov dx, di                                ; 89 fa
    1069210733    out DX, AL                                ; ee
    10693     xor bx, bx                                ; 31 db
    10694     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
    10695     cmp bx, ax                                ; 39 c3
    10696     jnc short 0747ah                          ; 73 0e
    10697     les si, [bp-006h]                         ; c4 76 fa
    10698     add si, bx                                ; 01 de
     10734    xor cx, cx                                ; 31 c9
     10735    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     10736    cmp cx, ax                                ; 39 c1
     10737    jnc short 07592h                          ; 73 0e
     10738    les si, [bp-00ah]                         ; c4 76 f6
     10739    add si, cx                                ; 01 ce
    1069910740    mov al, byte [es:si]                      ; 26 8a 04
    1070010741    mov dx, di                                ; 89 fa
    1070110742    out DX, AL                                ; ee
    10702     inc bx                                    ; 43
    10703     jmp short 07464h                          ; eb ea
     10743    inc cx                                    ; 41
     10744    jmp short 0757ch                          ; eb ea
    1070410745    lea dx, [di+001h]                         ; 8d 55 01
    10705     mov cx, word [bp+00eh]                    ; 8b 4e 0e
    10706     les si, [bp+00ah]                         ; c4 76 0a
     10746    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
     10747    jne short 075a1h                          ; 75 06
     10748    cmp bx, 08000h                            ; 81 fb 00 80
     10749    jbe short 075bch                          ; 76 1b
     10750    mov cx, 08000h                            ; b9 00 80
     10751    les si, [bp+006h]                         ; c4 76 06
     10752    db  0f3h, 026h, 06eh
     10753    ; rep es outsb                              ; f3 26 6e
     10754    add bx, 08000h                            ; 81 c3 00 80
     10755    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
     10756    mov ax, es                                ; 8c c0
     10757    add ax, 00800h                            ; 05 00 08
     10758    mov word [bp+008h], ax                    ; 89 46 08
     10759    jmp short 07592h                          ; eb d6
     10760    mov cx, bx                                ; 89 d9
     10761    les si, [bp+006h]                         ; c4 76 06
    1070710762    db  0f3h, 026h, 06eh
    1070810763    ; rep es outsb                              ; f3 26 6e
     
    1071210767    ; sub ah, ah                                ; 2a e4
    1071310768    test AL, strict byte 001h                 ; a8 01
    10714     jne short 07486h                          ; 75 f7
     10769    jne short 075c4h                          ; 75 f7
    1071510770    xor ax, ax                                ; 31 c0
    10716     leave                                     ; c9
     10771    lea sp, [bp-004h]                         ; 8d 66 fc
    1071710772    pop di                                    ; 5f
    1071810773    pop si                                    ; 5e
     10774    pop bp                                    ; 5d
    1071910775    retn 0000ah                               ; c2 0a 00
    10720 @scsi_read_sectors:                          ; 0xf7497 LB 0xb1
     10776@scsi_read_sectors:                          ; 0xf75d8 LB 0xb6
     10777    push bp                                   ; 55
     10778    mov bp, sp                                ; 89 e5
    1072110779    push si                                   ; 56
    1072210780    push di                                   ; 57
    10723     enter 0000eh, 000h                        ; c8 0e 00 00
    10724     mov si, word [bp+008h]                    ; 8b 76 08
    10725     mov es, [bp+00ah]                         ; 8e 46 0a
     10781    sub sp, strict byte 0000eh                ; 83 ec 0e
     10782    mov si, word [bp+004h]                    ; 8b 76 04
     10783    mov es, [bp+006h]                         ; 8e 46 06
    1072610784    mov bl, byte [es:si+008h]                 ; 26 8a 5c 08
    1072710785    sub bl, 008h                              ; 80 eb 08
    1072810786    cmp bl, 004h                              ; 80 fb 04
    10729     jbe short 074beh                          ; 76 0f
     10787    jbe short 07601h                          ; 76 0f
    1073010788    movzx ax, bl                              ; 0f b6 c3
    1073110789    push ax                                   ; 50
    1073210790    push 00a9eh                               ; 68 9e 0a
    1073310791    push strict byte 00007h                   ; 6a 07
    10734     call 018e9h                               ; e8 2e a4
     10792    call 0190dh                               ; e8 0f a3
    1073510793    add sp, strict byte 00006h                ; 83 c4 06
    10736     mov es, [bp+00ah]                         ; 8e 46 0a
     10794    mov es, [bp+006h]                         ; 8e 46 06
    1073710795    mov di, word [es:si+00ah]                 ; 26 8b 7c 0a
    10738     mov word [bp-00eh], strict word 00028h    ; c7 46 f2 28 00
     10796    mov word [bp-012h], strict word 00028h    ; c7 46 ee 28 00
    1073910797    mov ax, word [es:si]                      ; 26 8b 04
    1074010798    mov dx, word [es:si+002h]                 ; 26 8b 54 02
     
    1074210800    xchg dh, dl                               ; 86 d6
    1074310801    xchg dx, ax                               ; 92
    10744     mov word [bp-00ch], ax                    ; 89 46 f4
    10745     mov word [bp-00ah], dx                    ; 89 56 f6
    10746     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     10802    mov word [bp-010h], ax                    ; 89 46 f0
     10803    mov word [bp-00eh], dx                    ; 89 56 f2
     10804    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1074710805    mov ax, di                                ; 89 f8
    1074810806    xchg ah, al                               ; 86 c4
    10749     mov word [bp-007h], ax                    ; 89 46 f9
    10750     mov byte [bp-005h], 000h                  ; c6 46 fb 00
     10807    mov word [bp-00bh], ax                    ; 89 46 f5
     10808    mov byte [bp-009h], 000h                  ; c6 46 f7 00
    1075110809    xor bh, bh                                ; 30 ff
    1075210810    sal bx, 002h                              ; c1 e3 02
     
    1075410812    mov ax, word [es:bx+001d8h]               ; 26 8b 87 d8 01
    1075510813    mov dl, byte [es:bx+001dah]               ; 26 8a 97 da 01
    10756     mov word [bp-004h], di                    ; 89 7e fc
    10757     mov word [bp-002h], strict word 00000h    ; c7 46 fe 00 00
     10814    mov word [bp-008h], di                    ; 89 7e f8
     10815    mov word [bp-006h], strict word 00000h    ; c7 46 fa 00 00
    1075810816    mov cx, strict word 00009h                ; b9 09 00
    10759     sal word [bp-004h], 1                     ; d1 66 fc
    10760     rcl word [bp-002h], 1                     ; d1 56 fe
    10761     loop 07507h                               ; e2 f8
    10762     push dword [bp-004h]                      ; 66 ff 76 fc
     10817    sal word [bp-008h], 1                     ; d1 66 f8
     10818    rcl word [bp-006h], 1                     ; d1 56 fa
     10819    loop 0764ah                               ; e2 f8
     10820    push dword [bp-008h]                      ; 66 ff 76 f8
    1076310821    db  066h, 026h, 0ffh, 074h, 004h
    1076410822    ; push dword [es:si+004h]                   ; 66 26 ff 74 04
     
    1076610824    xor dh, dh                                ; 30 f6
    1076710825    mov cx, ss                                ; 8c d1
    10768     lea bx, [bp-00eh]                         ; 8d 5e f2
    10769     call 07386h                               ; e8 62 fe
     10826    lea bx, [bp-012h]                         ; 8d 5e ee
     10827    call 07472h                               ; e8 0b fe
    1077010828    mov ah, al                                ; 88 c4
    1077110829    test al, al                               ; 84 c0
    10772     jne short 0753fh                          ; 75 15
    10773     mov es, [bp+00ah]                         ; 8e 46 0a
     10830    jne short 07682h                          ; 75 15
     10831    mov es, [bp+006h]                         ; 8e 46 06
    1077410832    mov word [es:si+014h], di                 ; 26 89 7c 14
    10775     mov dx, word [bp-004h]                    ; 8b 56 fc
     10833    mov dx, word [bp-008h]                    ; 8b 56 f8
    1077610834    mov word [es:si+016h], dx                 ; 26 89 54 16
    10777     mov dx, word [bp-002h]                    ; 8b 56 fe
     10835    mov dx, word [bp-006h]                    ; 8b 56 fa
    1077810836    mov word [es:si+018h], dx                 ; 26 89 54 18
    1077910837    movzx ax, ah                              ; 0f b6 c4
    10780     leave                                     ; c9
     10838    lea sp, [bp-004h]                         ; 8d 66 fc
    1078110839    pop di                                    ; 5f
    1078210840    pop si                                    ; 5e
     10841    pop bp                                    ; 5d
    1078310842    retn 00004h                               ; c2 04 00
    10784 @scsi_write_sectors:                         ; 0xf7548 LB 0xb1
     10843@scsi_write_sectors:                         ; 0xf768e LB 0xb6
     10844    push bp                                   ; 55
     10845    mov bp, sp                                ; 89 e5
    1078510846    push si                                   ; 56
    1078610847    push di                                   ; 57
    10787     enter 0000eh, 000h                        ; c8 0e 00 00
    10788     mov si, word [bp+008h]                    ; 8b 76 08
    10789     mov es, [bp+00ah]                         ; 8e 46 0a
     10848    sub sp, strict byte 0000eh                ; 83 ec 0e
     10849    mov si, word [bp+004h]                    ; 8b 76 04
     10850    mov es, [bp+006h]                         ; 8e 46 06
    1079010851    mov bl, byte [es:si+008h]                 ; 26 8a 5c 08
    1079110852    sub bl, 008h                              ; 80 eb 08
    1079210853    cmp bl, 004h                              ; 80 fb 04
    10793     jbe short 0756fh                          ; 76 0f
     10854    jbe short 076b7h                          ; 76 0f
    1079410855    movzx ax, bl                              ; 0f b6 c3
    1079510856    push ax                                   ; 50
    1079610857    push 00acch                               ; 68 cc 0a
    1079710858    push strict byte 00007h                   ; 6a 07
    10798     call 018e9h                               ; e8 7d a3
     10859    call 0190dh                               ; e8 59 a2
    1079910860    add sp, strict byte 00006h                ; 83 c4 06
    10800     mov es, [bp+00ah]                         ; 8e 46 0a
     10861    mov es, [bp+006h]                         ; 8e 46 06
    1080110862    mov di, word [es:si+00ah]                 ; 26 8b 7c 0a
    10802     mov word [bp-00eh], strict word 0002ah    ; c7 46 f2 2a 00
     10863    mov word [bp-012h], strict word 0002ah    ; c7 46 ee 2a 00
    1080310864    mov ax, word [es:si]                      ; 26 8b 04
    1080410865    mov dx, word [es:si+002h]                 ; 26 8b 54 02
     
    1080610867    xchg dh, dl                               ; 86 d6
    1080710868    xchg dx, ax                               ; 92
    10808     mov word [bp-00ch], ax                    ; 89 46 f4
    10809     mov word [bp-00ah], dx                    ; 89 56 f6
    10810     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     10869    mov word [bp-010h], ax                    ; 89 46 f0
     10870    mov word [bp-00eh], dx                    ; 89 56 f2
     10871    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1081110872    mov ax, di                                ; 89 f8
    1081210873    xchg ah, al                               ; 86 c4
    10813     mov word [bp-007h], ax                    ; 89 46 f9
    10814     mov byte [bp-005h], 000h                  ; c6 46 fb 00
     10874    mov word [bp-00bh], ax                    ; 89 46 f5
     10875    mov byte [bp-009h], 000h                  ; c6 46 f7 00
    1081510876    xor bh, bh                                ; 30 ff
    1081610877    sal bx, 002h                              ; c1 e3 02
     
    1081810879    mov ax, word [es:bx+001d8h]               ; 26 8b 87 d8 01
    1081910880    mov dl, byte [es:bx+001dah]               ; 26 8a 97 da 01
    10820     mov word [bp-004h], di                    ; 89 7e fc
    10821     mov word [bp-002h], strict word 00000h    ; c7 46 fe 00 00
     10881    mov word [bp-008h], di                    ; 89 7e f8
     10882    mov word [bp-006h], strict word 00000h    ; c7 46 fa 00 00
    1082210883    mov cx, strict word 00009h                ; b9 09 00
    10823     sal word [bp-004h], 1                     ; d1 66 fc
    10824     rcl word [bp-002h], 1                     ; d1 56 fe
    10825     loop 075b8h                               ; e2 f8
    10826     push dword [bp-004h]                      ; 66 ff 76 fc
     10884    sal word [bp-008h], 1                     ; d1 66 f8
     10885    rcl word [bp-006h], 1                     ; d1 56 fa
     10886    loop 07700h                               ; e2 f8
     10887    push dword [bp-008h]                      ; 66 ff 76 f8
    1082710888    db  066h, 026h, 0ffh, 074h, 004h
    1082810889    ; push dword [es:si+004h]                   ; 66 26 ff 74 04
     
    1083010891    xor dh, dh                                ; 30 f6
    1083110892    mov cx, ss                                ; 8c d1
    10832     lea bx, [bp-00eh]                         ; 8d 5e f2
    10833     call 0740eh                               ; e8 39 fe
     10893    lea bx, [bp-012h]                         ; 8d 5e ee
     10894    call 07524h                               ; e8 07 fe
    1083410895    mov ah, al                                ; 88 c4
    1083510896    test al, al                               ; 84 c0
    10836     jne short 075f0h                          ; 75 15
    10837     mov es, [bp+00ah]                         ; 8e 46 0a
     10897    jne short 07738h                          ; 75 15
     10898    mov es, [bp+006h]                         ; 8e 46 06
    1083810899    mov word [es:si+014h], di                 ; 26 89 7c 14
    10839     mov dx, word [bp-004h]                    ; 8b 56 fc
     10900    mov dx, word [bp-008h]                    ; 8b 56 f8
    1084010901    mov word [es:si+016h], dx                 ; 26 89 54 16
    10841     mov dx, word [bp-002h]                    ; 8b 56 fe
     10902    mov dx, word [bp-006h]                    ; 8b 56 fa
    1084210903    mov word [es:si+018h], dx                 ; 26 89 54 18
    1084310904    movzx ax, ah                              ; 0f b6 c4
    10844     leave                                     ; c9
     10905    lea sp, [bp-004h]                         ; 8d 66 fc
    1084510906    pop di                                    ; 5f
    1084610907    pop si                                    ; 5e
     10908    pop bp                                    ; 5d
    1084710909    retn 00004h                               ; c2 04 00
    10848 scsi_cmd_packet_:                            ; 0xf75f9 LB 0x161
     10910scsi_cmd_packet_:                            ; 0xf7744 LB 0x166
     10911    push bp                                   ; 55
     10912    mov bp, sp                                ; 89 e5
    1084910913    push si                                   ; 56
    1085010914    push di                                   ; 57
    10851     enter 0000ch, 000h                        ; c8 0c 00 00
     10915    sub sp, strict byte 0000ch                ; 83 ec 0c
    1085210916    mov di, ax                                ; 89 c7
    10853     mov byte [bp-002h], dl                    ; 88 56 fe
    10854     mov word [bp-008h], bx                    ; 89 5e f8
    10855     mov word [bp-006h], cx                    ; 89 4e fa
     10917    mov byte [bp-006h], dl                    ; 88 56 fa
     10918    mov word [bp-00ch], bx                    ; 89 5e f4
     10919    mov word [bp-00ah], cx                    ; 89 4e f6
    1085610920    mov dx, strict word 0000eh                ; ba 0e 00
    1085710921    mov ax, strict word 00040h                ; b8 40 00
    10858     call 0161ch                               ; e8 09 a0
     10922    call 0161ch                               ; e8 bc 9e
    1085910923    mov si, 00122h                            ; be 22 01
    10860     mov word [bp-00ah], ax                    ; 89 46 f6
    10861     cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    10862     jne short 0763eh                          ; 75 1f
    10863     mov bx, 00d32h                            ; bb 32 0d
     10924    mov word [bp-00eh], ax                    ; 89 46 f2
     10925    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     10926    jne short 0778bh                          ; 75 1f
     10927    mov bx, 00d38h                            ; bb 38 0d
    1086410928    mov cx, ds                                ; 8c d9
    1086510929    mov ax, strict word 00004h                ; b8 04 00
    10866     call 018aeh                               ; e8 84 a2
     10930    call 018cch                               ; e8 55 a1
    1086710931    push 00afbh                               ; 68 fb 0a
    1086810932    push 00b0bh                               ; 68 0b 0b
    1086910933    push strict byte 00004h                   ; 6a 04
    10870     call 018e9h                               ; e8 b4 a2
     10934    call 0190dh                               ; e8 8b a1
    1087110935    add sp, strict byte 00006h                ; 83 c4 06
    1087210936    mov dx, strict word 00001h                ; ba 01 00
    10873     jmp near 07752h                           ; e9 14 01
     10937    jmp near 0789fh                           ; e9 14 01
    1087410938    sub di, strict byte 00008h                ; 83 ef 08
    1087510939    sal di, 002h                              ; c1 e7 02
    10876     sub byte [bp-002h], 002h                  ; 80 6e fe 02
    10877     mov es, [bp-00ah]                         ; 8e 46 f6
     10940    sub byte [bp-006h], 002h                  ; 80 6e fa 02
     10941    mov es, [bp-00eh]                         ; 8e 46 f2
    1087810942    add di, si                                ; 01 f7
    1087910943    mov bx, word [es:di+001d8h]               ; 26 8b 9d d8 01
    1088010944    mov al, byte [es:di+001dah]               ; 26 8a 85 da 01
    10881     mov byte [bp-004h], al                    ; 88 46 fc
     10945    mov byte [bp-008h], al                    ; 88 46 f8
    1088210946    mov dx, bx                                ; 89 da
    1088310947    in AL, DX                                 ; ec
     
    1088510949    ; sub ah, ah                                ; 2a e4
    1088610950    test AL, strict byte 001h                 ; a8 01
    10887     jne short 0765ah                          ; 75 f7
     10951    jne short 077a7h                          ; 75 f7
    1088810952    xor ax, ax                                ; 31 c0
    10889     mov dx, word [bp+00ah]                    ; 8b 56 0a
    10890     add dx, word [bp+008h]                    ; 03 56 08
    10891     adc ax, word [bp+00ch]                    ; 13 46 0c
    10892     mov es, [bp-00ah]                         ; 8e 46 f6
     10953    mov dx, word [bp+006h]                    ; 8b 56 06
     10954    add dx, word [bp+004h]                    ; 03 56 04
     10955    adc ax, word [bp+008h]                    ; 13 46 08
     10956    mov es, [bp-00eh]                         ; 8e 46 f2
    1089310957    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1089410958    xor di, di                                ; 31 ff
    1089510959    add cx, dx                                ; 01 d1
    10896     mov word [bp-00ch], cx                    ; 89 4e f4
     10960    mov word [bp-010h], cx                    ; 89 4e f0
    1089710961    adc di, ax                                ; 11 c7
    1089810962    mov ax, cx                                ; 89 c8
     
    1090110965    shr dx, 1                                 ; d1 ea
    1090210966    rcr ax, 1                                 ; d1 d8
    10903     loop 07685h                               ; e2 fa
     10967    loop 077d2h                               ; e2 fa
    1090410968    and ax, 000f0h                            ; 25 f0 00
    10905     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
     10969    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
    1090610970    or cx, ax                                 ; 09 c1
    10907     mov al, byte [bp-004h]                    ; 8a 46 fc
     10971    mov al, byte [bp-008h]                    ; 8a 46 f8
    1090810972    mov dx, bx                                ; 89 da
    1090910973    out DX, AL                                ; ee
     
    1091210976    mov al, cl                                ; 88 c8
    1091310977    out DX, AL                                ; ee
    10914     mov al, byte [bp-00ch]                    ; 8a 46 f4
    10915     out DX, AL                                ; ee
    10916     mov ax, word [bp-00ch]                    ; 8b 46 f4
     10978    mov al, byte [bp-010h]                    ; 8a 46 f0
     10979    out DX, AL                                ; ee
     10980    mov ax, word [bp-010h]                    ; 8b 46 f0
    1091710981    mov dx, di                                ; 89 fa
    1091810982    mov cx, strict word 00008h                ; b9 08 00
    1091910983    shr dx, 1                                 ; d1 ea
    1092010984    rcr ax, 1                                 ; d1 d8
    10921     loop 076ach                               ; e2 fa
     10985    loop 077f9h                               ; e2 fa
    1092210986    mov dx, bx                                ; 89 da
    1092310987    out DX, AL                                ; ee
    1092410988    xor cx, cx                                ; 31 c9
    10925     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     10989    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1092610990    cmp cx, ax                                ; 39 c1
    10927     jnc short 076cdh                          ; 73 0e
    10928     les di, [bp-008h]                         ; c4 7e f8
     10991    jnc short 0781ah                          ; 73 0e
     10992    les di, [bp-00ch]                         ; c4 7e f4
    1092910993    add di, cx                                ; 01 cf
    1093010994    mov al, byte [es:di]                      ; 26 8a 05
     
    1093210996    out DX, AL                                ; ee
    1093310997    inc cx                                    ; 41
    10934     jmp short 076b7h                          ; eb ea
     10998    jmp short 07804h                          ; eb ea
    1093510999    mov dx, bx                                ; 89 da
    1093611000    in AL, DX                                 ; ec
     
    1093811002    ; sub ah, ah                                ; 2a e4
    1093911003    test AL, strict byte 001h                 ; a8 01
    10940     jne short 076cdh                          ; 75 f7
     11004    jne short 0781ah                          ; 75 f7
    1094111005    test AL, strict byte 002h                 ; a8 02
    10942     je short 076e8h                           ; 74 0e
     11006    je short 07835h                           ; 74 0e
    1094311007    lea dx, [bx+003h]                         ; 8d 57 03
    1094411008    xor al, al                                ; 30 c0
     
    1094811012    ; sub ah, ah                                ; 2a e4
    1094911013    mov dx, strict word 00003h                ; ba 03 00
    10950     jmp short 07752h                          ; eb 6a
    10951     mov ax, word [bp+008h]                    ; 8b 46 08
     11014    jmp short 0789fh                          ; eb 6a
     11015    mov ax, word [bp+004h]                    ; 8b 46 04
    1095211016    test ax, ax                               ; 85 c0
    10953     je short 076f7h                           ; 74 08
     11017    je short 07844h                           ; 74 08
    1095411018    lea dx, [bx+001h]                         ; 8d 57 01
    1095511019    mov cx, ax                                ; 89 c1
    1095611020    in AL, DX                                 ; ec
    10957     loop 076f4h                               ; e2 fd
    10958     mov ax, word [bp+00ah]                    ; 8b 46 0a
    10959     mov es, [bp-00ah]                         ; 8e 46 f6
     11021    loop 07841h                               ; e2 fd
     11022    mov ax, word [bp+006h]                    ; 8b 46 06
     11023    mov es, [bp-00eh]                         ; 8e 46 f2
    1096011024    mov word [es:si+016h], ax                 ; 26 89 44 16
    10961     mov ax, word [bp+00ch]                    ; 8b 46 0c
     11025    mov ax, word [bp+008h]                    ; 8b 46 08
    1096211026    mov word [es:si+018h], ax                 ; 26 89 44 18
    1096311027    lea ax, [bx+001h]                         ; 8d 47 01
    10964     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10965     jne short 07718h                          ; 75 07
    10966     cmp word [bp+00ah], 08000h                ; 81 7e 0a 00 80
    10967     jbe short 07735h                          ; 76 1d
     11028    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
     11029    jne short 07865h                          ; 75 07
     11030    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
     11031    jbe short 07882h                          ; 76 1d
    1096811032    mov dx, ax                                ; 89 c2
    1096911033    mov cx, 08000h                            ; b9 00 80
    10970     les di, [bp+010h]                         ; c4 7e 10
     11034    les di, [bp+00ch]                         ; c4 7e 0c
    1097111035    rep insb                                  ; f3 6c
    10972     add word [bp+00ah], 08000h                ; 81 46 0a 00 80
    10973     adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
     11036    add word [bp+006h], 08000h                ; 81 46 06 00 80
     11037    adc word [bp+008h], strict byte 0ffffh    ; 83 56 08 ff
    1097411038    mov ax, es                                ; 8c c0
    1097511039    add ax, 00800h                            ; 05 00 08
    10976     mov word [bp+012h], ax                    ; 89 46 12
    10977     jmp short 07708h                          ; eb d3
     11040    mov word [bp+00eh], ax                    ; 89 46 0e
     11041    jmp short 07855h                          ; eb d3
    1097811042    mov dx, ax                                ; 89 c2
    10979     mov cx, word [bp+00ah]                    ; 8b 4e 0a
    10980     les di, [bp+010h]                         ; c4 7e 10
     11043    mov cx, word [bp+006h]                    ; 8b 4e 06
     11044    les di, [bp+00ch]                         ; c4 7e 0c
    1098111045    rep insb                                  ; f3 6c
    10982     mov es, [bp-00ah]                         ; 8e 46 f6
     11046    mov es, [bp-00eh]                         ; 8e 46 f2
    1098311047    cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
    10984     je short 07750h                           ; 74 07
     11048    je short 0789dh                           ; 74 07
    1098511049    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1098611050    in AL, DX                                 ; ec
    10987     loop 0774dh                               ; e2 fd
     11051    loop 0789ah                               ; e2 fd
    1098811052    xor dx, dx                                ; 31 d2
    1098911053    mov ax, dx                                ; 89 d0
    10990     leave                                     ; c9
     11054    lea sp, [bp-004h]                         ; 8d 66 fc
    1099111055    pop di                                    ; 5f
    1099211056    pop si                                    ; 5e
     11057    pop bp                                    ; 5d
    1099311058    retn 0000ch                               ; c2 0c 00
    10994 scsi_enumerate_attached_devices_:            ; 0xf775a LB 0x36d
     11059scsi_enumerate_attached_devices_:            ; 0xf78aa LB 0x373
     11060    push bp                                   ; 55
     11061    mov bp, sp                                ; 89 e5
    1099511062    push bx                                   ; 53
    1099611063    push cx                                   ; 51
     
    1099811065    push si                                   ; 56
    1099911066    push di                                   ; 57
    11000     enter 0021eh, 000h                        ; c8 1e 02 00
     11067    sub sp, 0021eh                            ; 81 ec 1e 02
    1100111068    push ax                                   ; 50
    1100211069    mov dx, strict word 0000eh                ; ba 0e 00
    1100311070    mov ax, strict word 00040h                ; b8 40 00
    11004     call 0161ch                               ; e8 af 9e
     11071    call 0161ch                               ; e8 5c 9d
    1100511072    mov si, 00122h                            ; be 22 01
    11006     mov word [bp-008h], ax                    ; 89 46 f8
    11007     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    11008     jmp near 07a58h                           ; e9 dd 02
    11009     mov es, [bp-008h]                         ; 8e 46 f8
     11073    mov word [bp-012h], ax                    ; 89 46 ee
     11074    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
     11075    jmp near 07babh                           ; e9 dd 02
     11076    mov es, [bp-012h]                         ; 8e 46 ee
    1101011077    cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    11011     jnc near 07ac0h                           ; 0f 83 38 03
     11078    jnc near 07c13h                           ; 0f 83 38 03
    1101211079    mov cx, strict word 0000ah                ; b9 0a 00
    1101311080    xor bx, bx                                ; 31 db
    1101411081    mov dx, ss                                ; 8c d2
    11015     lea ax, [bp-01eh]                         ; 8d 46 e2
    11016     call 0907ah                               ; e8 e5 18
    11017     mov byte [bp-01eh], 025h                  ; c6 46 e2 25
     11082    lea ax, [bp-028h]                         ; 8d 46 d8
     11083    call 0924ah                               ; e8 62 19
     11084    mov byte [bp-028h], 025h                  ; c6 46 d8 25
    1101811085    push dword 000000008h                     ; 66 6a 08
    11019     lea dx, [bp-0021eh]                       ; 8d 96 e2 fd
     11086    lea dx, [bp-00228h]                       ; 8d 96 d8 fd
    1102011087    push SS                                   ; 16
    1102111088    push dx                                   ; 52
    1102211089    push strict byte 0000ah                   ; 6a 0a
    11023     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     11090    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    1102411091    mov cx, ss                                ; 8c d1
    11025     lea bx, [bp-01eh]                         ; 8d 5e e2
    11026     mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
    11027     call 07386h                               ; e8 d2 fb
     11092    lea bx, [bp-028h]                         ; 8d 5e d8
     11093    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
     11094    call 07472h                               ; e8 6b fb
    1102811095    test al, al                               ; 84 c0
    11029     je short 077c6h                           ; 74 0e
     11096    je short 07919h                           ; 74 0e
    1103011097    push 00b2bh                               ; 68 2b 0b
    1103111098    push 00b64h                               ; 68 64 0b
    1103211099    push strict byte 00007h                   ; 6a 07
    11033     call 018e9h                               ; e8 26 a1
     11100    call 0190dh                               ; e8 f7 9f
    1103411101    add sp, strict byte 00006h                ; 83 c4 06
    11035     movzx dx, byte [bp-0021dh]                ; 0f b6 96 e3 fd
    11036     movzx di, byte [bp-0021eh]                ; 0f b6 be e2 fd
     11102    movzx dx, byte [bp-00227h]                ; 0f b6 96 d9 fd
     11103    movzx di, byte [bp-00228h]                ; 0f b6 be d8 fd
    1103711104    sal di, 008h                              ; c1 e7 08
    1103811105    xor bx, bx                                ; 31 db
    1103911106    or di, dx                                 ; 09 d7
    11040     movzx ax, byte [bp-0021ch]                ; 0f b6 86 e4 fd
     11107    movzx ax, byte [bp-00226h]                ; 0f b6 86 da fd
    1104111108    xor dx, dx                                ; 31 d2
    1104211109    mov cx, strict word 00008h                ; b9 08 00
    1104311110    sal ax, 1                                 ; d1 e0
    1104411111    rcl dx, 1                                 ; d1 d2
    11045     loop 077e1h                               ; e2 fa
     11112    loop 07934h                               ; e2 fa
    1104611113    or ax, bx                                 ; 09 d8
    1104711114    or di, dx                                 ; 09 d7
    11048     movzx dx, byte [bp-0021bh]                ; 0f b6 96 e5 fd
     11115    movzx dx, byte [bp-00225h]                ; 0f b6 96 db fd
    1104911116    or ax, dx                                 ; 09 d0
    11050     mov word [bp-006h], ax                    ; 89 46 fa
    11051     movzx dx, byte [bp-0021ah]                ; 0f b6 96 e6 fd
     11117    mov word [bp-010h], ax                    ; 89 46 f0
     11118    movzx dx, byte [bp-00224h]                ; 0f b6 96 dc fd
    1105211119    sal dx, 008h                              ; c1 e2 08
    11053     movzx ax, byte [bp-00219h]                ; 0f b6 86 e7 fd
     11120    movzx ax, byte [bp-00223h]                ; 0f b6 86 dd fd
    1105411121    or dx, ax                                 ; 09 c2
    11055     mov word [bp-014h], dx                    ; 89 56 ec
    11056     movzx ax, byte [bp-00218h]                ; 0f b6 86 e8 fd
     11122    mov word [bp-01eh], dx                    ; 89 56 e2
     11123    movzx ax, byte [bp-00222h]                ; 0f b6 86 de fd
    1105711124    xor dx, dx                                ; 31 d2
    1105811125    mov cx, strict word 00008h                ; b9 08 00
    1105911126    sal ax, 1                                 ; d1 e0
    1106011127    rcl dx, 1                                 ; d1 d2
    11061     loop 07811h                               ; e2 fa
     11128    loop 07964h                               ; e2 fa
    1106211129    or bx, ax                                 ; 09 c3
    11063     or dx, word [bp-014h]                     ; 0b 56 ec
    11064     movzx ax, byte [bp-00217h]                ; 0f b6 86 e9 fd
     11130    or dx, word [bp-01eh]                     ; 0b 56 e2
     11131    movzx ax, byte [bp-00221h]                ; 0f b6 86 df fd
    1106511132    or bx, ax                                 ; 09 c3
    11066     mov word [bp-004h], bx                    ; 89 5e fc
     11133    mov word [bp-00eh], bx                    ; 89 5e f2
    1106711134    test dx, dx                               ; 85 d2
    11068     jne short 07830h                          ; 75 06
     11135    jne short 07983h                          ; 75 06
    1106911136    cmp bx, 00200h                            ; 81 fb 00 02
    11070     je short 07850h                           ; 74 20
    11071     mov bx, 00d32h                            ; bb 32 0d
     11137    je short 079a3h                           ; 74 20
     11138    mov bx, 00d38h                            ; bb 38 0d
    1107211139    mov cx, ds                                ; 8c d9
    1107311140    mov ax, strict word 00004h                ; b8 04 00
    11074     call 018aeh                               ; e8 73 a0
     11141    call 018cch                               ; e8 3e 9f
    1107511142    push dx                                   ; 52
    11076     push word [bp-004h]                       ; ff 76 fc
    11077     push word [bp-00ah]                       ; ff 76 f6
     11143    push word [bp-00eh]                       ; ff 76 f2
     11144    push word [bp-014h]                       ; ff 76 ec
    1107811145    push 00b83h                               ; 68 83 0b
    1107911146    push strict byte 00004h                   ; 6a 04
    11080     call 018e9h                               ; e8 9f a0
     11147    call 0190dh                               ; e8 70 9f
    1108111148    add sp, strict byte 0000ah                ; 83 c4 0a
    11082     jmp near 07a4fh                           ; e9 ff 01
     11149    jmp near 07ba2h                           ; e9 ff 01
    1108311150    cmp di, strict byte 00040h                ; 83 ff 40
    11084     jnbe short 07857h                         ; 77 02
    11085     jne short 07861h                          ; 75 0a
    11086     mov dword [bp-00eh], strict dword 000ff003fh ; 66 c7 46 f2 3f 00 ff 00
    11087     jmp short 0787ah                          ; eb 19
     11151    jnbe short 079aah                         ; 77 02
     11152    jne short 079b4h                          ; 75 0a
     11153    mov dword [bp-018h], strict dword 000ff003fh ; 66 c7 46 e8 3f 00 ff 00
     11154    jmp short 079cdh                          ; eb 19
    1108811155    cmp di, strict byte 00020h                ; 83 ff 20
    11089     jnbe short 07868h                         ; 77 02
    11090     jne short 07872h                          ; 75 0a
    11091     mov dword [bp-00eh], strict dword 000800020h ; 66 c7 46 f2 20 00 80 00
    11092     jmp short 0787ah                          ; eb 08
    11093     mov dword [bp-00eh], strict dword 000400020h ; 66 c7 46 f2 20 00 40 00
    11094     mov bx, word [bp-00ch]                    ; 8b 5e f4
    11095     imul bx, word [bp-00eh]                   ; 0f af 5e f2
    11096     mov ax, word [bp-006h]                    ; 8b 46 fa
     11156    jnbe short 079bbh                         ; 77 02
     11157    jne short 079c5h                          ; 75 0a
     11158    mov dword [bp-018h], strict dword 000800020h ; 66 c7 46 e8 20 00 80 00
     11159    jmp short 079cdh                          ; eb 08
     11160    mov dword [bp-018h], strict dword 000400020h ; 66 c7 46 e8 20 00 40 00
     11161    mov bx, word [bp-016h]                    ; 8b 5e ea
     11162    imul bx, word [bp-018h]                   ; 0f af 5e e8
     11163    mov ax, word [bp-010h]                    ; 8b 46 f0
    1109711164    mov dx, di                                ; 89 fa
    1109811165    xor cx, cx                                ; 31 c9
    11099     call 09010h                               ; e8 85 17
    11100     mov word [bp-012h], ax                    ; 89 46 ee
    11101     mov word [bp-010h], dx                    ; 89 56 f0
    11102     mov es, [bp-008h]                         ; 8e 46 f8
     11166    call 091e0h                               ; e8 02 18
     11167    mov word [bp-01ch], ax                    ; 89 46 e4
     11168    mov word [bp-01ah], dx                    ; 89 56 e6
     11169    mov es, [bp-012h]                         ; 8e 46 ee
    1110311170    mov al, byte [es:si+001e8h]               ; 26 8a 84 e8 01
    11104     mov byte [bp-002h], al                    ; 88 46 fe
     11171    mov byte [bp-00ch], al                    ; 88 46 f4
    1110511172    mov dl, al                                ; 88 c2
    1110611173    add dl, 008h                              ; 80 c2 08
     
    1110811175    sal bx, 002h                              ; c1 e3 02
    1110911176    add bx, si                                ; 01 f3
    11110     mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
     11177    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    1111111178    mov word [es:bx+001d8h], ax               ; 26 89 87 d8 01
    11112     mov al, byte [bp-00ah]                    ; 8a 46 f6
     11179    mov al, byte [bp-014h]                    ; 8a 46 ec
    1111311180    mov byte [es:bx+001dah], al               ; 26 88 87 da 01
    1111411181    movzx ax, dl                              ; 0f b6 c2
     
    1111811185    db  066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h
    1111911186    ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00
    11120     mov ax, word [bp-004h]                    ; 8b 46 fc
     11187    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1112111188    mov word [es:bx+024h], ax                 ; 26 89 47 24
    1112211189    mov byte [es:bx+023h], 001h               ; 26 c6 47 23 01
    11123     mov ax, word [bp-00ch]                    ; 8b 46 f4
     11190    mov ax, word [bp-016h]                    ; 8b 46 ea
    1112411191    mov word [es:bx+026h], ax                 ; 26 89 47 26
    11125     mov ax, word [bp-00eh]                    ; 8b 46 f2
     11192    mov ax, word [bp-018h]                    ; 8b 46 e8
    1112611193    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    11127     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    11128     jne short 078f4h                          ; 75 07
    11129     cmp word [bp-012h], 00400h                ; 81 7e ee 00 04
    11130     jbe short 078fch                          ; 76 08
     11194    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
     11195    jne short 07a47h                          ; 75 07
     11196    cmp word [bp-01ch], 00400h                ; 81 7e e4 00 04
     11197    jbe short 07a4fh                          ; 76 08
    1113111198    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11132     jmp short 07903h                          ; eb 07
    11133     mov ax, word [bp-012h]                    ; 8b 46 ee
     11199    jmp short 07a56h                          ; eb 07
     11200    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1113411201    mov word [es:bx+028h], ax                 ; 26 89 47 28
    11135     mov bx, 00d32h                            ; bb 32 0d
     11202    mov bx, 00d38h                            ; bb 38 0d
    1113611203    mov cx, ds                                ; 8c d9
    1113711204    mov ax, strict word 00004h                ; b8 04 00
    11138     call 018aeh                               ; e8 a0 9f
     11205    call 018cch                               ; e8 6b 9e
    1113911206    push di                                   ; 57
    11140     push word [bp-006h]                       ; ff 76 fa
    11141     push word [bp-00eh]                       ; ff 76 f2
    11142     push word [bp-00ch]                       ; ff 76 f4
    11143     push word [bp-012h]                       ; ff 76 ee
    11144     push word [bp-00ah]                       ; ff 76 f6
    11145     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11207    push word [bp-010h]                       ; ff 76 f0
     11208    push word [bp-018h]                       ; ff 76 e8
     11209    push word [bp-016h]                       ; ff 76 ea
     11210    push word [bp-01ch]                       ; ff 76 e4
     11211    push word [bp-014h]                       ; ff 76 ec
     11212    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1114611213    push ax                                   ; 50
    1114711214    push 00bb1h                               ; 68 b1 0b
    1114811215    push strict byte 00004h                   ; 6a 04
    11149     call 018e9h                               ; e8 be 9f
     11216    call 0190dh                               ; e8 8f 9e
    1115011217    add sp, strict byte 00012h                ; 83 c4 12
    1115111218    movzx ax, dl                              ; 0f b6 c2
    1115211219    imul ax, ax, strict byte 00018h           ; 6b c0 18
    11153     mov es, [bp-008h]                         ; 8e 46 f8
     11220    mov es, [bp-012h]                         ; 8e 46 ee
    1115411221    mov bx, si                                ; 89 f3
    1115511222    add bx, ax                                ; 01 c3
    11156     mov ax, word [bp-00ch]                    ; 8b 46 f4
     11223    mov ax, word [bp-016h]                    ; 8b 46 ea
    1115711224    mov word [es:bx+02ch], ax                 ; 26 89 47 2c
    11158     mov ax, word [bp-00eh]                    ; 8b 46 f2
     11225    mov ax, word [bp-018h]                    ; 8b 46 e8
    1115911226    mov word [es:bx+030h], ax                 ; 26 89 47 30
    11160     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    11161     jne short 07956h                          ; 75 07
    11162     cmp word [bp-012h], 00400h                ; 81 7e ee 00 04
    11163     jbe short 0795eh                          ; 76 08
     11227    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
     11228    jne short 07aa9h                          ; 75 07
     11229    cmp word [bp-01ch], 00400h                ; 81 7e e4 00 04
     11230    jbe short 07ab1h                          ; 76 08
    1116411231    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11165     jmp short 07965h                          ; eb 07
    11166     mov ax, word [bp-012h]                    ; 8b 46 ee
     11232    jmp short 07ab8h                          ; eb 07
     11233    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1116711234    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
    1116811235    movzx ax, dl                              ; 0f b6 c2
    1116911236    imul ax, ax, strict byte 00018h           ; 6b c0 18
    11170     mov es, [bp-008h]                         ; 8e 46 f8
     11237    mov es, [bp-012h]                         ; 8e 46 ee
    1117111238    mov bx, si                                ; 89 f3
    1117211239    add bx, ax                                ; 01 c3
    11173     mov ax, word [bp-006h]                    ; 8b 46 fa
     11240    mov ax, word [bp-010h]                    ; 8b 46 f0
    1117411241    mov word [es:bx+032h], ax                 ; 26 89 47 32
    1117511242    mov word [es:bx+034h], di                 ; 26 89 7f 34
    1117611243    mov al, byte [es:si+0019eh]               ; 26 8a 84 9e 01
    11177     mov ah, byte [bp-002h]                    ; 8a 66 fe
     11244    mov ah, byte [bp-00ch]                    ; 8a 66 f4
    1117811245    add ah, 008h                              ; 80 c4 08
    1117911246    movzx bx, al                              ; 0f b6 d8
     
    1118511252    mov dx, strict word 00075h                ; ba 75 00
    1118611253    mov ax, strict word 00040h                ; b8 40 00
    11187     call 01600h                               ; e8 5e 9c
     11254    call 01600h                               ; e8 0b 9b
    1118811255    db  0feh, 0c0h
    1118911256    ; inc al                                    ; fe c0
     
    1119111258    mov dx, strict word 00075h                ; ba 75 00
    1119211259    mov ax, strict word 00040h                ; b8 40 00
    11193     call 0160eh                               ; e8 5e 9c
    11194     inc byte [bp-002h]                        ; fe 46 fe
    11195     mov al, byte [bp-002h]                    ; 8a 46 fe
    11196     mov es, [bp-008h]                         ; 8e 46 f8
     11260    call 0160eh                               ; e8 0b 9b
     11261    inc byte [bp-00ch]                        ; fe 46 f4
     11262    mov al, byte [bp-00ch]                    ; 8a 46 f4
     11263    mov es, [bp-012h]                         ; 8e 46 ee
    1119711264    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11198     jmp near 07a4fh                           ; e9 8e 00
    11199     mov bx, 00d32h                            ; bb 32 0d
     11265    jmp near 07ba2h                           ; e9 8e 00
     11266    mov bx, 00d38h                            ; bb 38 0d
    1120011267    mov cx, ds                                ; 8c d9
    1120111268    mov ax, strict word 00004h                ; b8 04 00
    11202     call 018aeh                               ; e8 e2 9e
    11203     push word [bp-00ah]                       ; ff 76 f6
    11204     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11269    call 018cch                               ; e8 ad 9d
     11270    push word [bp-014h]                       ; ff 76 ec
     11271    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1120511272    push ax                                   ; 50
    1120611273    push 00bdbh                               ; 68 db 0b
    1120711274    push strict byte 00004h                   ; 6a 04
    11208     call 018e9h                               ; e8 0d 9f
     11275    call 0190dh                               ; e8 de 9d
    1120911276    add sp, strict byte 00008h                ; 83 c4 08
    11210     mov dl, byte [bp-002h]                    ; 8a 56 fe
     11277    mov dl, byte [bp-00ch]                    ; 8a 56 f4
    1121111278    add dl, 008h                              ; 80 c2 08
    11212     test byte [bp-0021dh], 080h               ; f6 86 e3 fd 80
     11279    test byte [bp-00227h], 080h               ; f6 86 d9 fd 80
    1121311280    db  00fh, 095h, 0c0h
    1121411281    ; setne al                                  ; 0f 95 c0
    1121511282    xor ah, ah                                ; 30 e4
    1121611283    mov cx, ax                                ; 89 c1
    11217     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11284    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1121811285    sal ax, 002h                              ; c1 e0 02
    11219     mov es, [bp-008h]                         ; 8e 46 f8
     11286    mov es, [bp-012h]                         ; 8e 46 ee
    1122011287    mov bx, si                                ; 89 f3
    1122111288    add bx, ax                                ; 01 c3
    11222     mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
     11289    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    1122311290    mov word [es:bx+001d8h], ax               ; 26 89 87 d8 01
    11224     mov al, byte [bp-00ah]                    ; 8a 46 f6
     11291    mov al, byte [bp-014h]                    ; 8a 46 ec
    1122511292    mov byte [es:bx+001dah], al               ; 26 88 87 da 01
    1122611293    movzx bx, dl                              ; 0f b6 da
     
    1123111298    mov word [es:bx+024h], 00800h             ; 26 c7 47 24 00 08
    1123211299    mov al, byte [es:si+001afh]               ; 26 8a 84 af 01
    11233     mov ah, byte [bp-002h]                    ; 8a 66 fe
     11300    mov ah, byte [bp-00ch]                    ; 8a 66 f4
    1123411301    add ah, 008h                              ; 80 c4 08
    1123511302    movzx bx, al                              ; 0f b6 d8
     
    1123911306    ; inc al                                    ; fe c0
    1124011307    mov byte [es:si+001afh], al               ; 26 88 84 af 01
    11241     inc byte [bp-002h]                        ; fe 46 fe
    11242     mov al, byte [bp-002h]                    ; 8a 46 fe
     11308    inc byte [bp-00ch]                        ; fe 46 f4
     11309    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1124311310    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11244     inc word [bp-00ah]                        ; ff 46 f6
    11245     cmp word [bp-00ah], strict byte 00010h    ; 83 7e f6 10
    11246     jnl short 07ac0h                          ; 7d 68
    11247     mov byte [bp-01eh], 012h                  ; c6 46 e2 12
     11311    inc word [bp-014h]                        ; ff 46 ec
     11312    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
     11313    jnl short 07c13h                          ; 7d 68
     11314    mov byte [bp-028h], 012h                  ; c6 46 d8 12
    1124811315    xor al, al                                ; 30 c0
    11249     mov byte [bp-01dh], al                    ; 88 46 e3
    11250     mov byte [bp-01ch], al                    ; 88 46 e4
    11251     mov byte [bp-01bh], al                    ; 88 46 e5
    11252     mov byte [bp-01ah], 005h                  ; c6 46 e6 05
    11253     mov byte [bp-019h], al                    ; 88 46 e7
     11316    mov byte [bp-027h], al                    ; 88 46 d9
     11317    mov byte [bp-026h], al                    ; 88 46 da
     11318    mov byte [bp-025h], al                    ; 88 46 db
     11319    mov byte [bp-024h], 005h                  ; c6 46 dc 05
     11320    mov byte [bp-023h], al                    ; 88 46 dd
    1125411321    push dword 000000005h                     ; 66 6a 05
    11255     lea dx, [bp-0021eh]                       ; 8d 96 e2 fd
     11322    lea dx, [bp-00228h]                       ; 8d 96 d8 fd
    1125611323    push SS                                   ; 16
    1125711324    push dx                                   ; 52
    1125811325    push strict byte 00006h                   ; 6a 06
    11259     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     11326    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
    1126011327    mov cx, ss                                ; 8c d1
    11261     lea bx, [bp-01eh]                         ; 8d 5e e2
    11262     mov ax, word [bp-00220h]                  ; 8b 86 e0 fd
    11263     call 07386h                               ; e8 fd f8
     11328    lea bx, [bp-028h]                         ; 8d 5e d8
     11329    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
     11330    call 07472h                               ; e8 96 f8
    1126411331    test al, al                               ; 84 c0
    11265     je short 07a9bh                           ; 74 0e
     11332    je short 07beeh                           ; 74 0e
    1126611333    push 00b2bh                               ; 68 2b 0b
    1126711334    push 00b4bh                               ; 68 4b 0b
    1126811335    push strict byte 00007h                   ; 6a 07
    11269     call 018e9h                               ; e8 51 9e
     11336    call 0190dh                               ; e8 22 9d
    1127011337    add sp, strict byte 00006h                ; 83 c4 06
    11271     test byte [bp-0021eh], 0e0h               ; f6 86 e2 fd e0
    11272     jne short 07aabh                          ; 75 09
    11273     test byte [bp-0021eh], 01fh               ; f6 86 e2 fd 1f
    11274     je near 0777bh                            ; 0f 84 d0 fc
    11275     test byte [bp-0021eh], 0e0h               ; f6 86 e2 fd e0
    11276     jne short 07a4fh                          ; 75 9d
    11277     mov al, byte [bp-0021eh]                  ; 8a 86 e2 fd
     11338    test byte [bp-00228h], 0e0h               ; f6 86 d8 fd e0
     11339    jne short 07bfeh                          ; 75 09
     11340    test byte [bp-00228h], 01fh               ; f6 86 d8 fd 1f
     11341    je near 078ceh                            ; 0f 84 d0 fc
     11342    test byte [bp-00228h], 0e0h               ; f6 86 d8 fd e0
     11343    jne short 07ba2h                          ; 75 9d
     11344    mov al, byte [bp-00228h]                  ; 8a 86 d8 fd
    1127811345    and AL, strict byte 01fh                  ; 24 1f
    1127911346    cmp AL, strict byte 005h                  ; 3c 05
    11280     je near 079c1h                            ; 0f 84 03 ff
    11281     jmp short 07a4fh                          ; eb 8f
    11282     leave                                     ; c9
     11347    je near 07b14h                            ; 0f 84 03 ff
     11348    jmp short 07ba2h                          ; eb 8f
     11349    lea sp, [bp-00ah]                         ; 8d 66 f6
    1128311350    pop di                                    ; 5f
    1128411351    pop si                                    ; 5e
     
    1128611353    pop cx                                    ; 59
    1128711354    pop bx                                    ; 5b
     11355    pop bp                                    ; 5d
    1128811356    retn                                      ; c3
    11289 _scsi_init:                                  ; 0xf7ac7 LB 0x64
     11357_scsi_init:                                  ; 0xf7c1d LB 0x66
    1129011358    push bp                                   ; 55
    1129111359    mov bp, sp                                ; 89 e5
    1129211360    mov dx, strict word 0000eh                ; ba 0e 00
    1129311361    mov ax, strict word 00040h                ; b8 40 00
    11294     call 0161ch                               ; e8 49 9b
     11362    call 0161ch                               ; e8 f3 99
    1129511363    mov bx, 00122h                            ; bb 22 01
    1129611364    mov es, ax                                ; 8e c0
     
    1130311371    ; sub ah, ah                                ; 2a e4
    1130411372    cmp AL, strict byte 055h                  ; 3c 55
    11305     jne short 07af7h                          ; 75 0c
     11373    jne short 07c4dh                          ; 75 0c
    1130611374    xor al, al                                ; 30 c0
    1130711375    mov dx, 00433h                            ; ba 33 04
    1130811376    out DX, AL                                ; ee
    1130911377    mov ax, 00430h                            ; b8 30 04
    11310     call 0775ah                               ; e8 63 fc
     11378    call 078aah                               ; e8 5d fc
    1131111379    mov AL, strict byte 055h                  ; b0 55
    1131211380    mov dx, 00436h                            ; ba 36 04
     
    1131611384    ; sub ah, ah                                ; 2a e4
    1131711385    cmp AL, strict byte 055h                  ; 3c 55
    11318     jne short 07b10h                          ; 75 0c
     11386    jne short 07c66h                          ; 75 0c
    1131911387    xor al, al                                ; 30 c0
    1132011388    mov dx, 00437h                            ; ba 37 04
    1132111389    out DX, AL                                ; ee
    1132211390    mov ax, 00434h                            ; b8 34 04
    11323     call 0775ah                               ; e8 4a fc
     11391    call 078aah                               ; e8 44 fc
    1132411392    mov AL, strict byte 055h                  ; b0 55
    1132511393    mov dx, 0043ah                            ; ba 3a 04
     
    1132911397    ; sub ah, ah                                ; 2a e4
    1133011398    cmp AL, strict byte 055h                  ; 3c 55
    11331     jne short 07b29h                          ; 75 0c
     11399    jne short 07c7fh                          ; 75 0c
    1133211400    xor al, al                                ; 30 c0
    1133311401    mov dx, 0043bh                            ; ba 3b 04
    1133411402    out DX, AL                                ; ee
    1133511403    mov ax, 00438h                            ; b8 38 04
    11336     call 0775ah                               ; e8 31 fc
     11404    call 078aah                               ; e8 2b fc
     11405    mov sp, bp                                ; 89 ec
    1133711406    pop bp                                    ; 5d
    1133811407    retn                                      ; c3
    11339 high_bits_save_:                             ; 0xf7b2b LB 0x14
    11340     push bx                                   ; 53
     11408high_bits_save_:                             ; 0xf7c83 LB 0x17
    1134111409    push bp                                   ; 55
    1134211410    mov bp, sp                                ; 89 e5
     11411    push bx                                   ; 53
    1134311412    mov bx, ax                                ; 89 c3
    1134411413    shr eax, 010h                             ; 66 c1 e8 10
    1134511414    mov es, dx                                ; 8e c2
    1134611415    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
     11416    lea sp, [bp-002h]                         ; 8d 66 fe
     11417    pop bx                                    ; 5b
    1134711418    pop bp                                    ; 5d
    11348     pop bx                                    ; 5b
    1134911419    retn                                      ; c3
    11350 high_bits_restore_:                          ; 0xf7b3f LB 0x14
    11351     push bx                                   ; 53
     11420high_bits_restore_:                          ; 0xf7c9a LB 0x17
    1135211421    push bp                                   ; 55
    1135311422    mov bp, sp                                ; 89 e5
     11423    push bx                                   ; 53
    1135411424    mov bx, ax                                ; 89 c3
    1135511425    mov es, dx                                ; 8e c2
    1135611426    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
    1135711427    sal eax, 010h                             ; 66 c1 e0 10
     11428    lea sp, [bp-002h]                         ; 8d 66 fe
     11429    pop bx                                    ; 5b
    1135811430    pop bp                                    ; 5d
    11359     pop bx                                    ; 5b
    1136011431    retn                                      ; c3
    11361 ahci_ctrl_set_bits_:                         ; 0xf7b53 LB 0x40
     11432ahci_ctrl_set_bits_:                         ; 0xf7cb1 LB 0x43
     11433    push bp                                   ; 55
     11434    mov bp, sp                                ; 89 e5
    1136211435    push si                                   ; 56
    1136311436    push di                                   ; 57
    11364     enter 00002h, 000h                        ; c8 02 00 00
     11437    push ax                                   ; 50
    1136511438    mov si, ax                                ; 89 c6
    1136611439    mov ax, dx                                ; 89 d0
    11367     mov word [bp-002h], bx                    ; 89 5e fe
     11440    mov word [bp-006h], bx                    ; 89 5e fa
    1136811441    mov di, cx                                ; 89 cf
    1136911442    xor cx, cx                                ; 31 c9
     
    1138111454    shr eax, 010h                             ; 66 c1 e8 10
    1138211455    xchg dx, ax                               ; 92
    11383     or ax, word [bp-002h]                     ; 0b 46 fe
     11456    or ax, word [bp-006h]                     ; 0b 46 fa
    1138411457    mov cx, dx                                ; 89 d1
    1138511458    or cx, di                                 ; 09 f9
     
    1139011463    ; mov ax, cx                                ; 8b c1
    1139111464    out DX, eax                               ; 66 ef
    11392     leave                                     ; c9
     11465    lea sp, [bp-004h]                         ; 8d 66 fc
    1139311466    pop di                                    ; 5f
    1139411467    pop si                                    ; 5e
     11468    pop bp                                    ; 5d
    1139511469    retn                                      ; c3
    11396 ahci_ctrl_clear_bits_:                       ; 0xf7b93 LB 0x44
     11470ahci_ctrl_clear_bits_:                       ; 0xf7cf4 LB 0x47
     11471    push bp                                   ; 55
     11472    mov bp, sp                                ; 89 e5
    1139711473    push si                                   ; 56
    1139811474    push di                                   ; 57
    11399     enter 00002h, 000h                        ; c8 02 00 00
     11475    push ax                                   ; 50
    1140011476    mov si, ax                                ; 89 c6
    1140111477    mov ax, dx                                ; 89 d0
    1140211478    mov di, bx                                ; 89 df
    11403     mov word [bp-002h], cx                    ; 89 4e fe
     11479    mov word [bp-006h], cx                    ; 89 4e fa
    1140411480    xor cx, cx                                ; 31 c9
    1140511481    mov dx, si                                ; 89 f2
     
    1141711493    xchg dx, ax                               ; 92
    1141811494    not di                                    ; f7 d7
    11419     mov cx, word [bp-002h]                    ; 8b 4e fe
     11495    mov cx, word [bp-006h]                    ; 8b 4e fa
    1142011496    not cx                                    ; f7 d1
    1142111497    and ax, di                                ; 21 f8
     
    1142711503    ; mov ax, cx                                ; 8b c1
    1142811504    out DX, eax                               ; 66 ef
    11429     leave                                     ; c9
     11505    lea sp, [bp-004h]                         ; 8d 66 fc
    1143011506    pop di                                    ; 5f
    1143111507    pop si                                    ; 5e
     11508    pop bp                                    ; 5d
    1143211509    retn                                      ; c3
    11433 ahci_ctrl_is_bit_set_:                       ; 0xf7bd7 LB 0x36
     11510ahci_ctrl_is_bit_set_:                       ; 0xf7d3b LB 0x39
     11511    push bp                                   ; 55
     11512    mov bp, sp                                ; 89 e5
    1143411513    push si                                   ; 56
    1143511514    push di                                   ; 57
    11436     push bp                                   ; 55
    11437     mov bp, sp                                ; 89 e5
    1143811515    mov si, ax                                ; 89 c6
    1143911516    mov ax, dx                                ; 89 d0
     
    1145311530    xchg dx, ax                               ; 92
    1145411531    test dx, di                               ; 85 fa
    11455     jne short 07c03h                          ; 75 04
     11532    jne short 07d67h                          ; 75 04
    1145611533    test ax, bx                               ; 85 d8
    11457     je short 07c07h                           ; 74 04
     11534    je short 07d6bh                           ; 74 04
    1145811535    mov AL, strict byte 001h                  ; b0 01
    11459     jmp short 07c09h                          ; eb 02
     11536    jmp short 07d6dh                          ; eb 02
    1146011537    xor al, al                                ; 30 c0
    11461     pop bp                                    ; 5d
     11538    lea sp, [bp-004h]                         ; 8d 66 fc
    1146211539    pop di                                    ; 5f
    1146311540    pop si                                    ; 5e
     11541    pop bp                                    ; 5d
    1146411542    retn                                      ; c3
    11465 ahci_ctrl_extract_bits_:                     ; 0xf7c0d LB 0x1b
     11543ahci_ctrl_extract_bits_:                     ; 0xf7d74 LB 0x1b
    1146611544    push si                                   ; 56
    1146711545    push bp                                   ; 55
     
    1147111549    and dx, cx                                ; 21 ca
    1147211550    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    11473     jcxz 07c23h                               ; e3 06
     11551    jcxz 07d8ah                               ; e3 06
    1147411552    shr dx, 1                                 ; d1 ea
    1147511553    rcr ax, 1                                 ; d1 d8
    11476     loop 07c1dh                               ; e2 fa
     11554    loop 07d84h                               ; e2 fa
    1147711555    pop bp                                    ; 5d
    1147811556    pop si                                    ; 5e
    1147911557    retn 00002h                               ; c2 02 00
    11480 ahci_addr_to_phys_:                          ; 0xf7c28 LB 0x1e
     11558ahci_addr_to_phys_:                          ; 0xf7d8f LB 0x1e
    1148111559    push bx                                   ; 53
    1148211560    push cx                                   ; 51
     
    1148911567    sal ax, 1                                 ; d1 e0
    1149011568    rcl dx, 1                                 ; d1 d2
    11491     loop 07c36h                               ; e2 fa
     11569    loop 07d9dh                               ; e2 fa
    1149211570    xor cx, cx                                ; 31 c9
    1149311571    add ax, bx                                ; 01 d8
     
    1149711575    pop bx                                    ; 5b
    1149811576    retn                                      ; c3
    11499 ahci_port_cmd_sync_:                         ; 0xf7c46 LB 0xd0
     11577ahci_port_cmd_sync_:                         ; 0xf7dad LB 0xd5
     11578    push bp                                   ; 55
     11579    mov bp, sp                                ; 89 e5
    1150011580    push cx                                   ; 51
    1150111581    push si                                   ; 56
    1150211582    push di                                   ; 57
    11503     enter 00006h, 000h                        ; c8 06 00 00
     11583    sub sp, strict byte 00006h                ; 83 ec 06
    1150411584    mov si, ax                                ; 89 c6
    11505     mov word [bp-004h], dx                    ; 89 56 fc
     11585    mov word [bp-00ah], dx                    ; 89 56 f6
    1150611586    mov es, dx                                ; 8e c2
    1150711587    mov al, byte [es:si+00262h]               ; 26 8a 84 62 02
    11508     mov byte [bp-002h], al                    ; 88 46 fe
     11588    mov byte [bp-008h], al                    ; 88 46 f8
    1150911589    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1151011590    cmp AL, strict byte 0ffh                  ; 3c ff
    11511     je near 07d11h                            ; 0f 84 aa 00
     11591    je near 07e7ah                            ; 0f 84 aa 00
    1151211592    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    1151311593    xor dx, dx                                ; 31 d2
     
    1152111601    lea ax, [si+00080h]                       ; 8d 84 80 00
    1152211602    mov dx, es                                ; 8c c2
    11523     call 07c28h                               ; e8 98 ff
    11524     mov es, [bp-004h]                         ; 8e 46 fc
     11603    call 07d8fh                               ; e8 96 ff
     11604    mov es, [bp-00ah]                         ; 8e 46 f6
    1152511605    mov word [es:si+008h], ax                 ; 26 89 44 08
    1152611606    mov word [es:si+00ah], dx                 ; 26 89 54 0a
    11527     movzx si, byte [bp-002h]                  ; 0f b6 76 fe
     11607    movzx si, byte [bp-008h]                  ; 0f b6 76 f8
    1152811608    sal si, 007h                              ; c1 e6 07
    1152911609    lea dx, [si+00118h]                       ; 8d 94 18 01
     
    1153111611    xor cx, cx                                ; 31 c9
    1153211612    mov ax, di                                ; 89 f8
    11533     call 07b53h                               ; e8 a3 fe
     11613    call 07cb1h                               ; e8 98 fe
    1153411614    lea ax, [si+00138h]                       ; 8d 84 38 01
    1153511615    cwd                                       ; 99
     
    1154911629    ; mov ax, cx                                ; 8b c1
    1155011630    out DX, eax                               ; 66 ef
    11551     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11631    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1155211632    sal ax, 007h                              ; c1 e0 07
    11553     mov word [bp-006h], ax                    ; 89 46 fa
     11633    mov word [bp-00ch], ax                    ; 89 46 f4
    1155411634    mov si, ax                                ; 89 c6
    1155511635    add si, 00110h                            ; 81 c6 10 01
     
    1155811638    mov dx, si                                ; 89 f2
    1155911639    mov ax, di                                ; 89 f8
    11560     call 07bd7h                               ; e8 e7 fe
     11640    call 07d3bh                               ; e8 e2 fe
    1156111641    test al, al                               ; 84 c0
    11562     je short 07cd3h                           ; 74 df
     11642    je short 07e3ch                           ; 74 df
    1156311643    mov bx, strict word 00001h                ; bb 01 00
    1156411644    xor cx, cx                                ; 31 c9
    1156511645    mov dx, si                                ; 89 f2
    1156611646    mov ax, di                                ; 89 f8
    11567     call 07b53h                               ; e8 53 fe
    11568     mov dx, word [bp-006h]                    ; 8b 56 fa
     11647    call 07cb1h                               ; e8 48 fe
     11648    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1156911649    add dx, 00118h                            ; 81 c2 18 01
    1157011650    mov bx, strict word 00001h                ; bb 01 00
    1157111651    xor cx, cx                                ; 31 c9
    1157211652    mov ax, di                                ; 89 f8
    11573     call 07b93h                               ; e8 82 fe
    11574     leave                                     ; c9
     11653    call 07cf4h                               ; e8 7a fe
     11654    lea sp, [bp-006h]                         ; 8d 66 fa
    1157511655    pop di                                    ; 5f
    1157611656    pop si                                    ; 5e
    1157711657    pop cx                                    ; 59
     11658    pop bp                                    ; 5d
    1157811659    retn                                      ; c3
    11579 ahci_cmd_data_:                              ; 0xf7d16 LB 0x1c5
     11660ahci_cmd_data_:                              ; 0xf7e82 LB 0x1ca
     11661    push bp                                   ; 55
     11662    mov bp, sp                                ; 89 e5
    1158011663    push cx                                   ; 51
    1158111664    push si                                   ; 56
    1158211665    push di                                   ; 57
    11583     enter 00010h, 000h                        ; c8 10 00 00
     11666    sub sp, strict byte 00010h                ; 83 ec 10
    1158411667    mov di, ax                                ; 89 c7
    11585     mov word [bp-00ch], dx                    ; 89 56 f4
    11586     mov byte [bp-002h], bl                    ; 88 5e fe
     11668    mov word [bp-012h], dx                    ; 89 56 ee
     11669    mov byte [bp-008h], bl                    ; 88 5e f8
    1158711670    xor si, si                                ; 31 f6
    1158811671    mov es, dx                                ; 8e c2
    1158911672    mov ax, word [es:di+001eeh]               ; 26 8b 85 ee 01
    11590     mov word [bp-004h], ax                    ; 89 46 fc
    11591     mov word [bp-008h], si                    ; 89 76 f8
    11592     mov word [bp-006h], ax                    ; 89 46 fa
     11673    mov word [bp-00ah], ax                    ; 89 46 f6
     11674    mov word [bp-00eh], si                    ; 89 76 f2
     11675    mov word [bp-00ch], ax                    ; 89 46 f4
    1159311676    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
    11594     mov word [bp-00ah], ax                    ; 89 46 f6
     11677    mov word [bp-010h], ax                    ; 89 46 f0
    1159511678    mov ax, word [es:di+00ch]                 ; 26 8b 45 0c
    11596     mov word [bp-010h], ax                    ; 89 46 f0
     11679    mov word [bp-016h], ax                    ; 89 46 ea
    1159711680    mov cx, strict word 00040h                ; b9 40 00
    1159811681    xor bx, bx                                ; 31 db
    1159911682    mov ax, 00080h                            ; b8 80 00
    11600     mov dx, word [bp-004h]                    ; 8b 56 fc
    11601     call 0907ah                               ; e8 27 13
    11602     mov es, [bp-004h]                         ; 8e 46 fc
     11683    mov dx, word [bp-00ah]                    ; 8b 56 f6
     11684    call 0924ah                               ; e8 89 13
     11685    mov es, [bp-00ah]                         ; 8e 46 f6
    1160311686    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
    11604     mov al, byte [bp-002h]                    ; 8a 46 fe
     11687    mov al, byte [bp-008h]                    ; 8a 46 f8
    1160511688    mov byte [es:si+00082h], al               ; 26 88 84 82 00
    1160611689    mov byte [es:si+00083h], 000h             ; 26 c6 84 83 00 00
    11607     mov es, [bp-00ch]                         ; 8e 46 f4
     11690    mov es, [bp-012h]                         ; 8e 46 ee
    1160811691    mov al, byte [es:di]                      ; 26 8a 05
    11609     mov es, [bp-004h]                         ; 8e 46 fc
     11692    mov es, [bp-00ah]                         ; 8e 46 f6
    1161011693    mov byte [es:si+00084h], al               ; 26 88 84 84 00
    11611     mov es, [bp-00ch]                         ; 8e 46 f4
     11694    mov es, [bp-012h]                         ; 8e 46 ee
    1161211695    mov ax, word [es:di]                      ; 26 8b 05
    1161311696    mov bx, word [es:di+002h]                 ; 26 8b 5d 02
     
    1161511698    shr bx, 1                                 ; d1 eb
    1161611699    rcr ax, 1                                 ; d1 d8
    11617     loop 07d86h                               ; e2 fa
    11618     mov es, [bp-004h]                         ; 8e 46 fc
     11700    loop 07ef4h                               ; e2 fa
     11701    mov es, [bp-00ah]                         ; 8e 46 f6
    1161911702    mov byte [es:si+00085h], al               ; 26 88 84 85 00
    11620     mov es, [bp-00ch]                         ; 8e 46 f4
     11703    mov es, [bp-012h]                         ; 8e 46 ee
    1162111704    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    11622     mov es, [bp-004h]                         ; 8e 46 fc
     11705    mov es, [bp-00ah]                         ; 8e 46 f6
    1162311706    mov byte [es:si+00086h], al               ; 26 88 84 86 00
    1162411707    mov byte [es:si+00087h], 040h             ; 26 c6 84 87 00 40
    11625     mov es, [bp-00ch]                         ; 8e 46 f4
     11708    mov es, [bp-012h]                         ; 8e 46 ee
    1162611709    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    1162711710    shr ax, 008h                              ; c1 e8 08
    11628     mov es, [bp-004h]                         ; 8e 46 fc
     11711    mov es, [bp-00ah]                         ; 8e 46 f6
    1162911712    mov byte [es:si+00088h], al               ; 26 88 84 88 00
    1163011713    mov word [es:si+00089h], strict word 00000h ; 26 c7 84 89 00 00 00
    1163111714    mov byte [es:si+0008bh], 000h             ; 26 c6 84 8b 00 00
    11632     mov al, byte [bp-00ah]                    ; 8a 46 f6
     11715    mov al, byte [bp-010h]                    ; 8a 46 f0
    1163311716    mov byte [es:si+0008ch], al               ; 26 88 84 8c 00
    11634     mov ax, word [bp-00ah]                    ; 8b 46 f6
     11717    mov ax, word [bp-010h]                    ; 8b 46 f0
    1163511718    shr ax, 008h                              ; c1 e8 08
    1163611719    mov byte [es:si+0008dh], al               ; 26 88 84 8d 00
    1163711720    mov word [es:si+00276h], strict word 00010h ; 26 c7 84 76 02 10 00
    11638     mov ax, word [bp-00ah]                    ; 8b 46 f6
     11721    mov ax, word [bp-010h]                    ; 8b 46 f0
    1163911722    xor dx, dx                                ; 31 d2
    11640     mov bx, word [bp-010h]                    ; 8b 5e f0
     11723    mov bx, word [bp-016h]                    ; 8b 5e ea
    1164111724    xor cx, cx                                ; 31 c9
    11642     call 09049h                               ; e8 5a 12
     11725    call 09219h                               ; e8 bc 12
    1164311726    push dx                                   ; 52
    1164411727    push ax                                   ; 50
    11645     mov es, [bp-00ch]                         ; 8e 46 f4
     11728    mov es, [bp-012h]                         ; 8e 46 ee
    1164611729    mov bx, word [es:di+004h]                 ; 26 8b 5d 04
    1164711730    mov cx, word [es:di+006h]                 ; 26 8b 4d 06
    1164811731    mov ax, 0026ah                            ; b8 6a 02
    11649     mov dx, word [bp-004h]                    ; 8b 56 fc
    11650     call 08f6bh                               ; e8 66 11
    11651     mov es, [bp-004h]                         ; 8e 46 fc
     11732    mov dx, word [bp-00ah]                    ; 8b 56 f6
     11733    call 09137h                               ; e8 c4 11
     11734    mov es, [bp-00ah]                         ; 8e 46 f6
    1165211735    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
    1165311736    mov dx, word [es:si+0027eh]               ; 26 8b 94 7e 02
     
    1165511738    mov bx, word [es:si+00280h]               ; 26 8b 9c 80 02
    1165611739    adc bx, strict byte 0ffffh                ; 83 d3 ff
    11657     mov word [bp-00eh], bx                    ; 89 5e f2
     11740    mov word [bp-014h], bx                    ; 89 5e ec
    1165811741    mov bx, ax                                ; 89 c3
    1165911742    sal bx, 004h                              ; c1 e3 04
    1166011743    mov word [es:bx+0010ch], dx               ; 26 89 97 0c 01
    11661     mov dx, word [bp-00eh]                    ; 8b 56 f2
     11744    mov dx, word [bp-014h]                    ; 8b 56 ec
    1166211745    mov word [es:bx+0010eh], dx               ; 26 89 97 0e 01
    1166311746    mov cx, word [es:si+0027ah]               ; 26 8b 8c 7a 02
     
    1166611749    mov word [es:bx+00102h], dx               ; 26 89 97 02 01
    1166711750    inc ax                                    ; 40
    11668     mov es, [bp-00ch]                         ; 8e 46 f4
     11751    mov es, [bp-012h]                         ; 8e 46 ee
    1166911752    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    11670     je short 07e7eh                           ; 74 2c
     11753    je short 07fech                           ; 74 2c
    1167111754    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1167211755    dec dx                                    ; 4a
    1167311756    mov di, ax                                ; 89 c7
    1167411757    sal di, 004h                              ; c1 e7 04
    11675     mov es, [bp-004h]                         ; 8e 46 fc
     11758    mov es, [bp-00ah]                         ; 8e 46 f6
    1167611759    mov word [es:di+0010ch], dx               ; 26 89 95 0c 01
    1167711760    mov word [es:di+0010eh], si               ; 26 89 b5 0e 01
     
    1168111764    mov word [es:di+00102h], bx               ; 26 89 9d 02 01
    1168211765    inc ax                                    ; 40
    11683     les bx, [bp-008h]                         ; c4 5e f8
     11766    les bx, [bp-00eh]                         ; c4 5e f2
    1168411767    mov byte [es:bx+00263h], al               ; 26 88 87 63 02
    1168511768    xor ax, ax                                ; 31 c0
    11686     les bx, [bp-008h]                         ; c4 5e f8
     11769    les bx, [bp-00eh]                         ; c4 5e f2
    1168711770    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1168811771    cmp ax, dx                                ; 39 d0
    11689     jnc short 07e98h                          ; 73 03
     11772    jnc short 08006h                          ; 73 03
    1169011773    inc ax                                    ; 40
    11691     jmp short 07e88h                          ; eb f0
    11692     mov al, byte [bp-002h]                    ; 8a 46 fe
     11774    jmp short 07ff6h                          ; eb f0
     11775    mov al, byte [bp-008h]                    ; 8a 46 f8
    1169311776    cmp AL, strict byte 035h                  ; 3c 35
    11694     jne short 07ea5h                          ; 75 06
    11695     mov byte [bp-002h], 040h                  ; c6 46 fe 40
    11696     jmp short 07eb9h                          ; eb 14
     11777    jne short 08013h                          ; 75 06
     11778    mov byte [bp-008h], 040h                  ; c6 46 f8 40
     11779    jmp short 08027h                          ; eb 14
    1169711780    cmp AL, strict byte 0a0h                  ; 3c a0
    11698     jne short 07eb5h                          ; 75 0c
    11699     or byte [bp-002h], 020h                   ; 80 4e fe 20
     11781    jne short 08023h                          ; 75 0c
     11782    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1170011783    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    11701     jmp short 07eb9h                          ; eb 04
    11702     mov byte [bp-002h], 000h                  ; c6 46 fe 00
    11703     or byte [bp-002h], 005h                   ; 80 4e fe 05
    11704     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    11705     mov ax, word [bp-008h]                    ; 8b 46 f8
    11706     mov dx, word [bp-006h]                    ; 8b 56 fa
    11707     call 07c46h                               ; e8 7c fd
    11708     mov ax, word [bp-008h]                    ; 8b 46 f8
     11784    jmp short 08027h                          ; eb 04
     11785    mov byte [bp-008h], 000h                  ; c6 46 f8 00
     11786    or byte [bp-008h], 005h                   ; 80 4e f8 05
     11787    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     11788    mov ax, word [bp-00eh]                    ; 8b 46 f2
     11789    mov dx, word [bp-00ch]                    ; 8b 56 f4
     11790    call 07dadh                               ; e8 75 fd
     11791    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1170911792    add ax, 0026ah                            ; 05 6a 02
    11710     mov dx, word [bp-006h]                    ; 8b 56 fa
    11711     call 08fe1h                               ; e8 0b 11
    11712     leave                                     ; c9
     11793    mov dx, word [bp-00ch]                    ; 8b 56 f4
     11794    call 091b0h                               ; e8 6c 11
     11795    lea sp, [bp-006h]                         ; 8d 66 fa
    1171311796    pop di                                    ; 5f
    1171411797    pop si                                    ; 5e
    1171511798    pop cx                                    ; 59
     11799    pop bp                                    ; 5d
    1171611800    retn                                      ; c3
    11717 ahci_port_deinit_current_:                   ; 0xf7edb LB 0x13f
     11801ahci_port_deinit_current_:                   ; 0xf804c LB 0x144
     11802    push bp                                   ; 55
     11803    mov bp, sp                                ; 89 e5
    1171811804    push bx                                   ; 53
    1171911805    push cx                                   ; 51
    1172011806    push si                                   ; 56
    1172111807    push di                                   ; 57
    11722     enter 00006h, 000h                        ; c8 06 00 00
     11808    sub sp, strict byte 00006h                ; 83 ec 06
    1172311809    mov di, ax                                ; 89 c7
    11724     mov word [bp-004h], dx                    ; 89 56 fc
     11810    mov word [bp-00ch], dx                    ; 89 56 f4
    1172511811    mov es, dx                                ; 8e c2
    1172611812    mov si, word [es:di+00260h]               ; 26 8b b5 60 02
    1172711813    mov al, byte [es:di+00262h]               ; 26 8a 85 62 02
    11728     mov byte [bp-002h], al                    ; 88 46 fe
     11814    mov byte [bp-00ah], al                    ; 88 46 f6
    1172911815    cmp AL, strict byte 0ffh                  ; 3c ff
    11730     je near 08014h                            ; 0f 84 17 01
     11816    je near 08187h                            ; 0f 84 17 01
    1173111817    movzx dx, al                              ; 0f b6 d0
    1173211818    sal dx, 007h                              ; c1 e2 07
     
    1173511821    xor cx, cx                                ; 31 c9
    1173611822    mov ax, si                                ; 89 f0
    11737     call 07b93h                               ; e8 82 fc
    11738     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     11823    call 07cf4h                               ; e8 70 fc
     11824    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1173911825    sal ax, 007h                              ; c1 e0 07
    11740     mov word [bp-006h], ax                    ; 89 46 fa
     11826    mov word [bp-00eh], ax                    ; 89 46 f2
    1174111827    mov dx, ax                                ; 89 c2
    1174211828    add dx, 00118h                            ; 81 c2 18 01
     
    1174411830    xor cx, cx                                ; 31 c9
    1174511831    mov ax, si                                ; 89 f0
    11746     call 07bd7h                               ; e8 ac fc
     11832    call 07d3bh                               ; e8 9d fc
    1174711833    cmp AL, strict byte 001h                  ; 3c 01
    11748     je short 07f11h                           ; 74 e2
     11834    je short 08084h                           ; 74 e2
    1174911835    mov cx, strict word 00020h                ; b9 20 00
    1175011836    xor bx, bx                                ; 31 db
    1175111837    mov ax, di                                ; 89 f8
    11752     mov dx, word [bp-004h]                    ; 8b 56 fc
    11753     call 0907ah                               ; e8 3e 11
     11838    mov dx, word [bp-00ch]                    ; 8b 56 f4
     11839    call 0924ah                               ; e8 9b 11
    1175411840    lea ax, [di+00080h]                       ; 8d 85 80 00
    1175511841    mov cx, strict word 00040h                ; b9 40 00
    1175611842    xor bx, bx                                ; 31 db
    11757     mov dx, word [bp-004h]                    ; 8b 56 fc
    11758     call 0907ah                               ; e8 2f 11
     11843    mov dx, word [bp-00ch]                    ; 8b 56 f4
     11844    call 0924ah                               ; e8 8c 11
    1175911845    lea ax, [di+00200h]                       ; 8d 85 00 02
    1176011846    mov cx, strict word 00060h                ; b9 60 00
    1176111847    xor bx, bx                                ; 31 db
    11762     mov dx, word [bp-004h]                    ; 8b 56 fc
    11763     call 0907ah                               ; e8 20 11
    11764     mov ax, word [bp-006h]                    ; 8b 46 fa
     11848    mov dx, word [bp-00ch]                    ; 8b 56 f4
     11849    call 0924ah                               ; e8 7d 11
     11850    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1176511851    add ax, 00108h                            ; 05 08 01
    1176611852    cwd                                       ; 99
     
    1178111867    ; mov ax, cx                                ; 8b c1
    1178211868    out DX, eax                               ; 66 ef
    11783     mov ax, word [bp-006h]                    ; 8b 46 fa
     11869    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1178411870    add ax, 0010ch                            ; 05 0c 01
    1178511871    cwd                                       ; 99
     
    1179911885    ; mov ax, cx                                ; 8b c1
    1180011886    out DX, eax                               ; 66 ef
    11801     mov ax, word [bp-006h]                    ; 8b 46 fa
     11887    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1180211888    db  0feh, 0c4h
    1180311889    ; inc ah                                    ; fe c4
     
    1181811904    ; mov ax, cx                                ; 8b c1
    1181911905    out DX, eax                               ; 66 ef
    11820     mov ax, word [bp-006h]                    ; 8b 46 fa
     11906    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1182111907    add ax, 00104h                            ; 05 04 01
    1182211908    cwd                                       ; 99
     
    1183611922    ; mov ax, cx                                ; 8b c1
    1183711923    out DX, eax                               ; 66 ef
    11838     mov ax, word [bp-006h]                    ; 8b 46 fa
     11924    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1183911925    add ax, 00114h                            ; 05 14 01
    1184011926    cwd                                       ; 99
     
    1185411940    ; mov ax, cx                                ; 8b c1
    1185511941    out DX, eax                               ; 66 ef
    11856     mov es, [bp-004h]                         ; 8e 46 fc
     11942    mov es, [bp-00ch]                         ; 8e 46 f4
    1185711943    mov byte [es:di+00262h], 0ffh             ; 26 c6 85 62 02 ff
    11858     leave                                     ; c9
     11944    lea sp, [bp-008h]                         ; 8d 66 f8
    1185911945    pop di                                    ; 5f
    1186011946    pop si                                    ; 5e
    1186111947    pop cx                                    ; 59
    1186211948    pop bx                                    ; 5b
     11949    pop bp                                    ; 5d
    1186311950    retn                                      ; c3
    11864 ahci_port_init_:                             ; 0xf801a LB 0x201
     11951ahci_port_init_:                             ; 0xf8190 LB 0x206
     11952    push bp                                   ; 55
     11953    mov bp, sp                                ; 89 e5
    1186511954    push cx                                   ; 51
    1186611955    push si                                   ; 56
    1186711956    push di                                   ; 57
    11868     enter 00006h, 000h                        ; c8 06 00 00
     11957    sub sp, strict byte 00006h                ; 83 ec 06
    1186911958    mov si, ax                                ; 89 c6
    11870     mov word [bp-004h], dx                    ; 89 56 fc
    11871     mov byte [bp-002h], bl                    ; 88 5e fe
    11872     call 07edbh                               ; e8 af fe
     11959    mov word [bp-00ah], dx                    ; 89 56 f6
     11960    mov byte [bp-008h], bl                    ; 88 5e f8
     11961    call 0804ch                               ; e8 a8 fe
    1187311962    movzx dx, bl                              ; 0f b6 d3
    1187411963    sal dx, 007h                              ; c1 e2 07
    1187511964    add dx, 00118h                            ; 81 c2 18 01
    11876     mov es, [bp-004h]                         ; 8e 46 fc
     11965    mov es, [bp-00ah]                         ; 8e 46 f6
    1187711966    mov ax, word [es:si+00260h]               ; 26 8b 84 60 02
    1187811967    mov bx, strict word 00011h                ; bb 11 00
    1187911968    xor cx, cx                                ; 31 c9
    11880     call 07b93h                               ; e8 4d fb
    11881     movzx di, byte [bp-002h]                  ; 0f b6 7e fe
     11969    call 07cf4h                               ; e8 36 fb
     11970    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1188211971    sal di, 007h                              ; c1 e7 07
    1188311972    lea dx, [di+00118h]                       ; 8d 95 18 01
    11884     mov es, [bp-004h]                         ; 8e 46 fc
     11973    mov es, [bp-00ah]                         ; 8e 46 f6
    1188511974    mov ax, word [es:si+00260h]               ; 26 8b 84 60 02
    1188611975    mov bx, 0c011h                            ; bb 11 c0
    1188711976    xor cx, cx                                ; 31 c9
    11888     call 07bd7h                               ; e8 76 fb
     11977    call 07d3bh                               ; e8 62 fb
    1188911978    cmp AL, strict byte 001h                  ; 3c 01
    11890     je short 08046h                           ; 74 e1
     11979    je short 081beh                           ; 74 e1
    1189111980    mov cx, strict word 00020h                ; b9 20 00
    1189211981    xor bx, bx                                ; 31 db
    1189311982    mov ax, si                                ; 89 f0
    11894     mov dx, word [bp-004h]                    ; 8b 56 fc
    11895     call 0907ah                               ; e8 08 10
     11983    mov dx, word [bp-00ah]                    ; 8b 56 f6
     11984    call 0924ah                               ; e8 60 10
    1189611985    lea ax, [si+00080h]                       ; 8d 84 80 00
    1189711986    mov cx, strict word 00040h                ; b9 40 00
    1189811987    xor bx, bx                                ; 31 db
    11899     mov dx, word [bp-004h]                    ; 8b 56 fc
    11900     call 0907ah                               ; e8 f9 0f
     11988    mov dx, word [bp-00ah]                    ; 8b 56 f6
     11989    call 0924ah                               ; e8 51 10
    1190111990    mov ax, si                                ; 89 f0
    1190211991    add ah, 002h                              ; 80 c4 02
    11903     mov word [bp-006h], ax                    ; 89 46 fa
     11992    mov word [bp-00ch], ax                    ; 89 46 f4
    1190411993    mov cx, strict word 00060h                ; b9 60 00
    1190511994    xor bx, bx                                ; 31 db
    11906     mov dx, word [bp-004h]                    ; 8b 56 fc
    11907     call 0907ah                               ; e8 e6 0f
     11995    mov dx, word [bp-00ah]                    ; 8b 56 f6
     11996    call 0924ah                               ; e8 3e 10
    1190811997    lea ax, [di+00108h]                       ; 8d 85 08 01
    1190911998    cwd                                       ; 99
    11910     mov es, [bp-004h]                         ; 8e 46 fc
     11999    mov es, [bp-00ah]                         ; 8e 46 f6
    1191112000    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1191212001    mov cx, dx                                ; 89 d1
     
    1191712006    ; mov ax, cx                                ; 8b c1
    1191812007    out DX, eax                               ; 66 ef
    11919     mov ax, word [bp-006h]                    ; 8b 46 fa
    11920     mov dx, word [bp-004h]                    ; 8b 56 fc
    11921     call 07c28h                               ; e8 71 fb
    11922     mov es, [bp-004h]                         ; 8e 46 fc
     12008    mov ax, word [bp-00ch]                    ; 8b 46 f4
     12009    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12010    call 07d8fh                               ; e8 60 fb
     12011    mov es, [bp-00ah]                         ; 8e 46 f6
    1192312012    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1192412013    add bx, strict byte 00004h                ; 83 c3 04
     
    1193212021    lea ax, [di+0010ch]                       ; 8d 85 0c 01
    1193312022    cwd                                       ; 99
    11934     mov es, [bp-004h]                         ; 8e 46 fc
     12023    mov es, [bp-00ah]                         ; 8e 46 f6
    1193512024    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1193612025    mov cx, dx                                ; 89 d1
     
    1194112030    ; mov ax, cx                                ; 8b c1
    1194212031    out DX, eax                               ; 66 ef
    11943     mov es, [bp-004h]                         ; 8e 46 fc
     12032    mov es, [bp-00ah]                         ; 8e 46 f6
    1194412033    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1194512034    add dx, strict byte 00004h                ; 83 c2 04
     
    1195312042    lea ax, [di+00100h]                       ; 8d 85 00 01
    1195412043    cwd                                       ; 99
    11955     mov es, [bp-004h]                         ; 8e 46 fc
     12044    mov es, [bp-00ah]                         ; 8e 46 f6
    1195612045    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1195712046    mov cx, dx                                ; 89 d1
     
    1196312052    out DX, eax                               ; 66 ef
    1196412053    mov ax, si                                ; 89 f0
    11965     mov dx, word [bp-004h]                    ; 8b 56 fc
    11966     call 07c28h                               ; e8 05 fb
    11967     mov es, [bp-004h]                         ; 8e 46 fc
     12054    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12055    call 07d8fh                               ; e8 f4 fa
     12056    mov es, [bp-00ah]                         ; 8e 46 f6
    1196812057    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1196912058    add bx, strict byte 00004h                ; 83 c3 04
     
    1197712066    lea ax, [di+00104h]                       ; 8d 85 04 01
    1197812067    cwd                                       ; 99
    11979     mov es, [bp-004h]                         ; 8e 46 fc
     12068    mov es, [bp-00ah]                         ; 8e 46 f6
    1198012069    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1198112070    mov cx, dx                                ; 89 d1
     
    1198612075    ; mov ax, cx                                ; 8b c1
    1198712076    out DX, eax                               ; 66 ef
    11988     mov es, [bp-004h]                         ; 8e 46 fc
     12077    mov es, [bp-00ah]                         ; 8e 46 f6
    1198912078    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1199012079    add dx, strict byte 00004h                ; 83 c2 04
     
    1199812087    lea ax, [di+00114h]                       ; 8d 85 14 01
    1199912088    cwd                                       ; 99
    12000     mov es, [bp-004h]                         ; 8e 46 fc
     12089    mov es, [bp-00ah]                         ; 8e 46 f6
    1200112090    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1200212091    mov cx, dx                                ; 89 d1
     
    1200712096    ; mov ax, cx                                ; 8b c1
    1200812097    out DX, eax                               ; 66 ef
    12009     mov es, [bp-004h]                         ; 8e 46 fc
     12098    mov es, [bp-00ah]                         ; 8e 46 f6
    1201012099    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1201112100    add dx, strict byte 00004h                ; 83 c2 04
     
    1201912108    lea ax, [di+00110h]                       ; 8d 85 10 01
    1202012109    cwd                                       ; 99
    12021     mov es, [bp-004h]                         ; 8e 46 fc
     12110    mov es, [bp-00ah]                         ; 8e 46 f6
    1202212111    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1202312112    mov cx, dx                                ; 89 d1
     
    1202812117    ; mov ax, cx                                ; 8b c1
    1202912118    out DX, eax                               ; 66 ef
    12030     mov es, [bp-004h]                         ; 8e 46 fc
     12119    mov es, [bp-00ah]                         ; 8e 46 f6
    1203112120    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1203212121    add dx, strict byte 00004h                ; 83 c2 04
     
    1204012129    lea ax, [di+00130h]                       ; 8d 85 30 01
    1204112130    cwd                                       ; 99
    12042     mov es, [bp-004h]                         ; 8e 46 fc
     12131    mov es, [bp-00ah]                         ; 8e 46 f6
    1204312132    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1204412133    mov cx, dx                                ; 89 d1
     
    1204912138    ; mov ax, cx                                ; 8b c1
    1205012139    out DX, eax                               ; 66 ef
    12051     mov es, [bp-004h]                         ; 8e 46 fc
     12140    mov es, [bp-00ah]                         ; 8e 46 f6
    1205212141    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
    1205312142    add dx, strict byte 00004h                ; 83 c2 04
     
    1205912148    ; mov ax, cx                                ; 8b c1
    1206012149    out DX, eax                               ; 66 ef
    12061     mov al, byte [bp-002h]                    ; 8a 46 fe
    12062     mov es, [bp-004h]                         ; 8e 46 fc
     12150    mov al, byte [bp-008h]                    ; 8a 46 f8
     12151    mov es, [bp-00ah]                         ; 8e 46 f6
    1206312152    mov byte [es:si+00262h], al               ; 26 88 84 62 02
    1206412153    mov byte [es:si+00263h], 000h             ; 26 c6 84 63 02 00
    12065     leave                                     ; c9
     12154    lea sp, [bp-006h]                         ; 8d 66 fa
    1206612155    pop di                                    ; 5f
    1206712156    pop si                                    ; 5e
    1206812157    pop cx                                    ; 59
     12158    pop bp                                    ; 5d
    1206912159    retn                                      ; c3
    12070 @ahci_read_sectors:                          ; 0xf821b LB 0x91
     12160@ahci_read_sectors:                          ; 0xf8396 LB 0x94
     12161    push bp                                   ; 55
     12162    mov bp, sp                                ; 89 e5
    1207112163    push si                                   ; 56
    1207212164    push di                                   ; 57
    12073     push bp                                   ; 55
    12074     mov bp, sp                                ; 89 e5
    12075     les di, [bp+008h]                         ; c4 7e 08
     12165    les di, [bp+004h]                         ; c4 7e 04
    1207612166    movzx di, byte [es:di+008h]               ; 26 0f b6 7d 08
    1207712167    sub di, strict byte 0000ch                ; 83 ef 0c
    1207812168    cmp di, strict byte 00004h                ; 83 ff 04
    12079     jbe short 0823fh                          ; 76 0f
     12169    jbe short 083bah                          ; 76 0f
    1208012170    push di                                   ; 57
    1208112171    push 00bf6h                               ; 68 f6 0b
    1208212172    push 00c08h                               ; 68 08 0c
    1208312173    push strict byte 00007h                   ; 6a 07
    12084     call 018e9h                               ; e8 ad 96
     12174    call 0190dh                               ; e8 56 95
    1208512175    add sp, strict byte 00008h                ; 83 c4 08
    12086     les bx, [bp+008h]                         ; c4 5e 08
     12176    les bx, [bp+004h]                         ; c4 5e 04
    1208712177    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1208812178    xor ax, ax                                ; 31 c0
    12089     call 07b2bh                               ; e8 df f8
    12090     mov es, [bp+00ah]                         ; 8e 46 0a
     12179    call 07c83h                               ; e8 bc f8
     12180    mov es, [bp+006h]                         ; 8e 46 06
    1209112181    add di, bx                                ; 01 df
    1209212182    movzx bx, byte [es:di+001e9h]             ; 26 0f b6 9d e9 01
    12093     mov di, word [bp+008h]                    ; 8b 7e 08
     12183    mov di, word [bp+004h]                    ; 8b 7e 04
    1209412184    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1209512185    xor ax, ax                                ; 31 c0
    12096     call 0801ah                               ; e8 b6 fd
     12186    call 08190h                               ; e8 b1 fd
    1209712187    mov bx, strict word 00025h                ; bb 25 00
    1209812188    mov ax, di                                ; 89 f8
    12099     mov dx, word [bp+00ah]                    ; 8b 56 0a
    12100     call 07d16h                               ; e8 a7 fa
    12101     mov es, [bp+00ah]                         ; 8e 46 0a
     12189    mov dx, word [bp+006h]                    ; 8b 56 06
     12190    call 07e82h                               ; e8 98 fa
     12191    mov es, [bp+006h]                         ; 8e 46 06
    1210212192    mov bx, di                                ; 89 fb
    1210312193    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
     
    1211512205    rep movsw                                 ; f3 a5
    1211612206    pop DS                                    ; 1f
    12117     mov es, [bp+00ah]                         ; 8e 46 0a
     12207    mov es, [bp+006h]                         ; 8e 46 06
    1211812208    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1211912209    xor ax, ax                                ; 31 c0
    12120     call 07b3fh                               ; e8 9b f8
     12210    call 07c9ah                               ; e8 7b f8
    1212112211    xor ax, ax                                ; 31 c0
    12122     pop bp                                    ; 5d
     12212    lea sp, [bp-004h]                         ; 8d 66 fc
    1212312213    pop di                                    ; 5f
    1212412214    pop si                                    ; 5e
     12215    pop bp                                    ; 5d
    1212512216    retn 00004h                               ; c2 04 00
    12126 @ahci_write_sectors:                         ; 0xf82ac LB 0x6d
    12127     push si                                   ; 56
     12217@ahci_write_sectors:                         ; 0xf842a LB 0x70
    1212812218    push bp                                   ; 55
    1212912219    mov bp, sp                                ; 89 e5
    12130     mov si, word [bp+006h]                    ; 8b 76 06
    12131     mov cx, word [bp+008h]                    ; 8b 4e 08
     12220    push si                                   ; 56
     12221    mov si, word [bp+004h]                    ; 8b 76 04
     12222    mov cx, word [bp+006h]                    ; 8b 4e 06
    1213212223    mov es, cx                                ; 8e c1
    1213312224    movzx bx, byte [es:si+008h]               ; 26 0f b6 5c 08
    1213412225    sub bx, strict byte 0000ch                ; 83 eb 0c
    1213512226    cmp bx, strict byte 00004h                ; 83 fb 04
    12136     jbe short 082d4h                          ; 76 0f
     12227    jbe short 08452h                          ; 76 0f
    1213712228    push bx                                   ; 53
    1213812229    push 00c27h                               ; 68 27 0c
    1213912230    push 00c08h                               ; 68 08 0c
    1214012231    push strict byte 00007h                   ; 6a 07
    12141     call 018e9h                               ; e8 18 96
     12232    call 0190dh                               ; e8 be 94
    1214212233    add sp, strict byte 00008h                ; 83 c4 08
    1214312234    mov es, cx                                ; 8e c1
    1214412235    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1214512236    xor ax, ax                                ; 31 c0
    12146     call 07b2bh                               ; e8 4b f8
     12237    call 07c83h                               ; e8 25 f8
    1214712238    mov es, cx                                ; 8e c1
    1214812239    add bx, si                                ; 01 f3
     
    1215012241    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1215112242    xor ax, ax                                ; 31 c0
    12152     call 0801ah                               ; e8 26 fd
     12243    call 08190h                               ; e8 1e fd
    1215312244    mov bx, strict word 00035h                ; bb 35 00
    1215412245    mov ax, si                                ; 89 f0
    1215512246    mov dx, cx                                ; 89 ca
    12156     call 07d16h                               ; e8 18 fa
     12247    call 07e82h                               ; e8 06 fa
    1215712248    mov es, cx                                ; 8e c1
    1215812249    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     
    1216012251    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1216112252    xor ax, ax                                ; 31 c0
    12162     call 07b3fh                               ; e8 2d f8
     12253    call 07c9ah                               ; e8 0a f8
    1216312254    xor ax, ax                                ; 31 c0
     12255    lea sp, [bp-002h]                         ; 8d 66 fe
     12256    pop si                                    ; 5e
    1216412257    pop bp                                    ; 5d
    12165     pop si                                    ; 5e
    1216612258    retn 00004h                               ; c2 04 00
    12167 ahci_cmd_packet_:                            ; 0xf8319 LB 0x16e
     12259ahci_cmd_packet_:                            ; 0xf849a LB 0x173
     12260    push bp                                   ; 55
     12261    mov bp, sp                                ; 89 e5
    1216812262    push si                                   ; 56
    1216912263    push di                                   ; 57
    12170     enter 0000eh, 000h                        ; c8 0e 00 00
     12264    sub sp, strict byte 0000eh                ; 83 ec 0e
    1217112265    push ax                                   ; 50
    12172     mov byte [bp-002h], dl                    ; 88 56 fe
    12173     mov word [bp-00eh], bx                    ; 89 5e f2
    12174     mov word [bp-00ch], cx                    ; 89 4e f4
     12266    mov byte [bp-006h], dl                    ; 88 56 fa
     12267    mov word [bp-012h], bx                    ; 89 5e ee
     12268    mov word [bp-010h], cx                    ; 89 4e f0
    1217512269    mov dx, strict word 0000eh                ; ba 0e 00
    1217612270    mov ax, strict word 00040h                ; b8 40 00
    12177     call 0161ch                               ; e8 ea 92
     12271    call 0161ch                               ; e8 67 91
    1217812272    mov si, 00122h                            ; be 22 01
    12179     mov word [bp-004h], ax                    ; 89 46 fc
    12180     cmp byte [bp+00eh], 002h                  ; 80 7e 0e 02
    12181     jne short 0835dh                          ; 75 1f
    12182     mov bx, 00d32h                            ; bb 32 0d
     12273    mov word [bp-008h], ax                    ; 89 46 f8
     12274    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     12275    jne short 084e0h                          ; 75 1f
     12276    mov bx, 00d38h                            ; bb 38 0d
    1218312277    mov cx, ds                                ; 8c d9
    1218412278    mov ax, strict word 00004h                ; b8 04 00
    12185     call 018aeh                               ; e8 65 95
     12279    call 018cch                               ; e8 00 94
    1218612280    push 00c3ah                               ; 68 3a 0c
    1218712281    push 00c4ah                               ; 68 4a 0c
    1218812282    push strict byte 00004h                   ; 6a 04
    12189     call 018e9h                               ; e8 95 95
     12283    call 0190dh                               ; e8 36 94
    1219012284    add sp, strict byte 00006h                ; 83 c4 06
    1219112285    mov ax, strict word 00001h                ; b8 01 00
    12192     jmp near 08481h                           ; e9 24 01
    12193     test byte [bp+008h], 001h                 ; f6 46 08 01
    12194     jne short 08357h                          ; 75 f4
    12195     mov ax, word [bp+00ah]                    ; 8b 46 0a
    12196     mov dx, word [bp+00ch]                    ; 8b 56 0c
     12286    jmp near 08604h                           ; e9 24 01
     12287    test byte [bp+004h], 001h                 ; f6 46 04 01
     12288    jne short 084dah                          ; 75 f4
     12289    mov ax, word [bp+006h]                    ; 8b 46 06
     12290    mov dx, word [bp+008h]                    ; 8b 56 08
    1219712291    mov cx, strict word 00008h                ; b9 08 00
    1219812292    sal ax, 1                                 ; d1 e0
    1219912293    rcl dx, 1                                 ; d1 d2
    12200     loop 0836ch                               ; e2 fa
    12201     mov es, [bp-004h]                         ; 8e 46 fc
     12294    loop 084efh                               ; e2 fa
     12295    mov es, [bp-008h]                         ; 8e 46 f8
    1220212296    mov word [es:si], ax                      ; 26 89 04
    1220312297    mov word [es:si+002h], dx                 ; 26 89 54 02
    12204     mov ax, word [bp+010h]                    ; 8b 46 10
     12298    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1220512299    mov word [es:si+004h], ax                 ; 26 89 44 04
    12206     mov ax, word [bp+012h]                    ; 8b 46 12
     12300    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1220712301    mov word [es:si+006h], ax                 ; 26 89 44 06
    1220812302    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
    12209     mov ax, word [bp+00ah]                    ; 8b 46 0a
    12210     mov dx, word [bp+00ch]                    ; 8b 56 0c
     12303    mov ax, word [bp+006h]                    ; 8b 46 06
     12304    mov dx, word [bp+008h]                    ; 8b 56 08
    1221112305    xor cx, cx                                ; 31 c9
    12212     call 09010h                               ; e8 77 0c
     12306    call 091e0h                               ; e8 c4 0c
    1221312307    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1221412308    xor di, di                                ; 31 ff
    1221512309    mov ax, word [es:si+001eeh]               ; 26 8b 84 ee 01
    12216     mov word [bp-006h], ax                    ; 89 46 fa
    12217     mov word [bp-00ah], di                    ; 89 7e f6
    12218     mov word [bp-008h], ax                    ; 89 46 f8
    12219     sub word [bp-010h], strict byte 0000ch    ; 83 6e f0 0c
     12310    mov word [bp-00ah], ax                    ; 89 46 f6
     12311    mov word [bp-00eh], di                    ; 89 7e f2
     12312    mov word [bp-00ch], ax                    ; 89 46 f4
     12313    sub word [bp-014h], strict byte 0000ch    ; 83 6e ec 0c
    1222012314    xor ax, ax                                ; 31 c0
    12221     mov dx, word [bp-006h]                    ; 8b 56 fa
    12222     call 07b2bh                               ; e8 72 f7
    12223     mov es, [bp-004h]                         ; 8e 46 fc
    12224     mov bx, word [bp-010h]                    ; 8b 5e f0
     12315    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12316    call 07c83h                               ; e8 47 f7
     12317    mov es, [bp-008h]                         ; 8e 46 f8
     12318    mov bx, word [bp-014h]                    ; 8b 5e ec
    1222512319    add bx, si                                ; 01 f3
    1222612320    movzx bx, byte [es:bx+001e9h]             ; 26 0f b6 9f e9 01
    1222712321    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1222812322    xor ax, ax                                ; 31 c0
    12229     call 0801ah                               ; e8 49 fc
    12230     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     12323    call 08190h                               ; e8 3c fc
     12324    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1223112325    push ax                                   ; 50
    12232     mov bx, word [bp-00eh]                    ; 8b 5e f2
    12233     mov cx, word [bp-00ch]                    ; 8b 4e f4
     12326    mov bx, word [bp-012h]                    ; 8b 5e ee
     12327    mov cx, word [bp-010h]                    ; 8b 4e f0
    1223412328    mov ax, 000c0h                            ; b8 c0 00
    12235     mov dx, word [bp-006h]                    ; 8b 56 fa
    12236     call 09087h                               ; e8 a2 0c
    12237     mov es, [bp-004h]                         ; 8e 46 fc
     12329    mov dx, word [bp-00ah]                    ; 8b 56 f6
     12330    call 09257h                               ; e8 ef 0c
     12331    mov es, [bp-008h]                         ; 8e 46 f8
    1223812332    mov word [es:si+014h], di                 ; 26 89 7c 14
    1223912333    mov word [es:si+016h], di                 ; 26 89 7c 16
     
    1224112335    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1224212336    test ax, ax                               ; 85 c0
    12243     je short 08423h                           ; 74 27
     12337    je short 085a6h                           ; 74 27
    1224412338    dec ax                                    ; 48
    12245     mov es, [bp-006h]                         ; 8e 46 fa
     12339    mov es, [bp-00ah]                         ; 8e 46 f6
    1224612340    mov word [es:di+0010ch], ax               ; 26 89 85 0c 01
    1224712341    mov word [es:di+0010eh], di               ; 26 89 bd 0e 01
     
    1225312347    mov bx, 000a0h                            ; bb a0 00
    1225412348    mov ax, si                                ; 89 f0
    12255     mov dx, word [bp-004h]                    ; 8b 56 fc
    12256     call 07d16h                               ; e8 e8 f8
    12257     les bx, [bp-00ah]                         ; c4 5e f6
     12349    mov dx, word [bp-008h]                    ; 8b 56 f8
     12350    call 07e82h                               ; e8 d1 f8
     12351    les bx, [bp-00eh]                         ; c4 5e f2
    1225812352    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
    1225912353    mov dx, word [es:bx+006h]                 ; 26 8b 57 06
    12260     mov es, [bp-004h]                         ; 8e 46 fc
     12354    mov es, [bp-008h]                         ; 8e 46 f8
    1226112355    mov word [es:si+016h], ax                 ; 26 89 44 16
    1226212356    mov word [es:si+018h], dx                 ; 26 89 54 18
     
    1227512369    rep movsw                                 ; f3 a5
    1227612370    pop DS                                    ; 1f
    12277     mov ax, word [bp-00ah]                    ; 8b 46 f6
    12278     mov dx, word [bp-008h]                    ; 8b 56 f8
    12279     call 07b3fh                               ; e8 d2 f6
    12280     les bx, [bp-00ah]                         ; c4 5e f6
     12371    mov ax, word [bp-00eh]                    ; 8b 46 f2
     12372    mov dx, word [bp-00ch]                    ; 8b 56 f4
     12373    call 07c9ah                               ; e8 aa f6
     12374    les bx, [bp-00eh]                         ; c4 5e f2
    1228112375    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1228212376    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12283     jne short 0847fh                          ; 75 05
     12377    jne short 08602h                          ; 75 05
    1228412378    mov ax, strict word 00004h                ; b8 04 00
    12285     jmp short 08481h                          ; eb 02
     12379    jmp short 08604h                          ; eb 02
    1228612380    xor ax, ax                                ; 31 c0
    12287     leave                                     ; c9
     12381    lea sp, [bp-004h]                         ; 8d 66 fc
    1228812382    pop di                                    ; 5f
    1228912383    pop si                                    ; 5e
     12384    pop bp                                    ; 5d
    1229012385    retn 0000ch                               ; c2 0c 00
    12291 ahci_port_detect_device_:                    ; 0xf8487 LB 0x3cb
     12386ahci_port_detect_device_:                    ; 0xf860d LB 0x3d1
     12387    push bp                                   ; 55
     12388    mov bp, sp                                ; 89 e5
    1229212389    push cx                                   ; 51
    1229312390    push si                                   ; 56
    1229412391    push di                                   ; 57
    12295     enter 00222h, 000h                        ; c8 22 02 00
     12392    sub sp, 00222h                            ; 81 ec 22 02
    1229612393    mov di, ax                                ; 89 c7
    12297     mov word [bp-00ah], dx                    ; 89 56 f6
    12298     mov byte [bp-002h], bl                    ; 88 5e fe
     12394    mov word [bp-010h], dx                    ; 89 56 f0
     12395    mov byte [bp-008h], bl                    ; 88 5e f8
    1229912396    movzx cx, bl                              ; 0f b6 cb
    1230012397    mov bx, cx                                ; 89 cb
    12301     call 0801ah                               ; e8 7c fb
     12398    call 08190h                               ; e8 69 fb
    1230212399    mov dx, strict word 0000eh                ; ba 0e 00
    1230312400    mov ax, strict word 00040h                ; b8 40 00
    12304     call 0161ch                               ; e8 75 91
    12305     mov word [bp-01ah], ax                    ; 89 46 e6
     12401    call 0161ch                               ; e8 ec 8f
     12402    mov word [bp-020h], ax                    ; 89 46 e0
    1230612403    mov si, 00122h                            ; be 22 01
    12307     mov word [bp-008h], ax                    ; 89 46 f8
    12308     mov word [bp-01ch], si                    ; 89 76 e4
    12309     mov word [bp-00ch], ax                    ; 89 46 f4
     12404    mov word [bp-00eh], ax                    ; 89 46 f2
     12405    mov word [bp-022h], si                    ; 89 76 de
     12406    mov word [bp-012h], ax                    ; 89 46 ee
    1231012407    sal cx, 007h                              ; c1 e1 07
    12311     mov word [bp-016h], cx                    ; 89 4e ea
     12408    mov word [bp-01ch], cx                    ; 89 4e e4
    1231212409    mov ax, cx                                ; 89 c8
    1231312410    add ax, 0012ch                            ; 05 2c 01
    1231412411    cwd                                       ; 99
    12315     mov word [bp-018h], ax                    ; 89 46 e8
     12412    mov word [bp-01eh], ax                    ; 89 46 e2
    1231612413    mov bx, dx                                ; 89 d3
    12317     mov es, [bp-00ah]                         ; 8e 46 f6
     12414    mov es, [bp-010h]                         ; 8e 46 f0
    1231812415    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1231912416    mov cx, bx                                ; 89 d9
     
    1232312420    ; mov ax, cx                                ; 8b c1
    1232412421    out DX, eax                               ; 66 ef
    12325     mov es, [bp-00ah]                         ; 8e 46 f6
     12422    mov es, [bp-010h]                         ; 8e 46 f0
    1232612423    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1232712424    add dx, strict byte 00004h                ; 83 c2 04
     
    1233312430    ; mov ax, cx                                ; 8b c1
    1233412431    out DX, eax                               ; 66 ef
    12335     mov es, [bp-00ah]                         ; 8e 46 f6
     12432    mov es, [bp-010h]                         ; 8e 46 f0
    1233612433    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    12337     mov ax, word [bp-018h]                    ; 8b 46 e8
     12434    mov ax, word [bp-01eh]                    ; 8b 46 e2
    1233812435    mov cx, bx                                ; 89 d9
    1233912436    xchg cx, ax                               ; 91
     
    1234212439    ; mov ax, cx                                ; 8b c1
    1234312440    out DX, eax                               ; 66 ef
    12344     mov es, [bp-00ah]                         ; 8e 46 f6
     12441    mov es, [bp-010h]                         ; 8e 46 f0
    1234512442    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1234612443    add dx, strict byte 00004h                ; 83 c2 04
     
    1235212449    ; mov ax, cx                                ; 8b c1
    1235312450    out DX, eax                               ; 66 ef
    12354     mov ax, word [bp-016h]                    ; 8b 46 ea
     12451    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1235512452    add ax, 00128h                            ; 05 28 01
    1235612453    cwd                                       ; 99
    12357     mov es, [bp-00ah]                         ; 8e 46 f6
     12454    mov es, [bp-010h]                         ; 8e 46 f0
    1235812455    mov bx, word [es:di+00260h]               ; 26 8b 9d 60 02
    1235912456    mov cx, dx                                ; 89 d1
     
    1236412461    ; mov ax, cx                                ; 8b c1
    1236512462    out DX, eax                               ; 66 ef
    12366     mov es, [bp-00ah]                         ; 8e 46 f6
     12463    mov es, [bp-010h]                         ; 8e 46 f0
    1236712464    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1236812465    add dx, strict byte 00004h                ; 83 c2 04
     
    1237512472    mov bx, strict word 0000fh                ; bb 0f 00
    1237612473    xor cx, cx                                ; 31 c9
    12377     call 07c0dh                               ; e8 b2 f6
     12474    call 07d74h                               ; e8 90 f6
    1237812475    cmp ax, strict word 00003h                ; 3d 03 00
    12379     jne near 0884dh                           ; 0f 85 eb 02
    12380     mov es, [bp-008h]                         ; 8e 46 f8
     12476    jne near 089d6h                           ; 0f 85 eb 02
     12477    mov es, [bp-00eh]                         ; 8e 46 f2
    1238112478    mov al, byte [es:si+001edh]               ; 26 8a 84 ed 01
    12382     mov byte [bp-004h], al                    ; 88 46 fc
     12479    mov byte [bp-00ah], al                    ; 88 46 f6
    1238312480    cmp AL, strict byte 004h                  ; 3c 04
    12384     jnc near 0884dh                           ; 0f 83 da 02
    12385     mov dx, word [bp-016h]                    ; 8b 56 ea
     12481    jnc near 089d6h                           ; 0f 83 da 02
     12482    mov dx, word [bp-01ch]                    ; 8b 56 e4
    1238612483    add dx, 00118h                            ; 81 c2 18 01
    12387     mov es, [bp-00ah]                         ; 8e 46 f6
     12484    mov es, [bp-010h]                         ; 8e 46 f0
    1238812485    mov ax, word [es:di+00260h]               ; 26 8b 85 60 02
    1238912486    mov bx, strict word 00010h                ; bb 10 00
    1239012487    xor cx, cx                                ; 31 c9
    12391     call 07b53h                               ; e8 c9 f5
    12392     mov ax, word [bp-016h]                    ; 8b 46 ea
     12488    call 07cb1h                               ; e8 9e f5
     12489    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1239312490    add ax, 00124h                            ; 05 24 01
    1239412491    cwd                                       ; 99
    12395     mov es, [bp-00ah]                         ; 8e 46 f6
     12492    mov es, [bp-010h]                         ; 8e 46 f0
    1239612493    mov bx, word [es:di+00260h]               ; 26 8b 9d 60 02
    1239712494    mov cx, dx                                ; 89 d1
     
    1240212499    ; mov ax, cx                                ; 8b c1
    1240312500    out DX, eax                               ; 66 ef
    12404     mov es, [bp-00ah]                         ; 8e 46 f6
     12501    mov es, [bp-010h]                         ; 8e 46 f0
    1240512502    mov dx, word [es:di+00260h]               ; 26 8b 95 60 02
    1240612503    add dx, strict byte 00004h                ; 83 c2 04
     
    1241212509    mov bx, ax                                ; 89 c3
    1241312510    mov ax, dx                                ; 89 d0
    12414     mov cl, byte [bp-004h]                    ; 8a 4e fc
     12511    mov cl, byte [bp-00ah]                    ; 8a 4e f6
    1241512512    add cl, 00ch                              ; 80 c1 0c
    1241612513    test dx, dx                               ; 85 d2
    12417     jne near 0879fh                           ; 0f 85 d5 01
     12514    jne near 08928h                           ; 0f 85 d5 01
    1241812515    cmp bx, 00101h                            ; 81 fb 01 01
    12419     jne near 0879fh                           ; 0f 85 cd 01
    12420     mov es, [bp-008h]                         ; 8e 46 f8
     12516    jne near 08928h                           ; 0f 85 cd 01
     12517    mov es, [bp-00eh]                         ; 8e 46 f2
    1242112518    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
    1242212519    ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00
    12423     lea dx, [bp-00222h]                       ; 8d 96 de fd
     12520    lea dx, [bp-00228h]                       ; 8d 96 d8 fd
    1242412521    mov word [es:si+004h], dx                 ; 26 89 54 04
    1242512522    mov [es:si+006h], ss                      ; 26 8c 54 06
     
    1242812525    mov bx, 000ech                            ; bb ec 00
    1242912526    mov ax, si                                ; 89 f0
    12430     mov dx, word [bp-01ah]                    ; 8b 56 e6
    12431     call 07d16h                               ; e8 19 f7
    12432     mov byte [bp-006h], cl                    ; 88 4e fa
    12433     test byte [bp-00222h], 080h               ; f6 86 de fd 80
     12527    mov dx, word [bp-020h]                    ; 8b 56 e0
     12528    call 07e82h                               ; e8 fc f6
     12529    mov byte [bp-00ch], cl                    ; 88 4e f4
     12530    test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
    1243412531    db  00fh, 095h, 0c0h
    1243512532    ; setne al                                  ; 0f 95 c0
    1243612533    xor ah, ah                                ; 30 e4
    12437     mov dx, word [bp-00220h]                  ; 8b 96 e0 fd
     12534    mov dx, word [bp-00226h]                  ; 8b 96 da fd
     12535    mov word [bp-01ah], dx                    ; 89 56 e6
     12536    mov dx, word [bp-00222h]                  ; 8b 96 de fd
     12537    mov word [bp-018h], dx                    ; 89 56 e8
     12538    mov dx, word [bp-0021ch]                  ; 8b 96 e4 fd
     12539    mov word [bp-016h], dx                    ; 89 56 ea
     12540    mov di, word [bp-001b0h]                  ; 8b be 50 fe
     12541    mov dx, word [bp-001aeh]                  ; 8b 96 52 fe
    1243812542    mov word [bp-014h], dx                    ; 89 56 ec
    12439     mov dx, word [bp-0021ch]                  ; 8b 96 e4 fd
    12440     mov word [bp-012h], dx                    ; 89 56 ee
    12441     mov dx, word [bp-00216h]                  ; 8b 96 ea fd
    12442     mov word [bp-010h], dx                    ; 89 56 f0
    12443     mov di, word [bp-001aah]                  ; 8b be 56 fe
    12444     mov dx, word [bp-001a8h]                  ; 8b 96 58 fe
    12445     mov word [bp-00eh], dx                    ; 89 56 f2
    1244612543    cmp dx, 00fffh                            ; 81 fa ff 0f
    12447     jne short 08640h                          ; 75 10
     12544    jne short 087c9h                          ; 75 10
    1244812545    cmp di, strict byte 0ffffh                ; 83 ff ff
    12449     jne short 08640h                          ; 75 0b
    12450     mov di, word [bp-0015ah]                  ; 8b be a6 fe
    12451     mov dx, word [bp-00158h]                  ; 8b 96 a8 fe
    12452     mov word [bp-00eh], dx                    ; 89 56 f2
    12453     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    12454     mov es, [bp-00ch]                         ; 8e 46 f4
    12455     add bx, word [bp-01ch]                    ; 03 5e e4
    12456     mov ah, byte [bp-002h]                    ; 8a 66 fe
     12546    jne short 087c9h                          ; 75 0b
     12547    mov di, word [bp-00160h]                  ; 8b be a0 fe
     12548    mov dx, word [bp-0015eh]                  ; 8b 96 a2 fe
     12549    mov word [bp-014h], dx                    ; 89 56 ec
     12550    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     12551    mov es, [bp-012h]                         ; 8e 46 ee
     12552    add bx, word [bp-022h]                    ; 03 5e de
     12553    mov ah, byte [bp-008h]                    ; 8a 66 f8
    1245712554    mov byte [es:bx+001e9h], ah               ; 26 88 a7 e9 01
    12458     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     12555    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    1245912556    imul dx, dx, strict byte 00018h           ; 6b d2 18
    12460     mov si, word [bp-01ch]                    ; 8b 76 e4
     12557    mov si, word [bp-022h]                    ; 8b 76 de
    1246112558    add si, dx                                ; 01 d6
    1246212559    mov word [es:si+01eh], 0ff05h             ; 26 c7 44 1e 05 ff
     
    1246612563    mov byte [es:si+023h], 001h               ; 26 c6 44 23 01
    1246712564    mov word [es:si+032h], di                 ; 26 89 7c 32
    12468     mov ax, word [bp-00eh]                    ; 8b 46 f2
     12565    mov ax, word [bp-014h]                    ; 8b 46 ec
    1246912566    mov word [es:si+034h], ax                 ; 26 89 44 34
    12470     mov ax, word [bp-012h]                    ; 8b 46 ee
     12567    mov ax, word [bp-018h]                    ; 8b 46 e8
    1247112568    mov word [es:si+02ch], ax                 ; 26 89 44 2c
    12472     mov ax, word [bp-014h]                    ; 8b 46 ec
     12569    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1247312570    mov word [es:si+02eh], ax                 ; 26 89 44 2e
    12474     mov ax, word [bp-010h]                    ; 8b 46 f0
     12571    mov ax, word [bp-016h]                    ; 8b 46 ea
    1247512572    mov word [es:si+030h], ax                 ; 26 89 44 30
    12476     mov al, byte [bp-004h]                    ; 8a 46 fc
     12573    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1247712574    cmp AL, strict byte 001h                  ; 3c 01
    12478     jc short 086abh                           ; 72 0c
    12479     jbe short 086b3h                          ; 76 12
     12575    jc short 08834h                           ; 72 0c
     12576    jbe short 0883ch                          ; 76 12
    1248012577    cmp AL, strict byte 003h                  ; 3c 03
    12481     je short 086bbh                           ; 74 16
     12578    je short 08844h                           ; 74 16
    1248212579    cmp AL, strict byte 002h                  ; 3c 02
    12483     je short 086b7h                           ; 74 0e
    12484     jmp short 08704h                          ; eb 59
     12580    je short 08840h                           ; 74 0e
     12581    jmp short 0888dh                          ; eb 59
    1248512582    test al, al                               ; 84 c0
    12486     jne short 08704h                          ; 75 55
     12583    jne short 0888dh                          ; 75 55
    1248712584    mov DL, strict byte 040h                  ; b2 40
    12488     jmp short 086bdh                          ; eb 0a
     12585    jmp short 08846h                          ; eb 0a
    1248912586    mov DL, strict byte 048h                  ; b2 48
    12490     jmp short 086bdh                          ; eb 06
     12587    jmp short 08846h                          ; eb 06
    1249112588    mov DL, strict byte 050h                  ; b2 50
    12492     jmp short 086bdh                          ; eb 02
     12589    jmp short 08846h                          ; eb 02
    1249312590    mov DL, strict byte 058h                  ; b2 58
    1249412591    mov al, dl                                ; 88 d0
     
    1249612593    movzx bx, al                              ; 0f b6 d8
    1249712594    mov ax, bx                                ; 89 d8
    12498     call 0165ch                               ; e8 93 8f
     12595    call 0165ch                               ; e8 0a 8e
    1249912596    test al, al                               ; 84 c0
    12500     je short 08704h                           ; 74 37
     12597    je short 0888dh                           ; 74 37
    1250112598    mov al, dl                                ; 88 d0
    1250212599    db  0feh, 0c0h
    1250312600    ; inc al                                    ; fe c0
    1250412601    xor ah, ah                                ; 30 e4
    12505     call 0165ch                               ; e8 86 8f
     12602    call 0165ch                               ; e8 fd 8d
    1250612603    xor ah, ah                                ; 30 e4
    1250712604    mov cx, ax                                ; 89 c1
    1250812605    sal cx, 008h                              ; c1 e1 08
    1250912606    movzx ax, dl                              ; 0f b6 c2
    12510     call 0165ch                               ; e8 79 8f
     12607    call 0165ch                               ; e8 f0 8d
    1251112608    xor ah, ah                                ; 30 e4
    1251212609    add ax, cx                                ; 01 c8
    12513     mov word [bp-020h], ax                    ; 89 46 e0
     12610    mov word [bp-026h], ax                    ; 89 46 da
    1251412611    mov al, dl                                ; 88 d0
    1251512612    add AL, strict byte 002h                  ; 04 02
    1251612613    xor ah, ah                                ; 30 e4
    12517     call 0165ch                               ; e8 69 8f
     12614    call 0165ch                               ; e8 e0 8d
    1251812615    xor ah, ah                                ; 30 e4
    12519     mov word [bp-022h], ax                    ; 89 46 de
     12616    mov word [bp-028h], ax                    ; 89 46 d8
    1252012617    mov ax, bx                                ; 89 d8
    12521     call 0165ch                               ; e8 5f 8f
     12618    call 0165ch                               ; e8 d6 8d
    1252212619    xor ah, ah                                ; 30 e4
    12523     mov word [bp-01eh], ax                    ; 89 46 e2
    12524     jmp short 08711h                          ; eb 0d
     12620    mov word [bp-024h], ax                    ; 89 46 dc
     12621    jmp short 0889ah                          ; eb 0d
    1252512622    mov bx, di                                ; 89 fb
    12526     mov cx, word [bp-00eh]                    ; 8b 4e f2
     12623    mov cx, word [bp-014h]                    ; 8b 4e ec
    1252712624    mov dx, ss                                ; 8c d2
    12528     lea ax, [bp-022h]                         ; 8d 46 de
    12529     call 0529eh                               ; e8 8d cb
    12530     mov bx, 00d32h                            ; bb 32 0d
     12625    lea ax, [bp-028h]                         ; 8d 46 d8
     12626    call 05338h                               ; e8 9e ca
     12627    mov bx, 00d38h                            ; bb 38 0d
    1253112628    mov cx, ds                                ; 8c d9
    1253212629    mov ax, strict word 00004h                ; b8 04 00
    12533     call 018aeh                               ; e8 92 91
    12534     push word [bp-00eh]                       ; ff 76 f2
     12630    call 018cch                               ; e8 27 90
     12631    push word [bp-014h]                       ; ff 76 ec
    1253512632    push di                                   ; 57
    12536     mov ax, word [bp-01eh]                    ; 8b 46 e2
     12633    mov ax, word [bp-024h]                    ; 8b 46 dc
    1253712634    push ax                                   ; 50
    12538     mov ax, word [bp-022h]                    ; 8b 46 de
     12635    mov ax, word [bp-028h]                    ; 8b 46 d8
    1253912636    push ax                                   ; 50
    12540     mov ax, word [bp-020h]                    ; 8b 46 e0
     12637    mov ax, word [bp-026h]                    ; 8b 46 da
    1254112638    push ax                                   ; 50
    12542     push dword [bp-012h]                      ; 66 ff 76 ee
    12543     push word [bp-014h]                       ; ff 76 ec
    12544     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     12639    push dword [bp-018h]                      ; 66 ff 76 e8
     12640    push word [bp-01ah]                       ; ff 76 e6
     12641    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1254512642    push ax                                   ; 50
    12546     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     12643    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1254712644    push ax                                   ; 50
    1254812645    push 00c6ah                               ; 68 6a 0c
    1254912646    push strict byte 00004h                   ; 6a 04
    12550     call 018e9h                               ; e8 a4 91
     12647    call 0190dh                               ; e8 3f 90
    1255112648    add sp, strict byte 00018h                ; 83 c4 18
    12552     movzx di, byte [bp-006h]                  ; 0f b6 7e fa
     12649    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    1255312650    imul di, di, strict byte 00018h           ; 6b ff 18
    12554     add di, word [bp-01ch]                    ; 03 7e e4
    12555     mov es, [bp-00ch]                         ; 8e 46 f4
     12651    add di, word [bp-022h]                    ; 03 7e de
     12652    mov es, [bp-012h]                         ; 8e 46 ee
    1255612653    lea di, [di+026h]                         ; 8d 7d 26
    1255712654    push DS                                   ; 1e
    1255812655    push SS                                   ; 16
    1255912656    pop DS                                    ; 1f
    12560     lea si, [bp-022h]                         ; 8d 76 de
     12657    lea si, [bp-028h]                         ; 8d 76 d8
    1256112658    movsw                                     ; a5
    1256212659    movsw                                     ; a5
    1256312660    movsw                                     ; a5
    1256412661    pop DS                                    ; 1f
    12565     mov bx, word [bp-01ch]                    ; 8b 5e e4
     12662    mov bx, word [bp-022h]                    ; 8b 5e de
    1256612663    mov al, byte [es:bx+0019eh]               ; 26 8a 87 9e 01
    12567     mov ah, byte [bp-004h]                    ; 8a 66 fc
     12664    mov ah, byte [bp-00ah]                    ; 8a 66 f6
    1256812665    add ah, 00ch                              ; 80 c4 0c
    1256912666    movzx bx, al                              ; 0f b6 d8
    12570     add bx, word [bp-01ch]                    ; 03 5e e4
     12667    add bx, word [bp-022h]                    ; 03 5e de
    1257112668    mov byte [es:bx+0019fh], ah               ; 26 88 a7 9f 01
    1257212669    db  0feh, 0c0h
    1257312670    ; inc al                                    ; fe c0
    12574     mov bx, word [bp-01ch]                    ; 8b 5e e4
     12671    mov bx, word [bp-022h]                    ; 8b 5e de
    1257512672    mov byte [es:bx+0019eh], al               ; 26 88 87 9e 01
    1257612673    mov dx, strict word 00075h                ; ba 75 00
    1257712674    mov ax, strict word 00040h                ; b8 40 00
    12578     call 01600h                               ; e8 72 8e
     12675    call 01600h                               ; e8 e9 8c
    1257912676    db  0feh, 0c0h
    1258012677    ; inc al                                    ; fe c0
     
    1258212679    mov dx, strict word 00075h                ; ba 75 00
    1258312680    mov ax, strict word 00040h                ; b8 40 00
    12584     call 0160eh                               ; e8 72 8e
    12585     jmp near 0883ch                           ; e9 9d 00
     12681    call 0160eh                               ; e8 e9 8c
     12682    jmp near 089c5h                           ; e9 9d 00
    1258612683    cmp dx, 0eb14h                            ; 81 fa 14 eb
    12587     jne near 0883ch                           ; 0f 85 95 00
     12684    jne near 089c5h                           ; 0f 85 95 00
    1258812685    cmp bx, 00101h                            ; 81 fb 01 01
    12589     jne near 0883ch                           ; 0f 85 8d 00
    12590     mov es, [bp-008h]                         ; 8e 46 f8
     12686    jne near 089c5h                           ; 0f 85 8d 00
     12687    mov es, [bp-00eh]                         ; 8e 46 f2
    1259112688    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
    1259212689    ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00
    12593     lea dx, [bp-00222h]                       ; 8d 96 de fd
     12690    lea dx, [bp-00228h]                       ; 8d 96 d8 fd
    1259412691    mov word [es:si+004h], dx                 ; 26 89 54 04
    1259512692    mov [es:si+006h], ss                      ; 26 8c 54 06
     
    1259812695    mov bx, 000a1h                            ; bb a1 00
    1259912696    mov ax, si                                ; 89 f0
    12600     mov dx, word [bp-01ah]                    ; 8b 56 e6
    12601     call 07d16h                               ; e8 3c f5
    12602     test byte [bp-00222h], 080h               ; f6 86 de fd 80
     12697    mov dx, word [bp-020h]                    ; 8b 56 e0
     12698    call 07e82h                               ; e8 1f f5
     12699    test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
    1260312700    db  00fh, 095h, 0c0h
    1260412701    ; setne al                                  ; 0f 95 c0
    1260512702    xor ah, ah                                ; 30 e4
    12606     movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
    12607     mov es, [bp-01ah]                         ; 8e 46 e6
     12703    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     12704    mov es, [bp-020h]                         ; 8e 46 e0
    1260812705    add bx, si                                ; 01 f3
    12609     mov ah, byte [bp-002h]                    ; 8a 66 fe
     12706    mov ah, byte [bp-008h]                    ; 8a 66 f8
    1261012707    mov byte [es:bx+001e9h], ah               ; 26 88 a7 e9 01
    1261112708    movzx si, cl                              ; 0f b6 f1
     
    1261512712    mov byte [es:si+020h], al                 ; 26 88 44 20
    1261612713    mov word [es:si+024h], 00800h             ; 26 c7 44 24 00 08
    12617     mov es, [bp-00ch]                         ; 8e 46 f4
    12618     mov bx, word [bp-01ch]                    ; 8b 5e e4
     12714    mov es, [bp-012h]                         ; 8e 46 ee
     12715    mov bx, word [bp-022h]                    ; 8b 5e de
    1261912716    mov al, byte [es:bx+001afh]               ; 26 8a 87 af 01
    12620     mov ah, byte [bp-004h]                    ; 8a 66 fc
     12717    mov ah, byte [bp-00ah]                    ; 8a 66 f6
    1262112718    add ah, 00ch                              ; 80 c4 0c
    1262212719    movzx bx, al                              ; 0f b6 d8
    12623     mov es, [bp-01ah]                         ; 8e 46 e6
     12720    mov es, [bp-020h]                         ; 8e 46 e0
    1262412721    add bx, 00122h                            ; 81 c3 22 01
    1262512722    mov byte [es:bx+001b0h], ah               ; 26 88 a7 b0 01
    1262612723    db  0feh, 0c0h
    1262712724    ; inc al                                    ; fe c0
    12628     mov es, [bp-00ch]                         ; 8e 46 f4
    12629     mov bx, word [bp-01ch]                    ; 8b 5e e4
     12725    mov es, [bp-012h]                         ; 8e 46 ee
     12726    mov bx, word [bp-022h]                    ; 8b 5e de
    1263012727    mov byte [es:bx+001afh], al               ; 26 88 87 af 01
    12631     inc byte [bp-004h]                        ; fe 46 fc
    12632     mov al, byte [bp-004h]                    ; 8a 46 fc
    12633     mov es, [bp-00ch]                         ; 8e 46 f4
    12634     mov bx, word [bp-01ch]                    ; 8b 5e e4
     12728    inc byte [bp-00ah]                        ; fe 46 f6
     12729    mov al, byte [bp-00ah]                    ; 8a 46 f6
     12730    mov es, [bp-012h]                         ; 8e 46 ee
     12731    mov bx, word [bp-022h]                    ; 8b 5e de
    1263512732    mov byte [es:bx+001edh], al               ; 26 88 87 ed 01
    12636     leave                                     ; c9
     12733    lea sp, [bp-006h]                         ; 8d 66 fa
    1263712734    pop di                                    ; 5f
    1263812735    pop si                                    ; 5e
    1263912736    pop cx                                    ; 59
     12737    pop bp                                    ; 5d
    1264012738    retn                                      ; c3
    12641 ahci_mem_alloc_:                             ; 0xf8852 LB 0x40
     12739ahci_mem_alloc_:                             ; 0xf89de LB 0x43
     12740    push bp                                   ; 55
     12741    mov bp, sp                                ; 89 e5
    1264212742    push bx                                   ; 53
    1264312743    push cx                                   ; 51
     
    1264512745    push si                                   ; 56
    1264612746    push di                                   ; 57
    12647     push bp                                   ; 55
    12648     mov bp, sp                                ; 89 e5
    1264912747    mov dx, 00413h                            ; ba 13 04
    1265012748    xor ax, ax                                ; 31 c0
    12651     call 0161ch                               ; e8 ba 8d
     12749    call 0161ch                               ; e8 2e 8c
    1265212750    test ax, ax                               ; 85 c0
    12653     je short 0888bh                           ; 74 25
     12751    je short 08a17h                           ; 74 25
    1265412752    dec ax                                    ; 48
    1265512753    mov bx, ax                                ; 89 c3
     
    1265812756    sal ax, 1                                 ; d1 e0
    1265912757    rcl dx, 1                                 ; d1 d2
    12660     loop 0886eh                               ; e2 fa
     12758    loop 089fah                               ; e2 fa
    1266112759    mov si, ax                                ; 89 c6
    1266212760    mov di, dx                                ; 89 d7
     
    1266412762    shr di, 1                                 ; d1 ef
    1266512763    rcr si, 1                                 ; d1 de
    12666     loop 0887bh                               ; e2 fa
     12764    loop 08a07h                               ; e2 fa
    1266712765    mov dx, 00413h                            ; ba 13 04
    1266812766    xor ax, ax                                ; 31 c0
    12669     call 0162ah                               ; e8 a1 8d
     12767    call 0162ah                               ; e8 15 8c
    1267012768    mov ax, si                                ; 89 f0
    12671     pop bp                                    ; 5d
     12769    lea sp, [bp-00ah]                         ; 8d 66 f6
    1267212770    pop di                                    ; 5f
    1267312771    pop si                                    ; 5e
     
    1267512773    pop cx                                    ; 59
    1267612774    pop bx                                    ; 5b
     12775    pop bp                                    ; 5d
    1267712776    retn                                      ; c3
    12678 ahci_hba_init_:                              ; 0xf8892 LB 0x120
     12777ahci_hba_init_:                              ; 0xf8a21 LB 0x125
     12778    push bp                                   ; 55
     12779    mov bp, sp                                ; 89 e5
    1267912780    push bx                                   ; 53
    1268012781    push cx                                   ; 51
     
    1268212783    push si                                   ; 56
    1268312784    push di                                   ; 57
    12684     enter 00006h, 000h                        ; c8 06 00 00
     12785    sub sp, strict byte 00006h                ; 83 ec 06
    1268512786    mov si, ax                                ; 89 c6
    1268612787    mov dx, strict word 0000eh                ; ba 0e 00
    1268712788    mov ax, strict word 00040h                ; b8 40 00
    12688     call 0161ch                               ; e8 76 8d
     12789    call 0161ch                               ; e8 e5 8b
    1268912790    mov bx, 00122h                            ; bb 22 01
    12690     mov word [bp-006h], ax                    ; 89 46 fa
     12791    mov word [bp-010h], ax                    ; 89 46 f0
    1269112792    mov ax, strict word 00010h                ; b8 10 00
    1269212793    xor cx, cx                                ; 31 c9
     
    1270312804    shr eax, 010h                             ; 66 c1 e8 10
    1270412805    xchg dx, ax                               ; 92
    12705     call 08852h                               ; e8 87 ff
     12806    call 089deh                               ; e8 82 ff
    1270612807    mov di, ax                                ; 89 c7
    1270712808    test ax, ax                               ; 85 c0
    12708     je near 08994h                            ; 0f 84 c1 00
    12709     mov es, [bp-006h]                         ; 8e 46 fa
     12809    je near 08b25h                            ; 0f 84 c1 00
     12810    mov es, [bp-010h]                         ; 8e 46 f0
    1271012811    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
    1271112812    mov byte [es:bx+001edh], 000h             ; 26 c6 87 ed 01 00
     
    1272012821    mov dx, strict word 00004h                ; ba 04 00
    1272112822    mov ax, si                                ; 89 f0
    12722     call 07b53h                               ; e8 4c f2
     12823    call 07cb1h                               ; e8 19 f2
    1272312824    mov ax, strict word 00004h                ; b8 04 00
    1272412825    xor cx, cx                                ; 31 c9
     
    1273712838    xchg dx, ax                               ; 92
    1273812839    test AL, strict byte 001h                 ; a8 01
    12739     jne short 08907h                          ; 75 de
     12840    jne short 08a98h                          ; 75 de
    1274012841    xor ax, ax                                ; 31 c0
    1274112842    xor cx, cx                                ; 31 c9
     
    1275512856    mov bx, strict word 0001fh                ; bb 1f 00
    1275612857    xor cx, cx                                ; 31 c9
    12757     call 07c0dh                               ; e8 c0 f2
     12858    call 07d74h                               ; e8 96 f2
    1275812859    db  0feh, 0c0h
    1275912860    ; inc al                                    ; fe c0
    12760     mov byte [bp-004h], al                    ; 88 46 fc
    12761     mov byte [bp-002h], 000h                  ; c6 46 fe 00
    12762     jmp short 08961h                          ; eb 09
    12763     inc byte [bp-002h]                        ; fe 46 fe
    12764     cmp byte [bp-002h], 020h                  ; 80 7e fe 20
    12765     jnc short 08992h                          ; 73 31
    12766     movzx cx, byte [bp-002h]                  ; 0f b6 4e fe
     12861    mov byte [bp-00eh], al                    ; 88 46 f2
     12862    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     12863    jmp short 08af2h                          ; eb 09
     12864    inc byte [bp-00ch]                        ; fe 46 f4
     12865    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
     12866    jnc short 08b23h                          ; 73 31
     12867    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1276712868    mov ax, strict word 00001h                ; b8 01 00
    1276812869    xor dx, dx                                ; 31 d2
    12769     jcxz 08972h                               ; e3 06
     12870    jcxz 08b03h                               ; e3 06
    1277012871    sal ax, 1                                 ; d1 e0
    1277112872    rcl dx, 1                                 ; d1 d2
    12772     loop 0896ch                               ; e2 fa
     12873    loop 08afdh                               ; e2 fa
    1277312874    mov bx, ax                                ; 89 c3
    1277412875    mov cx, dx                                ; 89 d1
    1277512876    mov dx, strict word 0000ch                ; ba 0c 00
    1277612877    mov ax, si                                ; 89 f0
    12777     call 07bd7h                               ; e8 59 f2
     12878    call 07d3bh                               ; e8 2c f2
    1277812879    test al, al                               ; 84 c0
    12779     je short 08958h                           ; 74 d6
    12780     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     12880    je short 08ae9h                           ; 74 d6
     12881    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1278112882    xor ax, ax                                ; 31 c0
    1278212883    mov dx, di                                ; 89 fa
    12783     call 08487h                               ; e8 fa fa
    12784     dec byte [bp-004h]                        ; fe 4e fc
    12785     jne short 08958h                          ; 75 c6
     12884    call 0860dh                               ; e8 ef fa
     12885    dec byte [bp-00eh]                        ; fe 4e f2
     12886    jne short 08ae9h                          ; 75 c6
    1278612887    xor ax, ax                                ; 31 c0
    12787     leave                                     ; c9
     12888    lea sp, [bp-00ah]                         ; 8d 66 f6
    1278812889    pop di                                    ; 5f
    1278912890    pop si                                    ; 5e
     
    1279112892    pop cx                                    ; 59
    1279212893    pop bx                                    ; 5b
     12894    pop bp                                    ; 5d
    1279312895    retn                                      ; c3
    12794     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 07fh, 08ah, 05dh, 08ah, 063h, 08ah, 069h, 08ah, 06fh
    12795     db  08ah, 075h, 08ah, 07bh, 08ah, 07fh, 08ah
    12796 _ahci_init:                                  ; 0xf89b2 LB 0xf9
     12896    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 015h, 08ch, 0f3h, 08bh, 0f9h, 08bh, 0ffh, 08bh, 005h
     12897    db  08ch, 00bh, 08ch, 011h, 08ch, 015h, 08ch
     12898_ahci_init:                                  ; 0xf8b46 LB 0xfe
     12899    push bp                                   ; 55
     12900    mov bp, sp                                ; 89 e5
    1279712901    push si                                   ; 56
    1279812902    push di                                   ; 57
    12799     enter 00006h, 000h                        ; c8 06 00 00
     12903    sub sp, strict byte 00006h                ; 83 ec 06
    1280012904    mov ax, 00601h                            ; b8 01 06
    1280112905    mov dx, strict word 00001h                ; ba 01 00
    12802     call 08ea4h                               ; e8 e3 04
     12906    call 09064h                               ; e8 0d 05
    1280312907    mov dx, ax                                ; 89 c2
    1280412908    cmp ax, strict word 0ffffh                ; 3d ff ff
    12805     je near 08aa7h                            ; 0f 84 dd 00
     12909    je near 08c3dh                            ; 0f 84 dd 00
    1280612910    xor al, al                                ; 30 c0
    1280712911    shr ax, 008h                              ; c1 e8 08
    12808     mov byte [bp-006h], al                    ; 88 46 fa
    12809     mov byte [bp-004h], dl                    ; 88 56 fc
     12912    mov byte [bp-00ah], al                    ; 88 46 f6
     12913    mov byte [bp-008h], dl                    ; 88 56 f8
    1281012914    xor dh, dh                                ; 30 f6
    1281112915    xor ah, ah                                ; 30 e4
    1281212916    mov bx, strict word 00034h                ; bb 34 00
    12813     call 08ecch                               ; e8 ed 04
     12917    call 0908fh                               ; e8 1a 05
    1281412918    mov cl, al                                ; 88 c1
    1281512919    test cl, cl                               ; 84 c9
    12816     je short 08a08h                           ; 74 23
     12920    je short 08b9eh                           ; 74 23
    1281712921    movzx bx, cl                              ; 0f b6 d9
    12818     movzx di, byte [bp-004h]                  ; 0f b6 7e fc
    12819     movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     12922    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     12923    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    1282012924    mov dx, di                                ; 89 fa
    1282112925    mov ax, si                                ; 89 f0
    12822     call 08ecch                               ; e8 d5 04
     12926    call 0908fh                               ; e8 02 05
    1282312927    cmp AL, strict byte 012h                  ; 3c 12
    12824     je short 08a08h                           ; 74 0d
     12928    je short 08b9eh                           ; 74 0d
    1282512929    mov al, cl                                ; 88 c8
    1282612930    db  0feh, 0c0h
     
    1282912933    mov dx, di                                ; 89 fa
    1283012934    mov ax, si                                ; 89 f0
    12831     jmp short 089dch                          ; eb d4
     12935    jmp short 08b72h                          ; eb d4
    1283212936    test cl, cl                               ; 84 c9
    12833     je near 08aa7h                            ; 0f 84 99 00
     12937    je near 08c3dh                            ; 0f 84 99 00
    1283412938    add cl, 002h                              ; 80 c1 02
    1283512939    movzx bx, cl                              ; 0f b6 d9
    12836     movzx di, byte [bp-004h]                  ; 0f b6 7e fc
    12837     movzx si, byte [bp-006h]                  ; 0f b6 76 fa
     12940    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     12941    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    1283812942    mov dx, di                                ; 89 fa
    1283912943    mov ax, si                                ; 89 f0
    12840     call 08ecch                               ; e8 a9 04
     12944    call 0908fh                               ; e8 d6 04
    1284112945    cmp AL, strict byte 010h                  ; 3c 10
    12842     jne near 08aa7h                           ; 0f 85 7e 00
    12843     mov byte [bp-002h], 000h                  ; c6 46 fe 00
     12946    jne near 08c3dh                           ; 0f 85 7e 00
     12947    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1284412948    mov al, cl                                ; 88 c8
    1284512949    add AL, strict byte 002h                  ; 04 02
     
    1284712951    mov dx, di                                ; 89 fa
    1284812952    mov ax, si                                ; 89 f0
    12849     call 08eedh                               ; e8 b2 04
     12953    call 090b3h                               ; e8 e2 04
    1285012954    mov dx, ax                                ; 89 c2
    1285112955    and ax, strict word 0000fh                ; 25 0f 00
    1285212956    sub ax, strict word 00004h                ; 2d 04 00
    1285312957    cmp ax, strict word 0000bh                ; 3d 0b 00
    12854     jnbe short 08a7fh                         ; 77 37
     12958    jnbe short 08c15h                         ; 77 37
    1285512959    push CS                                   ; 0e
    1285612960    pop ES                                    ; 07
    1285712961    mov cx, strict word 00008h                ; b9 08 00
    12858     mov di, 0899bh                            ; bf 9b 89
     12962    mov di, 08b2fh                            ; bf 2f 8b
    1285912963    repne scasb                               ; f2 ae
    1286012964    sal cx, 1                                 ; d1 e1
    1286112965    mov di, cx                                ; 89 cf
    12862     mov ax, word [cs:di-0765eh]               ; 2e 8b 85 a2 89
     12966    mov ax, word [cs:di-074cah]               ; 2e 8b 85 36 8b
    1286312967    jmp ax                                    ; ff e0
    12864     mov byte [bp-002h], 010h                  ; c6 46 fe 10
    12865     jmp short 08a7fh                          ; eb 1c
    12866     mov byte [bp-002h], 014h                  ; c6 46 fe 14
    12867     jmp short 08a7fh                          ; eb 16
    12868     mov byte [bp-002h], 018h                  ; c6 46 fe 18
    12869     jmp short 08a7fh                          ; eb 10
    12870     mov byte [bp-002h], 01ch                  ; c6 46 fe 1c
    12871     jmp short 08a7fh                          ; eb 0a
    12872     mov byte [bp-002h], 020h                  ; c6 46 fe 20
    12873     jmp short 08a7fh                          ; eb 04
    12874     mov byte [bp-002h], 024h                  ; c6 46 fe 24
     12968    mov byte [bp-006h], 010h                  ; c6 46 fa 10
     12969    jmp short 08c15h                          ; eb 1c
     12970    mov byte [bp-006h], 014h                  ; c6 46 fa 14
     12971    jmp short 08c15h                          ; eb 16
     12972    mov byte [bp-006h], 018h                  ; c6 46 fa 18
     12973    jmp short 08c15h                          ; eb 10
     12974    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
     12975    jmp short 08c15h                          ; eb 0a
     12976    mov byte [bp-006h], 020h                  ; c6 46 fa 20
     12977    jmp short 08c15h                          ; eb 04
     12978    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1287512979    mov si, dx                                ; 89 d6
    1287612980    shr si, 004h                              ; c1 ee 04
    1287712981    sal si, 002h                              ; c1 e6 02
    12878     mov al, byte [bp-002h]                    ; 8a 46 fe
     12982    mov al, byte [bp-006h]                    ; 8a 46 fa
    1287912983    test al, al                               ; 84 c0
    12880     je short 08aa7h                           ; 74 19
     12984    je short 08c3dh                           ; 74 19
    1288112985    movzx bx, al                              ; 0f b6 d8
    12882     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
    12883     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    12884     call 08f0ch                               ; e8 70 04
     12986    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     12987    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     12988    call 090d5h                               ; e8 a3 04
    1288512989    test AL, strict byte 001h                 ; a8 01
    12886     je short 08aa7h                           ; 74 07
     12990    je short 08c3dh                           ; 74 07
    1288712991    and AL, strict byte 0f0h                  ; 24 f0
    1288812992    add ax, si                                ; 01 f0
    12889     call 08892h                               ; e8 eb fd
    12890     leave                                     ; c9
     12993    call 08a21h                               ; e8 e4 fd
     12994    lea sp, [bp-004h]                         ; 8d 66 fc
    1289112995    pop di                                    ; 5f
    1289212996    pop si                                    ; 5e
     12997    pop bp                                    ; 5d
    1289312998    retn                                      ; c3
    12894 apm_out_str_:                                ; 0xf8aab LB 0x36
    12895     push bx                                   ; 53
     12999apm_out_str_:                                ; 0xf8c44 LB 0x39
    1289613000    push bp                                   ; 55
    1289713001    mov bp, sp                                ; 89 e5
     13002    push bx                                   ; 53
    1289813003    mov bx, ax                                ; 89 c3
    1289913004    cmp byte [bx], 000h                       ; 80 3f 00
    12900     je short 08ac0h                           ; 74 0a
     13005    je short 08c59h                           ; 74 0a
    1290113006    mov al, byte [bx]                         ; 8a 07
    1290213007    out DX, AL                                ; ee
     
    1290513010    db  00ah, 0c0h
    1290613011    ; or al, al                                 ; 0a c0
    12907     jne short 08ab8h                          ; 75 f8
     13012    jne short 08c51h                          ; 75 f8
     13013    lea sp, [bp-002h]                         ; 8d 66 fe
     13014    pop bx                                    ; 5b
    1290813015    pop bp                                    ; 5d
    12909     pop bx                                    ; 5b
    1291013016    retn                                      ; c3
    12911     add AL, strict byte 08bh                  ; 04 8b
    12912     ror word [bp+di-074eah], CL               ; d3 8b 16 8b
    12913     xor word [bp+di-0742dh], cx               ; 31 8b d3 8b
    12914     pop sp                                    ; 5c
    12915     db  08bh, 0d3h
    12916     ; mov dx, bx                                ; 8b d3
    12917     mov sp, word [bx+di-075h]                 ; 8b 61 8b
    12918     test AL, strict byte 08bh                 ; a8 8b
    12919     test AL, strict byte 08bh                 ; a8 8b
    12920     test AL, strict byte 08bh                 ; a8 8b
    12921     mov word [0a88bh], ax                     ; a3 8b a8
    12922     mov bp, word [bx+si-06475h]               ; 8b a8 8b 9b
    12923     db  08bh
    12924 _apm_function:                               ; 0xf8ae1 LB 0xf5
    12925     push si                                   ; 56
     13017    mov AL, byte [06c8ch]                     ; a0 8c 6c
     13018    lea si, [bp+si-03274h]                    ; 8d b2 8c cd
     13019    mov [si-073h], gs                         ; 8c 6c 8d
     13020    clc                                       ; f8
     13021    mov [si-073h], gs                         ; 8c 6c 8d
     13022    std                                       ; fd
     13023    mov [bx+di-073h], es                      ; 8c 41 8d
     13024    inc cx                                    ; 41
     13025    lea ax, [bx+di-073h]                      ; 8d 41 8d
     13026    cmp AL, strict byte 08dh                  ; 3c 8d
     13027    inc cx                                    ; 41
     13028    lea ax, [bx+di-073h]                      ; 8d 41 8d
     13029    db  035h
     13030    db  08dh
     13031_apm_function:                               ; 0xf8c7d LB 0xf5
    1292613032    push bp                                   ; 55
    1292713033    mov bp, sp                                ; 89 e5
    12928     and byte [bp+01ah], 0feh                  ; 80 66 1a fe
    12929     mov ax, word [bp+014h]                    ; 8b 46 14
     13034    push si                                   ; 56
     13035    and byte [bp+018h], 0feh                  ; 80 66 18 fe
     13036    mov ax, word [bp+012h]                    ; 8b 46 12
    1293013037    xor ah, ah                                ; 30 e4
    1293113038    cmp ax, strict word 0000eh                ; 3d 0e 00
    12932     jnbe near 08ba8h                          ; 0f 87 b3 00
     13039    jnbe near 08d41h                          ; 0f 87 b0 00
    1293313040    mov bx, ax                                ; 89 c3
    1293413041    add bx, ax                                ; 01 c3
    12935     mov dx, word [bp+01ah]                    ; 8b 56 1a
     13042    mov dx, word [bp+018h]                    ; 8b 56 18
    1293613043    or dl, 001h                               ; 80 ca 01
    12937     jmp word [cs:bx-0753dh]                   ; 2e ff a7 c3 8a
    12938     mov word [bp+014h], 00102h                ; c7 46 14 02 01
    12939     mov word [bp+00eh], 0504dh                ; c7 46 0e 4d 50
    12940     mov word [bp+012h], strict word 00003h    ; c7 46 12 03 00
    12941     pop bp                                    ; 5d
    12942     pop si                                    ; 5e
    12943     retn                                      ; c3
    12944     mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    12945     mov word [bp+00eh], 090f4h                ; c7 46 0e f4 90
     13044    jmp word [cs:bx-073a1h]                   ; 2e ff a7 5f 8c
     13045    mov word [bp+012h], 00102h                ; c7 46 12 02 01
     13046    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
     13047    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
     13048    jmp near 08d6ch                           ; e9 ba 00
    1294613049    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     13050    mov word [bp+00ch], 092c4h                ; c7 46 0c c4 92
     13051    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1294713052    mov ax, strict word 0fff0h                ; b8 f0 ff
    12948     mov word [bp+008h], ax                    ; 89 46 08
    1294913053    mov word [bp+006h], ax                    ; 89 46 06
    12950     pop bp                                    ; 5d
    12951     pop si                                    ; 5e
    12952     retn                                      ; c3
    12953     mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    12954     mov word [bp+00eh], 0da40h                ; c7 46 0e 40 da
     13054    mov word [bp+004h], ax                    ; 89 46 04
     13055    jmp near 08d6ch                           ; e9 9f 00
     13056    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     13057    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
    1295513058    mov ax, 0f000h                            ; b8 00 f0
    12956     mov word [bp+012h], ax                    ; 89 46 12
    1295713059    mov word [bp+010h], ax                    ; 89 46 10
     13060    mov word [bp+00eh], ax                    ; 89 46 0e
    1295813061    mov ax, strict word 0fff0h                ; b8 f0 ff
    12959     mov word [bp+008h], ax                    ; 89 46 08
    1296013062    mov word [bp+006h], ax                    ; 89 46 06
     13063    mov word [bp+004h], ax                    ; 89 46 04
    1296113064    xor bx, bx                                ; 31 db
    1296213065    sal ebx, 010h                             ; 66 c1 e3 10
    1296313066    mov si, ax                                ; 89 c6
    1296413067    sal esi, 010h                             ; 66 c1 e6 10
    12965     pop bp                                    ; 5d
    12966     pop si                                    ; 5e
    12967     retn                                      ; c3
     13068    jmp near 08d6ch                           ; e9 74 00
    1296813069    sti                                       ; fb
    1296913070    hlt                                       ; f4
    12970     pop bp                                    ; 5d
    12971     pop si                                    ; 5e
    12972     retn                                      ; c3
    12973     cmp word [bp+012h], strict byte 00003h    ; 83 7e 12 03
    12974     je short 08b87h                           ; 74 20
    12975     cmp word [bp+012h], strict byte 00002h    ; 83 7e 12 02
    12976     je short 08b7fh                           ; 74 12
    12977     cmp word [bp+012h], strict byte 00001h    ; 83 7e 12 01
    12978     jne short 08b8fh                          ; 75 1c
     13071    jmp near 08d6ch                           ; e9 6f 00
     13072    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
     13073    je short 08d22h                           ; 74 1f
     13074    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
     13075    je short 08d1ah                           ; 74 11
     13076    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
     13077    jne short 08d2ah                          ; 75 1b
    1297913078    mov dx, 08900h                            ; ba 00 89
    1298013079    mov ax, 00ca2h                            ; b8 a2 0c
    12981     call 08aabh                               ; e8 2f ff
    12982     pop bp                                    ; 5d
    12983     pop si                                    ; 5e
    12984     retn                                      ; c3
     13080    call 08c44h                               ; e8 2c ff
     13081    jmp short 08d6ch                          ; eb 52
    1298513082    mov dx, 08900h                            ; ba 00 89
    1298613083    mov ax, 00caah                            ; b8 aa 0c
    12987     jmp short 08b79h                          ; eb f2
     13084    jmp short 08d15h                          ; eb f3
    1298813085    mov dx, 08900h                            ; ba 00 89
    1298913086    mov ax, 00cb2h                            ; b8 b2 0c
    12990     jmp short 08b79h                          ; eb ea
     13087    jmp short 08d15h                          ; eb eb
    1299113088    or ah, 00ah                               ; 80 cc 0a
    12992     mov word [bp+014h], ax                    ; 89 46 14
    12993     mov word [bp+01ah], dx                    ; 89 56 1a
    12994     pop bp                                    ; 5d
    12995     pop si                                    ; 5e
    12996     retn                                      ; c3
    12997     mov word [bp+014h], 00102h                ; c7 46 14 02 01
    12998     pop bp                                    ; 5d
    12999     pop si                                    ; 5e
    13000     retn                                      ; c3
     13089    mov word [bp+012h], ax                    ; 89 46 12
     13090    mov word [bp+018h], dx                    ; 89 56 18
     13091    jmp short 08d6ch                          ; eb 37
     13092    mov word [bp+012h], 00102h                ; c7 46 12 02 01
     13093    jmp short 08d6ch                          ; eb 30
    1300113094    or ah, 080h                               ; 80 cc 80
    13002     jmp short 08b92h                          ; eb ea
    13003     mov bx, 00d32h                            ; bb 32 0d
     13095    jmp short 08d2dh                          ; eb ec
     13096    mov bx, 00d38h                            ; bb 38 0d
    1300413097    mov cx, ds                                ; 8c d9
    1300513098    mov ax, strict word 00004h                ; b8 04 00
    13006     call 018aeh                               ; e8 fb 8c
    13007     push word [bp+00eh]                       ; ff 76 0e
    13008     push word [bp+014h]                       ; ff 76 14
     13099    call 018cch                               ; e8 80 8b
     13100    push word [bp+00ch]                       ; ff 76 0c
     13101    push word [bp+012h]                       ; ff 76 12
    1300913102    push 00cbbh                               ; 68 bb 0c
    1301013103    push strict byte 00004h                   ; 6a 04
    13011     call 018e9h                               ; e8 28 8d
     13104    call 0190dh                               ; e8 b3 8b
    1301213105    add sp, strict byte 00008h                ; 83 c4 08
    13013     mov ax, word [bp+014h]                    ; 8b 46 14
     13106    mov ax, word [bp+012h]                    ; 8b 46 12
    1301413107    xor ah, ah                                ; 30 e4
    1301513108    or ah, 00ch                               ; 80 cc 0c
    13016     mov word [bp+014h], ax                    ; 89 46 14
    13017     or byte [bp+01ah], 001h                   ; 80 4e 1a 01
     13109    mov word [bp+012h], ax                    ; 89 46 12
     13110    or byte [bp+018h], 001h                   ; 80 4e 18 01
     13111    lea sp, [bp-002h]                         ; 8d 66 fe
     13112    pop si                                    ; 5e
    1301813113    pop bp                                    ; 5d
    13019     pop si                                    ; 5e
    1302013114    retn                                      ; c3
    13021 pci16_select_reg_:                           ; 0xf8bd6 LB 0x21
    13022     push bx                                   ; 53
     13115pci16_select_reg_:                           ; 0xf8d72 LB 0x24
    1302313116    push bp                                   ; 55
    1302413117    mov bp, sp                                ; 89 e5
     13118    push bx                                   ; 53
    1302513119    and dl, 0fch                              ; 80 e2 fc
    1302613120    mov bx, dx                                ; 89 d3
     
    1303213126    ; mov al, bl                                ; 8a c3
    1303313127    out DX, eax                               ; 66 ef
     13128    lea sp, [bp-002h]                         ; 8d 66 fe
     13129    pop bx                                    ; 5b
    1303413130    pop bp                                    ; 5d
    13035     pop bx                                    ; 5b
    1303613131    retn                                      ; c3
    13037 pci16_find_device_:                          ; 0xf8bf7 LB 0xf2
     13132pci16_find_device_:                          ; 0xf8d96 LB 0xf7
     13133    push bp                                   ; 55
     13134    mov bp, sp                                ; 89 e5
    1303813135    push si                                   ; 56
    1303913136    push di                                   ; 57
    13040     enter 0000ch, 000h                        ; c8 0c 00 00
     13137    sub sp, strict byte 0000ch                ; 83 ec 0c
    1304113138    push ax                                   ; 50
    1304213139    push dx                                   ; 52
     
    1304513142    test cx, cx                               ; 85 c9
    1304613143    xor bx, bx                                ; 31 db
    13047     mov byte [bp-004h], 000h                  ; c6 46 fc 00
     13144    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1304813145    test bl, 007h                             ; f6 c3 07
    13049     jne short 08c3dh                          ; 75 2d
     13146    jne short 08ddeh                          ; 75 2d
    1305013147    mov dx, strict word 0000eh                ; ba 0e 00
    1305113148    mov ax, bx                                ; 89 d8
    13052     call 08bd6h                               ; e8 be ff
     13149    call 08d72h                               ; e8 b9 ff
    1305313150    mov dx, 00cfeh                            ; ba fe 0c
    1305413151    in AL, DX                                 ; ec
    1305513152    db  02ah, 0e4h
    1305613153    ; sub ah, ah                                ; 2a e4
    13057     mov byte [bp-002h], al                    ; 88 46 fe
     13154    mov byte [bp-006h], al                    ; 88 46 fa
    1305813155    cmp AL, strict byte 0ffh                  ; 3c ff
    13059     jne short 08c2bh                          ; 75 06
     13156    jne short 08dcch                          ; 75 06
    1306013157    add bx, strict byte 00008h                ; 83 c3 08
    13061     jmp near 08cbeh                           ; e9 93 00
    13062     test byte [bp-002h], 080h                 ; f6 46 fe 80
    13063     je short 08c38h                           ; 74 07
    13064     mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    13065     jmp short 08c3dh                          ; eb 05
    13066     mov word [bp-006h], strict word 00008h    ; c7 46 fa 08 00
    13067     mov al, byte [bp-002h]                    ; 8a 46 fe
     13158    jmp near 08e5fh                           ; e9 93 00
     13159    test byte [bp-006h], 080h                 ; f6 46 fa 80
     13160    je short 08dd9h                           ; 74 07
     13161    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
     13162    jmp short 08ddeh                          ; eb 05
     13163    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
     13164    mov al, byte [bp-006h]                    ; 8a 46 fa
    1306813165    and AL, strict byte 007h                  ; 24 07
    1306913166    cmp AL, strict byte 001h                  ; 3c 01
    13070     jne short 08c65h                          ; 75 1f
     13167    jne short 08e06h                          ; 75 1f
    1307113168    mov ax, bx                                ; 89 d8
    1307213169    shr ax, 008h                              ; c1 e8 08
    1307313170    test ax, ax                               ; 85 c0
    13074     jne short 08c65h                          ; 75 16
     13171    jne short 08e06h                          ; 75 16
    1307513172    mov dx, strict word 0001ah                ; ba 1a 00
    1307613173    mov ax, bx                                ; 89 d8
    13077     call 08bd6h                               ; e8 7f ff
     13174    call 08d72h                               ; e8 7a ff
    1307813175    mov dx, 00cfeh                            ; ba fe 0c
    1307913176    in AL, DX                                 ; ec
    1308013177    db  02ah, 0e4h
    1308113178    ; sub ah, ah                                ; 2a e4
    13082     cmp al, byte [bp-004h]                    ; 3a 46 fc
    13083     jbe short 08c65h                          ; 76 03
    13084     mov byte [bp-004h], al                    ; 88 46 fc
     13179    cmp al, byte [bp-008h]                    ; 3a 46 f8
     13180    jbe short 08e06h                          ; 76 03
     13181    mov byte [bp-008h], al                    ; 88 46 f8
    1308513182    test di, di                               ; 85 ff
    13086     je short 08c6eh                           ; 74 05
     13183    je short 08e0fh                           ; 74 05
    1308713184    mov dx, strict word 00008h                ; ba 08 00
    13088     jmp short 08c70h                          ; eb 02
     13185    jmp short 08e11h                          ; eb 02
    1308913186    xor dx, dx                                ; 31 d2
    1309013187    mov ax, bx                                ; 89 d8
    13091     call 08bd6h                               ; e8 61 ff
     13188    call 08d72h                               ; e8 5c ff
    1309213189    mov dx, 00cfch                            ; ba fc 0c
    1309313190    in eax, DX                                ; 66 ed
     
    1309613193    shr eax, 010h                             ; 66 c1 e8 10
    1309713194    xchg dx, ax                               ; 92
    13098     mov word [bp-00ah], ax                    ; 89 46 f6
    13099     mov word [bp-008h], dx                    ; 89 56 f8
    13100     mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
     13195    mov word [bp-00eh], ax                    ; 89 46 f2
     13196    mov word [bp-00ch], dx                    ; 89 56 f4
     13197    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1310113198    test di, di                               ; 85 ff
    13102     je short 08c9fh                           ; 74 0f
     13199    je short 08e40h                           ; 74 0f
    1310313200    mov cx, strict word 00008h                ; b9 08 00
    1310413201    shr dx, 1                                 ; d1 ea
    1310513202    rcr ax, 1                                 ; d1 d8
    13106     loop 08c93h                               ; e2 fa
    13107     mov word [bp-00ah], ax                    ; 89 46 f6
    13108     mov word [bp-008h], dx                    ; 89 56 f8
    13109     mov ax, word [bp-008h]                    ; 8b 46 f8
    13110     cmp ax, word [bp-010h]                    ; 3b 46 f0
    13111     jne short 08cafh                          ; 75 08
    13112     mov ax, word [bp-00ah]                    ; 8b 46 f6
    13113     cmp ax, word [bp-00eh]                    ; 3b 46 f2
    13114     je short 08cb5h                           ; 74 06
    13115     cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    13116     je short 08cbbh                           ; 74 06
     13203    loop 08e34h                               ; e2 fa
     13204    mov word [bp-00eh], ax                    ; 89 46 f2
     13205    mov word [bp-00ch], dx                    ; 89 56 f4
     13206    mov ax, word [bp-00ch]                    ; 8b 46 f4
     13207    cmp ax, word [bp-014h]                    ; 3b 46 ec
     13208    jne short 08e50h                          ; 75 08
     13209    mov ax, word [bp-00eh]                    ; 8b 46 f2
     13210    cmp ax, word [bp-012h]                    ; 3b 46 ee
     13211    je short 08e56h                           ; 74 06
     13212    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
     13213    je short 08e5ch                           ; 74 06
    1311713214    dec si                                    ; 4e
    1311813215    cmp si, strict byte 0ffffh                ; 83 fe ff
    13119     je short 08ccdh                           ; 74 12
    13120     add bx, word [bp-006h]                    ; 03 5e fa
     13216    je short 08e6eh                           ; 74 12
     13217    add bx, word [bp-00ah]                    ; 03 5e f6
    1312113218    mov dx, bx                                ; 89 da
    1312213219    shr dx, 008h                              ; c1 ea 08
    13123     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     13220    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1312413221    cmp dx, ax                                ; 39 c2
    13125     jbe near 08c0bh                           ; 0f 86 3e ff
     13222    jbe near 08dach                           ; 0f 86 3e ff
    1312613223    cmp si, strict byte 0ffffh                ; 83 fe ff
    13127     jne short 08cd6h                          ; 75 04
     13224    jne short 08e77h                          ; 75 04
    1312813225    mov ax, bx                                ; 89 d8
    13129     jmp short 08cd9h                          ; eb 03
     13226    jmp short 08e7ah                          ; eb 03
    1313013227    mov ax, strict word 0ffffh                ; b8 ff ff
    13131     leave                                     ; c9
     13228    lea sp, [bp-004h]                         ; 8d 66 fc
    1313213229    pop di                                    ; 5f
    1313313230    pop si                                    ; 5e
     13231    pop bp                                    ; 5d
    1313413232    retn                                      ; c3
    13135     db  0c9h, 08dh, 0e3h, 08dh, 0f6h, 08dh, 00bh, 08eh, 01eh, 08eh, 030h, 08eh
    13136 _pci16_function:                             ; 0xf8ce9 LB 0x1bb
     13233    outsw                                     ; 6f
     13234    db  08fh, 089h, 08fh, 09ch
     13235    ; pop word [bx+di-06371h]                   ; 8f 89 8f 9c
     13236    db  08fh, 0b1h, 08fh, 0c4h
     13237    ; pop word [bx+di-03b71h]                   ; 8f b1 8f c4
     13238    db  08fh, 0d7h
     13239    ; pop di                                    ; 8f d7
     13240    db  08fh
     13241_pci16_function:                             ; 0xf8e8d LB 0x1d7
     13242    push bp                                   ; 55
     13243    mov bp, sp                                ; 89 e5
    1313713244    push si                                   ; 56
    1313813245    push di                                   ; 57
    13139     push bp                                   ; 55
    13140     mov bp, sp                                ; 89 e5
    13141     and word [bp+024h], 000ffh                ; 81 66 24 ff 00
    13142     and word [bp+030h], strict byte 0fffeh    ; 83 66 30 fe
    13143     mov bx, word [bp+024h]                    ; 8b 5e 24
     13246    push ax                                   ; 50
     13247    push ax                                   ; 50
     13248    and word [bp+020h], 000ffh                ; 81 66 20 ff 00
     13249    and word [bp+02ch], strict byte 0fffeh    ; 83 66 2c fe
     13250    mov bx, word [bp+020h]                    ; 8b 5e 20
    1314413251    xor bh, bh                                ; 30 ff
    13145     mov ax, word [bp+024h]                    ; 8b 46 24
     13252    mov ax, word [bp+020h]                    ; 8b 46 20
    1314613253    xor ah, ah                                ; 30 e4
    1314713254    cmp bx, strict byte 00003h                ; 83 fb 03
    13148     jc short 08d20h                           ; 72 1a
    13149     jbe short 08d78h                          ; 76 70
     13255    jc short 08ec6h                           ; 72 1a
     13256    jbe short 08f1eh                          ; 76 70
    1315013257    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13151     je near 08e44h                            ; 0f 84 35 01
     13258    je near 08febh                            ; 0f 84 36 01
    1315213259    cmp bx, strict byte 00008h                ; 83 fb 08
    13153     jc near 08e73h                            ; 0f 82 5d 01
     13260    jc near 09030h                            ; 0f 82 74 01
    1315413261    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13155     jbe near 08d9dh                           ; 0f 86 80 00
    13156     jmp near 08e73h                           ; e9 53 01
     13262    jbe near 08f43h                           ; 0f 86 80 00
     13263    jmp near 09030h                           ; e9 6a 01
    1315713264    cmp bx, strict byte 00002h                ; 83 fb 02
    13158     je short 08d48h                           ; 74 23
     13265    je short 08eeeh                           ; 74 23
    1315913266    cmp bx, strict byte 00001h                ; 83 fb 01
    13160     jne near 08e73h                           ; 0f 85 47 01
    13161     mov word [bp+024h], strict word 00001h    ; c7 46 24 01 00
    13162     mov word [bp+018h], 00210h                ; c7 46 18 10 02
    13163     mov word [bp+020h], strict word 00000h    ; c7 46 20 00 00
    13164     mov word [bp+01ch], 04350h                ; c7 46 1c 50 43
    13165     mov word [bp+01eh], 02049h                ; c7 46 1e 49 20
    13166     jmp near 08ea0h                           ; e9 58 01
    13167     cmp word [bp+01ch], strict byte 0ffffh    ; 83 7e 1c ff
    13168     jne short 08d54h                          ; 75 06
     13267    jne near 09030h                           ; 0f 85 5e 01
     13268    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
     13269    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     13270    mov word [bp+01ch], strict word 00000h    ; c7 46 1c 00 00
     13271    mov word [bp+018h], 04350h                ; c7 46 18 50 43
     13272    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
     13273    jmp near 0905dh                           ; e9 6f 01
     13274    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
     13275    jne short 08efah                          ; 75 06
    1316913276    or ah, 083h                               ; 80 cc 83
    13170     jmp near 08e99h                           ; e9 45 01
    13171     mov bx, word [bp+00ch]                    ; 8b 5e 0c
    13172     mov dx, word [bp+020h]                    ; 8b 56 20
    13173     mov ax, word [bp+01ch]                    ; 8b 46 1c
     13277    jmp near 09056h                           ; e9 5c 01
     13278    mov bx, word [bp+008h]                    ; 8b 5e 08
     13279    mov dx, word [bp+01ch]                    ; 8b 56 1c
     13280    mov ax, word [bp+018h]                    ; 8b 46 18
    1317413281    xor cx, cx                                ; 31 c9
    13175     call 08bf7h                               ; e8 95 fe
     13282    call 08d96h                               ; e8 8e fe
    1317613283    cmp ax, strict word 0ffffh                ; 3d ff ff
    13177     jne short 08d72h                          ; 75 0b
    13178     mov ax, word [bp+024h]                    ; 8b 46 24
     13284    jne short 08f18h                          ; 75 0b
     13285    mov ax, word [bp+020h]                    ; 8b 46 20
    1317913286    xor ah, ah                                ; 30 e4
    1318013287    or ah, 086h                               ; 80 cc 86
    13181     jmp near 08e99h                           ; e9 27 01
    13182     mov word [bp+018h], ax                    ; 89 46 18
    13183     jmp near 08ea0h                           ; e9 28 01
    13184     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     13288    jmp near 09056h                           ; e9 3e 01
     13289    mov word [bp+014h], ax                    ; 89 46 14
     13290    jmp near 0905dh                           ; e9 3f 01
     13291    mov bx, word [bp+008h]                    ; 8b 5e 08
     13292    mov ax, word [bp+01ch]                    ; 8b 46 1c
     13293    mov dx, word [bp+01eh]                    ; 8b 56 1e
     13294    mov cx, strict word 00001h                ; b9 01 00
     13295    call 08d96h                               ; e8 69 fe
     13296    cmp ax, strict word 0ffffh                ; 3d ff ff
     13297    jne short 08f3dh                          ; 75 0b
    1318513298    mov ax, word [bp+020h]                    ; 8b 46 20
    13186     mov dx, word [bp+022h]                    ; 8b 56 22
    13187     mov cx, strict word 00001h                ; b9 01 00
    13188     call 08bf7h                               ; e8 70 fe
    13189     cmp ax, strict word 0ffffh                ; 3d ff ff
    13190     jne short 08d97h                          ; 75 0b
    13191     mov ax, word [bp+024h]                    ; 8b 46 24
    1319213299    xor ah, ah                                ; 30 e4
    1319313300    or ah, 086h                               ; 80 cc 86
    13194     jmp near 08e99h                           ; e9 02 01
    13195     mov word [bp+018h], ax                    ; 89 46 18
    13196     jmp near 08ea0h                           ; e9 03 01
    13197     cmp word [bp+008h], 00100h                ; 81 7e 08 00 01
    13198     jc short 08daah                           ; 72 06
     13301    jmp near 09056h                           ; e9 19 01
     13302    mov word [bp+014h], ax                    ; 89 46 14
     13303    jmp near 0905dh                           ; e9 1a 01
     13304    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
     13305    jc short 08f50h                           ; 72 06
    1319913306    or ah, 087h                               ; 80 cc 87
    13200     jmp near 08e99h                           ; e9 ef 00
    13201     mov dx, word [bp+008h]                    ; 8b 56 08
    13202     mov ax, word [bp+018h]                    ; 8b 46 18
    13203     call 08bd6h                               ; e8 23 fe
    13204     mov bx, word [bp+024h]                    ; 8b 5e 24
     13307    jmp near 09056h                           ; e9 06 01
     13308    mov dx, word [bp+004h]                    ; 8b 56 04
     13309    mov ax, word [bp+014h]                    ; 8b 46 14
     13310    call 08d72h                               ; e8 19 fe
     13311    mov bx, word [bp+020h]                    ; 8b 5e 20
    1320513312    xor bh, bh                                ; 30 ff
    1320613313    sub bx, strict byte 00008h                ; 83 eb 08
    1320713314    cmp bx, strict byte 00005h                ; 83 fb 05
    13208     jnbe near 08ea0h                          ; 0f 87 de 00
     13315    jnbe near 0905dh                          ; 0f 87 f5 00
    1320913316    add bx, bx                                ; 01 db
    13210     jmp word [cs:bx-07323h]                   ; 2e ff a7 dd 8c
    13211     mov bx, word [bp+020h]                    ; 8b 5e 20
     13317    jmp word [cs:bx-0717fh]                   ; 2e ff a7 81 8e
     13318    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1321213319    xor bl, bl                                ; 30 db
    13213     mov dx, word [bp+008h]                    ; 8b 56 08
     13320    mov dx, word [bp+004h]                    ; 8b 56 04
    1321413321    and dx, strict byte 00003h                ; 83 e2 03
    1321513322    add dx, 00cfch                            ; 81 c2 fc 0c
     
    1321813325    ; sub ah, ah                                ; 2a e4
    1321913326    or bx, ax                                 ; 09 c3
    13220     mov word [bp+020h], bx                    ; 89 5e 20
    13221     jmp near 08ea0h                           ; e9 bd 00
    13222     mov dx, word [bp+008h]                    ; 8b 56 08
     13327    mov word [bp+01ch], bx                    ; 89 5e 1c
     13328    jmp near 0905dh                           ; e9 d4 00
     13329    mov dx, word [bp+004h]                    ; 8b 56 04
    1322313330    xor dh, dh                                ; 30 f6
    1322413331    and dl, 002h                              ; 80 e2 02
    1322513332    add dx, 00cfch                            ; 81 c2 fc 0c
    1322613333    in ax, DX                                 ; ed
    13227     mov word [bp+020h], ax                    ; 89 46 20
    13228     jmp near 08ea0h                           ; e9 aa 00
     13334    mov word [bp+01ch], ax                    ; 89 46 1c
     13335    jmp near 0905dh                           ; e9 c1 00
    1322913336    mov dx, 00cfch                            ; ba fc 0c
    1323013337    in eax, DX                                ; 66 ed
     
    1323313340    shr eax, 010h                             ; 66 c1 e8 10
    1323413341    xchg dx, ax                               ; 92
    13235     mov word [bp+020h], ax                    ; 89 46 20
    13236     mov word [bp+022h], dx                    ; 89 56 22
    13237     jmp near 08ea0h                           ; e9 95 00
    13238     mov ax, word [bp+020h]                    ; 8b 46 20
    13239     mov dx, word [bp+008h]                    ; 8b 56 08
     13342    mov word [bp+01ch], ax                    ; 89 46 1c
     13343    mov word [bp+01eh], dx                    ; 89 56 1e
     13344    jmp near 0905dh                           ; e9 ac 00
     13345    mov ax, word [bp+01ch]                    ; 8b 46 1c
     13346    mov dx, word [bp+004h]                    ; 8b 56 04
    1324013347    xor dh, dh                                ; 30 f6
    1324113348    and dl, 003h                              ; 80 e2 03
    1324213349    add dx, 00cfch                            ; 81 c2 fc 0c
    1324313350    out DX, AL                                ; ee
    13244     jmp near 08ea0h                           ; e9 82 00
    13245     mov ax, word [bp+020h]                    ; 8b 46 20
    13246     mov dx, word [bp+008h]                    ; 8b 56 08
     13351    jmp near 0905dh                           ; e9 99 00
     13352    mov ax, word [bp+01ch]                    ; 8b 46 1c
     13353    mov dx, word [bp+004h]                    ; 8b 56 04
    1324713354    xor dh, dh                                ; 30 f6
    1324813355    and dl, 002h                              ; 80 e2 02
    1324913356    add dx, 00cfch                            ; 81 c2 fc 0c
    1325013357    out DX, ax                                ; ef
    13251     jmp short 08ea0h                          ; eb 70
    13252     mov ax, word [bp+020h]                    ; 8b 46 20
    13253     mov cx, word [bp+022h]                    ; 8b 4e 22
     13358    jmp near 0905dh                           ; e9 86 00
     13359    mov ax, word [bp+01ch]                    ; 8b 46 1c
     13360    mov cx, word [bp+01eh]                    ; 8b 4e 1e
    1325413361    mov dx, 00cfch                            ; ba fc 0c
    1325513362    xchg cx, ax                               ; 91
     
    1325813365    ; mov ax, cx                                ; 8b c1
    1325913366    out DX, eax                               ; 66 ef
    13260     jmp short 08ea0h                          ; eb 5c
    13261     mov bx, word [bp+008h]                    ; 8b 5e 08
    13262     mov es, [bp+028h]                         ; 8e 46 28
     13367    jmp short 0905dh                          ; eb 72
     13368    mov bx, word [bp+004h]                    ; 8b 5e 04
     13369    mov es, [bp+026h]                         ; 8e 46 26
     13370    mov word [bp-008h], bx                    ; 89 5e f8
     13371    mov [bp-006h], es                         ; 8c 46 fa
    1326313372    mov cx, word [word 00000h]                ; 8b 0e 00 00
    1326413373    cmp cx, word [es:bx]                      ; 26 3b 0f
    13265     jbe short 08e5dh                          ; 76 0a
    13266     mov ax, word [bp+024h]                    ; 8b 46 24
     13374    jbe short 09011h                          ; 76 11
     13375    mov ax, word [bp+020h]                    ; 8b 46 20
    1326713376    xor ah, ah                                ; 30 e4
    1326813377    or ah, 089h                               ; 80 cc 89
    13269     jmp short 08e99h                          ; eb 3c
     13378    mov word [bp+020h], ax                    ; 89 46 20
     13379    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
     13380    jmp short 09025h                          ; eb 14
    1327013381    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1327113382    mov si, 0f2c0h                            ; be c0 f2
     
    1327513386    rep movsb                                 ; f3 a4
    1327613387    pop DS                                    ; 1f
    13277     mov word [bp+018h], 00a00h                ; c7 46 18 00 0a
    13278     jmp short 08ea0h                          ; eb 2d
    13279     mov bx, 00d32h                            ; bb 32 0d
     13388    mov word [bp+014h], 00a00h                ; c7 46 14 00 0a
     13389    mov ax, word [00000h]                     ; a1 00 00
     13390    les bx, [bp-008h]                         ; c4 5e f8
     13391    mov word [es:bx], ax                      ; 26 89 07
     13392    jmp short 0905dh                          ; eb 2d
     13393    mov bx, 00d38h                            ; bb 38 0d
    1328013394    mov cx, ds                                ; 8c d9
    1328113395    mov ax, strict word 00004h                ; b8 04 00
    13282     call 018aeh                               ; e8 30 8a
    13283     mov ax, word [bp+018h]                    ; 8b 46 18
     13396    call 018cch                               ; e8 91 88
     13397    mov ax, word [bp+014h]                    ; 8b 46 14
    1328413398    push ax                                   ; 50
    13285     mov ax, word [bp+024h]                    ; 8b 46 24
     13399    mov ax, word [bp+020h]                    ; 8b 46 20
    1328613400    push ax                                   ; 50
    1328713401    push 00ceeh                               ; 68 ee 0c
    1328813402    push strict byte 00004h                   ; 6a 04
    13289     call 018e9h                               ; e8 5b 8a
     13403    call 0190dh                               ; e8 c2 88
    1329013404    add sp, strict byte 00008h                ; 83 c4 08
    13291     mov ax, word [bp+024h]                    ; 8b 46 24
     13405    mov ax, word [bp+020h]                    ; 8b 46 20
    1329213406    xor ah, ah                                ; 30 e4
    1329313407    or ah, 081h                               ; 80 cc 81
    13294     mov word [bp+024h], ax                    ; 89 46 24
    13295     or word [bp+030h], strict byte 00001h     ; 83 4e 30 01
    13296     pop bp                                    ; 5d
     13408    mov word [bp+020h], ax                    ; 89 46 20
     13409    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
     13410    lea sp, [bp-004h]                         ; 8d 66 fc
    1329713411    pop di                                    ; 5f
    1329813412    pop si                                    ; 5e
     13413    pop bp                                    ; 5d
    1329913414    retn                                      ; c3
    13300 pci_find_classcode_:                         ; 0xf8ea4 LB 0x28
     13415pci_find_classcode_:                         ; 0xf9064 LB 0x2b
     13416    push bp                                   ; 55
     13417    mov bp, sp                                ; 89 e5
    1330113418    push bx                                   ; 53
    1330213419    push cx                                   ; 51
    1330313420    push si                                   ; 56
    13304     push bp                                   ; 55
    13305     mov bp, sp                                ; 89 e5
    1330613421    mov cx, dx                                ; 89 d1
    1330713422    xor si, si                                ; 31 f6
     
    1331313428    int 01ah                                  ; cd 1a
    1331413429    cmp ah, 000h                              ; 80 fc 00
    13315     je near 08ec5h                            ; 0f 84 03 00
     13430    je near 09085h                            ; 0f 84 03 00
    1331613431    mov bx, strict word 0ffffh                ; bb ff ff
    1331713432    mov ax, bx                                ; 89 d8
    13318     pop bp                                    ; 5d
     13433    lea sp, [bp-006h]                         ; 8d 66 fa
    1331913434    pop si                                    ; 5e
    1332013435    pop cx                                    ; 59
    1332113436    pop bx                                    ; 5b
     13437    pop bp                                    ; 5d
    1332213438    retn                                      ; c3
    13323 pci_read_config_byte_:                       ; 0xf8ecc LB 0x21
     13439pci_read_config_byte_:                       ; 0xf908f LB 0x24
     13440    push bp                                   ; 55
     13441    mov bp, sp                                ; 89 e5
    1332413442    push cx                                   ; 51
    1332513443    push di                                   ; 57
    13326     push bp                                   ; 55
    13327     mov bp, sp                                ; 89 e5
    1332813444    movzx di, bl                              ; 0f b6 fb
    1332913445    movzx bx, al                              ; 0f b6 d8
     
    1333513451    movzx ax, cl                              ; 0f b6 c1
    1333613452    xor dx, dx                                ; 31 d2
    13337     pop bp                                    ; 5d
     13453    lea sp, [bp-004h]                         ; 8d 66 fc
    1333813454    pop di                                    ; 5f
    1333913455    pop cx                                    ; 59
     13456    pop bp                                    ; 5d
    1334013457    retn                                      ; c3
    13341 pci_read_config_word_:                       ; 0xf8eed LB 0x1f
     13458pci_read_config_word_:                       ; 0xf90b3 LB 0x22
     13459    push bp                                   ; 55
     13460    mov bp, sp                                ; 89 e5
    1334213461    push cx                                   ; 51
    1334313462    push di                                   ; 57
    13344     push bp                                   ; 55
    13345     mov bp, sp                                ; 89 e5
    1334613463    movzx di, bl                              ; 0f b6 fb
    1334713464    xor ah, ah                                ; 30 e4
     
    1335313470    mov ax, cx                                ; 89 c8
    1335413471    xor dx, dx                                ; 31 d2
    13355     pop bp                                    ; 5d
     13472    lea sp, [bp-004h]                         ; 8d 66 fc
    1335613473    pop di                                    ; 5f
    1335713474    pop cx                                    ; 59
     13475    pop bp                                    ; 5d
    1335813476    retn                                      ; c3
    13359 pci_read_config_dword_:                      ; 0xf8f0c LB 0x24
     13477pci_read_config_dword_:                      ; 0xf90d5 LB 0x27
     13478    push bp                                   ; 55
     13479    mov bp, sp                                ; 89 e5
    1336013480    push cx                                   ; 51
    1336113481    push di                                   ; 57
    13362     push bp                                   ; 55
    13363     mov bp, sp                                ; 89 e5
    1336413482    movzx di, bl                              ; 0f b6 fb
    1336513483    movzx bx, al                              ; 0f b6 d8
     
    1337313491    shr ecx, 010h                             ; 66 c1 e9 10
    1337413492    mov dx, cx                                ; 89 ca
    13375     pop bp                                    ; 5d
     13493    lea sp, [bp-004h]                         ; 8d 66 fc
    1337613494    pop di                                    ; 5f
    1337713495    pop cx                                    ; 59
     13496    pop bp                                    ; 5d
    1337813497    retn                                      ; c3
    13379 vds_is_present_:                             ; 0xf8f30 LB 0x1d
     13498vds_is_present_:                             ; 0xf90fc LB 0x1d
    1338013499    push bx                                   ; 53
    1338113500    push bp                                   ; 55
     
    1338513504    mov es, ax                                ; 8e c0
    1338613505    test byte [es:bx], 020h                   ; 26 f6 07 20
    13387     je short 08f48h                           ; 74 06
     13506    je short 09114h                           ; 74 06
    1338813507    mov ax, strict word 00001h                ; b8 01 00
    1338913508    pop bp                                    ; 5d
     
    1339413513    pop bx                                    ; 5b
    1339513514    retn                                      ; c3
    13396 vds_real_to_lin_:                            ; 0xf8f4d LB 0x1e
     13515vds_real_to_lin_:                            ; 0xf9119 LB 0x1e
    1339713516    push bx                                   ; 53
    1339813517    push cx                                   ; 51
     
    1340513524    sal ax, 1                                 ; d1 e0
    1340613525    rcl dx, 1                                 ; d1 d2
    13407     loop 08f5bh                               ; e2 fa
     13526    loop 09127h                               ; e2 fa
    1340813527    xor cx, cx                                ; 31 c9
    1340913528    add ax, bx                                ; 01 d8
     
    1341313532    pop bx                                    ; 5b
    1341413533    retn                                      ; c3
    13415 vds_build_sg_list_:                          ; 0xf8f6b LB 0x76
     13534vds_build_sg_list_:                          ; 0xf9137 LB 0x79
     13535    push bp                                   ; 55
     13536    mov bp, sp                                ; 89 e5
    1341613537    push si                                   ; 56
    1341713538    push di                                   ; 57
    13418     push bp                                   ; 55
    13419     mov bp, sp                                ; 89 e5
    1342013539    mov di, ax                                ; 89 c7
    1342113540    mov si, dx                                ; 89 d6
    1342213541    mov ax, bx                                ; 89 d8
    1342313542    mov dx, cx                                ; 89 ca
    13424     mov bx, word [bp+008h]                    ; 8b 5e 08
     13543    mov bx, word [bp+004h]                    ; 8b 5e 04
    1342513544    mov es, si                                ; 8e c6
    1342613545    mov word [es:di], bx                      ; 26 89 1d
    13427     mov bx, word [bp+00ah]                    ; 8b 5e 0a
     13546    mov bx, word [bp+006h]                    ; 8b 5e 06
    1342813547    mov word [es:di+002h], bx                 ; 26 89 5d 02
    13429     call 08f4dh                               ; e8 c3 ff
     13548    call 09119h                               ; e8 c3 ff
    1343013549    mov es, si                                ; 8e c6
    1343113550    mov word [es:di+004h], ax                 ; 26 89 45 04
    1343213551    mov word [es:di+006h], dx                 ; 26 89 55 06
    1343313552    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    13434     call 08f30h                               ; e8 93 ff
     13553    call 090fch                               ; e8 93 ff
    1343513554    test ax, ax                               ; 85 c0
    13436     je short 08fb4h                           ; 74 13
     13555    je short 09180h                           ; 74 13
    1343713556    mov es, si                                ; 8e c6
    1343813557    mov ax, 08105h                            ; b8 05 81
    1343913558    mov dx, strict word 00000h                ; ba 00 00
    1344013559    int 04bh                                  ; cd 4b
    13441     jc near 08fb1h                            ; 0f 82 02 00
     13560    jc near 0917dh                            ; 0f 82 02 00
    1344213561    db  032h, 0c0h
    1344313562    ; xor al, al                                ; 32 c0
    1344413563    cbw                                       ; 98
    13445     jmp short 08fdbh                          ; eb 27
     13564    jmp short 091a7h                          ; eb 27
    1344613565    mov es, si                                ; 8e c6
    1344713566    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1345013569    mov word [es:di+010h], dx                 ; 26 89 55 10
    1345113570    mov word [es:di+012h], ax                 ; 26 89 45 12
    13452     mov ax, word [bp+008h]                    ; 8b 46 08
     13571    mov ax, word [bp+004h]                    ; 8b 46 04
    1345313572    mov word [es:di+014h], ax                 ; 26 89 45 14
    1345413573    mov ax, bx                                ; 89 d8
    1345513574    mov word [es:di+016h], bx                 ; 26 89 5d 16
    1345613575    xor ax, bx                                ; 31 d8
    13457     pop bp                                    ; 5d
     13576    lea sp, [bp-004h]                         ; 8d 66 fc
    1345813577    pop di                                    ; 5f
    1345913578    pop si                                    ; 5e
     13579    pop bp                                    ; 5d
    1346013580    retn 00004h                               ; c2 04 00
    13461 vds_free_sg_list_:                           ; 0xf8fe1 LB 0x2f
     13581vds_free_sg_list_:                           ; 0xf91b0 LB 0x30
     13582    push bp                                   ; 55
     13583    mov bp, sp                                ; 89 e5
    1346213584    push bx                                   ; 53
    1346313585    push di                                   ; 57
    13464     push bp                                   ; 55
    13465     mov bp, sp                                ; 89 e5
    1346613586    mov bx, ax                                ; 89 c3
    13467     call 08f30h                               ; e8 45 ff
     13587    call 090fch                               ; e8 42 ff
    1346813588    test ax, ax                               ; 85 c0
    13469     je short 09002h                           ; 74 13
     13589    je short 091d1h                           ; 74 13
    1347013590    mov di, bx                                ; 89 df
    1347113591    mov es, dx                                ; 8e c2
     
    1347313593    mov dx, strict word 00000h                ; ba 00 00
    1347413594    int 04bh                                  ; cd 4b
    13475     jc near 09001h                            ; 0f 82 02 00
     13595    jc near 091d0h                            ; 0f 82 02 00
    1347613596    db  032h, 0c0h
    1347713597    ; xor al, al                                ; 32 c0
     
    1347913599    mov es, dx                                ; 8e c2
    1348013600    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
    13481     pop bp                                    ; 5d
     13601    lea sp, [bp-004h]                         ; 8d 66 fc
    1348213602    pop di                                    ; 5f
    1348313603    pop bx                                    ; 5b
     13604    pop bp                                    ; 5d
    1348413605    retn                                      ; c3
    13485     times 0x2 db 0
    13486 __U4D:                                       ; 0xf9010 LB 0x39
     13606__U4D:                                       ; 0xf91e0 LB 0x39
    1348713607    pushfw                                    ; 9c
    1348813608    push eax                                  ; 66 50
     
    1351413634    popfw                                     ; 9d
    1351513635    retn                                      ; c3
    13516 __U4M:                                       ; 0xf9049 LB 0x31
     13636__U4M:                                       ; 0xf9219 LB 0x31
    1351713637    pushfw                                    ; 9c
    1351813638    push eax                                  ; 66 50
     
    1353913659    popfw                                     ; 9d
    1354013660    retn                                      ; c3
    13541 _fmemset_:                                   ; 0xf907a LB 0xd
     13661_fmemset_:                                   ; 0xf924a LB 0xd
    1354213662    push di                                   ; 57
    1354313663    mov es, dx                                ; 8e c2
     
    1354913669    pop di                                    ; 5f
    1355013670    retn                                      ; c3
    13551 _fmemcpy_:                                   ; 0xf9087 LB 0x33
     13671_fmemcpy_:                                   ; 0xf9257 LB 0x33
    1355213672    push bp                                   ; 55
    1355313673    db  08bh, 0ech
     
    1356913689    leave                                     ; c9
    1357013690    retn                                      ; c3
    13571     add al, dl                                ; 00 d0
    13572     nop                                       ; 90
    13573     rcl byte [bx+si-06f2ah], CL               ; d2 90 d6 90
    13574     db  0d6h
    13575     nop                                       ; 90
    13576     db  0d6h
    13577     nop                                       ; 90
    13578     fcom dword [bx+si-06f28h]                 ; d8 90 d8 90
    13579     ficom dword [bx+si-06f22h]                ; da 90 de 90
    13580     ficom word [bx+si-06f20h]                 ; de 90 e0 90
    13581     in ax, 090h                               ; e5 90
    13582     out 090h, ax                              ; e7 90
    13583 apm_worker:                                  ; 0xf90ba LB 0x3a
     13691    add byte [bx+si-05d6eh], ah               ; 00 a0 92 a2
     13692    xchg dx, ax                               ; 92
     13693    cmpsb                                     ; a6
     13694    xchg dx, ax                               ; 92
     13695    cmpsb                                     ; a6
     13696    xchg dx, ax                               ; 92
     13697    cmpsb                                     ; a6
     13698    xchg dx, ax                               ; 92
     13699    test AL, strict byte 092h                 ; a8 92
     13700    test AL, strict byte 092h                 ; a8 92
     13701    stosb                                     ; aa
     13702    xchg dx, ax                               ; 92
     13703    scasb                                     ; ae
     13704    xchg dx, ax                               ; 92
     13705    scasb                                     ; ae
     13706    xchg dx, ax                               ; 92
     13707    mov AL, strict byte 092h                  ; b0 92
     13708    mov CH, strict byte 092h                  ; b5 92
     13709    mov BH, strict byte 092h                  ; b7 92
     13710apm_worker:                                  ; 0xf928a LB 0x3a
    1358413711    sti                                       ; fb
    1358513712    push ax                                   ; 50
     
    1359313720    pop ax                                    ; 58
    1359413721    mov AH, strict byte 053h                  ; b4 53
    13595     jnc short 090f0h                          ; 73 25
    13596     jmp word [cs:bp-06f60h]                   ; 2e ff a6 a0 90
    13597     jmp short 090eeh                          ; eb 1c
     13722    jnc short 092c0h                          ; 73 25
     13723    jmp word [cs:bp-06d90h]                   ; 2e ff a6 70 92
     13724    jmp short 092beh                          ; eb 1c
    1359813725    sti                                       ; fb
    1359913726    hlt                                       ; f4
    13600     jmp short 090eeh                          ; eb 18
    13601     jmp short 090eeh                          ; eb 16
    13602     jmp short 090f0h                          ; eb 16
     13727    jmp short 092beh                          ; eb 18
     13728    jmp short 092beh                          ; eb 16
     13729    jmp short 092c0h                          ; eb 16
    1360313730    mov AH, strict byte 080h                  ; b4 80
    13604     jmp short 090f2h                          ; eb 14
    13605     jmp short 090f0h                          ; eb 10
     13731    jmp short 092c2h                          ; eb 14
     13732    jmp short 092c0h                          ; eb 10
    1360613733    mov ax, 00102h                            ; b8 02 01
    13607     jmp short 090eeh                          ; eb 09
    13608     jmp short 090eeh                          ; eb 07
     13734    jmp short 092beh                          ; eb 09
     13735    jmp short 092beh                          ; eb 07
    1360913736    mov BL, strict byte 000h                  ; b3 00
    1361013737    mov cx, strict word 00000h                ; b9 00 00
    13611     jmp short 090eeh                          ; eb 00
     13738    jmp short 092beh                          ; eb 00
    1361213739    clc                                       ; f8
    1361313740    retn                                      ; c3
     
    1361513742    stc                                       ; f9
    1361613743    retn                                      ; c3
    13617 apm_pm16_entry:                              ; 0xf90f4 LB 0x11
     13744apm_pm16_entry:                              ; 0xf92c4 LB 0x11
    1361813745    mov AH, strict byte 002h                  ; b4 02
    1361913746    push DS                                   ; 1e
     
    1362313750    add bp, strict byte 00008h                ; 83 c5 08
    1362413751    mov ds, bp                                ; 8e dd
    13625     call 090bah                               ; e8 b8 ff
     13752    call 0928ah                               ; e8 b8 ff
    1362613753    pop bp                                    ; 5d
    1362713754    pop DS                                    ; 1f
    1362813755    retf                                      ; cb
    1362913756
    13630   ; Padding 0x48fb bytes at 0xf9105
    13631   times 18683 db 0
     13757  ; Padding 0x472b bytes at 0xf92d5
     13758  times 18219 db 0
    1363213759
    13633 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3aa class=CODE group=AUTO
     13760section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
    1363413761bios32_service:                              ; 0xfda00 LB 0x26
    1363513762    pushfw                                    ; 9c
     
    1365813785    push ES                                   ; 06
    1365913786    pushaw                                    ; 60
    13660     call 0db73h                               ; e8 46 01
     13787    call 0db78h                               ; e8 4b 01
    1366113788    add byte [bx+si], al                      ; 00 00
    1366213789    popaw                                     ; 61
     
    1367613803    add bp, strict byte 00008h                ; 83 c5 08
    1367713804    push ebp                                  ; 66 55
    13678     mov bp, 090f6h                            ; bd f6 90
     13805    mov bp, 092c6h                            ; bd c6 92
    1367913806    add byte [bx+si], al                      ; 00 00
    1368013807    push ebp                                  ; 66 55
     
    1368413811    pop bp                                    ; 5d
    1368513812    retf                                      ; cb
    13686 pci32_select_reg_:                           ; 0xfda61 LB 0x1f
    13687     push bx                                   ; 53
     13813pci32_select_reg_:                           ; 0xfda61 LB 0x22
    1368813814    push bp                                   ; 55
    1368913815    mov bp, sp                                ; 89 e5
     13816    push bx                                   ; 53
    1369013817    and dl, 0fch                              ; 80 e2 fc
    1369113818    mov bx, dx                                ; 89 d3
     
    1369813825    add byte [bx+si-03c76h], al               ; 00 80 8a c3
    1369913826    out DX, ax                                ; ef
     13827    lea sp, [di-004h]                         ; 8d 65 fc
     13828    pop bx                                    ; 5b
    1370013829    pop bp                                    ; 5d
    13701     pop bx                                    ; 5b
    1370213830    retn                                      ; c3
    13703 pci32_find_device_:                          ; 0xfda80 LB 0xf5
     13831pci32_find_device_:                          ; 0xfda83 LB 0xf7
     13832    push bp                                   ; 55
     13833    mov bp, sp                                ; 89 e5
    1370413834    push cx                                   ; 51
    1370513835    push si                                   ; 56
    1370613836    push di                                   ; 57
    13707     enter 00014h, 000h                        ; c8 14 00 00
     13837    sub sp, strict byte 00014h                ; 83 ec 14
    1370813838    push ax                                   ; 50
    1370913839    mov cx, dx                                ; 89 d1
     
    1371113841    test bx, bx                               ; 85 db
    1371213842    xor bx, bx                                ; 31 db
    13713     mov byte [di-004h], 000h                  ; c6 45 fc 00
     13843    mov byte [di-010h], 000h                  ; c6 45 f0 00
    1371413844    test bl, 007h                             ; f6 c3 07
    13715     jne short 0dacfh                          ; 75 36
     13845    jne short 0dad4h                          ; 75 36
    1371613846    db  00fh, 0b7h, 0c3h
    1371713847    ; movzx ax, bx                              ; 0f b7 c3
    1371813848    mov dx, strict word 0000eh                ; ba 0e 00
    1371913849    add byte [bx+si], al                      ; 00 00
    13720     call 0da5fh                               ; e8 bb ff
     13850    call 0da5fh                               ; e8 b6 ff
    1372113851    db  0ffh
    1372213852    db  0ffh
     
    1372613856    ; sub ax, ax                                ; 2b c0
    1372713857    in AL, DX                                 ; ec
    13728     mov byte [di-008h], al                    ; 88 45 f8
     13858    mov byte [di-014h], al                    ; 88 45 ec
    1372913859    cmp AL, strict byte 0ffh                  ; 3c ff
    13730     jne short 0dabdh                          ; 75 08
     13860    jne short 0dac2h                          ; 75 08
    1373113861    add bx, strict byte 00008h                ; 83 c3 08
    13732     jmp near 0db45h                           ; e9 8a 00
     13862    jmp near 0db4ah                           ; e9 8a 00
    1373313863    add byte [bx+si], al                      ; 00 00
    13734     test byte [di-008h], 080h                 ; f6 45 f8 80
    13735     je short 0dacah                           ; 74 07
     13864    test byte [di-014h], 080h                 ; f6 45 ec 80
     13865    je short 0dacfh                           ; 74 07
    1373613866    mov di, strict word 00001h                ; bf 01 00
    1373713867    add byte [bx+si], al                      ; 00 00
    13738     jmp short 0dacfh                          ; eb 05
     13868    jmp short 0dad4h                          ; eb 05
    1373913869    mov di, strict word 00008h                ; bf 08 00
    1374013870    add byte [bx+si], al                      ; 00 00
    13741     mov al, byte [di-008h]                    ; 8a 45 f8
     13871    mov al, byte [di-014h]                    ; 8a 45 ec
    1374213872    and AL, strict byte 007h                  ; 24 07
    1374313873    cmp AL, strict byte 001h                  ; 3c 01
    13744     jne short 0dafeh                          ; 75 26
     13874    jne short 0db03h                          ; 75 26
    1374513875    db  00fh, 0b7h, 0c3h
    1374613876    ; movzx ax, bx                              ; 0f b7 c3
     
    1374813878    sar dx, 008h                              ; c1 fa 08
    1374913879    test dx, dx                               ; 85 d2
    13750     jne short 0dafeh                          ; 75 1a
     13880    jne short 0db03h                          ; 75 1a
    1375113881    mov dx, strict word 0001ah                ; ba 1a 00
    1375213882    add byte [bx+si], al                      ; 00 00
    13753     call 0da5fh                               ; e8 73 ff
     13883    call 0da5fh                               ; e8 6e ff
    1375413884    db  0ffh
    1375513885    db  0ffh
     
    1375913889    ; sub ax, ax                                ; 2b c0
    1376013890    in AL, DX                                 ; ec
    13761     cmp al, byte [di-004h]                    ; 3a 45 fc
    13762     jbe short 0dafeh                          ; 76 03
    13763     mov byte [di-004h], al                    ; 88 45 fc
     13891    cmp al, byte [di-010h]                    ; 3a 45 f0
     13892    jbe short 0db03h                          ; 76 03
     13893    mov byte [di-010h], al                    ; 88 45 f0
    1376413894    test si, si                               ; 85 f6
    13765     je short 0db09h                           ; 74 07
     13895    je short 0db0eh                           ; 74 07
    1376613896    mov ax, strict word 00008h                ; b8 08 00
    1376713897    add byte [bx+si], al                      ; 00 00
    13768     jmp short 0db0bh                          ; eb 02
     13898    jmp short 0db10h                          ; eb 02
    1376913899    xor ax, ax                                ; 31 c0
    1377013900    db  00fh, 0b7h, 0d0h
     
    1377213902    db  00fh, 0b7h, 0c3h
    1377313903    ; movzx ax, bx                              ; 0f b7 c3
    13774     call 0da5fh                               ; e8 4b ff
     13904    call 0da5fh                               ; e8 46 ff
    1377513905    db  0ffh
    1377613906    db  0ffh
     
    1377813908    add byte [bx+si], al                      ; 00 00
    1377913909    in ax, DX                                 ; ed
    13780     mov word [di-00ch], ax                    ; 89 45 f4
    13781     mov word [di-014h], strict word 00000h    ; c7 45 ec 00 00
     13910    mov word [di-018h], ax                    ; 89 45 e8
     13911    mov word [di-020h], strict word 00000h    ; c7 45 e0 00 00
    1378213912    add byte [bx+si], al                      ; 00 00
    1378313913    test si, si                               ; 85 f6
    13784     je short 0db30h                           ; 74 06
     13914    je short 0db35h                           ; 74 06
    1378513915    shr ax, 008h                              ; c1 e8 08
    13786     mov word [di-00ch], ax                    ; 89 45 f4
    13787     mov ax, word [di-00ch]                    ; 8b 45 f4
    13788     cmp ax, word [di-018h]                    ; 3b 45 e8
    13789     je short 0db3eh                           ; 74 06
    13790     cmp word [di-014h], strict byte 00000h    ; 83 7d ec 00
    13791     je short 0db45h                           ; 74 07
     13916    mov word [di-018h], ax                    ; 89 45 e8
     13917    mov ax, word [di-018h]                    ; 8b 45 e8
     13918    cmp ax, word [di-024h]                    ; 3b 45 dc
     13919    je short 0db43h                           ; 74 06
     13920    cmp word [di-020h], strict byte 00000h    ; 83 7d e0 00
     13921    je short 0db4ah                           ; 74 07
    1379213922    dec cx                                    ; 49
    1379313923    cmp ecx, strict byte 0ffffffffh           ; 66 83 f9 ff
    13794     je short 0db5dh                           ; 74 18
     13924    je short 0db62h                           ; 74 18
    1379513925    add bx, di                                ; 01 fb
    1379613926    db  00fh, 0b7h, 0c3h
    1379713927    ; movzx ax, bx                              ; 0f b7 c3
    1379813928    sar ax, 008h                              ; c1 f8 08
    13799     mov word [di-010h], ax                    ; 89 45 f0
    13800     movzx ax, byte [di-004h]                  ; 0f b6 45 fc
    13801     cmp ax, word [di-010h]                    ; 3b 45 f0
    13802     jnl near 0da92h                           ; 0f 8d 37 ff
     13929    mov word [di-01ch], ax                    ; 89 45 e4
     13930    movzx ax, byte [di-010h]                  ; 0f b6 45 f0
     13931    cmp ax, word [di-01ch]                    ; 3b 45 e4
     13932    jnl near 0da97h                           ; 0f 8d 37 ff
    1380313933    db  0ffh
    1380413934    jmp word [bp-07dh]                        ; ff 66 83
    1380513935    stc                                       ; f9
    13806     push word [di+008h]                       ; ff 75 08
     13936    push word [di+005h]                       ; ff 75 05
    1380713937    db  00fh, 0b7h, 0c3h
    1380813938    ; movzx ax, bx                              ; 0f b7 c3
    13809     leave                                     ; c9
     13939    jmp short 0db72h                          ; eb 05
     13940    mov ax, strict word 0ffffh                ; b8 ff ff
     13941    add byte [bx+si], al                      ; 00 00
     13942    lea sp, [di-00ch]                         ; 8d 65 f4
    1381013943    pop di                                    ; 5f
    1381113944    pop si                                    ; 5e
    1381213945    pop cx                                    ; 59
     13946    pop bp                                    ; 5d
    1381313947    retn                                      ; c3
    13814     mov ax, strict word 0ffffh                ; b8 ff ff
    13815     add byte [bx+si], al                      ; 00 00
    13816     leave                                     ; c9
    13817     pop di                                    ; 5f
    13818     pop si                                    ; 5e
    13819     pop cx                                    ; 59
    13820     retn                                      ; c3
    13821 _pci32_function:                             ; 0xfdb75 LB 0x235
     13948_pci32_function:                             ; 0xfdb7a LB 0x251
     13949    push bp                                   ; 55
     13950    mov bp, sp                                ; 89 e5
    1382213951    push bx                                   ; 53
    1382313952    push si                                   ; 56
    1382413953    push di                                   ; 57
    13825     push bp                                   ; 55
    13826     mov bp, sp                                ; 89 e5
    13827     and dword [di+030h], strict dword 0658100ffh ; 66 81 65 30 ff 00 81 65
    13828     cmp dh, bh                                ; 38 fe
     13954    push ax                                   ; 50
     13955    push ax                                   ; 50
     13956    and dword [di+024h], strict dword 0658100ffh ; 66 81 65 24 ff 00 81 65
     13957    sub AL, strict byte 0feh                  ; 2c fe
    1382913958    inc word [bx+si]                          ; ff 00
    13830     add byte [bp+di+03045h], cl               ; 00 8b 45 30
     13959    add byte [bp+di+02445h], cl               ; 00 8b 45 24
    1383113960    xor ah, ah                                ; 30 e4
    1383213961    cmp eax, strict dword 029720003h          ; 66 3d 03 00 72 29
    13833     jbe near 0dc30h                           ; 0f 86 99 00
     13962    jbe near 0dc37h                           ; 0f 86 99 00
    1383413963    add byte [bx+si], al                      ; 00 00
    1383513964    cmp eax, strict dword 0840f000eh          ; 66 3d 0e 00 0f 84
    13836     lodsw                                     ; ad
    13837     add word [bx+si], ax                      ; 01 00
     13965    test ax, strict word 00001h               ; a9 01 00
    1383813966    add byte [bp+03dh], ah                    ; 00 66 3d
    1383913967    or byte [bx+si], al                       ; 08 00
    13840     jc near 0dd93h                            ; 0f 82 e8 01
     13968    jc near 0ddb1h                            ; 0f 82 ff 01
    1384113969    add byte [bx+si], al                      ; 00 00
    1384213970    cmp eax, strict dword 0860f000dh          ; 66 3d 0d 00 0f 86
    1384313971    test AL, strict byte 000h                 ; a8 00
    1384413972    add byte [bx+si], al                      ; 00 00
    13845     jmp near 0dd93h                           ; e9 d9 01
     13973    jmp near 0ddb1h                           ; e9 f0 01
    1384613974    add byte [bx+si], al                      ; 00 00
    1384713975    cmp eax, strict dword 028740002h          ; 66 3d 02 00 74 28
    1384813976    cmp eax, strict dword 0850f0001h          ; 66 3d 01 00 0f 85
    13849     leave                                     ; c9
    13850     add word [bx+si], ax                      ; 01 00
    13851     add byte [bp-039h], ah                    ; 00 66 c7
     13977    loopne 0dbd2h                             ; e0 01
     13978    add byte [bx+si], al                      ; 00 00
     13979    mov dword [di+024h], strict dword 0c7660001h ; 66 c7 45 24 01 00 66 c7
    1385213980    inc bp                                    ; 45
    13853     xor byte [bx+di], al                      ; 30 01
    13854     add byte [bp-039h], ah                    ; 00 66 c7
    13855     inc bp                                    ; 45
    13856     and AL, strict byte 010h                  ; 24 10
     13981    sbb byte [bx+si], dl                      ; 18 10
    1385713982    add dh, byte [bx+di]                      ; 02 31
    1385813983    sal byte [bp-077h], 045h                  ; c0 66 89 45
    13859     sub AL, strict byte 0c7h                  ; 2c c7
     13984    and bh, al                                ; 20 c7
    1386013985    inc bp                                    ; 45
    13861     sub byte [bx+si+043h], dl                 ; 28 50 43
     13986    sbb AL, strict byte 050h                  ; 1c 50
     13987    inc bx                                    ; 43
    1386213988    dec cx                                    ; 49
    13863     and byte [di+05fh], bl                    ; 20 5d 5f
    13864     pop si                                    ; 5e
    13865     pop bx                                    ; 5b
    13866     retn                                      ; c3
    13867     cmp dword [di+028h], strict byte 0ffffffffh ; 66 83 7d 28 ff
    13868     jne short 0dbfeh                          ; 75 0d
    13869     mov ax, word [di+030h]                    ; 8b 45 30
     13989    and cl, ch                                ; 20 e9
     13990    rol byte [bx+di], CL                      ; d2 01
     13991    add byte [bx+si], al                      ; 00 00
     13992    cmp dword [di+01ch], strict byte 0ffffffffh ; 66 83 7d 1c ff
     13993    jne short 0dc05h                          ; 75 0d
     13994    mov ax, word [di+024h]                    ; 8b 45 24
    1387013995    xor ah, ah                                ; 30 e4
    1387113996    or ah, 083h                               ; 80 cc 83
    13872     jmp near 0dd9bh                           ; e9 9f 01
     13997    jmp near 0ddb9h                           ; e9 b6 01
    1387313998    add byte [bx+si], al                      ; 00 00
    1387413999    xor bx, bx                                ; 31 db
    13875     db  00fh, 0b7h, 055h, 018h
    13876     ; movzx dx, word [di+018h]                  ; 0f b7 55 18
    13877     db  00fh, 0b7h, 04dh, 02ch
    13878     ; movzx cx, word [di+02ch]                  ; 0f b7 4d 2c
    13879     sal cx, 010h                              ; c1 e1 10
    13880     db  00fh, 0b7h, 045h, 028h
    13881     ; movzx ax, word [di+028h]                  ; 0f b7 45 28
     14000    db  00fh, 0b7h, 055h, 00ch
     14001    ; movzx dx, word [di+00ch]                  ; 0f b7 55 0c
     14002    db  00fh, 0b7h, 045h, 020h
     14003    ; movzx ax, word [di+020h]                  ; 0f b7 45 20
     14004    sal ax, 010h                              ; c1 e0 10
     14005    db  00fh, 0b7h, 04dh, 01ch
     14006    ; movzx cx, word [di+01ch]                  ; 0f b7 4d 1c
    1388214007    or ax, cx                                 ; 09 c8
    13883     call 0da7eh                               ; e8 6a fe
     14008    call 0da81h                               ; e8 66 fe
    1388414009    db  0ffh
    1388514010    jmp word [bp+03dh]                        ; ff 66 3d
    1388614011    db  0ffh
    1388714012    push word [di+00dh]                       ; ff 75 0d
    13888     mov ax, word [di+030h]                    ; 8b 45 30
     14013    mov ax, word [di+024h]                    ; 8b 45 24
    1388914014    xor ah, ah                                ; 30 e4
    1389014015    or ah, 086h                               ; 80 cc 86
    13891     jmp near 0dd9bh                           ; e9 74 01
     14016    jmp near 0ddb9h                           ; e9 8b 01
    1389214017    add byte [bx+si], al                      ; 00 00
    13893     mov dword [di+024h], eax                  ; 66 89 45 24
    13894     pop bp                                    ; 5d
    13895     pop di                                    ; 5f
    13896     pop si                                    ; 5e
    13897     pop bx                                    ; 5b
    13898     retn                                      ; c3
    13899     db  00fh, 0b7h, 055h, 018h
    13900     ; movzx dx, word [di+018h]                  ; 0f b7 55 18
    13901     mov ax, word [di+02ch]                    ; 8b 45 2c
     14018    mov dword [di+018h], eax                  ; 66 89 45 18
     14019    jmp near 0ddc1h                           ; e9 8a 01
     14020    add byte [bx+si], al                      ; 00 00
     14021    db  00fh, 0b7h, 055h, 00ch
     14022    ; movzx dx, word [di+00ch]                  ; 0f b7 55 0c
     14023    mov ax, word [di+020h]                    ; 8b 45 20
    1390214024    mov bx, strict word 00001h                ; bb 01 00
    1390314025    add byte [bx+si], al                      ; 00 00
    13904     call 0da7eh                               ; e8 3d fe
     14026    call 0da81h                               ; e8 39 fe
    1390514027    db  0ffh
    1390614028    jmp word [bp+03dh]                        ; ff 66 3d
    1390714029    db  0ffh
    1390814030    push word [di+00dh]                       ; ff 75 0d
    13909     mov ax, word [di+030h]                    ; 8b 45 30
     14031    mov ax, word [di+024h]                    ; 8b 45 24
    1391014032    xor ah, ah                                ; 30 e4
    1391114033    or ah, 086h                               ; 80 cc 86
    13912     jmp near 0dd9bh                           ; e9 47 01
     14034    jmp near 0ddb9h                           ; e9 5e 01
    1391314035    add byte [bx+si], al                      ; 00 00
    13914     mov dword [di+024h], eax                  ; 66 89 45 24
    13915     pop bp                                    ; 5d
    13916     pop di                                    ; 5f
    13917     pop si                                    ; 5e
    13918     pop bx                                    ; 5b
    13919     retn                                      ; c3
    13920     cmp dword [di+014h], strict dword 00d720100h ; 66 81 7d 14 00 01 72 0d
    13921     mov ax, word [di+030h]                    ; 8b 45 30
     14036    mov dword [di+018h], eax                  ; 66 89 45 18
     14037    jmp near 0ddc1h                           ; e9 5d 01
     14038    add byte [bx+si], al                      ; 00 00
     14039    cmp dword [di+008h], strict dword 00d720100h ; 66 81 7d 08 00 01 72 0d
     14040    mov ax, word [di+024h]                    ; 8b 45 24
    1392214041    xor ah, ah                                ; 30 e4
    1392314042    or ah, 087h                               ; 80 cc 87
    13924     jmp near 0dd9bh                           ; e9 29 01
     14043    jmp near 0ddb9h                           ; e9 40 01
    1392514044    add byte [bx+si], al                      ; 00 00
    13926     db  00fh, 0b7h, 055h, 014h
    13927     ; movzx dx, word [di+014h]                  ; 0f b7 55 14
    13928     db  00fh, 0b7h, 045h, 024h
    13929     ; movzx ax, word [di+024h]                  ; 0f b7 45 24
    13930     call 0da5fh                               ; e8 e0 fd
     14045    db  00fh, 0b7h, 055h, 008h
     14046    ; movzx dx, word [di+008h]                  ; 0f b7 55 08
     14047    db  00fh, 0b7h, 045h, 018h
     14048    ; movzx ax, word [di+018h]                  ; 0f b7 45 18
     14049    call 0da5fh                               ; e8 d9 fd
    1393114050    db  0ffh
    13932     dec word [bp+di+03045h]                   ; ff 8b 45 30
     14051    dec word [bp+di+02445h]                   ; ff 8b 45 24
    1393314052    xor ah, ah                                ; 30 e4
    1393414053    cmp eax, strict dword 02172000ah          ; 66 3d 0a 00 72 21
    13935     jbe short 0dcfeh                          ; 76 70
     14054    jbe short 0dd04h                          ; 76 6f
    1393614055    cmp eax, strict dword 0840f000dh          ; 66 3d 0d 00 0f 84
    13937     stosb                                     ; aa
    13938     add byte [bx+si], al                      ; 00 00
     14056    test ax, strict word 00000h               ; a9 00 00
    1393914057    add byte [bp+03dh], ah                    ; 00 66 3d
    1394014058    or AL, strict byte 000h                   ; 0c 00
    13941     je near 0dd24h                            ; 0f 84 84 00
     14059    je near 0dd2ah                            ; 0f 84 83 00
    1394214060    add byte [bx+si], al                      ; 00 00
    13943     cmp eax, strict dword 06474000bh          ; 66 3d 0b 00 74 64
    13944     pop bp                                    ; 5d
    13945     pop di                                    ; 5f
    13946     pop si                                    ; 5e
    13947     pop bx                                    ; 5b
    13948     retn                                      ; c3
    13949     cmp eax, strict dword 02e740009h          ; 66 3d 09 00 74 2e
    13950     cmp eax, strict dword 005740008h          ; 66 3d 08 00 74 05
    13951     pop bp                                    ; 5d
    13952     pop di                                    ; 5f
    13953     pop si                                    ; 5e
    13954     pop bx                                    ; 5b
    13955     retn                                      ; c3
    13956     mov bx, word [di+02ch]                    ; 8b 5d 2c
     14061    cmp eax, strict dword 06374000bh          ; 66 3d 0b 00 74 63
     14062    jmp near 0ddc1h                           ; e9 0f 01
     14063    add byte [bx+si], al                      ; 00 00
     14064    cmp eax, strict dword 02d740009h          ; 66 3d 09 00 74 2d
     14065    cmp eax, strict dword 0850f0008h          ; 66 3d 08 00 0f 85
     14066    inc word [bx+si]                          ; ff 00
     14067    add byte [bx+si], al                      ; 00 00
     14068    mov bx, word [di+020h]                    ; 8b 5d 20
    1395714069    xor bl, bl                                ; 30 db
    13958     mov ax, word [di+014h]                    ; 8b 45 14
     14070    mov ax, word [di+008h]                    ; 8b 45 08
    1395914071    xor ah, ah                                ; 30 e4
    1396014072    and AL, strict byte 003h                  ; 24 03
     
    1396714079    in AL, DX                                 ; ec
    1396814080    or bx, ax                                 ; 09 c3
    13969     mov dword [di+02ch], ebx                  ; 66 89 5d 2c
    13970     pop bp                                    ; 5d
    13971     pop di                                    ; 5f
    13972     pop si                                    ; 5e
    13973     pop bx                                    ; 5b
    13974     retn                                      ; c3
    13975     mov ax, word [di+014h]                    ; 8b 45 14
     14081    mov dword [di+020h], ebx                  ; 66 89 5d 20
     14082    jmp near 0ddc1h                           ; e9 dc 00
     14083    add byte [bx+si], al                      ; 00 00
     14084    mov ax, word [di+008h]                    ; 8b 45 08
    1397614085    xor ah, ah                                ; 30 e4
    1397714086    and AL, strict byte 002h                  ; 24 02
     
    1398314092    ; sub ax, ax                                ; 2b c0
    1398414093    in eax, DX                                ; 66 ed
    13985     mov dword [di+02ch], eax                  ; 66 89 45 2c
    13986     pop bp                                    ; 5d
    13987     pop di                                    ; 5f
    13988     pop si                                    ; 5e
    13989     pop bx                                    ; 5b
    13990     retn                                      ; c3
     14094    mov dword [di+020h], eax                  ; 66 89 45 20
     14095    jmp near 0ddc1h                           ; e9 bf 00
     14096    add byte [bx+si], al                      ; 00 00
    1399114097    mov dx, 00cfch                            ; ba fc 0c
    1399214098    add byte [bx+si], al                      ; 00 00
    1399314099    in ax, DX                                 ; ed
    13994     mov word [di+02ch], ax                    ; 89 45 2c
    13995     pop bp                                    ; 5d
    13996     pop di                                    ; 5f
    13997     pop si                                    ; 5e
    13998     pop bx                                    ; 5b
    13999     retn                                      ; c3
    14000     mov ax, word [di+02ch]                    ; 8b 45 2c
    14001     mov dx, word [di+014h]                    ; 8b 55 14
     14100    mov word [di+020h], ax                    ; 89 45 20
     14101    jmp near 0ddc1h                           ; e9 b1 00
     14102    add byte [bx+si], al                      ; 00 00
     14103    mov ax, word [di+020h]                    ; 8b 45 20
     14104    mov dx, word [di+008h]                    ; 8b 55 08
    1400214105    xor dh, dh                                ; 30 f6
    1400314106    and dl, 003h                              ; 80 e2 03
     
    1400714110    add byte [bx+si], al                      ; 00 00
    1400814111    out DX, AL                                ; ee
    14009     pop bp                                    ; 5d
    14010     pop di                                    ; 5f
    14011     pop si                                    ; 5e
    14012     pop bx                                    ; 5b
    14013     retn                                      ; c3
    14014     db  00fh, 0b7h, 045h, 02ch
    14015     ; movzx ax, word [di+02ch]                  ; 0f b7 45 2c
    14016     mov dx, word [di+014h]                    ; 8b 55 14
     14112    jmp near 0ddc1h                           ; e9 97 00
     14113    add byte [bx+si], al                      ; 00 00
     14114    db  00fh, 0b7h, 045h, 020h
     14115    ; movzx ax, word [di+020h]                  ; 0f b7 45 20
     14116    mov dx, word [di+008h]                    ; 8b 55 08
    1401714117    xor dh, dh                                ; 30 f6
    1401814118    and dl, 002h                              ; 80 e2 02
     
    1402214122    add byte [bx+si], al                      ; 00 00
    1402314123    out DX, eax                               ; 66 ef
    14024     pop bp                                    ; 5d
    14025     pop di                                    ; 5f
    14026     pop si                                    ; 5e
    14027     pop bx                                    ; 5b
    14028     retn                                      ; c3
    14029     mov ax, word [di+02ch]                    ; 8b 45 2c
     14124    jmp near 0ddc1h                           ; e9 7b 00
     14125    add byte [bx+si], al                      ; 00 00
     14126    mov ax, word [di+020h]                    ; 8b 45 20
    1403014127    mov dx, 00cfch                            ; ba fc 0c
    1403114128    add byte [bx+si], al                      ; 00 00
    1403214129    out DX, ax                                ; ef
    14033     pop bp                                    ; 5d
    14034     pop di                                    ; 5f
    14035     pop si                                    ; 5e
    14036     pop bx                                    ; 5b
    14037     retn                                      ; c3
    14038     db  00fh, 0b7h, 045h, 014h
    14039     ; movzx ax, word [di+014h]                  ; 0f b7 45 14
    14040     mov es, [di+034h]                         ; 8e 45 34
    14041     mov ecx, dword [di]                       ; 66 8b 0d
     14130    jmp short 0ddc3h                          ; eb 70
     14131    db  00fh, 0b7h, 045h, 008h
     14132    ; movzx ax, word [di+008h]                  ; 0f b7 45 08
     14133    mov es, [di+028h]                         ; 8e 45 28
     14134    mov [di-010h], es                         ; 8c 45 f0
     14135    mov bx, ax                                ; 89 c3
     14136    mov edx, dword [di]                       ; 66 8b 15
    1404214137    add byte [bx+si], al                      ; 00 00
    1404314138    add byte [bx+si], al                      ; 00 00
    14044     db  066h, 026h, 03bh, 008h
    14045     ; cmp ecx, dword [es:bx+si]                 ; 66 26 3b 08
    14046     jbe short 0dd6eh                          ; 76 0a
    14047     mov ax, word [di+030h]                    ; 8b 45 30
     14139    db  066h, 026h, 03bh, 010h
     14140    ; cmp edx, dword [es:bx+si]                 ; 66 26 3b 10
     14141    jbe short 0dd7eh                          ; 76 12
     14142    mov ax, word [di+024h]                    ; 8b 45 24
    1404814143    xor ah, ah                                ; 30 e4
    1404914144    or ah, 089h                               ; 80 cc 89
    14050     jmp short 0dd9dh                          ; eb 2f
    14051     db  00fh, 0b7h, 0c9h
    14052     ; movzx cx, cx                              ; 0f b7 c9
    14053     db  066h, 026h, 08bh, 058h, 006h
    14054     ; mov ebx, dword [es:bx+si+006h]            ; 66 26 8b 58 06
     14145    mov dword [di+024h], eax                  ; 66 89 45 24
     14146    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
     14147    jmp short 0dda4h                          ; eb 26
     14148    db  00fh, 0b7h, 0cah
     14149    ; movzx cx, dx                              ; 0f b7 ca
     14150    db  066h, 026h, 08bh, 050h, 006h
     14151    ; mov edx, dword [es:bx+si+006h]            ; 66 26 8b 50 06
     14152    mov word [di-014h], dx                    ; 89 55 ec
    1405514153    mov di, word [es:bx+si+002h]              ; 26 8b 78 02
    1405614154    mov dx, ds                                ; 8c da
    1405714155    mov si, 0f2c0h                            ; be c0 f2
    1405814156    add byte [bx+si], al                      ; 00 00
    14059     mov es, bx                                ; 8e c3
     14157    mov es, [di-014h]                         ; 8e 45 ec
    1406014158    push DS                                   ; 1e
    1406114159    db  066h, 08eh, 0dah
     
    1406314161    rep movsb                                 ; f3 a4
    1406414162    pop DS                                    ; 1f
    14065     mov dword [di+024h], strict dword 05f5d0a00h ; 66 c7 45 24 00 0a 5d 5f
    14066     pop si                                    ; 5e
    14067     pop bx                                    ; 5b
    14068     retn                                      ; c3
    14069     mov ax, word [di+030h]                    ; 8b 45 30
     14163    mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1
     14164    add byte [bx+si], al                      ; 00 00
     14165    add byte [bx+si], al                      ; 00 00
     14166    mov es, [di-010h]                         ; 8e 45 f0
     14167    db  066h, 026h, 089h, 003h
     14168    ; mov dword [es:bp+di], eax                 ; 66 26 89 03
     14169    jmp short 0ddc3h                          ; eb 10
     14170    mov ax, word [di+024h]                    ; 8b 45 24
    1407014171    xor ah, ah                                ; 30 e4
    1407114172    or ah, 081h                               ; 80 cc 81
    14072     mov dword [di+030h], eax                  ; 66 89 45 30
    14073     or word [di+038h], strict byte 00001h     ; 83 4d 38 01
    14074     pop bp                                    ; 5d
     14173    mov dword [di+024h], eax                  ; 66 89 45 24
     14174    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
     14175    lea sp, [di-00ch]                         ; 8d 65 f4
    1407514176    pop di                                    ; 5f
    1407614177    pop si                                    ; 5e
    1407714178    pop bx                                    ; 5b
     14179    pop bp                                    ; 5d
    1407814180    retn                                      ; c3
    1407914181
    14080   ; Padding 0x2 bytes at 0xfddaa
    14081   times 2 db 0
     14182  ; Padding 0x1 bytes at 0xfddcb
     14183  times 1 db 0
    1408214184
    14083 section BIOS32CONST progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
     14185section BIOS32CONST progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
    1408414186
    14085 section BIOS32CONST2 progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
     14187section BIOS32CONST2 progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
    1408614188
    14087 section BIOS32_DATA progbits vstart=0xddac align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
     14189section BIOS32_DATA progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
    1408814190
    14089   ; Padding 0x254 bytes at 0xfddac
    14090   times 596 db 0
     14191  ; Padding 0x234 bytes at 0xfddcc
     14192  times 564 db 0
    1409114193
    1409214194section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
     
    1418914291    pop DS                                    ; 1f
    1419014292    cld                                       ; fc
    14191     call 01707h                               ; e8 29 36
     14293    call 01712h                               ; e8 34 36
    1419214294    call 0e8e0h                               ; e8 ff 07
    1419314295    db  033h, 0dbh
     
    1426914371    pop DS                                    ; 1f
    1427014372    cld                                       ; fc
    14271     call 048cah                               ; e8 10 67
     14373    call 04951h                               ; e8 97 67
    1427214374    pop DS                                    ; 1f
    1427314375    mov AL, strict byte 014h                  ; b0 14
     
    1435614458    pop DS                                    ; 1f
    1435714459    cld                                       ; fc
    14358     call 01b1fh                               ; e8 82 38
    14359     call 01f0dh                               ; e8 6d 3c
    14360     call 089b2h                               ; e8 0f a7
    14361     call 07ac7h                               ; e8 21 98
     14460    call 01b48h                               ; e8 ab 38
     14461    call 01f42h                               ; e8 a2 3c
     14462    call 08b46h                               ; e8 a3 a8
     14463    call 07c1dh                               ; e8 77 99
    1436214464    call 0ed2fh                               ; e8 86 0a
    1436314465    call 0e2d2h                               ; e8 26 00
     
    1436514467    pop DS                                    ; 1f
    1436614468    cld                                       ; fc
    14367     call 01725h                               ; e8 73 34
    14368     call 035dah                               ; e8 25 53
     14469    call 01732h                               ; e8 80 34
     14470    call 03635h                               ; e8 80 53
    1436914471    sti                                       ; fb
    1437014472    int 019h                                  ; cd 19
     
    1438014482    pop DS                                    ; 1f
    1438114483    cld                                       ; fc
    14382     call 016e7h                               ; e8 1e 34
     14484    call 016eeh                               ; e8 25 34
    1438314485    iret                                      ; cf
    1438414486int75_handler:                               ; 0xfe2ca LB 0x8
     
    1448614588    pop DS                                    ; 1f
    1448714589    cld                                       ; fc
    14488     call 05c40h                               ; e8 fe 74
     14590    call 05ce3h                               ; e8 a1 75
    1448914591    popaw                                     ; 61
    1449014592    pop ES                                    ; 07
     
    1449714599    pop DS                                    ; 1f
    1449814600    cld                                       ; fc
    14499     call 0167eh                               ; e8 2f 2f
     14601    call 01683h                               ; e8 34 2f
    1450014602    popaw                                     ; 61
    1450114603    pop ES                                    ; 07
     
    1460214704    pop DS                                    ; 1f
    1460314705    cld                                       ; fc
    14604     call 04fbch                               ; e8 7a 67
     14706    call 05051h                               ; e8 0f 68
    1460514707    popaw                                     ; 61
    1460614708    pop DS                                    ; 1f
     
    1461914721    pop DS                                    ; 1f
    1462014722    cld                                       ; fc
    14621     call 04fbch                               ; e8 5c 67
     14723    call 05051h                               ; e8 f1 67
    1462214724    popaw                                     ; 61
    1462314725    pop DS                                    ; 1f
     
    1471814820    pop DS                                    ; 1f
    1471914821    cld                                       ; fc
    14720     call 04bd4h                               ; e8 05 62
     14822    call 04c60h                               ; e8 91 62
    1472114823    pop ES                                    ; 07
    1472214824    popaw                                     ; 61
     
    1474414846    cld                                       ; fc
    1474514847    push 0ece9h                               ; 68 e9 ec
    14746     jmp near 03618h                           ; e9 a7 49
     14848    jmp near 03679h                           ; e9 08 4a
    1474714849    push ES                                   ; 06
    1474814850    push ax                                   ; 50
     
    1475014852    push cx                                   ; 51
    1475114853    push dx                                   ; 52
    14752     call 035f0h                               ; e8 77 49
     14854    call 0364dh                               ; e8 d4 49
    1475314855    cmp AL, strict byte 000h                  ; 3c 00
    1475414856    je short 0ecabh                           ; 74 2e
    14755     call 03604h                               ; e8 84 49
     14857    call 03663h                               ; e8 e3 49
    1475614858    pop dx                                    ; 5a
    1475714859    push dx                                   ; 52
     
    1477114873    cld                                       ; fc
    1477214874    push 0ece9h                               ; 68 e9 ec
    14773     jmp near 03be0h                           ; e9 49 4f
     14875    jmp near 03c4dh                           ; e9 b6 4f
    1477414876    and dl, 0e0h                              ; 80 e2 e0
    1477514877    db  03ah, 0c2h
     
    1481114913    jne short 0ecc8h                          ; 75 06
    1481214914    push 0ece9h                               ; 68 e9 ec
    14813     jmp near 02e4bh                           ; e9 83 41
     14915    jmp near 02eeeh                           ; e9 26 42
    1481414916int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1481514917    cmp dl, 0e0h                              ; 80 fa e0
     
    1481714919    shr ebx, 010h                             ; 66 c1 eb 10
    1481814920    push bx                                   ; 53
    14819     call 0400fh                               ; e8 3a 53
     14921    call 04081h                               ; e8 ac 53
    1482014922    pop bx                                    ; 5b
    1482114923    sal ebx, 010h                             ; 66 c1 e3 10
     
    1482414926    cmp ah, 040h                              ; 80 fc 40
    1482514927    jnbe short 0ece6h                         ; 77 05
    14826     call 0533ch                               ; e8 58 66
     14928    call 053d6h                               ; e8 f2 66
    1482714929    jmp short 0ece9h                          ; eb 03
    14828     call 05778h                               ; e8 8f 6a
     14930    call 05817h                               ; e8 2e 6b
    1482914931int13_out:                                   ; 0xfece9 LB 0x4
    1483014932    pop DS                                    ; 1f
     
    1503915141    pop DS                                    ; 1f
    1504015142    cld                                       ; fc
    15041     call 06e30h                               ; e8 53 7e
     15143    call 06f00h                               ; e8 23 7f
    1504215144    popaw                                     ; 61
    1504315145    pop ES                                    ; 07
     
    1506415166    pop DS                                    ; 1f
    1506515167    cld                                       ; fc
    15066     call 016f7h                               ; e8 4d 26
     15168    call 01700h                               ; e8 56 26
    1506715169    hlt                                       ; f4
    1506815170    iret                                      ; cf
     
    1508715189    mov ax, strict word 00001h                ; b8 01 00
    1508815190    push ax                                   ; 50
    15089     call 04668h                               ; e8 98 55
     15191    call 046e8h                               ; e8 18 56
    1509015192    inc sp                                    ; 44
    1509115193    inc sp                                    ; 44
     
    1509415196    mov ax, strict word 00002h                ; b8 02 00
    1509515197    push ax                                   ; 50
    15096     call 04668h                               ; e8 8b 55
     15198    call 046e8h                               ; e8 0b 56
    1509715199    inc sp                                    ; 44
    1509815200    inc sp                                    ; 44
     
    1510115203    mov ax, strict word 00003h                ; b8 03 00
    1510215204    push strict byte 00003h                   ; 6a 03
    15103     call 04668h                               ; e8 7d 55
     15205    call 046e8h                               ; e8 fd 55
    1510415206    inc sp                                    ; 44
    1510515207    inc sp                                    ; 44
     
    1510815210    mov ax, strict word 00004h                ; b8 04 00
    1510915211    push ax                                   ; 50
    15110     call 04668h                               ; e8 70 55
     15212    call 046e8h                               ; e8 f0 55
    1511115213    inc sp                                    ; 44
    1511215214    inc sp                                    ; 44
     
    1545415556    cmp ah, 0c2h                              ; 80 fc c2
    1545515557    je short 0f887h                           ; 74 0e
    15456     call 05e49h                               ; e8 cd 65
     15558    call 05ef0h                               ; e8 74 66
    1545715559    popaw                                     ; 61
    1545815560    pop ES                                    ; 07
     
    1546015562    popfw                                     ; 9d
    1546115563    jmp short 0f895h                          ; eb 13
    15462     call 08ae1h                               ; e8 5c 92
     15564    call 08c7dh                               ; e8 f8 93
    1546315565    jmp short 0f87ch                          ; eb f5
    1546415566int15_handler_mouse:                         ; 0xff887 LB 0x5
    15465     call 06aaah                               ; e8 20 72
     15567    call 06b75h                               ; e8 eb 72
    1546615568    jmp short 0f87ch                          ; eb f0
    1546715569int15_handler32:                             ; 0xff88c LB 0x9
    1546815570    pushad                                    ; 66 60
    15469     call 06312h                               ; e8 81 6a
     15571    call 063bdh                               ; e8 2c 6b
    1547015572    popad                                     ; 66 61
    1547115573    jmp short 0f87dh                          ; eb e8
     
    1549715599    pop DS                                    ; 1f
    1549815600    cld                                       ; fc
    15499     call 069e4h                               ; e8 27 71
     15601    call 06aabh                               ; e8 ee 71
    1550015602    pop cx                                    ; 59
    1550115603    jcxz 0f8cch                               ; e3 0c
     
    1558915691    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1559015692    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    15591     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 06ch, 08eh, 066h
    15592     db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 001h, 069h, 061h, 01fh, 007h
     15693    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 010h, 090h, 066h
     15694    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0b7h, 069h, 061h, 01fh, 007h
    1559315695    db  0cfh
    1559415696int70_handler:                               ; 0xffe8f LB 0x16
     
    1559915701    pop DS                                    ; 1f
    1560015702    cld                                       ; fc
    15601     call 066d1h                               ; e8 39 68
     15703    call 06784h                               ; e8 ec 68
    1560215704    popaw                                     ; 61
    1560315705    pop DS                                    ; 1f
     
    1561815720    db  00ah, 0c0h
    1561915721    ; or al, al                                 ; 0a c0
    15620     je short 0febdh                           ; 74 09
     15722    je short 0fec4h                           ; 74 10
     15723    db  0feh, 0c8h
     15724    ; dec al                                    ; fe c8
     15725    mov byte [00440h], AL                     ; a2 40 04
     15726    jne short 0fec4h                          ; 75 09
    1562115727    push dx                                   ; 52
    1562215728    mov dx, 003f2h                            ; ba f2 03
     
    1562815734    inc eax                                   ; 66 40
    1562915735    cmp eax, strict dword 0001800b0h          ; 66 3d b0 00 18 00
    15630     jc short 0fed2h                           ; 72 07
     15736    jc short 0fed9h                           ; 72 07
    1563115737    db  066h, 033h, 0c0h
    1563215738    ; xor eax, eax                              ; 66 33 c0
     
    1563515741    int 01ch                                  ; cd 1c
    1563615742    cli                                       ; fa
    15637     call 0e03fh                               ; e8 63 e1
     15743    call 0e03fh                               ; e8 5c e1
    1563815744    pop DS                                    ; 1f
    1563915745    pop eax                                   ; 66 58
    1564015746    iret                                      ; cf
    15641     times 0x11 db 0
     15747    times 0xa db 0
    1564215748    pop ax                                    ; 58
    1564315749    dec bp                                    ; 4d
     
    1569515801cpu_reset:                                   ; 0xffff0 LB 0x10
    1569615802    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    15697     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 010h
     15803    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0d1h
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