VirtualBox

Changeset 48392 in vbox for trunk/src/VBox/Devices/PC


Ignore:
Timestamp:
Sep 9, 2013 1:19:56 PM (11 years ago)
Author:
vboxsync
Message:

4.3 Beta 2

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

Legend:

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

    r47937 r48392  
    171171;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
    172172
     173
     174;
     175; Source file: floppyt.c
     176;
     177;  $Id$
     178;  Floppy drive tables.
     179
     180
     181
     182;  Copyright (C) 2011-2013 Oracle Corporation
     183
     184;  This file is part of VirtualBox Open Source Edition (OSE), as
     185;  available from http://www.virtualbox.org. This file is free software;
     186;  you can redistribute it and/or modify it under the terms of the GNU
     187;  General Public License (GPL) as published by the Free Software
     188;  Foundation, in version 2 as it comes in the "COPYING" file of the
     189;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
     190;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    173191
    174192;
     
    792810
    793811
    794 section _DATA progbits vstart=0x0 align=1 ; size=0x40 class=DATA group=DGROUP
    795 _pktacc:                                     ; 0xf0000 LB 0xc
    796     db  000h, 000h, 000h, 000h, 000h, 000h, 02ah, 028h, 044h, 077h, 09ah, 084h
    797 _softrst:                                    ; 0xf000c LB 0xc
    798     db  000h, 000h, 000h, 000h, 000h, 000h, 012h, 02bh, 02eh, 036h, 02eh, 036h
    799 _dskacc:                                     ; 0xf0018 LB 0x28
     812section _DATA progbits vstart=0x0 align=1 ; size=0xb0 class=DATA group=DGROUP
     813_fd_parm:                                    ; 0xf0000 LB 0x5b
     814    db  0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 080h, 0dfh, 002h, 025h
     815    db  002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 040h, 0dfh, 002h, 025h, 002h, 00fh, 01bh
     816    db  0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 000h, 0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h
     817    db  00fh, 008h, 04fh, 080h, 0afh, 002h, 025h, 002h, 012h, 01bh, 0ffh, 06ch, 0f6h, 00fh, 008h, 04fh
     818    db  000h, 0afh, 002h, 025h, 002h, 024h, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 0c0h, 0afh, 002h
     819    db  025h, 002h, 0ffh, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 0ffh, 000h
     820_fd_map:                                     ; 0xf005b LB 0xf
     821    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
     822_pktacc:                                     ; 0xf006a LB 0xc
     823    db  000h, 000h, 000h, 000h, 000h, 000h, 02ah, 028h, 038h, 077h, 08eh, 084h
     824_softrst:                                    ; 0xf0076 LB 0xc
     825    db  000h, 000h, 000h, 000h, 000h, 000h, 012h, 02bh, 022h, 036h, 022h, 036h
     826_dskacc:                                     ; 0xf0082 LB 0x2e
    800827    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
    802     db  000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
     828    db  0cch, 075h, 082h, 076h, 08ah, 083h, 01eh, 084h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     829    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    803830
    804 section CONST progbits vstart=0x40 align=1 ; size=0xce0 class=DATA group=DGROUP
     831section CONST progbits vstart=0xb0 align=1 ; size=0xce0 class=DATA group=DGROUP
    805832    db   'NMI Handler called', 00ah, 000h
    806833    db   'INT18: BOOT FAILURE', 00ah, 000h
     
    918945    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    919946
    920 section 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
     947section CONST2 progbits vstart=0xd90 align=1 ; size=0x400 class=DATA group=DGROUP
     948_bios_cvs_version_string:                    ; 0xf0d90 LB 0x18
     949    db  'VirtualBox 4.3.0_BETA2', 000h, 000h
     950_bios_prefix_string:                         ; 0xf0da8 LB 0x8
    924951    db  'BIOS: ', 000h, 000h
    925 _isotag:                                     ; 0xf0d40 LB 0x6
     952_isotag:                                     ; 0xf0db0 LB 0x6
    926953    db  'CD001', 000h
    927 _eltorito:                                   ; 0xf0d46 LB 0x18
     954_eltorito:                                   ; 0xf0db6 LB 0x18
    928955    db  'EL TORITO SPECIFICATION', 000h
    929 _drivetypes:                                 ; 0xf0d5e LB 0x28
     956_drivetypes:                                 ; 0xf0dce LB 0x28
    930957    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    931958    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    932959    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    933 _scan_to_scanascii:                          ; 0xf0d86 LB 0x37a
     960_scan_to_scanascii:                          ; 0xf0df6 LB 0x37a
    934961    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    935962    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    9881015    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    9891016    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    990 _panic_msg_keyb_buffer_full:                 ; 0xf1100 LB 0x20
     1017_panic_msg_keyb_buffer_full:                 ; 0xf1170 LB 0x20
    9911018    db  '%s: keyboard input buffer full', 00ah, 000h
    9921019
    993   ; Padding 0x4e0 bytes at 0xf1120
    994   times 1248 db 0
     1020  ; Padding 0x470 bytes at 0xf1190
     1021  times 1136 db 0
    9951022
    9961023section _TEXT progbits vstart=0x1600 align=1 ; size=0x7cd5 class=CODE group=AUTO
     
    11431170    push bp                                   ; 55
    11441171    mov bp, sp                                ; 89 e5
    1145     push strict word 00040h                   ; 68 40 00
     1172    push 000b0h                               ; 68 b0 00
    11461173    push strict byte 00007h                   ; 6a 07
    11471174    call 0190dh                               ; e8 14 02
     
    11531180    push bp                                   ; 55
    11541181    mov bp, sp                                ; 89 e5
    1155     push strict word 00054h                   ; 68 54 00
     1182    push 000c4h                               ; 68 c4 00
    11561183    push strict byte 00007h                   ; 6a 07
    11571184    call 0190dh                               ; e8 02 02
     
    11631190    push bp                                   ; 55
    11641191    mov bp, sp                                ; 89 e5
    1165     mov bx, 00d38h                            ; bb 38 0d
     1192    mov bx, 00da8h                            ; bb a8 0d
    11661193    mov cx, ds                                ; 8c d9
    11671194    mov ax, strict word 00004h                ; b8 04 00
    11681195    call 018cch                               ; e8 ac 01
    1169     push 00d20h                               ; 68 20 0d
    1170     push strict word 00069h                   ; 68 69 00
     1196    push 00d90h                               ; 68 90 0d
     1197    push 000d9h                               ; 68 d9 00
    11711198    push strict byte 00004h                   ; 6a 04
    11721199    call 0190dh                               ; e8 e2 01
     
    11921219    int 010h                                  ; cd 10
    11931220    jmp short 0175ch                          ; eb 03
    1194     call 071e7h                               ; e8 8b 5a
     1221    call 071dbh                               ; e8 7f 5a
    11951222    mov sp, bp                                ; 89 ec
    11961223    pop bp                                    ; 5d
     
    14351462    cmp ax, strict word 00007h                ; 3d 07 00
    14361463    jne short 0193bh                          ; 75 0b
    1437     push strict word 0006eh                   ; 68 6e 00
     1464    push 000deh                               ; 68 de 00
    14381465    push strict byte 00002h                   ; 6a 02
    14391466    call 0190dh                               ; e8 d5 ff
     
    16181645    call 01760h                               ; e8 53 fc
    16191646    jmp short 01b1ah                          ; eb 0b
    1620     push strict word 00076h                   ; 68 76 00
     1647    push 000e6h                               ; 68 e6 00
    16211648    push strict byte 00007h                   ; 6a 07
    16221649    call 0190dh                               ; e8 f6 fd
     
    22222249    test ax, ax                               ; 85 c0
    22232250    je short 020f6h                           ; 74 0b
    2224     push 00094h                               ; 68 94 00
     2251    push 00104h                               ; 68 04 01
    22252252    push strict byte 00007h                   ; 6a 07
    22262253    call 0190dh                               ; e8 1a f8
     
    23012328    mov dx, ss                                ; 8c d2
    23022329    lea ax, [bp-036h]                         ; 8d 46 ca
    2303     call 05338h                               ; e8 80 31
    2304     mov bx, 00d38h                            ; bb 38 0d
     2330    call 0532ch                               ; e8 74 31
     2331    mov bx, 00da8h                            ; bb a8 0d
    23052332    mov cx, ds                                ; 8c d9
    23062333    mov ax, strict word 00004h                ; b8 04 00
     
    23192346    movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    23202347    push ax                                   ; 50
    2321     push 000bdh                               ; 68 bd 00
     2348    push 0012dh                               ; 68 2d 01
    23222349    push strict byte 00004h                   ; 6a 04
    23232350    call 0190dh                               ; e8 23 f7
     
    24172444    test ax, ax                               ; 85 c0
    24182445    je short 0230dh                           ; 74 0b
    2419     push 000e4h                               ; 68 e4 00
     2446    push 00154h                               ; 68 54 01
    24202447    push strict byte 00007h                   ; 6a 07
    24212448    call 0190dh                               ; e8 03 f6
     
    25092536    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    25102537    je short 02411h                           ; 74 05
    2511     mov ax, 0010fh                            ; b8 0f 01
     2538    mov ax, 0017fh                            ; b8 7f 01
    25122539    jmp short 02414h                          ; eb 03
    2513     mov ax, 00116h                            ; b8 16 01
     2540    mov ax, 00186h                            ; b8 86 01
    25142541    push ax                                   ; 50
    25152542    movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    25162543    push ax                                   ; 50
    2517     push 0011dh                               ; 68 1d 01
     2544    push 0018dh                               ; 68 8d 01
    25182545    push strict byte 00002h                   ; 6a 02
    25192546    call 0190dh                               ; e8 eb f4
     
    25252552    je short 0243eh                           ; 74 0e
    25262553    push ax                                   ; 50
    2527     push 00128h                               ; 68 28 01
     2554    push 00198h                               ; 68 98 01
    25282555    push strict byte 00002h                   ; 6a 02
    25292556    call 0190dh                               ; e8 d4 f4
     
    25332560    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    25342561    push ax                                   ; 50
    2535     push 0012bh                               ; 68 2b 01
     2562    push 0019bh                               ; 68 9b 01
    25362563    push strict byte 00002h                   ; 6a 02
    25372564    call 0190dh                               ; e8 be f4
     
    25402567    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    25412568    je short 02460h                           ; 74 05
    2542     mov ax, 0010fh                            ; b8 0f 01
     2569    mov ax, 0017fh                            ; b8 7f 01
    25432570    jmp short 02463h                          ; eb 03
    2544     mov ax, 00116h                            ; b8 16 01
     2571    mov ax, 00186h                            ; b8 86 01
    25452572    push ax                                   ; 50
    25462573    movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    25472574    push ax                                   ; 50
    2548     push 0011dh                               ; 68 1d 01
     2575    push 0018dh                               ; 68 8d 01
    25492576    push strict byte 00002h                   ; 6a 02
    25502577    call 0190dh                               ; e8 9c f4
     
    25562583    je short 0248dh                           ; 74 0e
    25572584    push ax                                   ; 50
    2558     push 00128h                               ; 68 28 01
     2585    push 00198h                               ; 68 98 01
    25592586    push strict byte 00002h                   ; 6a 02
    25602587    call 0190dh                               ; e8 85 f4
     
    25692596    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    25702597    push ax                                   ; 50
    2571     push 0014bh                               ; 68 4b 01
     2598    push 001bbh                               ; 68 bb 01
    25722599    jmp short 024b2h                          ; eb 08
    25732600    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
    25742601    push ax                                   ; 50
    2575     push 00165h                               ; 68 65 01
     2602    push 001d5h                               ; 68 d5 01
    25762603    push strict byte 00002h                   ; 6a 02
    25772604    call 0190dh                               ; e8 56 f4
     
    25802607    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    25812608    je short 024c7h                           ; 74 05
    2582     mov ax, 0010fh                            ; b8 0f 01
     2609    mov ax, 0017fh                            ; b8 7f 01
    25832610    jmp short 024cah                          ; eb 03
    2584     mov ax, 00116h                            ; b8 16 01
     2611    mov ax, 00186h                            ; b8 86 01
    25852612    push ax                                   ; 50
    25862613    movzx ax, byte [bp-018h]                  ; 0f b6 46 e8
    25872614    push ax                                   ; 50
    2588     push 00177h                               ; 68 77 01
     2615    push 001e7h                               ; 68 e7 01
    25892616    push strict byte 00002h                   ; 6a 02
    25902617    call 0190dh                               ; e8 35 f4
     
    29502977    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    29512978    jne short 0287ch                          ; 75 1f
    2952     mov bx, 00d38h                            ; bb 38 0d
     2979    mov bx, 00da8h                            ; bb a8 0d
    29532980    mov cx, ds                                ; 8c d9
    29542981    mov ax, strict word 00004h                ; b8 04 00
    29552982    call 018cch                               ; e8 64 f0
    2956     push 00191h                               ; 68 91 01
    2957     push 001a0h                               ; 68 a0 01
     2983    push 00201h                               ; 68 01 02
     2984    push 00210h                               ; 68 10 02
    29582985    push strict byte 00004h                   ; 6a 04
    29592986    call 0190dh                               ; e8 9a f0
     
    33153342    cmp AL, strict byte 001h                  ; 3c 01
    33163343    jbe short 02bbfh                          ; 76 0b
    3317     push 001c0h                               ; 68 c0 01
     3344    push 00230h                               ; 68 30 02
    33183345    push strict byte 00007h                   ; 6a 07
    33193346    call 0190dh                               ; e8 51 ed
     
    35813608    pop bp                                    ; 5d
    35823609    retn                                      ; c3
    3583 floppy_media_sense_:                         ; 0xf2db5 LB 0x115
     3610floppy_media_sense_:                         ; 0xf2db5 LB 0xf0
    35843611    push bp                                   ; 55
    35853612    mov bp, sp                                ; 89 e5
     
    35943621    jne short 02dcbh                          ; 75 05
    35953622    xor cx, cx                                ; 31 c9
    3596     jmp near 02ebeh                           ; e9 f3 00
     3623    jmp near 02e99h                           ; e9 ce 00
    35973624    mov ax, strict word 00010h                ; b8 10 00
    35983625    call 0165ch                               ; e8 8b e8
     
    36093636    mov CH, strict byte 015h                  ; b5 15
    36103637    mov si, strict word 00001h                ; be 01 00
    3611     jmp short 02e52h                          ; eb 63
     3638    jmp short 02e2dh                          ; eb 3e
    36123639    cmp cl, 002h                              ; 80 f9 02
    36133640    jne short 02dfah                          ; 75 06
     
    36303657    mov CH, strict byte 0d7h                  ; b5 d7
    36313658    jmp short 02deah                          ; eb cf
    3632     cmp cl, 006h                              ; 80 f9 06
    3633     jne short 02e26h                          ; 75 06
    3634     xor cl, cl                                ; 30 c9
    3635     mov CH, strict byte 027h                  ; b5 27
    3636     jmp short 02deah                          ; eb c4
    3637     cmp cl, 007h                              ; 80 f9 07
    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
    3642     cmp cl, 008h                              ; 80 f9 08
    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
    36473659    cmp cl, 00eh                              ; 80 f9 0e
    3648     je short 02e46h                           ; 74 05
     3660    je short 02e25h                           ; 74 05
    36493661    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
     3662    jne short 02e27h                          ; 75 02
     3663    jmp short 02e15h                          ; eb ee
    36543664    xor cl, cl                                ; 30 c9
    36553665    xor ch, ch                                ; 30 ed
     
    36583668    mov dx, 0008bh                            ; ba 8b 00
    36593669    mov ax, strict word 00040h                ; b8 40 00
    3660     call 0160eh                               ; e8 b0 e7
     3670    call 0160eh                               ; e8 d5 e7
    36613671    mov ax, di                                ; 89 f8
    3662     call 02d2dh                               ; e8 ca fe
     3672    call 02d2dh                               ; e8 ef fe
    36633673    test ax, ax                               ; 85 c0
    3664     jne short 02e99h                          ; 75 32
     3674    jne short 02e74h                          ; 75 32
    36653675    mov al, cl                                ; 88 c8
    36663676    and AL, strict byte 0c0h                  ; 24 c0
    36673677    cmp AL, strict byte 080h                  ; 3c 80
    3668     je short 02e99h                           ; 74 2a
     3678    je short 02e74h                           ; 74 2a
    36693679    mov al, cl                                ; 88 c8
    36703680    and AL, strict byte 0c0h                  ; 24 c0
    36713681    cmp AL, strict byte 0c0h                  ; 3c c0
    3672     je short 02e86h                           ; 74 0f
     3682    je short 02e61h                           ; 74 0f
    36733683    mov ah, cl                                ; 88 cc
    36743684    and ah, 03fh                              ; 80 e4 3f
    36753685    cmp AL, strict byte 040h                  ; 3c 40
    3676     je short 02e92h                           ; 74 12
     3686    je short 02e6dh                           ; 74 12
    36773687    test al, al                               ; 84 c0
    3678     je short 02e8bh                           ; 74 07
    3679     jmp short 02e52h                          ; eb cc
     3688    je short 02e66h                           ; 74 07
     3689    jmp short 02e2dh                          ; eb cc
    36803690    and cl, 03fh                              ; 80 e1 3f
    3681     jmp short 02e52h                          ; eb c7
     3691    jmp short 02e2dh                          ; eb c7
    36823692    mov cl, ah                                ; 88 e1
    36833693    or cl, 040h                               ; 80 c9 40
    3684     jmp short 02e52h                          ; eb c0
     3694    jmp short 02e2dh                          ; eb c0
    36853695    mov cl, ah                                ; 88 e1
    36863696    or cl, 080h                               ; 80 c9 80
    3687     jmp short 02e52h                          ; eb b9
     3697    jmp short 02e2dh                          ; eb b9
    36883698    test di, di                               ; 85 ff
    36893699    db  00fh, 095h, 0c0h
     
    36943704    mov dx, 0008bh                            ; ba 8b 00
    36953705    mov ax, strict word 00040h                ; b8 40 00
    3696     call 0160eh                               ; e8 5d e7
     3706    call 0160eh                               ; e8 82 e7
    36973707    movzx bx, ch                              ; 0f b6 dd
    36983708    mov dx, di                                ; 89 fa
    36993709    mov ax, strict word 00040h                ; b8 40 00
    3700     call 0160eh                               ; e8 52 e7
     3710    call 0160eh                               ; e8 77 e7
    37013711    mov cx, si                                ; 89 f1
    37023712    mov ax, cx                                ; 89 c8
     
    37093719    pop bp                                    ; 5d
    37103720    retn                                      ; c3
    3711 floppy_drive_exists_:                        ; 0xf2eca LB 0x24
     3721floppy_drive_exists_:                        ; 0xf2ea5 LB 0x24
    37123722    push bp                                   ; 55
    37133723    mov bp, sp                                ; 89 e5
     
    37153725    mov dx, ax                                ; 89 c2
    37163726    mov ax, strict word 00010h                ; b8 10 00
    3717     call 0165ch                               ; e8 86 e7
     3727    call 0165ch                               ; e8 ab e7
    37183728    test dx, dx                               ; 85 d2
    3719     jne short 02edfh                          ; 75 05
     3729    jne short 02ebah                          ; 75 05
    37203730    shr al, 004h                              ; c0 e8 04
    3721     jmp short 02ee1h                          ; eb 02
     3731    jmp short 02ebch                          ; eb 02
    37223732    and AL, strict byte 00fh                  ; 24 0f
    37233733    test al, al                               ; 84 c0
     
    37293739    pop bp                                    ; 5d
    37303740    retn                                      ; c3
    3731 _int13_diskette_function:                    ; 0xf2eee LB 0x740
     3741_int13_diskette_function:                    ; 0xf2ec9 LB 0x72a
    37323742    push bp                                   ; 55
    37333743    mov bp, sp                                ; 89 e5
     
    37373747    mov bx, word [bp+016h]                    ; 8b 5e 16
    37383748    shr bx, 008h                              ; c1 eb 08
    3739     mov cl, bl                                ; 88 d9
     3749    mov ch, bl                                ; 88 dd
    37403750    mov si, word [bp+016h]                    ; 8b 76 16
    37413751    and si, 000ffh                            ; 81 e6 ff 00
    3742     mov al, byte [bp+00eh]                    ; 8a 46 0e
     3752    mov ah, byte [bp+00eh]                    ; 8a 66 0e
    37433753    cmp bl, 008h                              ; 80 fb 08
    3744     jc short 02f45h                           ; 72 38
     3754    jc short 02f22h                           ; 72 3a
    37453755    mov dx, word [bp+01ch]                    ; 8b 56 1c
    37463756    or dl, 001h                               ; 80 ca 01
    37473757    cmp bl, 008h                              ; 80 fb 08
    3748     jbe near 0348fh                           ; 0f 86 75 05
     3758    jbe near 03472h                           ; 0f 86 7d 05
    37493759    cmp bl, 016h                              ; 80 fb 16
    3750     jc short 02f3bh                           ; 72 1c
     3760    jc short 02f18h                           ; 72 1e
    37513761    or si, 00100h                             ; 81 ce 00 01
     3762    mov cx, si                                ; 89 f1
    37523763    cmp bl, 016h                              ; 80 fb 16
    3753     jbe near 035eah                           ; 0f 86 c0 06
     3764    jbe near 035aeh                           ; 0f 86 a7 06
    37543765    cmp bl, 018h                              ; 80 fb 18
    3755     je near 035eeh                            ; 0f 84 bd 06
     3766    je near 035b3h                            ; 0f 84 a5 06
    37563767    cmp bl, 017h                              ; 80 fb 17
    3757     je near 035eeh                            ; 0f 84 b6 06
    3758     jmp near 0360bh                           ; e9 d0 06
     3768    je near 035b3h                            ; 0f 84 9e 06
     3769    jmp near 035d0h                           ; e9 b8 06
    37593770    cmp bl, 015h                              ; 80 fb 15
    3760     je near 035abh                            ; 0f 84 69 06
    3761     jmp near 0360bh                           ; e9 c6 06
     3771    je near 03568h                            ; 0f 84 49 06
     3772    jmp near 035d0h                           ; e9 ae 06
    37623773    cmp bl, 001h                              ; 80 fb 01
    3763     jc short 02f5fh                           ; 72 15
    3764     jbe near 02fd3h                           ; 0f 86 85 00
     3774    jc short 02f3ch                           ; 72 15
     3775    jbe near 02fb5h                           ; 0f 86 8a 00
    37653776    cmp bl, 005h                              ; 80 fb 05
    3766     je near 03315h                            ; 0f 84 c0 03
     3777    je near 032f8h                            ; 0f 84 c6 03
    37673778    cmp bl, 004h                              ; 80 fb 04
    3768     jbe near 02ff1h                           ; 0f 86 95 00
    3769     jmp near 0360bh                           ; e9 ac 06
     3779    jbe near 02fd3h                           ; 0f 86 9a 00
     3780    jmp near 035d0h                           ; e9 94 06
    37703781    test bl, bl                               ; 84 db
    3771     jne near 0360bh                           ; 0f 85 a6 06
     3782    jne near 035d0h                           ; 0f 85 8e 06
    37723783    mov al, byte [bp+00eh]                    ; 8a 46 0e
    37733784    mov byte [bp-00eh], al                    ; 88 46 f2
    37743785    cmp AL, strict byte 001h                  ; 3c 01
    3775     jbe short 02f83h                          ; 76 14
     3786    jbe short 02f60h                          ; 76 14
    37763787    mov ax, word [bp+016h]                    ; 8b 46 16
    37773788    xor ah, ah                                ; 30 e4
     
    37793790    mov word [bp+016h], ax                    ; 89 46 16
    37803791    mov ax, strict word 00001h                ; b8 01 00
    3781     call 02b92h                               ; e8 12 fc
    3782     jmp near 032f1h                           ; e9 6e 03
     3792    call 02b92h                               ; e8 35 fc
     3793    jmp near 032d4h                           ; e9 74 03
    37833794    mov ax, strict word 00010h                ; b8 10 00
    3784     call 0165ch                               ; e8 d3 e6
     3795    call 0165ch                               ; e8 f6 e6
    37853796    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
     3797    jne short 02f73h                          ; 75 07
     3798    mov dl, al                                ; 88 c2
     3799    shr dl, 004h                              ; c0 ea 04
     3800    jmp short 02f78h                          ; eb 05
     3801    mov dl, al                                ; 88 c2
     3802    and dl, 00fh                              ; 80 e2 0f
     3803    test dl, dl                               ; 84 d2
     3804    jne short 02f8ch                          ; 75 10
    37923805    mov ax, word [bp+016h]                    ; 8b 46 16
    37933806    xor ah, ah                                ; 30 e4
     
    37953808    mov word [bp+016h], ax                    ; 89 46 16
    37963809    mov ax, 00080h                            ; b8 80 00
    3797     jmp short 02f7dh                          ; eb d3
     3810    jmp short 02f5ah                          ; eb ce
    37983811    xor bx, bx                                ; 31 db
    37993812    mov dx, strict word 0003eh                ; ba 3e 00
    38003813    mov ax, strict word 00040h                ; b8 40 00
    3801     call 0160eh                               ; e8 59 e6
     3814    call 0160eh                               ; e8 77 e6
    38023815    xor al, al                                ; 30 c0
    38033816    mov byte [bp+017h], al                    ; 88 46 17
    38043817    xor ah, ah                                ; 30 e4
    3805     call 02b92h                               ; e8 d3 fb
     3818    call 02b92h                               ; e8 f1 fb
    38063819    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    38073820    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    38083821    xor dx, dx                                ; 31 d2
    3809     call 02baah                               ; e8 de fb
     3822    call 02baah                               ; e8 fc fb
    38103823    lea sp, [bp-004h]                         ; 8d 66 fc
    38113824    pop di                                    ; 5f
     
    38163829    mov dx, 00441h                            ; ba 41 04
    38173830    xor ax, ax                                ; 31 c0
    3818     call 01600h                               ; e8 21 e6
     3831    call 01600h                               ; e8 3f e6
    38193832    movzx dx, al                              ; 0f b6 d0
    38203833    sal dx, 008h                              ; c1 e2 08
     
    38223835    mov word [bp+016h], si                    ; 89 76 16
    38233836    test al, al                               ; 84 c0
    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
     3837    je short 02faeh                           ; 74 de
     3838    jmp near 032d4h                           ; e9 01 03
     3839    mov al, byte [bp+016h]                    ; 8a 46 16
     3840    mov byte [bp-00ch], al                    ; 88 46 f4
    38283841    mov dx, word [bp+014h]                    ; 8b 56 14
    38293842    shr dx, 008h                              ; c1 ea 08
    38303843    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
     3844    mov al, byte [bp+014h]                    ; 8a 46 14
     3845    mov byte [bp-00ah], al                    ; 88 46 f6
    38333846    mov dx, word [bp+012h]                    ; 8b 56 12
    38343847    shr dx, 008h                              ; c1 ea 08
    38353848    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
     3849    mov byte [bp-00eh], ah                    ; 88 66 f2
     3850    cmp ah, 001h                              ; 80 fc 01
     3851    jnbe short 03009h                         ; 77 10
    38393852    cmp dl, 001h                              ; 80 fa 01
    3840     jnbe short 03026h                         ; 77 0b
     3853    jnbe short 03009h                         ; 77 0b
    38413854    mov al, byte [bp-00ch]                    ; 8a 46 f4
    38423855    test al, al                               ; 84 c0
    3843     je short 03026h                           ; 74 04
     3856    je short 03009h                           ; 74 04
    38443857    cmp AL, strict byte 048h                  ; 3c 48
    3845     jbe short 0304fh                          ; 76 29
    3846     mov bx, 00d38h                            ; bb 38 0d
     3858    jbe short 03032h                          ; 76 29
     3859    mov bx, 00da8h                            ; bb a8 0d
    38473860    mov cx, ds                                ; 8c d9
    38483861    mov ax, strict word 00004h                ; b8 04 00
    3849     call 018cch                               ; e8 9b e8
    3850     push 001e5h                               ; 68 e5 01
    3851     push 001fdh                               ; 68 fd 01
     3862    call 018cch                               ; e8 b8 e8
     3863    push 00255h                               ; 68 55 02
     3864    push 0026dh                               ; 68 6d 02
    38523865    push strict byte 00004h                   ; 6a 04
    3853     call 0190dh                               ; e8 d1 e8
     3866    call 0190dh                               ; e8 ee e8
    38543867    add sp, strict byte 00006h                ; 83 c4 06
    38553868    mov ax, word [bp+016h]                    ; 8b 46 16
     
    38583871    mov word [bp+016h], ax                    ; 89 46 16
    38593872    mov ax, strict word 00001h                ; b8 01 00
    3860     jmp short 030c0h                          ; eb 71
     3873    jmp short 030a3h                          ; eb 71
    38613874    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3862     call 02ecah                               ; e8 74 fe
     3875    call 02ea5h                               ; e8 6c fe
    38633876    test ax, ax                               ; 85 c0
    3864     je near 03153h                            ; 0f 84 f7 00
     3877    je near 03136h                            ; 0f 84 f7 00
    38653878    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    38663879    mov ax, dx                                ; 89 d0
    3867     call 02ceah                               ; e8 85 fc
     3880    call 02ceah                               ; e8 a2 fc
    38683881    test ax, ax                               ; 85 c0
    3869     jne short 03082h                          ; 75 19
     3882    jne short 03065h                          ; 75 19
    38703883    mov ax, dx                                ; 89 d0
    3871     call 02db5h                               ; e8 47 fd
     3884    call 02db5h                               ; e8 64 fd
    38723885    test ax, ax                               ; 85 c0
    3873     jne short 03082h                          ; 75 10
     3886    jne short 03065h                          ; 75 10
    38743887    mov ax, word [bp+016h]                    ; 8b 46 16
    38753888    xor ah, ah                                ; 30 e4
     
    38773890    mov word [bp+016h], ax                    ; 89 46 16
    38783891    mov ax, strict word 0000ch                ; b8 0c 00
    3879     jmp short 030c0h                          ; eb 3e
    3880     cmp cl, 002h                              ; 80 f9 02
    3881     jne near 031eah                           ; 0f 85 61 01
     3892    jmp short 030a3h                          ; eb 3e
     3893    cmp ch, 002h                              ; 80 fd 02
     3894    jne near 031cdh                           ; 0f 85 61 01
     3895    mov dx, word [bp+006h]                    ; 8b 56 06
     3896    shr dx, 00ch                              ; c1 ea 0c
     3897    mov ah, dl                                ; 88 d4
     3898    mov cx, word [bp+006h]                    ; 8b 4e 06
     3899    sal cx, 004h                              ; c1 e1 04
     3900    mov bx, word [bp+010h]                    ; 8b 5e 10
     3901    add bx, cx                                ; 01 cb
     3902    cmp bx, cx                                ; 39 cb
     3903    jnc short 03085h                          ; 73 02
     3904    db  0feh, 0c4h
     3905    ; inc ah                                    ; fe c4
     3906    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
     3907    sal cx, 009h                              ; c1 e1 09
     3908    dec cx                                    ; 49
     3909    mov dx, bx                                ; 89 da
     3910    add dx, cx                                ; 01 ca
     3911    cmp dx, bx                                ; 39 da
     3912    jnc short 030adh                          ; 73 18
     3913    mov ax, word [bp+016h]                    ; 8b 46 16
     3914    xor ah, ah                                ; 30 e4
     3915    or ah, 009h                               ; 80 cc 09
     3916    mov word [bp+016h], ax                    ; 89 46 16
     3917    mov ax, strict word 00009h                ; b8 09 00
     3918    call 02b92h                               ; e8 ec fa
     3919    mov byte [bp+016h], 000h                  ; c6 46 16 00
     3920    jmp near 032d4h                           ; e9 27 02
     3921    mov AL, strict byte 006h                  ; b0 06
     3922    mov dx, strict word 0000ah                ; ba 0a 00
     3923    out DX, AL                                ; ee
     3924    xor al, al                                ; 30 c0
     3925    mov dx, strict word 0000ch                ; ba 0c 00
     3926    out DX, AL                                ; ee
     3927    mov al, bl                                ; 88 d8
     3928    mov dx, strict word 00004h                ; ba 04 00
     3929    out DX, AL                                ; ee
     3930    shr bx, 008h                              ; c1 eb 08
     3931    mov al, bl                                ; 88 d8
     3932    out DX, AL                                ; ee
     3933    xor al, bl                                ; 30 d8
     3934    mov dx, strict word 0000ch                ; ba 0c 00
     3935    out DX, AL                                ; ee
     3936    mov al, cl                                ; 88 c8
     3937    mov dx, strict word 00005h                ; ba 05 00
     3938    out DX, AL                                ; ee
     3939    shr cx, 008h                              ; c1 e9 08
     3940    mov al, cl                                ; 88 c8
     3941    out DX, AL                                ; ee
     3942    mov AL, strict byte 046h                  ; b0 46
     3943    mov dx, strict word 0000bh                ; ba 0b 00
     3944    out DX, AL                                ; ee
     3945    mov al, ah                                ; 88 e0
     3946    mov dx, 00081h                            ; ba 81 00
     3947    out DX, AL                                ; ee
     3948    mov AL, strict byte 002h                  ; b0 02
     3949    mov dx, strict word 0000ah                ; ba 0a 00
     3950    out DX, AL                                ; ee
     3951    out DX, AL                                ; ee
     3952    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3953    call 02c69h                               ; e8 78 fb
     3954    mov AL, strict byte 0e6h                  ; b0 e6
     3955    mov dx, 003f5h                            ; ba f5 03
     3956    out DX, AL                                ; ee
     3957    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     3958    sal dx, 002h                              ; c1 e2 02
     3959    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     3960    or ax, dx                                 ; 09 d0
     3961    mov dx, 003f5h                            ; ba f5 03
     3962    out DX, AL                                ; ee
     3963    mov al, byte [bp-008h]                    ; 8a 46 f8
     3964    out DX, AL                                ; ee
     3965    mov al, byte [bp-006h]                    ; 8a 46 fa
     3966    out DX, AL                                ; ee
     3967    mov al, byte [bp-00ah]                    ; 8a 46 f6
     3968    out DX, AL                                ; ee
     3969    mov AL, strict byte 002h                  ; b0 02
     3970    out DX, AL                                ; ee
     3971    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     3972    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     3973    add ax, dx                                ; 01 d0
     3974    dec ax                                    ; 48
     3975    mov dx, 003f5h                            ; ba f5 03
     3976    out DX, AL                                ; ee
     3977    xor al, al                                ; 30 c0
     3978    out DX, AL                                ; ee
     3979    mov AL, strict byte 0ffh                  ; b0 ff
     3980    out DX, AL                                ; ee
     3981    call 02bf8h                               ; e8 c9 fa
     3982    test al, al                               ; 84 c0
     3983    jne short 03147h                          ; 75 14
     3984    call 02c3eh                               ; e8 08 fb
     3985    mov ax, word [bp+016h]                    ; 8b 46 16
     3986    xor ah, ah                                ; 30 e4
     3987    or ah, 080h                               ; 80 cc 80
     3988    mov word [bp+016h], ax                    ; 89 46 16
     3989    mov ax, 00080h                            ; b8 80 00
     3990    jmp near 030a3h                           ; e9 5c ff
     3991    mov dx, 003f4h                            ; ba f4 03
     3992    in AL, DX                                 ; ec
     3993    db  02ah, 0e4h
     3994    ; sub ah, ah                                ; 2a e4
     3995    and AL, strict byte 0c0h                  ; 24 c0
     3996    cmp AL, strict byte 0c0h                  ; 3c c0
     3997    je short 03161h                           ; 74 0e
     3998    push 00255h                               ; 68 55 02
     3999    push 00288h                               ; 68 88 02
     4000    push strict byte 00007h                   ; 6a 07
     4001    call 0190dh                               ; e8 af e7
     4002    add sp, strict byte 00006h                ; 83 c4 06
     4003    xor si, si                                ; 31 f6
     4004    jmp short 0316ah                          ; eb 05
     4005    cmp si, strict byte 00007h                ; 83 fe 07
     4006    jnl short 03182h                          ; 7d 18
     4007    mov dx, 003f5h                            ; ba f5 03
     4008    in AL, DX                                 ; ec
     4009    db  02ah, 0e4h
     4010    ; sub ah, ah                                ; 2a e4
     4011    mov byte [bp+si-016h], al                 ; 88 42 ea
     4012    movzx bx, al                              ; 0f b6 d8
     4013    lea dx, [si+042h]                         ; 8d 54 42
     4014    mov ax, strict word 00040h                ; b8 40 00
     4015    call 0160eh                               ; e8 8f e4
     4016    inc si                                    ; 46
     4017    jmp short 03165h                          ; eb e3
     4018    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
     4019    je short 03199h                           ; 74 11
     4020    mov ax, word [bp+016h]                    ; 8b 46 16
     4021    xor ah, ah                                ; 30 e4
     4022    or ah, 020h                               ; 80 cc 20
     4023    mov word [bp+016h], ax                    ; 89 46 16
     4024    mov ax, strict word 00020h                ; b8 20 00
     4025    jmp near 030a3h                           ; e9 0a ff
     4026    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4027    sal ax, 009h                              ; c1 e0 09
     4028    cwd                                       ; 99
     4029    db  02bh, 0c2h
     4030    ; sub ax, dx                                ; 2b c2
     4031    sar ax, 1                                 ; d1 f8
     4032    mov cx, ax                                ; 89 c1
     4033    mov si, word [bp+010h]                    ; 8b 76 10
     4034    mov dx, word [bp+006h]                    ; 8b 56 06
     4035    mov di, si                                ; 89 f7
     4036    mov es, dx                                ; 8e c2
     4037    push DS                                   ; 1e
     4038    mov ds, dx                                ; 8e da
     4039    rep movsw                                 ; f3 a5
     4040    pop DS                                    ; 1f
     4041    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     4042    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4043    call 02baah                               ; e8 e8 f9
     4044    mov byte [bp+017h], 000h                  ; c6 46 17 00
     4045    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     4046    jmp near 02faeh                           ; e9 e1 fd
     4047    cmp ch, 003h                              ; 80 fd 03
     4048    jne near 032e2h                           ; 0f 85 0e 01
    38824049    mov cx, word [bp+006h]                    ; 8b 4e 06
    38834050    shr cx, 00ch                              ; c1 e9 0c
     
    38884055    add bx, dx                                ; 01 d3
    38894056    cmp bx, dx                                ; 39 d3
    3890     jnc short 030a2h                          ; 73 02
     4057    jnc short 031edh                          ; 73 02
    38914058    db  0feh, 0c4h
    38924059    ; inc ah                                    ; fe c4
     
    38974064    add dx, cx                                ; 01 ca
    38984065    cmp dx, bx                                ; 39 da
    3899     jnc short 030cah                          ; 73 18
    3900     mov ax, word [bp+016h]                    ; 8b 46 16
    3901     xor ah, ah                                ; 30 e4
    3902     or ah, 009h                               ; 80 cc 09
    3903     mov word [bp+016h], ax                    ; 89 46 16
    3904     mov ax, strict word 00009h                ; b8 09 00
    3905     call 02b92h                               ; e8 cf fa
    3906     mov byte [bp+016h], 000h                  ; c6 46 16 00
    3907     jmp near 032f1h                           ; e9 27 02
     4066    jc near 03095h                            ; 0f 82 96 fe
    39084067    mov AL, strict byte 006h                  ; b0 06
    39094068    mov dx, strict word 0000ah                ; ba 0a 00
     
    39274086    mov al, cl                                ; 88 c8
    39284087    out DX, AL                                ; ee
    3929     mov AL, strict byte 046h                  ; b0 46
     4088    mov AL, strict byte 04ah                  ; b0 4a
    39304089    mov dx, strict word 0000bh                ; ba 0b 00
    39314090    out DX, AL                                ; ee
     
    39364095    mov dx, strict word 0000ah                ; ba 0a 00
    39374096    out DX, AL                                ; ee
    3938     out DX, AL                                ; ee
    39394097    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    3940     call 02c69h                               ; e8 5b fb
    3941     mov AL, strict byte 0e6h                  ; b0 e6
     4098    call 02c69h                               ; e8 27 fa
     4099    mov AL, strict byte 0c5h                  ; b0 c5
    39424100    mov dx, 003f5h                            ; ba f5 03
    39434101    out DX, AL                                ; ee
     
    39564114    mov AL, strict byte 002h                  ; b0 02
    39574115    out DX, AL                                ; ee
    3958     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    3959     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     4116    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     4117    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    39604118    add ax, dx                                ; 01 d0
    39614119    dec ax                                    ; 48
     
    39664124    mov AL, strict byte 0ffh                  ; b0 ff
    39674125    out DX, AL                                ; ee
    3968     call 02bf8h                               ; e8 ac fa
     4126    call 02bf8h                               ; e8 78 f9
    39694127    test al, al                               ; 84 c0
    3970     jne short 03164h                          ; 75 14
    3971     call 02c3eh                               ; e8 eb fa
    3972     mov ax, word [bp+016h]                    ; 8b 46 16
    3973     xor ah, ah                                ; 30 e4
    3974     or ah, 080h                               ; 80 cc 80
    3975     mov word [bp+016h], ax                    ; 89 46 16
    3976     mov ax, 00080h                            ; b8 80 00
    3977     jmp near 030c0h                           ; e9 5c ff
     4128    je near 03133h                            ; 0f 84 ad fe
    39784129    mov dx, 003f4h                            ; ba f4 03
    39794130    in AL, DX                                 ; ec
     
    39824133    and AL, strict byte 0c0h                  ; 24 c0
    39834134    cmp AL, strict byte 0c0h                  ; 3c c0
    3984     je short 0317eh                           ; 74 0e
    3985     push 001e5h                               ; 68 e5 01
    3986     push 00218h                               ; 68 18 02
     4135    je short 032a0h                           ; 74 0e
     4136    push 00255h                               ; 68 55 02
     4137    push 00288h                               ; 68 88 02
    39874138    push strict byte 00007h                   ; 6a 07
    3988     call 0190dh                               ; e8 92 e7
     4139    call 0190dh                               ; e8 70 e6
    39894140    add sp, strict byte 00006h                ; 83 c4 06
    39904141    xor si, si                                ; 31 f6
    3991     jmp short 03187h                          ; eb 05
     4142    jmp short 032a9h                          ; eb 05
    39924143    cmp si, strict byte 00007h                ; 83 fe 07
    3993     jnl short 0319fh                          ; 7d 18
     4144    jnl short 032c1h                          ; 7d 18
    39944145    mov dx, 003f5h                            ; ba f5 03
    39954146    in AL, DX                                 ; ec
     
    40004151    lea dx, [si+042h]                         ; 8d 54 42
    40014152    mov ax, strict word 00040h                ; b8 40 00
    4002     call 0160eh                               ; e8 72 e4
     4153    call 0160eh                               ; e8 50 e3
    40034154    inc si                                    ; 46
    4004     jmp short 03182h                          ; eb e3
     4155    jmp short 032a4h                          ; eb e3
    40054156    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
    4006     je short 031b6h                           ; 74 11
    4007     mov ax, word [bp+016h]                    ; 8b 46 16
    4008     xor ah, ah                                ; 30 e4
    4009     or ah, 020h                               ; 80 cc 20
    4010     mov word [bp+016h], ax                    ; 89 46 16
    4011     mov ax, strict word 00020h                ; b8 20 00
    4012     jmp near 030c0h                           ; e9 0a ff
    4013     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4014     sal ax, 009h                              ; c1 e0 09
    4015     cwd                                       ; 99
    4016     db  02bh, 0c2h
    4017     ; sub ax, dx                                ; 2b c2
    4018     sar ax, 1                                 ; d1 f8
    4019     mov si, word [bp+010h]                    ; 8b 76 10
    4020     mov dx, word [bp+006h]                    ; 8b 56 06
    4021     mov di, si                                ; 89 f7
    4022     mov es, dx                                ; 8e c2
    4023     mov cx, ax                                ; 89 c1
    4024     push DS                                   ; 1e
    4025     mov ds, dx                                ; 8e da
    4026     rep movsw                                 ; f3 a5
    4027     pop DS                                    ; 1f
     4157    je near 031b7h                            ; 0f 84 ee fe
     4158    test byte [bp-015h], 002h                 ; f6 46 eb 02
     4159    je short 032dbh                           ; 74 0c
     4160    mov word [bp+016h], 00300h                ; c7 46 16 00 03
     4161    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     4162    jmp near 02faeh                           ; e9 d3 fc
     4163    mov word [bp+016h], 00100h                ; c7 46 16 00 01
     4164    jmp short 032d4h                          ; eb f2
    40284165    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    40294166    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
    4037     shr dx, 00ch                              ; c1 ea 0c
    4038     mov ah, dl                                ; 88 d4
    4039     mov cx, word [bp+006h]                    ; 8b 4e 06
    4040     sal cx, 004h                              ; c1 e1 04
    4041     mov bx, word [bp+010h]                    ; 8b 5e 10
    4042     add bx, cx                                ; 01 cb
    4043     cmp bx, cx                                ; 39 cb
    4044     jnc short 0320ah                          ; 73 02
    4045     db  0feh, 0c4h
    4046     ; inc ah                                    ; fe c4
    4047     movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    4048     sal cx, 009h                              ; c1 e1 09
    4049     dec cx                                    ; 49
    4050     mov dx, bx                                ; 89 da
    4051     add dx, cx                                ; 01 ca
    4052     cmp dx, bx                                ; 39 da
    4053     jc near 030b2h                            ; 0f 82 96 fe
    4054     mov AL, strict byte 006h                  ; b0 06
    4055     mov dx, strict word 0000ah                ; ba 0a 00
    4056     out DX, AL                                ; ee
    4057     xor al, al                                ; 30 c0
    4058     mov dx, strict word 0000ch                ; ba 0c 00
    4059     out DX, AL                                ; ee
    4060     mov al, bl                                ; 88 d8
    4061     mov dx, strict word 00004h                ; ba 04 00
    4062     out DX, AL                                ; ee
    4063     shr bx, 008h                              ; c1 eb 08
    4064     mov al, bl                                ; 88 d8
    4065     out DX, AL                                ; ee
    4066     xor al, bl                                ; 30 d8
    4067     mov dx, strict word 0000ch                ; ba 0c 00
    4068     out DX, AL                                ; ee
    4069     mov al, cl                                ; 88 c8
    4070     mov dx, strict word 00005h                ; ba 05 00
    4071     out DX, AL                                ; ee
    4072     shr cx, 008h                              ; c1 e9 08
    4073     mov al, cl                                ; 88 c8
    4074     out DX, AL                                ; ee
    4075     mov AL, strict byte 04ah                  ; b0 4a
    4076     mov dx, strict word 0000bh                ; ba 0b 00
    4077     out DX, AL                                ; ee
    4078     mov al, ah                                ; 88 e0
    4079     mov dx, 00081h                            ; ba 81 00
    4080     out DX, AL                                ; ee
    4081     mov AL, strict byte 002h                  ; b0 02
    4082     mov dx, strict word 0000ah                ; ba 0a 00
    4083     out DX, AL                                ; ee
    4084     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4085     call 02c69h                               ; e8 0a fa
    4086     mov AL, strict byte 0c5h                  ; b0 c5
    4087     mov dx, 003f5h                            ; ba f5 03
    4088     out DX, AL                                ; ee
    4089     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    4090     sal dx, 002h                              ; c1 e2 02
    4091     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4092     or ax, dx                                 ; 09 d0
    4093     mov dx, 003f5h                            ; ba f5 03
    4094     out DX, AL                                ; ee
    4095     mov al, byte [bp-008h]                    ; 8a 46 f8
    4096     out DX, AL                                ; ee
    4097     mov al, byte [bp-006h]                    ; 8a 46 fa
    4098     out DX, AL                                ; ee
    4099     mov al, byte [bp-00ah]                    ; 8a 46 f6
    4100     out DX, AL                                ; ee
    4101     mov AL, strict byte 002h                  ; b0 02
    4102     out DX, AL                                ; ee
    4103     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    4104     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4105     add ax, dx                                ; 01 d0
    4106     dec ax                                    ; 48
    4107     mov dx, 003f5h                            ; ba f5 03
    4108     out DX, AL                                ; ee
    4109     xor al, al                                ; 30 c0
    4110     out DX, AL                                ; ee
    4111     mov AL, strict byte 0ffh                  ; b0 ff
    4112     out DX, AL                                ; ee
    4113     call 02bf8h                               ; e8 5b f9
    4114     test al, al                               ; 84 c0
    4115     je near 03150h                            ; 0f 84 ad fe
    4116     mov dx, 003f4h                            ; ba f4 03
    4117     in AL, DX                                 ; ec
    4118     db  02ah, 0e4h
    4119     ; sub ah, ah                                ; 2a e4
    4120     and AL, strict byte 0c0h                  ; 24 c0
    4121     cmp AL, strict byte 0c0h                  ; 3c c0
    4122     je short 032bdh                           ; 74 0e
    4123     push 001e5h                               ; 68 e5 01
    4124     push 00218h                               ; 68 18 02
    4125     push strict byte 00007h                   ; 6a 07
    4126     call 0190dh                               ; e8 53 e6
    4127     add sp, strict byte 00006h                ; 83 c4 06
    4128     xor si, si                                ; 31 f6
    4129     jmp short 032c6h                          ; eb 05
    4130     cmp si, strict byte 00007h                ; 83 fe 07
    4131     jnl short 032deh                          ; 7d 18
    4132     mov dx, 003f5h                            ; ba f5 03
    4133     in AL, DX                                 ; ec
    4134     db  02ah, 0e4h
    4135     ; sub ah, ah                                ; 2a e4
    4136     mov byte [bp+si-016h], al                 ; 88 42 ea
    4137     movzx bx, al                              ; 0f b6 d8
    4138     lea dx, [si+042h]                         ; 8d 54 42
    4139     mov ax, strict word 00040h                ; b8 40 00
    4140     call 0160eh                               ; e8 33 e3
    4141     inc si                                    ; 46
    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
     4167    call 02baah                               ; e8 bd f8
    41554168    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    41564169    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4157     jmp near 02fcch                           ; e9 b7 fc
     4170    jmp near 02faeh                           ; e9 b6 fc
    41584171    mov al, byte [bp+016h]                    ; 8a 46 16
    41594172    mov byte [bp-00ch], al                    ; 88 46 f4
     
    41664179    mov byte [bp-00eh], bl                    ; 88 5e f2
    41674180    cmp bl, 001h                              ; 80 fb 01
    4168     jnbe short 03349h                         ; 77 14
     4181    jnbe short 0332ch                         ; 77 14
    41694182    cmp AL, strict byte 001h                  ; 3c 01
    4170     jnbe short 03349h                         ; 77 10
     4183    jnbe short 0332ch                         ; 77 10
    41714184    cmp dl, 04fh                              ; 80 fa 4f
    4172     jnbe short 03349h                         ; 77 0b
     4185    jnbe short 0332ch                         ; 77 0b
    41734186    mov al, byte [bp-00ch]                    ; 8a 46 f4
    41744187    test al, al                               ; 84 c0
    4175     je short 03349h                           ; 74 04
     4188    je short 0332ch                           ; 74 04
    41764189    cmp AL, strict byte 012h                  ; 3c 12
    4177     jbe short 0335eh                          ; 76 15
     4190    jbe short 03341h                          ; 76 15
    41784191    mov ax, word [bp+016h]                    ; 8b 46 16
    41794192    xor ah, ah                                ; 30 e4
     
    41814194    mov word [bp+016h], ax                    ; 89 46 16
    41824195    mov ax, strict word 00001h                ; b8 01 00
    4183     call 02b92h                               ; e8 38 f8
     4196    call 02b92h                               ; e8 55 f8
    41844197    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    41854198    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4186     call 02ecah                               ; e8 65 fb
     4199    call 02ea5h                               ; e8 5d fb
    41874200    test ax, ax                               ; 85 c0
    4188     je near 02f9ah                            ; 0f 84 2f fc
     4201    je near 02f7ch                            ; 0f 84 2e fc
    41894202    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    41904203    mov ax, dx                                ; 89 d0
    4191     call 02ceah                               ; e8 76 f9
     4204    call 02ceah                               ; e8 93 f9
    41924205    test ax, ax                               ; 85 c0
    4193     jne short 03383h                          ; 75 0b
     4206    jne short 03366h                          ; 75 0b
    41944207    mov ax, dx                                ; 89 d0
    4195     call 02db5h                               ; e8 38 fa
     4208    call 02db5h                               ; e8 55 fa
    41964209    test ax, ax                               ; 85 c0
    4197     je near 03072h                            ; 0f 84 ef fc
     4210    je near 03055h                            ; 0f 84 ef fc
    41984211    mov dx, word [bp+006h]                    ; 8b 56 06
    41994212    shr dx, 00ch                              ; c1 ea 0c
     
    42044217    add bx, cx                                ; 01 cb
    42054218    cmp bx, cx                                ; 39 cb
    4206     jnc short 0339ch                          ; 73 02
     4219    jnc short 0337fh                          ; 73 02
    42074220    db  0feh, 0c4h
    42084221    ; inc ah                                    ; fe c4
     
    42134226    add dx, cx                                ; 01 ca
    42144227    cmp dx, bx                                ; 39 da
    4215     jc near 030b2h                            ; 0f 82 04 fd
     4228    jc near 03095h                            ; 0f 82 04 fd
    42164229    mov AL, strict byte 006h                  ; b0 06
    42174230    mov dx, strict word 0000ah                ; ba 0a 00
     
    42454258    out DX, AL                                ; ee
    42464259    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    4247     call 02c69h                               ; e8 78 f8
     4260    call 02c69h                               ; e8 95 f8
    42484261    mov AL, strict byte 04dh                  ; b0 4d
    42494262    mov dx, 003f5h                            ; ba f5 03
    42504263    out DX, AL                                ; ee
    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
     4264    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     4265    sal dx, 002h                              ; c1 e2 02
     4266    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    42544267    or ax, dx                                 ; 09 d0
    42554268    mov dx, 003f5h                            ; ba f5 03
     
    42634276    mov AL, strict byte 0f6h                  ; b0 f6
    42644277    out DX, AL                                ; ee
    4265     call 02bf8h                               ; e8 e0 f7
     4278    call 02bf8h                               ; e8 fd f7
    42664279    test al, al                               ; 84 c0
    4267     jne short 03422h                          ; 75 06
    4268     call 02c3eh                               ; e8 1f f8
    4269     jmp near 02f9ah                           ; e9 78 fb
     4280    jne short 03405h                          ; 75 06
     4281    call 02c3eh                               ; e8 3c f8
     4282    jmp near 02f7ch                           ; e9 77 fb
    42704283    mov dx, 003f4h                            ; ba f4 03
    42714284    in AL, DX                                 ; ec
     
    42744287    and AL, strict byte 0c0h                  ; 24 c0
    42754288    cmp AL, strict byte 0c0h                  ; 3c c0
    4276     je short 0343ch                           ; 74 0e
    4277     push 001e5h                               ; 68 e5 01
    4278     push 00218h                               ; 68 18 02
     4289    je short 0341fh                           ; 74 0e
     4290    push 00255h                               ; 68 55 02
     4291    push 00288h                               ; 68 88 02
    42794292    push strict byte 00007h                   ; 6a 07
    4280     call 0190dh                               ; e8 d4 e4
     4293    call 0190dh                               ; e8 f1 e4
    42814294    add sp, strict byte 00006h                ; 83 c4 06
    42824295    xor si, si                                ; 31 f6
    4283     jmp short 03445h                          ; eb 05
     4296    jmp short 03428h                          ; eb 05
    42844297    cmp si, strict byte 00007h                ; 83 fe 07
    4285     jnl short 0345dh                          ; 7d 18
     4298    jnl short 03440h                          ; 7d 18
    42864299    mov dx, 003f5h                            ; ba f5 03
    42874300    in AL, DX                                 ; ec
     
    42924305    lea dx, [si+042h]                         ; 8d 54 42
    42934306    mov ax, strict word 00040h                ; b8 40 00
    4294     call 0160eh                               ; e8 b4 e1
     4307    call 0160eh                               ; e8 d1 e1
    42954308    inc si                                    ; 46
    4296     jmp short 03440h                          ; eb e3
     4309    jmp short 03423h                          ; eb e3
    42974310    test byte [bp-016h], 0c0h                 ; f6 46 ea c0
    4298     je short 03479h                           ; 74 16
     4311    je short 0345ch                           ; 74 16
    42994312    test byte [bp-015h], 002h                 ; f6 46 eb 02
    4300     jne near 032ech                           ; 0f 85 81 fe
    4301     push 001e5h                               ; 68 e5 01
    4302     push 0022ch                               ; 68 2c 02
     4313    jne near 032cfh                           ; 0f 85 81 fe
     4314    push 00255h                               ; 68 55 02
     4315    push 0029ch                               ; 68 9c 02
    43034316    push strict byte 00007h                   ; 6a 07
    4304     call 0190dh                               ; e8 97 e4
     4317    call 0190dh                               ; e8 b4 e4
    43054318    add sp, strict byte 00006h                ; 83 c4 06
    43064319    xor al, al                                ; 30 c0
    43074320    mov byte [bp+017h], al                    ; 88 46 17
    43084321    xor ah, ah                                ; 30 e4
    4309     call 02b92h                               ; e8 0f f7
     4322    call 02b92h                               ; e8 2c f7
    43104323    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
    43114324    xor dx, dx                                ; 31 d2
    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
     4325    call 02baah                               ; e8 3b f7
     4326    jmp near 031c6h                           ; e9 54 fd
     4327    mov byte [bp-00eh], ah                    ; 88 66 f2
     4328    cmp ah, 001h                              ; 80 fc 01
     4329    jbe short 0349ah                          ; 76 20
     4330    xor ax, ax                                ; 31 c0
     4331    mov word [bp+016h], ax                    ; 89 46 16
     4332    mov word [bp+010h], ax                    ; 89 46 10
     4333    mov word [bp+014h], ax                    ; 89 46 14
     4334    mov word [bp+012h], ax                    ; 89 46 12
     4335    mov word [bp+006h], ax                    ; 89 46 06
     4336    mov word [bp+008h], ax                    ; 89 46 08
     4337    movzx ax, cl                              ; 0f b6 c1
    43224338    mov word [bp+012h], ax                    ; 89 46 12
    43234339    mov word [bp+01ch], dx                    ; 89 56 1c
    4324     jmp near 02fcch                           ; e9 10 fb
     4340    jmp near 02faeh                           ; e9 14 fb
    43254341    mov ax, strict word 00010h                ; b8 10 00
    4326     call 0165ch                               ; e8 9a e1
    4327     xor ah, ah                                ; 30 e4
     4342    call 0165ch                               ; e8 bc e1
     4343    mov dl, al                                ; 88 c2
     4344    xor cl, cl                                ; 30 c9
    43284345    test AL, strict byte 0f0h                 ; a8 f0
    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
     4346    je short 034aah                           ; 74 02
     4347    mov CL, strict byte 001h                  ; b1 01
     4348    test dl, 00fh                             ; f6 c2 0f
     4349    je short 034b1h                           ; 74 02
     4350    db  0feh, 0c1h
     4351    ; inc cl                                    ; fe c1
    43354352    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
     4353    jne short 034bch                          ; 75 05
     4354    shr dl, 004h                              ; c0 ea 04
     4355    jmp short 034bfh                          ; eb 03
     4356    and dl, 00fh                              ; 80 e2 0f
    43404357    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
     4358    movzx ax, dl                              ; 0f b6 c2
     4359    mov word [bp+010h], ax                    ; 89 46 10
    43434360    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    43444361    mov bx, word [bp+012h]                    ; 8b 5e 12
    43454362    xor bl, bl                                ; 30 db
    4346     movzx dx, ah                              ; 0f b6 d4
    4347     or bx, dx                                 ; 09 d3
     4363    movzx ax, cl                              ; 0f b6 c1
     4364    or bx, ax                                 ; 09 c3
    43484365    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
     4366    mov ax, bx                                ; 89 d8
     4367    xor ah, bh                                ; 30 fc
     4368    or ah, 001h                               ; 80 cc 01
     4369    mov word [bp+012h], ax                    ; 89 46 12
     4370    cmp dl, 003h                              ; 80 fa 03
     4371    jc short 034ffh                           ; 72 15
     4372    jbe short 03526h                          ; 76 3a
     4373    cmp dl, 005h                              ; 80 fa 05
     4374    jc short 0352dh                           ; 72 3c
     4375    jbe short 03534h                          ; 76 41
     4376    cmp dl, 00fh                              ; 80 fa 0f
     4377    je short 03542h                           ; 74 4a
     4378    cmp dl, 00eh                              ; 80 fa 0e
     4379    je short 0353bh                           ; 74 3e
     4380    jmp short 03549h                          ; eb 4a
     4381    cmp dl, 002h                              ; 80 fa 02
     4382    je short 0351fh                           ; 74 1b
     4383    cmp dl, 001h                              ; 80 fa 01
     4384    je short 03518h                           ; 74 0f
     4385    test dl, dl                               ; 84 d2
     4386    jne short 03549h                          ; 75 3c
    43784387    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    43794388    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4380     jmp short 0359eh                          ; eb 57
     4389    jmp short 03557h                          ; eb 3f
    43814390    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4382     jmp short 0359eh                          ; eb 50
     4391    jmp short 03557h                          ; eb 38
    43834392    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4384     jmp short 0359eh                          ; eb 49
     4393    jmp short 03557h                          ; eb 31
    43854394    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4386     jmp short 0359eh                          ; eb 42
     4395    jmp short 03557h                          ; eb 2a
    43874396    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4388     jmp short 0359eh                          ; eb 3b
     4397    jmp short 03557h                          ; eb 23
    43894398    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
     4399    jmp short 03557h                          ; eb 1c
    43984400    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4399     jmp short 0359eh                          ; eb 15
     4401    jmp short 03557h                          ; eb 15
    44004402    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4401     jmp short 0359eh                          ; eb 0e
    4402     push 001e5h                               ; 68 e5 01
    4403     push 0023dh                               ; 68 3d 02
     4403    jmp short 03557h                          ; eb 0e
     4404    push 00255h                               ; 68 55 02
     4405    push 002adh                               ; 68 ad 02
    44044406    push strict byte 00007h                   ; 6a 07
    4405     call 0190dh                               ; e8 72 e3
     4407    call 0190dh                               ; e8 b9 e3
    44064408    add sp, strict byte 00006h                ; 83 c4 06
    44074409    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
     4410    movzx ax, dl                              ; 0f b6 c2
     4411    call 035f3h                               ; e8 91 00
     4412    mov word [bp+008h], ax                    ; 89 46 08
     4413    jmp near 031c6h                           ; e9 5e fc
     4414    mov byte [bp-00eh], ah                    ; 88 66 f2
     4415    cmp ah, 001h                              ; 80 fc 01
     4416    jbe short 03576h                          ; 76 06
    44134417    mov word [bp+016h], si                    ; 89 76 16
    4414     jmp near 034b6h                           ; e9 fe fe
     4418    jmp near 03494h                           ; e9 1e ff
    44154419    mov ax, strict word 00010h                ; b8 10 00
    4416     call 0165ch                               ; e8 9e e0
     4420    call 0165ch                               ; e8 e0 e0
    44174421    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    jne short 03589h                          ; 75 07
     4423    mov dl, al                                ; 88 c2
     4424    shr dl, 004h                              ; c0 ea 04
     4425    jmp short 0358eh                          ; eb 05
     4426    mov dl, al                                ; 88 c2
     4427    and dl, 00fh                              ; 80 e2 0f
    44224428    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
     4429    mov bx, word [bp+016h]                    ; 8b 5e 16
     4430    xor bh, bh                                ; 30 ff
     4431    test dl, dl                               ; 84 d2
     4432    je short 035a8h                           ; 74 0d
     4433    cmp dl, 001h                              ; 80 fa 01
     4434    jbe short 035a5h                          ; 76 05
     4435    or bh, 002h                               ; 80 cf 02
     4436    jmp short 035a8h                          ; eb 03
     4437    or bh, 001h                               ; 80 cf 01
     4438    mov word [bp+016h], bx                    ; 89 5e 16
     4439    jmp near 02faeh                           ; e9 00 fa
     4440    cmp ah, 001h                              ; 80 fc 01
     4441    jbe short 035bfh                          ; 76 0c
    44364442    mov word [bp+016h], si                    ; 89 76 16
    44374443    mov ax, strict word 00001h                ; b8 01 00
    4438     call 02b92h                               ; e8 9b f5
    4439     jmp near 034b6h                           ; e9 bc fe
     4444    call 02b92h                               ; e8 d6 f5
     4445    jmp near 03494h                           ; e9 d5 fe
    44404446    mov ax, word [bp+016h]                    ; 8b 46 16
    44414447    xor ah, ah                                ; 30 e4
     
    44434449    mov word [bp+016h], ax                    ; 89 46 16
    44444450    mov ax, strict word 00006h                ; b8 06 00
    4445     jmp near 02f7dh                           ; e9 72 f9
    4446     mov bx, 00d38h                            ; bb 38 0d
     4451    jmp near 02f5ah                           ; e9 8a f9
     4452    mov bx, 00da8h                            ; bb a8 0d
    44474453    mov cx, ds                                ; 8c d9
    44484454    mov ax, strict word 00004h                ; b8 04 00
    4449     call 018cch                               ; e8 b6 e2
     4455    call 018cch                               ; e8 f1 e2
    44504456    mov ax, word [bp+016h]                    ; 8b 46 16
    44514457    shr ax, 008h                              ; c1 e8 08
    44524458    push ax                                   ; 50
    4453     push 001e5h                               ; 68 e5 01
    4454     push 00252h                               ; 68 52 02
     4459    push 00255h                               ; 68 55 02
     4460    push 002c2h                               ; 68 c2 02
    44554461    push strict byte 00004h                   ; 6a 04
    4456     call 0190dh                               ; e8 e5 e2
     4462    call 0190dh                               ; e8 20 e3
    44574463    add sp, strict byte 00008h                ; 83 c4 08
    4458     jmp near 02f6fh                           ; e9 41 f9
    4459 dummy_soft_reset_:                           ; 0xf362e LB 0x7
     4464    jmp near 02f4ch                           ; e9 59 f9
     4465get_floppy_dpt_:                             ; 0xf35f3 LB 0x2f
     4466    push bx                                   ; 53
     4467    push dx                                   ; 52
     4468    push bp                                   ; 55
     4469    mov bp, sp                                ; 89 e5
     4470    mov dl, al                                ; 88 c2
     4471    xor ax, ax                                ; 31 c0
     4472    jmp short 03604h                          ; eb 06
     4473    inc ax                                    ; 40
     4474    cmp ax, strict word 00007h                ; 3d 07 00
     4475    jnc short 0361bh                          ; 73 17
     4476    mov bx, ax                                ; 89 c3
     4477    add bx, ax                                ; 01 c3
     4478    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
     4479    jne short 035feh                          ; 75 f0
     4480    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
     4481    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
     4482    add ax, strict word 00000h                ; 05 00 00
     4483    jmp short 0361eh                          ; eb 03
     4484    mov ax, strict word 00041h                ; b8 41 00
     4485    pop bp                                    ; 5d
     4486    pop dx                                    ; 5a
     4487    pop bx                                    ; 5b
     4488    retn                                      ; c3
     4489dummy_soft_reset_:                           ; 0xf3622 LB 0x7
    44604490    push bp                                   ; 55
    44614491    mov bp, sp                                ; 89 e5
     
    44634493    pop bp                                    ; 5d
    44644494    retn                                      ; c3
    4465 _cdemu_init:                                 ; 0xf3635 LB 0x18
     4495_cdemu_init:                                 ; 0xf3629 LB 0x18
    44664496    push bp                                   ; 55
    44674497    mov bp, sp                                ; 89 e5
    44684498    mov dx, strict word 0000eh                ; ba 0e 00
    44694499    mov ax, strict word 00040h                ; b8 40 00
    4470     call 0161ch                               ; e8 db df
     4500    call 0161ch                               ; e8 e7 df
    44714501    xor bx, bx                                ; 31 db
    44724502    mov dx, 00322h                            ; ba 22 03
    4473     call 0160eh                               ; e8 c5 df
     4503    call 0160eh                               ; e8 d1 df
    44744504    mov sp, bp                                ; 89 ec
    44754505    pop bp                                    ; 5d
    44764506    retn                                      ; c3
    4477 _cdemu_isactive:                             ; 0xf364d LB 0x16
     4507_cdemu_isactive:                             ; 0xf3641 LB 0x16
    44784508    push bp                                   ; 55
    44794509    mov bp, sp                                ; 89 e5
    44804510    mov dx, strict word 0000eh                ; ba 0e 00
    44814511    mov ax, strict word 00040h                ; b8 40 00
    4482     call 0161ch                               ; e8 c3 df
     4512    call 0161ch                               ; e8 cf df
    44834513    mov dx, 00322h                            ; ba 22 03
    4484     call 01600h                               ; e8 a1 df
     4514    call 01600h                               ; e8 ad df
    44854515    mov sp, bp                                ; 89 ec
    44864516    pop bp                                    ; 5d
    44874517    retn                                      ; c3
    4488 _cdemu_emulated_drive:                       ; 0xf3663 LB 0x16
     4518_cdemu_emulated_drive:                       ; 0xf3657 LB 0x16
    44894519    push bp                                   ; 55
    44904520    mov bp, sp                                ; 89 e5
    44914521    mov dx, strict word 0000eh                ; ba 0e 00
    44924522    mov ax, strict word 00040h                ; b8 40 00
    4493     call 0161ch                               ; e8 ad df
     4523    call 0161ch                               ; e8 b9 df
    44944524    mov dx, 00324h                            ; ba 24 03
    4495     call 01600h                               ; e8 8b df
     4525    call 01600h                               ; e8 97 df
    44964526    mov sp, bp                                ; 89 ec
    44974527    pop bp                                    ; 5d
    44984528    retn                                      ; c3
    4499 _int13_eltorito:                             ; 0xf3679 LB 0x189
     4529_int13_eltorito:                             ; 0xf366d LB 0x189
    45004530    push bp                                   ; 55
    45014531    mov bp, sp                                ; 89 e5
     
    45044534    mov dx, strict word 0000eh                ; ba 0e 00
    45054535    mov ax, strict word 00040h                ; b8 40 00
    4506     call 0161ch                               ; e8 95 df
     4536    call 0161ch                               ; e8 a1 df
    45074537    mov si, 00322h                            ; be 22 03
    45084538    mov di, ax                                ; 89 c7
     
    45104540    shr ax, 008h                              ; c1 e8 08
    45114541    cmp ax, strict word 0004bh                ; 3d 4b 00
    4512     jc short 036a1h                           ; 72 0a
    4513     jbe short 036c7h                          ; 76 2e
     4542    jc short 03695h                           ; 72 0a
     4543    jbe short 036bbh                          ; 76 2e
    45144544    cmp ax, strict word 0004dh                ; 3d 4d 00
    4515     jbe short 036a8h                          ; 76 0a
    4516     jmp near 037c6h                           ; e9 25 01
     4545    jbe short 0369ch                          ; 76 0a
     4546    jmp near 037bah                           ; e9 25 01
    45174547    cmp ax, strict word 0004ah                ; 3d 4a 00
    4518     jne near 037c6h                           ; 0f 85 1e 01
    4519     mov bx, 00d38h                            ; bb 38 0d
     4548    jne near 037bah                           ; 0f 85 1e 01
     4549    mov bx, 00da8h                            ; bb a8 0d
    45204550    mov cx, ds                                ; 8c d9
    45214551    mov ax, strict word 00004h                ; b8 04 00
    4522     call 018cch                               ; e8 19 e2
     4552    call 018cch                               ; e8 25 e2
    45234553    push word [bp+016h]                       ; ff 76 16
    4524     push 0026ch                               ; 68 6c 02
    4525     push 0027bh                               ; 68 7b 02
     4554    push 002dch                               ; 68 dc 02
     4555    push 002ebh                               ; 68 eb 02
    45264556    push strict byte 00004h                   ; 6a 04
    4527     call 0190dh                               ; e8 4c e2
     4557    call 0190dh                               ; e8 58 e2
    45284558    add sp, strict byte 00008h                ; 83 c4 08
    4529     jmp near 037e1h                           ; e9 1a 01
     4559    jmp near 037d5h                           ; e9 1a 01
    45304560    mov dx, word [bp+00ah]                    ; 8b 56 0a
    45314561    mov ax, word [bp+004h]                    ; 8b 46 04
    45324562    mov bx, strict word 00013h                ; bb 13 00
    4533     call 0160eh                               ; e8 3b df
     4563    call 0160eh                               ; e8 47 df
    45344564    mov es, di                                ; 8e c7
    45354565    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    45374567    inc dx                                    ; 42
    45384568    mov ax, word [bp+004h]                    ; 8b 46 04
    4539     call 0160eh                               ; e8 2a df
     4569    call 0160eh                               ; e8 36 df
    45404570    mov es, di                                ; 8e c7
    45414571    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    45444574    inc dx                                    ; 42
    45454575    mov ax, word [bp+004h]                    ; 8b 46 04
    4546     call 0160eh                               ; e8 18 df
     4576    call 0160eh                               ; e8 24 df
    45474577    mov es, di                                ; 8e c7
    45484578    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    45504580    add dx, strict byte 00003h                ; 83 c2 03
    45514581    mov ax, word [bp+004h]                    ; 8b 46 04
    4552     call 0160eh                               ; e8 05 df
     4582    call 0160eh                               ; e8 11 df
    45534583    mov es, di                                ; 8e c7
    45544584    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    45574587    add dx, strict byte 00004h                ; 83 c2 04
    45584588    mov ax, word [bp+004h]                    ; 8b 46 04
    4559     call 0164ah                               ; e8 2b df
     4589    call 0164ah                               ; e8 37 df
    45604590    mov es, di                                ; 8e c7
    45614591    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    45634593    add dx, strict byte 00008h                ; 83 c2 08
    45644594    mov ax, word [bp+004h]                    ; 8b 46 04
    4565     call 0162ah                               ; e8 f9 de
     4595    call 0162ah                               ; e8 05 df
    45664596    mov es, di                                ; 8e c7
    45674597    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    45694599    add dx, strict byte 0000ah                ; 83 c2 0a
    45704600    mov ax, word [bp+004h]                    ; 8b 46 04
    4571     call 0162ah                               ; e8 e7 de
     4601    call 0162ah                               ; e8 f3 de
    45724602    mov es, di                                ; 8e c7
    45734603    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    45754605    add dx, strict byte 0000ch                ; 83 c2 0c
    45764606    mov ax, word [bp+004h]                    ; 8b 46 04
    4577     call 0162ah                               ; e8 d5 de
     4607    call 0162ah                               ; e8 e1 de
    45784608    mov es, di                                ; 8e c7
    45794609    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    45814611    add dx, strict byte 0000eh                ; 83 c2 0e
    45824612    mov ax, word [bp+004h]                    ; 8b 46 04
    4583     call 0162ah                               ; e8 c3 de
     4613    call 0162ah                               ; e8 cf de
    45844614    mov es, di                                ; 8e c7
    45854615    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    45874617    add dx, strict byte 00010h                ; 83 c2 10
    45884618    mov ax, word [bp+004h]                    ; 8b 46 04
    4589     call 0160eh                               ; e8 94 de
     4619    call 0160eh                               ; e8 a0 de
    45904620    mov es, di                                ; 8e c7
    45914621    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    45934623    add dx, strict byte 00011h                ; 83 c2 11
    45944624    mov ax, word [bp+004h]                    ; 8b 46 04
    4595     call 0160eh                               ; e8 81 de
     4625    call 0160eh                               ; e8 8d de
    45964626    mov es, di                                ; 8e c7
    45974627    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    45994629    add dx, strict byte 00012h                ; 83 c2 12
    46004630    mov ax, word [bp+004h]                    ; 8b 46 04
    4601     call 0160eh                               ; e8 6e de
     4631    call 0160eh                               ; e8 7a de
    46024632    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    4603     jne short 037ach                          ; 75 06
     4633    jne short 037a0h                          ; 75 06
    46044634    mov es, di                                ; 8e c7
    46054635    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    46084638    mov dx, strict word 00074h                ; ba 74 00
    46094639    mov ax, strict word 00040h                ; b8 40 00
    4610     call 0160eh                               ; e8 53 de
     4640    call 0160eh                               ; e8 5f de
    46114641    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    46124642    lea sp, [bp-004h]                         ; 8d 66 fc
     
    46154645    pop bp                                    ; 5d
    46164646    retn                                      ; c3
    4617     mov bx, 00d38h                            ; bb 38 0d
     4647    mov bx, 00da8h                            ; bb a8 0d
    46184648    mov cx, ds                                ; 8c d9
    46194649    mov ax, strict word 00004h                ; b8 04 00
    4620     call 018cch                               ; e8 fb e0
     4650    call 018cch                               ; e8 07 e1
    46214651    mov ax, word [bp+016h]                    ; 8b 46 16
    46224652    shr ax, 008h                              ; c1 e8 08
    46234653    push ax                                   ; 50
    4624     push 0026ch                               ; 68 6c 02
    4625     push 002a3h                               ; 68 a3 02
    4626     jmp near 036bch                           ; e9 db fe
     4654    push 002dch                               ; 68 dc 02
     4655    push 00313h                               ; 68 13 03
     4656    jmp near 036b0h                           ; e9 db fe
    46274657    mov ax, word [bp+016h]                    ; 8b 46 16
    46284658    xor ah, ah                                ; 30 e4
     
    46344664    mov dx, strict word 00074h                ; ba 74 00
    46354665    mov ax, strict word 00040h                ; b8 40 00
    4636     call 0160eh                               ; e8 12 de
     4666    call 0160eh                               ; e8 1e de
    46374667    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4638     jmp short 037bfh                          ; eb bd
    4639 device_is_cdrom_:                            ; 0xf3802 LB 0x35
     4668    jmp short 037b3h                          ; eb bd
     4669device_is_cdrom_:                            ; 0xf37f6 LB 0x35
    46404670    push bp                                   ; 55
    46414671    mov bp, sp                                ; 89 e5
     
    46454675    mov dx, strict word 0000eh                ; ba 0e 00
    46464676    mov ax, strict word 00040h                ; b8 40 00
    4647     call 0161ch                               ; e8 0a de
     4677    call 0161ch                               ; e8 16 de
    46484678    cmp bl, 010h                              ; 80 fb 10
    4649     jc short 0381bh                           ; 72 04
     4679    jc short 0380fh                           ; 72 04
    46504680    xor ax, ax                                ; 31 c0
    4651     jmp short 03830h                          ; eb 15
     4681    jmp short 03824h                          ; eb 15
    46524682    xor bh, bh                                ; 30 ff
    46534683    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    46554685    add bx, 00122h                            ; 81 c3 22 01
    46564686    cmp byte [es:bx+01fh], 005h               ; 26 80 7f 1f 05
    4657     jne short 03817h                          ; 75 ea
     4687    jne short 0380bh                          ; 75 ea
    46584688    mov ax, strict word 00001h                ; b8 01 00
    46594689    lea sp, [bp-004h]                         ; 8d 66 fc
     
    46624692    pop bp                                    ; 5d
    46634693    retn                                      ; c3
    4664 cdrom_boot_:                                 ; 0xf3837 LB 0x416
     4694cdrom_boot_:                                 ; 0xf382b LB 0x416
    46654695    push bp                                   ; 55
    46664696    mov bp, sp                                ; 89 e5
     
    46734703    mov dx, strict word 0000eh                ; ba 0e 00
    46744704    mov ax, strict word 00040h                ; b8 40 00
    4675     call 0161ch                               ; e8 d0 dd
     4705    call 0161ch                               ; e8 dc dd
    46764706    mov word [bp-018h], ax                    ; 89 46 e8
    46774707    mov si, 00322h                            ; be 22 03
     
    46804710    mov word [bp-012h], ax                    ; 89 46 ee
    46814711    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    4682     jmp short 0386ch                          ; eb 09
     4712    jmp short 03860h                          ; eb 09
    46834713    inc byte [bp-00ch]                        ; fe 46 f4
    46844714    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    4685     jnc short 03877h                          ; 73 0b
     4715    jnc short 0386bh                          ; 73 0b
    46864716    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    4687     call 03802h                               ; e8 8f ff
     4717    call 037f6h                               ; e8 8f ff
    46884718    test ax, ax                               ; 85 c0
    4689     je short 03863h                           ; 74 ec
     4719    je short 03857h                           ; 74 ec
    46904720    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    4691     jc short 03883h                           ; 72 06
     4721    jc short 03877h                           ; 72 06
    46924722    mov ax, strict word 00002h                ; b8 02 00
    4693     jmp near 03beah                           ; e9 67 03
     4723    jmp near 03bdeh                           ; e9 67 03
    46944724    mov cx, strict word 0000ch                ; b9 0c 00
    46954725    xor bx, bx                                ; 31 db
    46964726    mov dx, ss                                ; 8c d2
    46974727    lea ax, [bp-026h]                         ; 8d 46 da
    4698     call 0924ah                               ; e8 ba 59
     4728    call 0924ah                               ; e8 c6 59
    46994729    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    47004730    mov ax, strict word 00011h                ; b8 11 00
     
    47124742    ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08
    47134743    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    4714     jmp short 038c8h                          ; eb 09
     4744    jmp short 038bch                          ; eb 09
    47154745    inc byte [bp-00eh]                        ; fe 46 f2
    47164746    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    4717     jnbe short 038ffh                         ; 77 37
     4747    jnbe short 038f3h                         ; 77 37
    47184748    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    47194749    imul di, di, strict byte 00018h           ; 6b ff 18
     
    47334763    lea bx, [bp-026h]                         ; 8d 5e da
    47344764    mov dx, strict word 0000ch                ; ba 0c 00
    4735     call word [word di+00000h]                ; ff 95 00 00
     4765    call word [word di+0006ah]                ; ff 95 6a 00
    47364766    test ax, ax                               ; 85 c0
    4737     jne short 038bfh                          ; 75 c0
     4767    jne short 038b3h                          ; 75 c0
    47384768    test ax, ax                               ; 85 c0
    4739     je short 03909h                           ; 74 06
     4769    je short 038fdh                           ; 74 06
    47404770    mov ax, strict word 00003h                ; b8 03 00
    4741     jmp near 03beah                           ; e9 e1 02
     4771    jmp near 03bdeh                           ; e9 e1 02
    47424772    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    4743     je short 03916h                           ; 74 06
     4773    je short 0390ah                           ; 74 06
    47444774    mov ax, strict word 00004h                ; b8 04 00
    4745     jmp near 03beah                           ; e9 d4 02
     4775    jmp near 03bdeh                           ; e9 d4 02
    47464776    xor di, di                                ; 31 ff
    4747     jmp short 03920h                          ; eb 06
     4777    jmp short 03914h                          ; eb 06
    47484778    inc di                                    ; 47
    47494779    cmp di, strict byte 00005h                ; 83 ff 05
    4750     jnc short 03930h                          ; 73 10
     4780    jnc short 03924h                          ; 73 10
    47514781    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
     4782    cmp al, byte [di+00db0h]                  ; 3a 85 b0 0d
     4783    je short 0390eh                           ; 74 f0
    47544784    mov ax, strict word 00005h                ; b8 05 00
    4755     jmp near 03beah                           ; e9 ba 02
     4785    jmp near 03bdeh                           ; e9 ba 02
    47564786    xor di, di                                ; 31 ff
    4757     jmp short 0393ah                          ; eb 06
     4787    jmp short 0392eh                          ; eb 06
    47584788    inc di                                    ; 47
    47594789    cmp di, strict byte 00017h                ; 83 ff 17
    4760     jnc short 0394ah                          ; 73 10
     4790    jnc short 0393eh                          ; 73 10
    47614791    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
     4792    cmp al, byte [di+00db6h]                  ; 3a 85 b6 0d
     4793    je short 03928h                           ; 74 f0
    47644794    mov ax, strict word 00006h                ; b8 06 00
    4765     jmp near 03beah                           ; e9 a0 02
     4795    jmp near 03bdeh                           ; e9 a0 02
    47664796    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    47674797    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    47924822    lea bx, [bp-026h]                         ; 8d 5e da
    47934823    mov dx, strict word 0000ch                ; ba 0c 00
    4794     call word [word di+00000h]                ; ff 95 00 00
     4824    call word [word di+0006ah]                ; ff 95 6a 00
    47954825    test ax, ax                               ; 85 c0
    4796     je short 039a7h                           ; 74 06
     4826    je short 0399bh                           ; 74 06
    47974827    mov ax, strict word 00007h                ; b8 07 00
    4798     jmp near 03beah                           ; e9 43 02
     4828    jmp near 03bdeh                           ; e9 43 02
    47994829    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    4800     je short 039b4h                           ; 74 06
     4830    je short 039a8h                           ; 74 06
    48014831    mov ax, strict word 00008h                ; b8 08 00
    4802     jmp near 03beah                           ; e9 36 02
     4832    jmp near 03bdeh                           ; e9 36 02
    48034833    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    4804     je short 039c1h                           ; 74 06
     4834    je short 039b5h                           ; 74 06
    48054835    mov ax, strict word 00009h                ; b8 09 00
    4806     jmp near 03beah                           ; e9 29 02
     4836    jmp near 03bdeh                           ; e9 29 02
    48074837    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    4808     je short 039ceh                           ; 74 06
     4838    je short 039c2h                           ; 74 06
    48094839    mov ax, strict word 0000ah                ; b8 0a 00
    4810     jmp near 03beah                           ; e9 1c 02
     4840    jmp near 03bdeh                           ; e9 1c 02
    48114841    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    4812     jne short 039c8h                          ; 75 f3
     4842    jne short 039bch                          ; 75 f3
    48134843    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    4814     je short 039e2h                           ; 74 06
     4844    je short 039d6h                           ; 74 06
    48154845    mov ax, strict word 0000bh                ; b8 0b 00
    4816     jmp near 03beah                           ; e9 08 02
     4846    jmp near 03bdeh                           ; e9 08 02
    48174847    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    48184848    mov es, [bp-010h]                         ; 8e 46 f0
    48194849    mov byte [es:si+001h], al                 ; 26 88 44 01
    48204850    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    4821     jne short 039fbh                          ; 75 07
     4851    jne short 039efh                          ; 75 07
    48224852    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    4823     jmp short 03a0eh                          ; eb 13
     4853    jmp short 03a02h                          ; eb 13
    48244854    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    4825     jnc short 03a09h                          ; 73 07
     4855    jnc short 039fdh                          ; 73 07
    48264856    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    4827     jmp short 03a0eh                          ; eb 05
     4857    jmp short 03a02h                          ; eb 05
    48284858    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    48294859    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    48434873    mov word [bp-016h], ax                    ; 89 46 ea
    48444874    test ax, ax                               ; 85 c0
    4845     jne short 03a3ch                          ; 75 05
     4875    jne short 03a30h                          ; 75 05
    48464876    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    48474877    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    48524882    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    48534883    test di, di                               ; 85 ff
    4854     je short 03a5eh                           ; 74 06
     4884    je short 03a52h                           ; 74 06
    48554885    cmp di, 00400h                            ; 81 ff 00 04
    4856     jbe short 03a64h                          ; 76 06
     4886    jbe short 03a58h                          ; 76 06
    48574887    mov ax, strict word 0000ch                ; b8 0c 00
    4858     jmp near 03beah                           ; e9 86 01
     4888    jmp near 03bdeh                           ; e9 86 01
    48594889    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    48604890    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    48964926    sal ax, 1                                 ; d1 e0
    48974927    rcl di, 1                                 ; d1 d7
    4898     loop 03ad2h                               ; e2 fa
     4928    loop 03ac6h                               ; e2 fa
    48994929    push di                                   ; 57
    49004930    push ax                                   ; 50
     
    49054935    mov dx, strict word 0000ch                ; ba 0c 00
    49064936    mov di, word [bp-01ah]                    ; 8b 7e e6
    4907     call word [word di+00000h]                ; ff 95 00 00
     4937    call word [word di+0006ah]                ; ff 95 6a 00
    49084938    les bx, [bp-014h]                         ; c4 5e ec
    49094939    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
    49104940    test ax, ax                               ; 85 c0
    4911     je short 03b02h                           ; 74 06
     4941    je short 03af6h                           ; 74 06
    49124942    mov ax, strict word 0000dh                ; b8 0d 00
    4913     jmp near 03beah                           ; e9 e8 00
     4943    jmp near 03bdeh                           ; e9 e8 00
    49144944    mov es, [bp-010h]                         ; 8e 46 f0
    49154945    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    49164946    cmp AL, strict byte 002h                  ; 3c 02
    4917     jc short 03b1ah                           ; 72 0d
    4918     jbe short 03b32h                          ; 76 23
     4947    jc short 03b0eh                           ; 72 0d
     4948    jbe short 03b26h                          ; 76 23
    49194949    cmp AL, strict byte 004h                  ; 3c 04
    4920     je short 03b48h                           ; 74 35
     4950    je short 03b3ch                           ; 74 35
    49214951    cmp AL, strict byte 003h                  ; 3c 03
    4922     je short 03b3dh                           ; 74 26
    4923     jmp near 03b93h                           ; e9 79 00
     4952    je short 03b31h                           ; 74 26
     4953    jmp near 03b87h                           ; e9 79 00
    49244954    cmp AL, strict byte 001h                  ; 3c 01
    4925     jne short 03b93h                          ; 75 75
     4955    jne short 03b87h                          ; 75 75
    49264956    mov es, [bp-010h]                         ; 8e 46 f0
    49274957    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    49284958    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    49294959    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    4930     jmp short 03b93h                          ; eb 61
     4960    jmp short 03b87h                          ; eb 61
    49314961    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    49324962    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    4933     jmp short 03b2ah                          ; eb ed
     4963    jmp short 03b1eh                          ; eb ed
    49344964    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    49354965    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    4936     jmp short 03b2ah                          ; eb e2
     4966    jmp short 03b1eh                          ; eb e2
    49374967    mov dx, 001c4h                            ; ba c4 01
    49384968    mov ax, word [bp-016h]                    ; 8b 46 ea
    4939     call 01600h                               ; e8 af da
     4969    call 01600h                               ; e8 bb da
    49404970    and AL, strict byte 03fh                  ; 24 3f
    49414971    xor ah, ah                                ; 30 e4
     
    49444974    mov dx, 001c4h                            ; ba c4 01
    49454975    mov ax, word [bp-016h]                    ; 8b 46 ea
    4946     call 01600h                               ; e8 9b da
     4976    call 01600h                               ; e8 a7 da
    49474977    movzx bx, al                              ; 0f b6 d8
    49484978    sal bx, 002h                              ; c1 e3 02
    49494979    mov dx, 001c5h                            ; ba c5 01
    49504980    mov ax, word [bp-016h]                    ; 8b 46 ea
    4951     call 01600h                               ; e8 8c da
     4981    call 01600h                               ; e8 98 da
    49524982    xor ah, ah                                ; 30 e4
    49534983    add ax, bx                                ; 01 d8
     
    49574987    mov dx, 001c3h                            ; ba c3 01
    49584988    mov ax, word [bp-016h]                    ; 8b 46 ea
    4959     call 01600h                               ; e8 77 da
     4989    call 01600h                               ; e8 83 da
    49604990    xor ah, ah                                ; 30 e4
    49614991    inc ax                                    ; 40
     
    49644994    mov es, [bp-010h]                         ; 8e 46 f0
    49654995    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4966     je short 03bd1h                           ; 74 34
     4996    je short 03bc5h                           ; 74 34
    49674997    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    4968     jne short 03bbah                          ; 75 16
     4998    jne short 03baeh                          ; 75 16
    49694999    mov dx, strict word 00010h                ; ba 10 00
    49705000    mov ax, strict word 00040h                ; b8 40 00
    4971     call 01600h                               ; e8 53 da
     5001    call 01600h                               ; e8 5f da
    49725002    or AL, strict byte 041h                   ; 0c 41
    49735003    movzx bx, al                              ; 0f b6 d8
    49745004    mov dx, strict word 00010h                ; ba 10 00
    49755005    mov ax, strict word 00040h                ; b8 40 00
    4976     jmp short 03bceh                          ; eb 14
     5006    jmp short 03bc2h                          ; eb 14
    49775007    mov dx, 002c0h                            ; ba c0 02
    49785008    mov ax, word [bp-018h]                    ; 8b 46 e8
    4979     call 01600h                               ; e8 3d da
     5009    call 01600h                               ; e8 49 da
    49805010    db  0feh, 0c0h
    49815011    ; inc al                                    ; fe c0
     
    49835013    mov dx, 002c0h                            ; ba c0 02
    49845014    mov ax, word [bp-018h]                    ; 8b 46 e8
    4985     call 0160eh                               ; e8 3d da
     5015    call 0160eh                               ; e8 49 da
    49865016    mov es, [bp-010h]                         ; 8e 46 f0
    49875017    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    4988     je short 03bdfh                           ; 74 04
     5018    je short 03bd3h                           ; 74 04
    49895019    mov byte [es:si], 001h                    ; 26 c6 04 01
    49905020    mov es, [bp-010h]                         ; 8e 46 f0
     
    50005030    retn                                      ; c3
    50015031    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
     5032    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0d9h, 03fh, 0e7h
     5033    db  03ch, 031h, 03dh, 059h, 03dh, 026h, 03dh, 059h, 03dh, 026h, 03dh, 02fh, 03fh, 00ch, 03dh, 0d9h
     5034    db  03fh, 0d9h, 03fh, 00ch, 03dh, 00ch, 03dh, 00ch, 03dh, 00ch, 03dh, 00ch, 03dh, 0d0h, 03fh, 00ch
     5035    db  03dh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h
     5036    db  03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh
     5037_int13_cdemu:                                ; 0xf3c41 LB 0x434
    50085038    push bp                                   ; 55
    50095039    mov bp, sp                                ; 89 e5
     
    50135043    mov dx, strict word 0000eh                ; ba 0e 00
    50145044    mov ax, strict word 00040h                ; b8 40 00
    5015     call 0161ch                               ; e8 be d9
     5045    call 0161ch                               ; e8 ca d9
    50165046    mov di, 00322h                            ; bf 22 03
    50175047    mov cx, ax                                ; 89 c1
     
    50295059    mov dx, strict word 00074h                ; ba 74 00
    50305060    mov ax, strict word 00040h                ; b8 40 00
    5031     call 0160eh                               ; e8 81 d9
     5061    call 0160eh                               ; e8 8d d9
    50325062    mov es, cx                                ; 8e c1
    50335063    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5034     je short 03ca3h                           ; 74 0e
     5064    je short 03c97h                           ; 74 0e
    50355065    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    50365066    mov ax, word [bp+012h]                    ; 8b 46 12
    50375067    xor ah, ah                                ; 30 e4
    50385068    cmp dx, ax                                ; 39 c2
    5039     je short 03ccch                           ; 74 29
    5040     mov bx, 00d38h                            ; bb 38 0d
     5069    je short 03cc0h                           ; 74 29
     5070    mov bx, 00da8h                            ; bb a8 0d
    50415071    mov cx, ds                                ; 8c d9
    50425072    mov ax, strict word 00004h                ; b8 04 00
    5043     call 018cch                               ; e8 1e dc
     5073    call 018cch                               ; e8 2a dc
    50445074    mov ax, word [bp+012h]                    ; 8b 46 12
    50455075    xor ah, ah                                ; 30 e4
     
    50485078    shr ax, 008h                              ; c1 e8 08
    50495079    push ax                                   ; 50
    5050     push 002bch                               ; 68 bc 02
    5051     push 002c8h                               ; 68 c8 02
     5080    push 0032ch                               ; 68 2c 03
     5081    push 00338h                               ; 68 38 03
    50525082    push strict byte 00004h                   ; 6a 04
    5053     call 0190dh                               ; e8 47 dc
     5083    call 0190dh                               ; e8 53 dc
    50545084    add sp, strict byte 0000ah                ; 83 c4 0a
    5055     jmp near 04005h                           ; e9 39 03
     5085    jmp near 03ff9h                           ; e9 39 03
    50565086    mov ax, word [bp+016h]                    ; 8b 46 16
    50575087    shr ax, 008h                              ; c1 e8 08
    50585088    cmp ax, strict word 00050h                ; 3d 50 00
    5059     jnbe near 03fe5h                          ; 0f 87 0c 03
     5089    jnbe near 03fd9h                          ; 0f 87 0c 03
    50605090    push CS                                   ; 0e
    50615091    pop ES                                    ; 07
    50625092    mov cx, strict word 0001eh                ; b9 1e 00
    5063     mov di, 03bf4h                            ; bf f4 3b
     5093    mov di, 03be8h                            ; bf e8 3b
    50645094    repne scasb                               ; f2 ae
    50655095    sal cx, 1                                 ; d1 e1
    50665096    mov di, cx                                ; 89 cf
    5067     mov ax, word [cs:di+03c11h]               ; 2e 8b 85 11 3c
     5097    mov ax, word [cs:di+03c05h]               ; 2e 8b 85 05 3c
    50685098    mov bx, word [bp+016h]                    ; 8b 5e 16
    50695099    xor bh, bh                                ; 30 ff
     
    50755105    movzx bx, byte [es:bx+01eh]               ; 26 0f b6 5f 1e
    50765106    add bx, bx                                ; 01 db
    5077     cmp word [word bx+00000h], strict byte 00000h ; 83 bf 00 00 00
    5078     je near 03d18h                            ; 0f 84 08 00
     5107    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
     5108    je near 03d0ch                            ; 0f 84 08 00
    50795109    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    5080     call word [word bx+0000ch]                ; ff 97 0c 00
     5110    call word [word bx+00076h]                ; ff 97 76 00
    50815111    mov byte [bp+017h], 000h                  ; c6 46 17 00
    50825112    xor bx, bx                                ; 31 db
    50835113    mov dx, strict word 00074h                ; ba 74 00
    50845114    mov ax, strict word 00040h                ; b8 40 00
    5085     call 0160eh                               ; e8 e7 d8
     5115    call 0160eh                               ; e8 f3 d8
    50865116    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    50875117    lea sp, [bp-004h]                         ; 8d 66 fc
     
    50935123    xor ah, ah                                ; 30 e4
    50945124    or ah, 003h                               ; 80 cc 03
    5095     jmp near 0400dh                           ; e9 d0 02
     5125    jmp near 04001h                           ; e9 d0 02
    50965126    mov dx, strict word 00074h                ; ba 74 00
    50975127    mov ax, strict word 00040h                ; b8 40 00
    5098     call 01600h                               ; e8 ba d8
     5128    call 01600h                               ; e8 c6 d8
    50995129    mov cl, al                                ; 88 c1
    51005130    movzx ax, cl                              ; 0f b6 c1
     
    51055135    mov dx, strict word 00074h                ; ba 74 00
    51065136    mov ax, strict word 00040h                ; b8 40 00
    5107     call 0160eh                               ; e8 b0 d8
     5137    call 0160eh                               ; e8 bc d8
    51085138    test cl, cl                               ; 84 c9
    5109     je short 03d1ch                           ; 74 ba
    5110     jmp near 04021h                           ; e9 bc 02
     5139    je short 03d10h                           ; 74 ba
     5140    jmp near 04015h                           ; e9 bc 02
    51115141    mov es, [bp-008h]                         ; 8e 46 f8
    51125142    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    51325162    mov word [bp-00ah], cx                    ; 89 4e f6
    51335163    test cx, cx                               ; 85 c9
    5134     jne short 03db2h                          ; 75 03
    5135     jmp near 03d18h                           ; e9 66 ff
     5164    jne short 03da6h                          ; 75 03
     5165    jmp near 03d0ch                           ; e9 66 ff
    51365166    cmp di, word [bp-010h]                    ; 3b 7e f0
    5137     jc near 04005h                            ; 0f 82 4c 02
     5167    jc near 03ff9h                            ; 0f 82 4c 02
    51385168    cmp ax, dx                                ; 39 d0
    5139     jnc near 04005h                           ; 0f 83 46 02
     5169    jnc near 03ff9h                           ; 0f 83 46 02
    51405170    cmp si, bx                                ; 39 de
    5141     jnc near 04005h                           ; 0f 83 40 02
     5171    jnc near 03ff9h                           ; 0f 83 40 02
    51425172    mov dx, word [bp+016h]                    ; 8b 56 16
    51435173    shr dx, 008h                              ; c1 ea 08
    51445174    cmp dx, strict byte 00004h                ; 83 fa 04
    5145     jne short 03dd3h                          ; 75 03
    5146     jmp near 03d18h                           ; e9 45 ff
     5175    jne short 03dc7h                          ; 75 03
     5176    jmp near 03d0ch                           ; e9 45 ff
    51475177    mov dx, word [bp+010h]                    ; 8b 56 10
    51485178    shr dx, 004h                              ; c1 ea 04
     
    51555185    xor dl, dl                                ; 30 d2
    51565186    xor cx, cx                                ; 31 c9
    5157     call 09219h                               ; e8 28 54
     5187    call 09219h                               ; e8 34 54
    51585188    xor bx, bx                                ; 31 db
    51595189    add ax, si                                ; 01 f0
     
    51615191    mov bx, di                                ; 89 fb
    51625192    xor cx, cx                                ; 31 c9
    5163     call 09219h                               ; e8 1b 54
     5193    call 09219h                               ; e8 27 54
    51645194    mov bx, ax                                ; 89 c3
    51655195    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    51965226    mov dx, ss                                ; 8c d2
    51975227    lea ax, [bp-02eh]                         ; 8d 46 d2
    5198     call 0924ah                               ; e8 f5 53
     5228    call 0924ah                               ; e8 01 54
    51995229    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    52005230    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    52445274    sal si, 1                                 ; d1 e6
    52455275    rcl di, 1                                 ; d1 d7
    5246     loop 03ed5h                               ; e2 fa
     5276    loop 03ec9h                               ; e2 fa
    52475277    push di                                   ; 57
    52485278    push si                                   ; 56
     
    52535283    mov dx, strict word 0000ch                ; ba 0c 00
    52545284    mov si, word [bp-01ah]                    ; 8b 76 e6
    5255     call word [word si+00000h]                ; ff 94 00 00
     5285    call word [word si+0006ah]                ; ff 94 6a 00
    52565286    mov dx, ax                                ; 89 c2
    52575287    les bx, [bp-00eh]                         ; c4 5e f2
     
    52595289    ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00
    52605290    test al, al                               ; 84 c0
    5261     je near 03d18h                            ; 0f 84 13 fe
    5262     mov bx, 00d38h                            ; bb 38 0d
     5291    je near 03d0ch                            ; 0f 84 13 fe
     5292    mov bx, 00da8h                            ; bb a8 0d
    52635293    mov cx, ds                                ; 8c d9
    52645294    mov ax, strict word 00004h                ; b8 04 00
    5265     call 018cch                               ; e8 bc d9
     5295    call 018cch                               ; e8 c8 d9
    52665296    movzx ax, dl                              ; 0f b6 c2
    52675297    push ax                                   ; 50
     
    52695299    shr ax, 008h                              ; c1 e8 08
    52705300    push ax                                   ; 50
    5271     push 002bch                               ; 68 bc 02
    5272     push 002feh                               ; 68 fe 02
     5301    push 0032ch                               ; 68 2c 03
     5302    push 0036eh                               ; 68 6e 03
    52735303    push strict byte 00004h                   ; 6a 04
    5274     call 0190dh                               ; e8 e7 d9
     5304    call 0190dh                               ; e8 f3 d9
    52755305    add sp, strict byte 0000ah                ; 83 c4 0a
    52765306    mov ax, word [bp+016h]                    ; 8b 46 16
     
    52795309    mov word [bp+016h], ax                    ; 89 46 16
    52805310    mov byte [bp+016h], 000h                  ; c6 46 16 00
    5281     jmp near 04010h                           ; e9 d5 00
     5311    jmp near 04004h                           ; e9 d5 00
    52825312    mov es, [bp-008h]                         ; 8e 46 f8
    52835313    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    53185348    mov word [bp+010h], ax                    ; 89 46 10
    53195349    cmp dl, 003h                              ; 80 fa 03
    5320     je short 03fbfh                           ; 74 1a
     5350    je short 03fb3h                           ; 74 1a
    53215351    cmp dl, 002h                              ; 80 fa 02
    5322     je short 03fbbh                           ; 74 11
     5352    je short 03fafh                           ; 74 11
    53235353    cmp dl, 001h                              ; 80 fa 01
    5324     jne short 03fc3h                          ; 75 14
     5354    jne short 03fb7h                          ; 75 14
    53255355    mov ax, word [bp+010h]                    ; 8b 46 10
    53265356    xor al, al                                ; 30 c0
    53275357    or AL, strict byte 002h                   ; 0c 02
    53285358    mov word [bp+010h], ax                    ; 89 46 10
    5329     jmp short 03fc3h                          ; eb 08
     5359    jmp short 03fb7h                          ; eb 08
    53305360    or AL, strict byte 004h                   ; 0c 04
    5331     jmp short 03fb6h                          ; eb f7
     5361    jmp short 03faah                          ; eb f7
    53325362    or AL, strict byte 005h                   ; 0c 05
    5333     jmp short 03fb6h                          ; eb f3
     5363    jmp short 03faah                          ; eb f3
    53345364    mov es, [bp-008h]                         ; 8e 46 f8
    53355365    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    5336     jnc near 03d18h                           ; 0f 83 49 fd
     5366    jnc near 03d0ch                           ; 0f 83 49 fd
    53375367    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    53385368    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    5339     jmp near 03d18h                           ; e9 3c fd
     5369    jmp near 03d0ch                           ; e9 3c fd
    53405370    or bh, 003h                               ; 80 cf 03
    53415371    mov word [bp+016h], bx                    ; 89 5e 16
    5342     jmp near 03d1ch                           ; e9 37 fd
    5343     mov bx, 00d38h                            ; bb 38 0d
     5372    jmp near 03d10h                           ; e9 37 fd
     5373    mov bx, 00da8h                            ; bb a8 0d
    53445374    mov cx, ds                                ; 8c d9
    53455375    mov ax, strict word 00004h                ; b8 04 00
    5346     call 018cch                               ; e8 dc d8
     5376    call 018cch                               ; e8 e8 d8
    53475377    mov ax, word [bp+016h]                    ; 8b 46 16
    53485378    shr ax, 008h                              ; c1 e8 08
    53495379    push ax                                   ; 50
    5350     push 002bch                               ; 68 bc 02
    5351     push 0031fh                               ; 68 1f 03
     5380    push 0032ch                               ; 68 2c 03
     5381    push 0038fh                               ; 68 8f 03
    53525382    push strict byte 00004h                   ; 6a 04
    5353     call 0190dh                               ; e8 0b d9
     5383    call 0190dh                               ; e8 17 d9
    53545384    add sp, strict byte 00008h                ; 83 c4 08
    53555385    mov ax, word [bp+016h]                    ; 8b 46 16
     
    53625392    mov dx, strict word 00074h                ; ba 74 00
    53635393    mov ax, strict word 00040h                ; b8 40 00
    5364     call 0160eh                               ; e8 ed d5
     5394    call 0160eh                               ; e8 f9 d5
    53655395    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5366     jmp near 03d2bh                           ; e9 03 fd
     5396    jmp near 03d1fh                           ; e9 03 fd
    53675397    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
     5398    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0bah, 045h, 036h
     5399    db  043h, 022h, 041h, 0bah, 045h, 017h, 041h, 0bah, 045h, 017h, 041h, 0bah, 045h, 036h, 043h, 0bah
     5400    db  045h, 0bah, 045h, 036h, 043h, 036h, 043h, 036h, 043h, 036h, 043h, 036h, 043h, 04ch, 041h, 036h
     5401    db  043h, 0bah, 045h, 055h, 041h, 068h, 041h, 017h, 041h, 068h, 041h, 096h, 042h, 050h, 043h, 068h
     5402    db  041h, 077h, 043h, 073h, 045h, 07bh, 045h, 0bah, 045h
     5403_int13_cdrom:                                ; 0xf4075 LB 0x562
    53745404    push bp                                   ; 55
    53755405    mov bp, sp                                ; 89 e5
     
    53795409    mov dx, strict word 0000eh                ; ba 0e 00
    53805410    mov ax, strict word 00040h                ; b8 40 00
    5381     call 0161ch                               ; e8 8a d5
     5411    call 0161ch                               ; e8 96 d5
    53825412    mov word [bp-01ah], ax                    ; 89 46 e6
    53835413    mov si, 00122h                            ; be 22 01
     
    53865416    mov dx, strict word 00074h                ; ba 74 00
    53875417    mov ax, strict word 00040h                ; b8 40 00
    5388     call 0160eh                               ; e8 68 d5
     5418    call 0160eh                               ; e8 74 d5
    53895419    mov ax, word [bp+010h]                    ; 8b 46 10
    53905420    xor ah, ah                                ; 30 e4
    53915421    cmp ax, 000e0h                            ; 3d e0 00
    5392     jc short 040b5h                           ; 72 05
     5422    jc short 040a9h                           ; 72 05
    53935423    cmp ax, 000f0h                            ; 3d f0 00
    5394     jc short 040d3h                           ; 72 1e
     5424    jc short 040c7h                           ; 72 1e
    53955425    mov ax, word [bp+010h]                    ; 8b 46 10
    53965426    xor ah, ah                                ; 30 e4
     
    53995429    shr ax, 008h                              ; c1 e8 08
    54005430    push ax                                   ; 50
    5401     push 0034fh                               ; 68 4f 03
    5402     push 0035bh                               ; 68 5b 03
     5431    push 003bfh                               ; 68 bf 03
     5432    push 003cbh                               ; 68 cb 03
    54035433    push strict byte 00004h                   ; 6a 04
    5404     call 0190dh                               ; e8 40 d8
     5434    call 0190dh                               ; e8 4c d8
    54055435    add sp, strict byte 0000ah                ; 83 c4 0a
    5406     jmp near 045a3h                           ; e9 d0 04
     5436    jmp near 04597h                           ; e9 d0 04
    54075437    mov ax, word [bp+010h]                    ; 8b 46 10
    54085438    xor ah, ah                                ; 30 e4
     
    54135443    mov byte [bp-008h], dl                    ; 88 56 f8
    54145444    cmp dl, 010h                              ; 80 fa 10
    5415     jc short 040fch                           ; 72 10
     5445    jc short 040f0h                           ; 72 10
    54165446    push ax                                   ; 50
    54175447    mov ax, word [bp+018h]                    ; 8b 46 18
    54185448    shr ax, 008h                              ; c1 e8 08
    54195449    push ax                                   ; 50
    5420     push 0034fh                               ; 68 4f 03
    5421     push 00386h                               ; 68 86 03
    5422     jmp short 040c8h                          ; eb cc
     5450    push 003bfh                               ; 68 bf 03
     5451    push 003f6h                               ; 68 f6 03
     5452    jmp short 040bch                          ; eb cc
    54235453    mov ax, word [bp+018h]                    ; 8b 46 18
    54245454    shr ax, 008h                              ; c1 e8 08
    54255455    cmp ax, strict word 00050h                ; 3d 50 00
    5426     jnbe near 045c6h                          ; 0f 87 bd 04
     5456    jnbe near 045bah                          ; 0f 87 bd 04
    54275457    push CS                                   ; 0e
    54285458    pop ES                                    ; 07
    54295459    mov cx, strict word 0001eh                ; b9 1e 00
    5430     mov di, 04028h                            ; bf 28 40
     5460    mov di, 0401ch                            ; bf 1c 40
    54315461    repne scasb                               ; f2 ae
    54325462    sal cx, 1                                 ; d1 e1
    54335463    mov di, cx                                ; 89 cf
    5434     mov ax, word [cs:di+04045h]               ; 2e 8b 85 45 40
     5464    mov ax, word [cs:di+04039h]               ; 2e 8b 85 39 40
    54355465    mov bx, word [bp+018h]                    ; 8b 5e 18
    54365466    xor bh, bh                                ; 30 ff
     
    54395469    xor ah, ah                                ; 30 e4
    54405470    or ah, 003h                               ; 80 cc 03
    5441     jmp near 045abh                           ; e9 7d 04
     5471    jmp near 0459fh                           ; e9 7d 04
    54425472    mov dx, strict word 00074h                ; ba 74 00
    54435473    mov ax, strict word 00040h                ; b8 40 00
    5444     call 01600h                               ; e8 c9 d4
     5474    call 01600h                               ; e8 d5 d4
    54455475    mov cl, al                                ; 88 c1
    54465476    movzx ax, cl                              ; 0f b6 c1
     
    54515481    mov dx, strict word 00074h                ; ba 74 00
    54525482    mov ax, strict word 00040h                ; b8 40 00
    5453     call 0160eh                               ; e8 bf d4
     5483    call 0160eh                               ; e8 cb d4
    54545484    test cl, cl                               ; 84 c9
    5455     je near 04346h                            ; 0f 84 f1 01
    5456     jmp near 045bfh                           ; e9 67 04
     5485    je near 0433ah                            ; 0f 84 f1 01
     5486    jmp near 045b3h                           ; e9 67 04
    54575487    or bh, 002h                               ; 80 cf 02
    54585488    mov word [bp+018h], bx                    ; 89 5e 18
    5459     jmp near 045aeh                           ; e9 4d 04
     5489    jmp near 045a2h                           ; e9 4d 04
    54605490    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    54615491    or bh, 030h                               ; 80 cf 30
    54625492    mov word [bp+018h], bx                    ; 89 5e 18
    54635493    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    5464     jmp near 04346h                           ; e9 d2 01
     5494    jmp near 0433ah                           ; e9 d2 01
    54655495    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    54665496    mov es, [bp+006h]                         ; 8e 46 06
     
    54775507    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    54785508    or di, ax                                 ; 09 c7
    5479     je short 041bch                           ; 74 18
     5509    je short 041b0h                           ; 74 18
    54805510    mov ax, word [bp+018h]                    ; 8b 46 18
    54815511    shr ax, 008h                              ; c1 e8 08
    54825512    push ax                                   ; 50
    5483     push 0034fh                               ; 68 4f 03
    5484     push 003b8h                               ; 68 b8 03
     5513    push 003bfh                               ; 68 bf 03
     5514    push 00428h                               ; 68 28 04
    54855515    push strict byte 00007h                   ; 6a 07
    5486     call 0190dh                               ; e8 57 d7
     5516    call 0190dh                               ; e8 63 d7
    54875517    add sp, strict byte 00008h                ; 83 c4 08
    5488     jmp near 045a3h                           ; e9 e7 03
     5518    jmp near 04597h                           ; e9 e7 03
    54895519    les bx, [bp-014h]                         ; c4 5e ec
    54905520    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    54965526    mov word [bp-016h], ax                    ; 89 46 ea
    54975527    cmp ax, strict word 00044h                ; 3d 44 00
    5498     je near 04342h                            ; 0f 84 66 01
     5528    je near 04336h                            ; 0f 84 66 01
    54995529    cmp ax, strict word 00047h                ; 3d 47 00
    5500     je near 04342h                            ; 0f 84 5f 01
     5530    je near 04336h                            ; 0f 84 5f 01
    55015531    mov cx, strict word 0000ch                ; b9 0c 00
    55025532    xor bx, bx                                ; 31 db
    55035533    mov dx, ss                                ; 8c d2
    55045534    lea ax, [bp-02ch]                         ; 8d 46 d4
    5505     call 0924ah                               ; e8 5a 50
     5535    call 0924ah                               ; e8 66 50
    55065536    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    55075537    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    55315561    sal ax, 1                                 ; d1 e0
    55325562    rcl bx, 1                                 ; d1 d3
    5533     loop 0423ah                               ; e2 fa
     5563    loop 0422eh                               ; e2 fa
    55345564    push bx                                   ; 53
    55355565    push ax                                   ; 50
     
    55395569    lea bx, [bp-02ch]                         ; 8d 5e d4
    55405570    mov dx, strict word 0000ch                ; ba 0c 00
    5541     call word [word di+00000h]                ; ff 95 00 00
     5571    call word [word di+0006ah]                ; ff 95 6a 00
    55425572    mov dx, ax                                ; 89 c2
    55435573    mov es, [bp-00ch]                         ; 8e 46 f4
     
    55475577    shr di, 1                                 ; d1 ef
    55485578    rcr ax, 1                                 ; d1 d8
    5549     loop 04264h                               ; e2 fa
     5579    loop 04258h                               ; e2 fa
    55505580    les bx, [bp-014h]                         ; c4 5e ec
    55515581    mov word [es:bx+002h], ax                 ; 26 89 47 02
    55525582    test dl, dl                               ; 84 d2
    5553     je near 04342h                            ; 0f 84 cb 00
    5554     mov bx, 00d38h                            ; bb 38 0d
     5583    je near 04336h                            ; 0f 84 cb 00
     5584    mov bx, 00da8h                            ; bb a8 0d
    55555585    mov cx, ds                                ; 8c d9
    55565586    mov ax, strict word 00004h                ; b8 04 00
    5557     call 018cch                               ; e8 4a d6
     5587    call 018cch                               ; e8 56 d6
    55585588    movzx ax, dl                              ; 0f b6 c2
    55595589    push ax                                   ; 50
    55605590    push word [bp-016h]                       ; ff 76 ea
    5561     push 0034fh                               ; 68 4f 03
    5562     push 003e1h                               ; 68 e1 03
     5591    push 003bfh                               ; 68 bf 03
     5592    push 00451h                               ; 68 51 04
    55635593    push strict byte 00004h                   ; 6a 04
    5564     call 0190dh                               ; e8 79 d6
     5594    call 0190dh                               ; e8 85 d6
    55655595    add sp, strict byte 0000ah                ; 83 c4 0a
    55665596    mov ax, word [bp+018h]                    ; 8b 46 18
    55675597    xor ah, ah                                ; 30 e4
    55685598    or ah, 00ch                               ; 80 cc 0c
    5569     jmp near 045abh                           ; e9 09 03
     5599    jmp near 0459fh                           ; e9 09 03
    55705600    cmp bx, strict byte 00002h                ; 83 fb 02
    5571     jnbe near 045a3h                          ; 0f 87 fa 02
     5601    jnbe near 04597h                          ; 0f 87 fa 02
    55725602    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    55735603    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    55775607    mov al, byte [es:di+021h]                 ; 26 8a 45 21
    55785608    cmp bx, strict byte 00002h                ; 83 fb 02
    5579     je short 04333h                           ; 74 73
     5609    je short 04327h                           ; 74 73
    55805610    cmp bx, strict byte 00001h                ; 83 fb 01
    5581     je short 04300h                           ; 74 3b
     5611    je short 042f4h                           ; 74 3b
    55825612    test bx, bx                               ; 85 db
    5583     jne near 04342h                           ; 0f 85 77 00
     5613    jne near 04336h                           ; 0f 85 77 00
    55845614    cmp AL, strict byte 0ffh                  ; 3c ff
    5585     jne short 042e1h                          ; 75 12
     5615    jne short 042d5h                          ; 75 12
    55865616    mov ax, word [bp+018h]                    ; 8b 46 18
    55875617    xor ah, ah                                ; 30 e4
     
    55905620    xor al, al                                ; 30 c0
    55915621    or AL, strict byte 001h                   ; 0c 01
    5592     jmp near 045abh                           ; e9 ca 02
     5622    jmp near 0459fh                           ; e9 ca 02
    55935623    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    55945624    imul dx, dx, strict byte 00018h           ; 6b d2 18
     
    56025632    or AL, strict byte 001h                   ; 0c 01
    56035633    mov word [bp+018h], ax                    ; 89 46 18
    5604     jmp near 04342h                           ; e9 42 00
     5634    jmp near 04336h                           ; e9 42 00
    56055635    test al, al                               ; 84 c0
    5606     jne short 04310h                          ; 75 0c
     5636    jne short 04304h                          ; 75 0c
    56075637    or bh, 0b0h                               ; 80 cf b0
    56085638    mov word [bp+018h], bx                    ; 89 5e 18
    56095639    mov byte [bp+018h], al                    ; 88 46 18
    5610     jmp near 045aeh                           ; e9 9e 02
     5640    jmp near 045a2h                           ; e9 9e 02
    56115641    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    56125642    imul dx, dx, strict byte 00018h           ; 6b d2 18
     
    56235653    xor al, al                                ; 30 c0
    56245654    or ax, dx                                 ; 09 d0
    5625     jmp short 042fah                          ; eb c7
     5655    jmp short 042eeh                          ; eb c7
    56265656    test al, al                               ; 84 c0
    56275657    db  00fh, 095h, 0c0h
     
    56355665    mov dx, strict word 00074h                ; ba 74 00
    56365666    mov ax, strict word 00040h                ; b8 40 00
    5637     call 0160eh                               ; e8 bd d2
     5667    call 0160eh                               ; e8 c9 d2
    56385668    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    56395669    lea sp, [bp-004h]                         ; 8d 66 fc
     
    56485678    mov al, byte [es:si+021h]                 ; 26 8a 44 21
    56495679    test al, al                               ; 84 c0
    5650     je short 04376h                           ; 74 06
     5680    je short 0436ah                           ; 74 06
    56515681    or bh, 0b1h                               ; 80 cf b1
    5652     jmp near 0415bh                           ; e9 e5 fd
    5653     je short 04342h                           ; 74 ca
     5682    jmp near 0414fh                           ; e9 e5 fd
     5683    je short 04336h                           ; 74 ca
    56545684    mov ax, word [bp+018h]                    ; 8b 46 18
    56555685    xor ah, ah                                ; 30 e4
    56565686    or ah, 0b1h                               ; 80 cc b1
    5657     jmp near 045abh                           ; e9 28 02
     5687    jmp near 0459fh                           ; e9 28 02
    56585688    mov dx, word [bp+00ch]                    ; 8b 56 0c
    56595689    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    56655695    mov word [bp-00eh], ax                    ; 89 46 f2
    56665696    cmp ax, strict word 0001ah                ; 3d 1a 00
    5667     jc near 045a3h                            ; 0f 82 04 02
    5668     jc short 043f0h                           ; 72 4f
     5697    jc near 04597h                            ; 0f 82 04 02
     5698    jc short 043e4h                           ; 72 4f
    56695699    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    56705700    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    56895719    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    56905720    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    5691     jc near 044c7h                            ; 0f 82 cf 00
     5721    jc near 044bbh                            ; 0f 82 cf 00
    56925722    mov es, [bp-00ah]                         ; 8e 46 f6
    56935723    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    57415771    xor cl, cl                                ; 30 c9
    57425772    xor ch, ch                                ; 30 ed
    5743     jmp short 044aah                          ; eb 05
     5773    jmp short 0449eh                          ; eb 05
    57445774    cmp ch, 00fh                              ; 80 fd 0f
    5745     jnc short 044bdh                          ; 73 13
     5775    jnc short 044b1h                          ; 73 13
    57465776    movzx dx, ch                              ; 0f b6 d5
    57475777    add dx, 00312h                            ; 81 c2 12 03
    57485778    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5749     call 01600h                               ; e8 49 d1
     5779    call 01600h                               ; e8 55 d1
    57505780    add cl, al                                ; 00 c1
    57515781    db  0feh, 0c5h
    57525782    ; inc ch                                    ; fe c5
    5753     jmp short 044a5h                          ; eb e8
     5783    jmp short 04499h                          ; eb e8
    57545784    neg cl                                    ; f6 d9
    57555785    mov es, [bp-00ch]                         ; 8e 46 f4
    57565786    mov byte [es:si+001ffh], cl               ; 26 88 8c ff 01
    57575787    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    5758     jc near 04342h                            ; 0f 82 73 fe
     5788    jc near 04336h                            ; 0f 82 73 fe
    57595789    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    57605790    cwd                                       ; 99
     
    57745804    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    57755805    test al, al                               ; 84 c0
    5776     jne short 04510h                          ; 75 09
     5806    jne short 04504h                          ; 75 09
    57775807    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    57785808    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    57835813    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    57845814    test al, al                               ; 84 c0
    5785     jne short 0453ch                          ; 75 13
     5815    jne short 04530h                          ; 75 13
    57865816    mov word [es:bx+030h], dx                 ; 26 89 57 30
    57875817    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    57985828    xor al, al                                ; 30 c0
    57995829    mov AH, strict byte 01eh                  ; b4 1e
    5800     jmp short 04564h                          ; eb 05
     5830    jmp short 04558h                          ; eb 05
    58015831    cmp ah, 040h                              ; 80 fc 40
    5802     jnc short 04573h                          ; 73 0f
     5832    jnc short 04567h                          ; 73 0f
    58035833    movzx si, ah                              ; 0f b6 f4
    58045834    mov es, [bp-00ah]                         ; 8e 46 f6
     
    58075837    db  0feh, 0c4h
    58085838    ; inc ah                                    ; fe c4
    5809     jmp short 0455fh                          ; eb ec
     5839    jmp short 04553h                          ; eb ec
    58105840    neg al                                    ; f6 d8
    58115841    mov es, [bp-00ah]                         ; 8e 46 f6
    58125842    mov byte [es:bx+041h], al                 ; 26 88 47 41
    5813     jmp near 04342h                           ; e9 c3 fd
     5843    jmp near 04336h                           ; e9 c3 fd
    58145844    or bh, 006h                               ; 80 cf 06
    58155845    mov word [bp+018h], bx                    ; 89 5e 18
    5816     jmp short 045bfh                          ; eb 38
     5846    jmp short 045b3h                          ; eb 38
    58175847    cmp bx, strict byte 00006h                ; 83 fb 06
    5818     je near 04342h                            ; 0f 84 b4 fd
     5848    je near 04336h                            ; 0f 84 b4 fd
    58195849    cmp bx, strict byte 00001h                ; 83 fb 01
    5820     jc short 045a3h                           ; 72 10
    5821     jbe near 04342h                           ; 0f 86 ab fd
     5850    jc short 04597h                           ; 72 10
     5851    jbe near 04336h                           ; 0f 86 ab fd
    58225852    cmp bx, strict byte 00003h                ; 83 fb 03
    5823     jc short 045a3h                           ; 72 07
     5853    jc short 04597h                           ; 72 07
    58245854    cmp bx, strict byte 00004h                ; 83 fb 04
    5825     jbe near 04342h                           ; 0f 86 9f fd
     5855    jbe near 04336h                           ; 0f 86 9f fd
    58265856    mov ax, word [bp+018h]                    ; 8b 46 18
    58275857    xor ah, ah                                ; 30 e4
     
    58335863    mov dx, strict word 00074h                ; ba 74 00
    58345864    mov ax, strict word 00040h                ; b8 40 00
    5835     call 0160eh                               ; e8 4f d0
     5865    call 0160eh                               ; e8 5b d0
    58365866    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    5837     jmp near 04355h                           ; e9 8f fd
    5838     mov bx, 00d38h                            ; bb 38 0d
     5867    jmp near 04349h                           ; e9 8f fd
     5868    mov bx, 00da8h                            ; bb a8 0d
    58395869    mov cx, ds                                ; 8c d9
    58405870    mov ax, strict word 00004h                ; b8 04 00
    5841     call 018cch                               ; e8 fb d2
     5871    call 018cch                               ; e8 07 d3
    58425872    mov ax, word [bp+018h]                    ; 8b 46 18
    58435873    shr ax, 008h                              ; c1 e8 08
    58445874    push ax                                   ; 50
    5845     push 0034fh                               ; 68 4f 03
    5846     push 002a3h                               ; 68 a3 02
     5875    push 003bfh                               ; 68 bf 03
     5876    push 00313h                               ; 68 13 03
    58475877    push strict byte 00004h                   ; 6a 04
    5848     jmp near 041b3h                           ; e9 d0 fb
    5849 print_boot_device_:                          ; 0xf45e3 LB 0x4b
     5878    jmp near 041a7h                           ; e9 d0 fb
     5879print_boot_device_:                          ; 0xf45d7 LB 0x4b
    58505880    push bp                                   ; 55
    58515881    mov bp, sp                                ; 89 e5
    58525882    push cx                                   ; 51
    58535883    test al, al                               ; 84 c0
    5854     je short 045f0h                           ; 74 05
     5884    je short 045e4h                           ; 74 05
    58555885    mov dx, strict word 00002h                ; ba 02 00
    5856     jmp short 0460ah                          ; eb 1a
     5886    jmp short 045feh                          ; eb 1a
    58575887    test dl, dl                               ; 84 d2
    5858     je short 045f9h                           ; 74 05
     5888    je short 045edh                           ; 74 05
    58595889    mov dx, strict word 00003h                ; ba 03 00
    5860     jmp short 0460ah                          ; eb 11
     5890    jmp short 045feh                          ; eb 11
    58615891    test bl, 080h                             ; f6 c3 80
    5862     jne short 04602h                          ; 75 04
     5892    jne short 045f6h                          ; 75 04
    58635893    xor dh, dh                                ; 30 f6
    5864     jmp short 0460ah                          ; eb 08
     5894    jmp short 045feh                          ; eb 08
    58655895    test bl, 080h                             ; f6 c3 80
    5866     je short 04628h                           ; 74 21
     5896    je short 0461ch                           ; 74 21
    58675897    mov dx, strict word 00001h                ; ba 01 00
    5868     mov bx, 00d38h                            ; bb 38 0d
     5898    mov bx, 00da8h                            ; bb a8 0d
    58695899    mov cx, ds                                ; 8c d9
    58705900    mov ax, strict word 00004h                ; b8 04 00
    5871     call 018cch                               ; e8 b7 d2
     5901    call 018cch                               ; e8 c3 d2
    58725902    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    5873     add dx, 00d5eh                            ; 81 c2 5e 0d
     5903    add dx, 00dceh                            ; 81 c2 ce 0d
    58745904    push dx                                   ; 52
    5875     push 00404h                               ; 68 04 04
     5905    push 00474h                               ; 68 74 04
    58765906    push strict byte 00004h                   ; 6a 04
    5877     call 0190dh                               ; e8 e8 d2
     5907    call 0190dh                               ; e8 f4 d2
    58785908    add sp, strict byte 00006h                ; 83 c4 06
    58795909    lea sp, [bp-002h]                         ; 8d 66 fe
     
    58815911    pop bp                                    ; 5d
    58825912    retn                                      ; c3
    5883 print_boot_failure_:                         ; 0xf462e LB 0x93
     5913print_boot_failure_:                         ; 0xf4622 LB 0x93
    58845914    push bp                                   ; 55
    58855915    mov bp, sp                                ; 89 e5
     
    58905920    movzx si, ah                              ; 0f b6 f4
    58915921    test al, al                               ; 84 c0
    5892     je short 0465bh                           ; 74 1b
    5893     mov bx, 00d38h                            ; bb 38 0d
     5922    je short 0464fh                           ; 74 1b
     5923    mov bx, 00da8h                            ; bb a8 0d
    58945924    mov cx, ds                                ; 8c d9
    58955925    mov ax, strict word 00004h                ; b8 04 00
    5896     call 018cch                               ; e8 81 d2
    5897     push 00d72h                               ; 68 72 0d
    5898     push 00418h                               ; 68 18 04
     5926    call 018cch                               ; e8 8d d2
     5927    push 00de2h                               ; 68 e2 0d
     5928    push 00488h                               ; 68 88 04
    58995929    push strict byte 00004h                   ; 6a 04
    5900     call 0190dh                               ; e8 b7 d2
     5930    call 0190dh                               ; e8 c3 d2
    59015931    add sp, strict byte 00006h                ; 83 c4 06
    5902     jmp short 0469fh                          ; eb 44
     5932    jmp short 04693h                          ; eb 44
    59035933    test dl, dl                               ; 84 d2
    5904     je short 0466fh                           ; 74 10
    5905     mov bx, 00d38h                            ; bb 38 0d
     5934    je short 04663h                           ; 74 10
     5935    mov bx, 00da8h                            ; bb a8 0d
    59065936    mov cx, ds                                ; 8c d9
    59075937    mov ax, strict word 00004h                ; b8 04 00
    5908     call 018cch                               ; e8 62 d2
    5909     push 00d7ch                               ; 68 7c 0d
    5910     jmp short 0464eh                          ; eb df
     5938    call 018cch                               ; e8 6e d2
     5939    push 00dech                               ; 68 ec 0d
     5940    jmp short 04642h                          ; eb df
    59115941    test bl, 080h                             ; f6 c3 80
    5912     je short 04685h                           ; 74 11
    5913     mov bx, 00d38h                            ; bb 38 0d
     5942    je short 04679h                           ; 74 11
     5943    mov bx, 00da8h                            ; bb a8 0d
    59145944    mov cx, ds                                ; 8c d9
    59155945    mov ax, strict word 00004h                ; b8 04 00
    5916     call 018cch                               ; e8 4d d2
     5946    call 018cch                               ; e8 59 d2
    59175947    push si                                   ; 56
    5918     push 00d68h                               ; 68 68 0d
    5919     jmp short 04694h                          ; eb 0f
    5920     mov bx, 00d38h                            ; bb 38 0d
     5948    push 00dd8h                               ; 68 d8 0d
     5949    jmp short 04688h                          ; eb 0f
     5950    mov bx, 00da8h                            ; bb a8 0d
    59215951    mov cx, ds                                ; 8c d9
    59225952    mov ax, strict word 00004h                ; b8 04 00
    5923     call 018cch                               ; e8 3c d2
     5953    call 018cch                               ; e8 48 d2
    59245954    push si                                   ; 56
    5925     push 00d5eh                               ; 68 5e 0d
    5926     push 0042dh                               ; 68 2d 04
     5955    push 00dceh                               ; 68 ce 0d
     5956    push 0049dh                               ; 68 9d 04
    59275957    push strict byte 00004h                   ; 6a 04
    5928     call 0190dh                               ; e8 71 d2
     5958    call 0190dh                               ; e8 7d d2
    59295959    add sp, strict byte 00008h                ; 83 c4 08
    59305960    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    5931     jne short 046b9h                          ; 75 14
     5961    jne short 046adh                          ; 75 14
    59325962    test dh, dh                               ; 84 f6
    5933     jne short 046aeh                          ; 75 05
    5934     push 00445h                               ; 68 45 04
    5935     jmp short 046b1h                          ; eb 03
    5936     push 0046fh                               ; 68 6f 04
     5963    jne short 046a2h                          ; 75 05
     5964    push 004b5h                               ; 68 b5 04
     5965    jmp short 046a5h                          ; eb 03
     5966    push 004dfh                               ; 68 df 04
    59375967    push strict byte 00007h                   ; 6a 07
    5938     call 0190dh                               ; e8 57 d2
     5968    call 0190dh                               ; e8 63 d2
    59395969    add sp, strict byte 00004h                ; 83 c4 04
    59405970    lea sp, [bp-002h]                         ; 8d 66 fe
     
    59425972    pop bp                                    ; 5d
    59435973    retn 00002h                               ; c2 02 00
    5944 print_cdromboot_failure_:                    ; 0xf46c1 LB 0x27
     5974print_cdromboot_failure_:                    ; 0xf46b5 LB 0x27
    59455975    push bp                                   ; 55
    59465976    mov bp, sp                                ; 89 e5
     
    59495979    push dx                                   ; 52
    59505980    mov dx, ax                                ; 89 c2
    5951     mov bx, 00d38h                            ; bb 38 0d
     5981    mov bx, 00da8h                            ; bb a8 0d
    59525982    mov cx, ds                                ; 8c d9
    59535983    mov ax, strict word 00004h                ; b8 04 00
    5954     call 018cch                               ; e8 f8 d1
     5984    call 018cch                               ; e8 04 d2
    59555985    push dx                                   ; 52
    5956     push 004a4h                               ; 68 a4 04
     5986    push 00514h                               ; 68 14 05
    59575987    push strict byte 00004h                   ; 6a 04
    5958     call 0190dh                               ; e8 30 d2
     5988    call 0190dh                               ; e8 3c d2
    59595989    add sp, strict byte 00006h                ; 83 c4 06
    59605990    lea sp, [bp-006h]                         ; 8d 66 fa
     
    59645994    pop bp                                    ; 5d
    59655995    retn                                      ; c3
    5966 _int19_function:                             ; 0xf46e8 LB 0x256
     5996_int19_function:                             ; 0xf46dc LB 0x256
    59675997    push bp                                   ; 55
    59685998    mov bp, sp                                ; 89 e5
     
    59726002    mov dx, strict word 0000eh                ; ba 0e 00
    59736003    mov ax, strict word 00040h                ; b8 40 00
    5974     call 0161ch                               ; e8 23 cf
     6004    call 0161ch                               ; e8 2f cf
    59756005    mov bx, ax                                ; 89 c3
    59766006    mov word [bp-00eh], ax                    ; 89 46 f2
    59776007    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    59786008    mov ax, strict word 0003dh                ; b8 3d 00
    5979     call 0165ch                               ; e8 54 cf
     6009    call 0165ch                               ; e8 60 cf
    59806010    movzx si, al                              ; 0f b6 f0
    59816011    mov ax, strict word 00038h                ; b8 38 00
    5982     call 0165ch                               ; e8 4b cf
     6012    call 0165ch                               ; e8 57 cf
    59836013    and AL, strict byte 0f0h                  ; 24 f0
    59846014    xor ah, ah                                ; 30 e4
     
    59866016    or si, ax                                 ; 09 c6
    59876017    mov ax, strict word 0003ch                ; b8 3c 00
    5988     call 0165ch                               ; e8 3c cf
     6018    call 0165ch                               ; e8 48 cf
    59896019    and AL, strict byte 00fh                  ; 24 0f
    59906020    xor ah, ah                                ; 30 e4
     
    59936023    mov dx, 00339h                            ; ba 39 03
    59946024    mov ax, bx                                ; 89 d8
    5995     call 01600h                               ; e8 cf ce
     6025    call 01600h                               ; e8 db ce
    59966026    test al, al                               ; 84 c0
    5997     je short 04740h                           ; 74 0b
     6027    je short 04734h                           ; 74 0b
    59986028    mov dx, 00339h                            ; ba 39 03
    59996029    mov ax, bx                                ; 89 d8
    6000     call 01600h                               ; e8 c3 ce
     6030    call 01600h                               ; e8 cf ce
    60016031    movzx si, al                              ; 0f b6 f0
    60026032    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6003     jne short 04756h                          ; 75 10
     6033    jne short 0474ah                          ; 75 10
    60046034    mov ax, strict word 0003ch                ; b8 3c 00
    6005     call 0165ch                               ; e8 10 cf
     6035    call 0165ch                               ; e8 1c cf
    60066036    and AL, strict byte 0f0h                  ; 24 f0
    60076037    xor ah, ah                                ; 30 e4
    60086038    sar ax, 004h                              ; c1 f8 04
    6009     call 0740bh                               ; e8 b5 2c
     6039    call 073ffh                               ; e8 b5 2c
    60106040    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6011     jne short 0475fh                          ; 75 03
     6041    jne short 04753h                          ; 75 03
    60126042    shr si, 004h                              ; c1 ee 04
    60136043    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6014     jne short 04768h                          ; 75 03
     6044    jne short 0475ch                          ; 75 03
    60156045    shr si, 008h                              ; c1 ee 08
    60166046    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6017     jne short 04771h                          ; 75 03
     6047    jne short 04765h                          ; 75 03
    60186048    shr si, 00ch                              ; c1 ee 0c
    60196049    cmp si, strict byte 00010h                ; 83 fe 10
    6020     jnc short 0477ah                          ; 73 04
     6050    jnc short 0476eh                          ; 73 04
    60216051    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    60226052    xor al, al                                ; 30 c0
     
    60246054    mov byte [bp-00ah], al                    ; 88 46 f6
    60256055    mov byte [bp-00ch], al                    ; 88 46 f4
    6026     mov bx, 00d38h                            ; bb 38 0d
     6056    mov bx, 00da8h                            ; bb a8 0d
    60276057    mov cx, ds                                ; 8c d9
    60286058    mov ax, strict word 00004h                ; b8 04 00
    6029     call 018cch                               ; e8 3c d1
     6059    call 018cch                               ; e8 48 d1
    60306060    push si                                   ; 56
    60316061    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    60326062    push ax                                   ; 50
    6033     push 004c4h                               ; 68 c4 04
     6063    push 00534h                               ; 68 34 05
    60346064    push strict byte 00004h                   ; 6a 04
    6035     call 0190dh                               ; e8 6f d1
     6065    call 0190dh                               ; e8 7b d1
    60366066    add sp, strict byte 00008h                ; 83 c4 08
    60376067    and si, strict byte 0000fh                ; 83 e6 0f
    60386068    cmp si, strict byte 00002h                ; 83 fe 02
    6039     jc short 047b7h                           ; 72 0e
    6040     jbe short 047c6h                          ; 76 1b
     6069    jc short 047abh                           ; 72 0e
     6070    jbe short 047bah                          ; 76 1b
    60416071    cmp si, strict byte 00004h                ; 83 fe 04
    6042     je short 047e4h                           ; 74 34
     6072    je short 047d8h                           ; 74 34
    60436073    cmp si, strict byte 00003h                ; 83 fe 03
    6044     je short 047dah                           ; 74 25
    6045     jmp short 04811h                          ; eb 5a
     6074    je short 047ceh                           ; 74 25
     6075    jmp short 04805h                          ; eb 5a
    60466076    cmp si, strict byte 00001h                ; 83 fe 01
    6047     jne short 04811h                          ; 75 55
     6077    jne short 04805h                          ; 75 55
    60486078    xor al, al                                ; 30 c0
    60496079    mov byte [bp-006h], al                    ; 88 46 fa
    60506080    mov byte [bp-00ah], al                    ; 88 46 f6
    6051     jmp short 04829h                          ; eb 63
     6081    jmp short 0481dh                          ; eb 63
    60526082    mov dx, 00338h                            ; ba 38 03
    60536083    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6054     call 01600h                               ; e8 31 ce
     6084    call 01600h                               ; e8 3d ce
    60556085    add AL, strict byte 080h                  ; 04 80
    60566086    mov byte [bp-006h], al                    ; 88 46 fa
    60576087    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6058     jmp short 04829h                          ; eb 4f
     6088    jmp short 0481dh                          ; eb 4f
    60596089    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    60606090    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6061     jmp short 047eeh                          ; eb 0a
     6091    jmp short 047e2h                          ; eb 0a
    60626092    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    60636093    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6064     je short 04829h                           ; 74 3b
    6065     call 03837h                               ; e8 46 f0
     6094    je short 0481dh                           ; 74 3b
     6095    call 0382bh                               ; e8 46 f0
    60666096    mov bx, ax                                ; 89 c3
    60676097    test AL, strict byte 0ffh                 ; a8 ff
    6068     je short 04818h                           ; 74 21
    6069     call 046c1h                               ; e8 c7 fe
     6098    je short 0480ch                           ; 74 21
     6099    call 046b5h                               ; e8 c7 fe
    60706100    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    60716101    push ax                                   ; 50
     
    60746104    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    60756105    mov cx, strict word 00001h                ; b9 01 00
    6076     call 0462eh                               ; e8 1d fe
     6106    call 04622h                               ; e8 1d fe
    60776107    xor ax, ax                                ; 31 c0
    60786108    xor dx, dx                                ; 31 d2
    6079     jmp near 04937h                           ; e9 1f 01
     6109    jmp near 0492bh                           ; e9 1f 01
    60806110    mov dx, 0032eh                            ; ba 2e 03
    60816111    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6082     call 0161ch                               ; e8 fb cd
     6112    call 0161ch                               ; e8 07 ce
    60836113    mov di, ax                                ; 89 c7
    60846114    shr bx, 008h                              ; c1 eb 08
    60856115    mov byte [bp-006h], bl                    ; 88 5e fa
    60866116    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6087     jne near 048a5h                           ; 0f 85 74 00
     6117    jne near 04899h                           ; 0f 85 74 00
    60886118    xor si, si                                ; 31 f6
    60896119    mov ax, 0e200h                            ; b8 00 e2
    60906120    mov es, ax                                ; 8e c0
    60916121    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6092     jne short 047fah                          ; 75 bb
     6122    jne short 047eeh                          ; 75 bb
    60936123    mov cx, ax                                ; 89 c1
    60946124    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    60956125    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6096     jne short 047fah                          ; 75 ad
     6126    jne short 047eeh                          ; 75 ad
    60976127    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6098     jne short 047fah                          ; 75 a6
     6128    jne short 047eeh                          ; 75 a6
    60996129    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    61006130    mov dx, word [es:di]                      ; 26 8b 15
    61016131    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    61026132    cmp ax, 06568h                            ; 3d 68 65
    6103     jne short 04883h                          ; 75 1f
     6133    jne short 04877h                          ; 75 1f
    61046134    cmp dx, 07445h                            ; 81 fa 45 74
    6105     jne short 04883h                          ; 75 19
     6135    jne short 04877h                          ; 75 19
    61066136    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    61076137    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    61086138    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6109     call 045e3h                               ; e8 6a fd
     6139    call 045d7h                               ; e8 6a fd
    61106140    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    61116141    mov word [bp-010h], cx                    ; 89 4e f0
    6112     jmp short 0489fh                          ; eb 1c
     6142    jmp short 04893h                          ; eb 1c
    61136143    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    61146144    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    61156145    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6116     call 045e3h                               ; e8 51 fd
     6146    call 045d7h                               ; e8 51 fd
    61176147    sti                                       ; fb
    61186148    mov word [bp-010h], cx                    ; 89 4e f0
     
    61216151    mov word [bp-012h], ax                    ; 89 46 ee
    61226152    call far [bp-012h]                        ; ff 5e ee
    6123     jmp near 047fah                           ; e9 55 ff
     6153    jmp near 047eeh                           ; e9 55 ff
    61246154    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6125     jne short 048d1h                          ; 75 26
     6155    jne short 048c5h                          ; 75 26
    61266156    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6127     jne short 048d1h                          ; 75 20
     6157    jne short 048c5h                          ; 75 20
    61286158    mov di, 007c0h                            ; bf c0 07
    61296159    mov es, di                                ; 8e c7
     
    61386168    sbb ax, strict byte 00000h                ; 83 d8 00
    61396169    test ax, ax                               ; 85 c0
    6140     jne near 047fah                           ; 0f 85 29 ff
     6170    jne near 047eeh                           ; 0f 85 29 ff
    61416171    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    61426172    db  00fh, 094h, 0c1h
    61436173    ; sete cl                                   ; 0f 94 c1
    61446174    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6145     je short 048e0h                           ; 74 02
     6175    je short 048d4h                           ; 74 02
    61466176    mov CL, strict byte 001h                  ; b1 01
    61476177    xor dx, dx                                ; 31 d2
    61486178    mov ax, di                                ; 89 f8
    6149     call 0161ch                               ; e8 35 cd
     6179    call 0161ch                               ; e8 41 cd
    61506180    mov bx, ax                                ; 89 c3
    61516181    mov dx, strict word 00002h                ; ba 02 00
    61526182    mov ax, di                                ; 89 f8
    6153     call 0161ch                               ; e8 2b cd
     6183    call 0161ch                               ; e8 37 cd
    61546184    cmp bx, ax                                ; 39 c3
    6155     je short 04906h                           ; 74 11
     6185    je short 048fah                           ; 74 11
    61566186    test cl, cl                               ; 84 c9
    6157     jne short 0491ch                          ; 75 23
     6187    jne short 04910h                          ; 75 23
    61586188    mov dx, 001feh                            ; ba fe 01
    61596189    mov ax, di                                ; 89 f8
    6160     call 0161ch                               ; e8 1b cd
     6190    call 0161ch                               ; e8 27 cd
    61616191    cmp ax, 0aa55h                            ; 3d 55 aa
    6162     je short 0491ch                           ; 74 16
     6192    je short 04910h                           ; 74 16
    61636193    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    61646194    push ax                                   ; 50
     
    61676197    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    61686198    xor cx, cx                                ; 31 c9
    6169     jmp near 0480eh                           ; e9 f2 fe
     6199    jmp near 04802h                           ; e9 f2 fe
    61706200    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    61716201    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    61726202    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6173     call 045e3h                               ; e8 b8 fc
     6203    call 045d7h                               ; e8 b8 fc
    61746204    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    61756205    xor dx, dx                                ; 31 d2
     
    61826212    pop bp                                    ; 5d
    61836213    retn                                      ; c3
    6184 keyboard_panic_:                             ; 0xf493e LB 0x13
     6214keyboard_panic_:                             ; 0xf4932 LB 0x13
    61856215    push bp                                   ; 55
    61866216    mov bp, sp                                ; 89 e5
    61876217    push ax                                   ; 50
    6188     push 004e4h                               ; 68 e4 04
     6218    push 00554h                               ; 68 54 05
    61896219    push strict byte 00007h                   ; 6a 07
    6190     call 0190dh                               ; e8 c3 cf
     6220    call 0190dh                               ; e8 cf cf
    61916221    add sp, strict byte 00006h                ; 83 c4 06
    61926222    mov sp, bp                                ; 89 ec
    61936223    pop bp                                    ; 5d
    61946224    retn                                      ; c3
    6195 _keyboard_init:                              ; 0xf4951 LB 0x27c
     6225_keyboard_init:                              ; 0xf4945 LB 0x27c
    61966226    push bp                                   ; 55
    61976227    mov bp, sp                                ; 89 e5
     
    62056235    ; sub ah, ah                                ; 2a e4
    62066236    test AL, strict byte 002h                 ; a8 02
    6207     je short 04974h                           ; 74 0d
     6237    je short 04968h                           ; 74 0d
    62086238    dec bx                                    ; 4b
    62096239    test bx, bx                               ; 85 db
    6210     jbe short 04974h                          ; 76 08
     6240    jbe short 04968h                          ; 76 08
    62116241    xor al, al                                ; 30 c0
    62126242    mov dx, 00080h                            ; ba 80 00
    62136243    out DX, AL                                ; ee
    6214     jmp short 0495dh                          ; eb e9
     6244    jmp short 04951h                          ; eb e9
    62156245    test bx, bx                               ; 85 db
    6216     jne short 0497dh                          ; 75 05
     6246    jne short 04971h                          ; 75 05
    62176247    xor ax, ax                                ; 31 c0
    6218     call 0493eh                               ; e8 c1 ff
     6248    call 04932h                               ; e8 c1 ff
    62196249    mov bx, strict word 0ffffh                ; bb ff ff
    62206250    mov dx, strict word 00064h                ; ba 64 00
     
    62236253    ; sub ah, ah                                ; 2a e4
    62246254    test AL, strict byte 001h                 ; a8 01
    6225     jne short 04997h                          ; 75 0d
     6255    jne short 0498bh                          ; 75 0d
    62266256    dec bx                                    ; 4b
    62276257    test bx, bx                               ; 85 db
    6228     jbe short 04997h                          ; 76 08
     6258    jbe short 0498bh                          ; 76 08
    62296259    mov AL, strict byte 001h                  ; b0 01
    62306260    mov dx, 00080h                            ; ba 80 00
    62316261    out DX, AL                                ; ee
    6232     jmp short 04980h                          ; eb e9
     6262    jmp short 04974h                          ; eb e9
    62336263    test bx, bx                               ; 85 db
    6234     jne short 049a1h                          ; 75 06
     6264    jne short 04995h                          ; 75 06
    62356265    mov ax, strict word 00001h                ; b8 01 00
    6236     call 0493eh                               ; e8 9d ff
     6266    call 04932h                               ; e8 9d ff
    62376267    mov dx, strict word 00060h                ; ba 60 00
    62386268    in AL, DX                                 ; ec
     
    62406270    ; sub ah, ah                                ; 2a e4
    62416271    cmp ax, strict word 00055h                ; 3d 55 00
    6242     je short 049b2h                           ; 74 06
     6272    je short 049a6h                           ; 74 06
    62436273    mov ax, 003dfh                            ; b8 df 03
    6244     call 0493eh                               ; e8 8c ff
     6274    call 04932h                               ; e8 8c ff
    62456275    mov AL, strict byte 0abh                  ; b0 ab
    62466276    mov dx, strict word 00064h                ; ba 64 00
     
    62526282    ; sub ah, ah                                ; 2a e4
    62536283    test AL, strict byte 002h                 ; a8 02
    6254     je short 049d2h                           ; 74 0d
     6284    je short 049c6h                           ; 74 0d
    62556285    dec bx                                    ; 4b
    62566286    test bx, bx                               ; 85 db
    6257     jbe short 049d2h                          ; 76 08
     6287    jbe short 049c6h                          ; 76 08
    62586288    mov AL, strict byte 010h                  ; b0 10
    62596289    mov dx, 00080h                            ; ba 80 00
    62606290    out DX, AL                                ; ee
    6261     jmp short 049bbh                          ; eb e9
     6291    jmp short 049afh                          ; eb e9
    62626292    test bx, bx                               ; 85 db
    6263     jne short 049dch                          ; 75 06
     6293    jne short 049d0h                          ; 75 06
    62646294    mov ax, strict word 0000ah                ; b8 0a 00
    6265     call 0493eh                               ; e8 62 ff
     6295    call 04932h                               ; e8 62 ff
    62666296    mov bx, strict word 0ffffh                ; bb ff ff
    62676297    mov dx, strict word 00064h                ; ba 64 00
     
    62706300    ; sub ah, ah                                ; 2a e4
    62716301    test AL, strict byte 001h                 ; a8 01
    6272     jne short 049f6h                          ; 75 0d
     6302    jne short 049eah                          ; 75 0d
    62736303    dec bx                                    ; 4b
    62746304    test bx, bx                               ; 85 db
    6275     jbe short 049f6h                          ; 76 08
     6305    jbe short 049eah                          ; 76 08
    62766306    mov AL, strict byte 011h                  ; b0 11
    62776307    mov dx, 00080h                            ; ba 80 00
    62786308    out DX, AL                                ; ee
    6279     jmp short 049dfh                          ; eb e9
     6309    jmp short 049d3h                          ; eb e9
    62806310    test bx, bx                               ; 85 db
    6281     jne short 04a00h                          ; 75 06
     6311    jne short 049f4h                          ; 75 06
    62826312    mov ax, strict word 0000bh                ; b8 0b 00
    6283     call 0493eh                               ; e8 3e ff
     6313    call 04932h                               ; e8 3e ff
    62846314    mov dx, strict word 00060h                ; ba 60 00
    62856315    in AL, DX                                 ; ec
     
    62876317    ; sub ah, ah                                ; 2a e4
    62886318    test ax, ax                               ; 85 c0
    6289     je short 04a10h                           ; 74 06
     6319    je short 04a04h                           ; 74 06
    62906320    mov ax, 003e0h                            ; b8 e0 03
    6291     call 0493eh                               ; e8 2e ff
     6321    call 04932h                               ; e8 2e ff
    62926322    mov AL, strict byte 0ffh                  ; b0 ff
    62936323    mov dx, strict word 00060h                ; ba 60 00
     
    62996329    ; sub ah, ah                                ; 2a e4
    63006330    test AL, strict byte 002h                 ; a8 02
    6301     je short 04a30h                           ; 74 0d
     6331    je short 04a24h                           ; 74 0d
    63026332    dec bx                                    ; 4b
    63036333    test bx, bx                               ; 85 db
    6304     jbe short 04a30h                          ; 76 08
     6334    jbe short 04a24h                          ; 76 08
    63056335    mov AL, strict byte 020h                  ; b0 20
    63066336    mov dx, 00080h                            ; ba 80 00
    63076337    out DX, AL                                ; ee
    6308     jmp short 04a19h                          ; eb e9
     6338    jmp short 04a0dh                          ; eb e9
    63096339    test bx, bx                               ; 85 db
    6310     jne short 04a3ah                          ; 75 06
     6340    jne short 04a2eh                          ; 75 06
    63116341    mov ax, strict word 00014h                ; b8 14 00
    6312     call 0493eh                               ; e8 04 ff
     6342    call 04932h                               ; e8 04 ff
    63136343    mov bx, strict word 0ffffh                ; bb ff ff
    63146344    mov dx, strict word 00064h                ; ba 64 00
     
    63176347    ; sub ah, ah                                ; 2a e4
    63186348    test AL, strict byte 001h                 ; a8 01
    6319     jne short 04a54h                          ; 75 0d
     6349    jne short 04a48h                          ; 75 0d
    63206350    dec bx                                    ; 4b
    63216351    test bx, bx                               ; 85 db
    6322     jbe short 04a54h                          ; 76 08
     6352    jbe short 04a48h                          ; 76 08
    63236353    mov AL, strict byte 021h                  ; b0 21
    63246354    mov dx, 00080h                            ; ba 80 00
    63256355    out DX, AL                                ; ee
    6326     jmp short 04a3dh                          ; eb e9
     6356    jmp short 04a31h                          ; eb e9
    63276357    test bx, bx                               ; 85 db
    6328     jne short 04a5eh                          ; 75 06
     6358    jne short 04a52h                          ; 75 06
    63296359    mov ax, strict word 00015h                ; b8 15 00
    6330     call 0493eh                               ; e8 e0 fe
     6360    call 04932h                               ; e8 e0 fe
    63316361    mov dx, strict word 00060h                ; ba 60 00
    63326362    in AL, DX                                 ; ec
     
    63346364    ; sub ah, ah                                ; 2a e4
    63356365    cmp ax, 000fah                            ; 3d fa 00
    6336     je short 04a6fh                           ; 74 06
     6366    je short 04a63h                           ; 74 06
    63376367    mov ax, 003e1h                            ; b8 e1 03
    6338     call 0493eh                               ; e8 cf fe
     6368    call 04932h                               ; e8 cf fe
    63396369    mov bx, strict word 0ffffh                ; bb ff ff
    63406370    mov dx, strict word 00064h                ; ba 64 00
     
    63436373    ; sub ah, ah                                ; 2a e4
    63446374    test AL, strict byte 001h                 ; a8 01
    6345     jne short 04a89h                          ; 75 0d
     6375    jne short 04a7dh                          ; 75 0d
    63466376    dec bx                                    ; 4b
    63476377    test bx, bx                               ; 85 db
    6348     jbe short 04a89h                          ; 76 08
     6378    jbe short 04a7dh                          ; 76 08
    63496379    mov AL, strict byte 031h                  ; b0 31
    63506380    mov dx, 00080h                            ; ba 80 00
    63516381    out DX, AL                                ; ee
    6352     jmp short 04a72h                          ; eb e9
     6382    jmp short 04a66h                          ; eb e9
    63536383    test bx, bx                               ; 85 db
    6354     jne short 04a93h                          ; 75 06
     6384    jne short 04a87h                          ; 75 06
    63556385    mov ax, strict word 0001fh                ; b8 1f 00
    6356     call 0493eh                               ; e8 ab fe
     6386    call 04932h                               ; e8 ab fe
    63576387    mov dx, strict word 00060h                ; ba 60 00
    63586388    in AL, DX                                 ; ec
     
    63606390    ; sub ah, ah                                ; 2a e4
    63616391    cmp ax, 000aah                            ; 3d aa 00
    6362     je short 04aach                           ; 74 0e
     6392    je short 04aa0h                           ; 74 0e
    63636393    in AL, DX                                 ; ec
    63646394    db  02ah, 0e4h
    63656395    ; sub ah, ah                                ; 2a e4
    63666396    cmp ax, 000aah                            ; 3d aa 00
    6367     je short 04aach                           ; 74 06
     6397    je short 04aa0h                           ; 74 06
    63686398    mov ax, 003e2h                            ; b8 e2 03
    6369     call 0493eh                               ; e8 92 fe
     6399    call 04932h                               ; e8 92 fe
    63706400    mov AL, strict byte 0f5h                  ; b0 f5
    63716401    mov dx, strict word 00060h                ; ba 60 00
     
    63776407    ; sub ah, ah                                ; 2a e4
    63786408    test AL, strict byte 002h                 ; a8 02
    6379     je short 04acch                           ; 74 0d
     6409    je short 04ac0h                           ; 74 0d
    63806410    dec bx                                    ; 4b
    63816411    test bx, bx                               ; 85 db
    6382     jbe short 04acch                          ; 76 08
     6412    jbe short 04ac0h                          ; 76 08
    63836413    mov AL, strict byte 040h                  ; b0 40
    63846414    mov dx, 00080h                            ; ba 80 00
    63856415    out DX, AL                                ; ee
    6386     jmp short 04ab5h                          ; eb e9
     6416    jmp short 04aa9h                          ; eb e9
    63876417    test bx, bx                               ; 85 db
    6388     jne short 04ad6h                          ; 75 06
     6418    jne short 04acah                          ; 75 06
    63896419    mov ax, strict word 00028h                ; b8 28 00
    6390     call 0493eh                               ; e8 68 fe
     6420    call 04932h                               ; e8 68 fe
    63916421    mov bx, strict word 0ffffh                ; bb ff ff
    63926422    mov dx, strict word 00064h                ; ba 64 00
     
    63956425    ; sub ah, ah                                ; 2a e4
    63966426    test AL, strict byte 001h                 ; a8 01
    6397     jne short 04af0h                          ; 75 0d
     6427    jne short 04ae4h                          ; 75 0d
    63986428    dec bx                                    ; 4b
    63996429    test bx, bx                               ; 85 db
    6400     jbe short 04af0h                          ; 76 08
     6430    jbe short 04ae4h                          ; 76 08
    64016431    mov AL, strict byte 041h                  ; b0 41
    64026432    mov dx, 00080h                            ; ba 80 00
    64036433    out DX, AL                                ; ee
    6404     jmp short 04ad9h                          ; eb e9
     6434    jmp short 04acdh                          ; eb e9
    64056435    test bx, bx                               ; 85 db
    6406     jne short 04afah                          ; 75 06
     6436    jne short 04aeeh                          ; 75 06
    64076437    mov ax, strict word 00029h                ; b8 29 00
    6408     call 0493eh                               ; e8 44 fe
     6438    call 04932h                               ; e8 44 fe
    64096439    mov dx, strict word 00060h                ; ba 60 00
    64106440    in AL, DX                                 ; ec
     
    64126442    ; sub ah, ah                                ; 2a e4
    64136443    cmp ax, 000fah                            ; 3d fa 00
    6414     je short 04b0bh                           ; 74 06
     6444    je short 04affh                           ; 74 06
    64156445    mov ax, 003e3h                            ; b8 e3 03
    6416     call 0493eh                               ; e8 33 fe
     6446    call 04932h                               ; e8 33 fe
    64176447    mov AL, strict byte 060h                  ; b0 60
    64186448    mov dx, strict word 00064h                ; ba 64 00
     
    64246454    ; sub ah, ah                                ; 2a e4
    64256455    test AL, strict byte 002h                 ; a8 02
    6426     je short 04b2bh                           ; 74 0d
     6456    je short 04b1fh                           ; 74 0d
    64276457    dec bx                                    ; 4b
    64286458    test bx, bx                               ; 85 db
    6429     jbe short 04b2bh                          ; 76 08
     6459    jbe short 04b1fh                          ; 76 08
    64306460    mov AL, strict byte 050h                  ; b0 50
    64316461    mov dx, 00080h                            ; ba 80 00
    64326462    out DX, AL                                ; ee
    6433     jmp short 04b14h                          ; eb e9
     6463    jmp short 04b08h                          ; eb e9
    64346464    test bx, bx                               ; 85 db
    6435     jne short 04b35h                          ; 75 06
     6465    jne short 04b29h                          ; 75 06
    64366466    mov ax, strict word 00032h                ; b8 32 00
    6437     call 0493eh                               ; e8 09 fe
     6467    call 04932h                               ; e8 09 fe
    64386468    mov AL, strict byte 065h                  ; b0 65
    64396469    mov dx, strict word 00060h                ; ba 60 00
     
    64456475    ; sub ah, ah                                ; 2a e4
    64466476    test AL, strict byte 002h                 ; a8 02
    6447     je short 04b55h                           ; 74 0d
     6477    je short 04b49h                           ; 74 0d
    64486478    dec bx                                    ; 4b
    64496479    test bx, bx                               ; 85 db
    6450     jbe short 04b55h                          ; 76 08
     6480    jbe short 04b49h                          ; 76 08
    64516481    mov AL, strict byte 060h                  ; b0 60
    64526482    mov dx, 00080h                            ; ba 80 00
    64536483    out DX, AL                                ; ee
    6454     jmp short 04b3eh                          ; eb e9
     6484    jmp short 04b32h                          ; eb e9
    64556485    test bx, bx                               ; 85 db
    6456     jne short 04b5fh                          ; 75 06
     6486    jne short 04b53h                          ; 75 06
    64576487    mov ax, strict word 0003ch                ; b8 3c 00
    6458     call 0493eh                               ; e8 df fd
     6488    call 04932h                               ; e8 df fd
    64596489    mov AL, strict byte 0f4h                  ; b0 f4
    64606490    mov dx, strict word 00060h                ; ba 60 00
     
    64666496    ; sub ah, ah                                ; 2a e4
    64676497    test AL, strict byte 002h                 ; a8 02
    6468     je short 04b7fh                           ; 74 0d
     6498    je short 04b73h                           ; 74 0d
    64696499    dec bx                                    ; 4b
    64706500    test bx, bx                               ; 85 db
    6471     jbe short 04b7fh                          ; 76 08
     6501    jbe short 04b73h                          ; 76 08
    64726502    mov AL, strict byte 070h                  ; b0 70
    64736503    mov dx, 00080h                            ; ba 80 00
    64746504    out DX, AL                                ; ee
    6475     jmp short 04b68h                          ; eb e9
     6505    jmp short 04b5ch                          ; eb e9
    64766506    test bx, bx                               ; 85 db
    6477     jne short 04b89h                          ; 75 06
     6507    jne short 04b7dh                          ; 75 06
    64786508    mov ax, strict word 00046h                ; b8 46 00
    6479     call 0493eh                               ; e8 b5 fd
     6509    call 04932h                               ; e8 b5 fd
    64806510    mov bx, strict word 0ffffh                ; bb ff ff
    64816511    mov dx, strict word 00064h                ; ba 64 00
     
    64846514    ; sub ah, ah                                ; 2a e4
    64856515    test AL, strict byte 001h                 ; a8 01
    6486     jne short 04ba3h                          ; 75 0d
     6516    jne short 04b97h                          ; 75 0d
    64876517    dec bx                                    ; 4b
    64886518    test bx, bx                               ; 85 db
    6489     jbe short 04ba3h                          ; 76 08
     6519    jbe short 04b97h                          ; 76 08
    64906520    mov AL, strict byte 071h                  ; b0 71
    64916521    mov dx, 00080h                            ; ba 80 00
    64926522    out DX, AL                                ; ee
    6493     jmp short 04b8ch                          ; eb e9
     6523    jmp short 04b80h                          ; eb e9
    64946524    test bx, bx                               ; 85 db
    6495     jne short 04badh                          ; 75 06
     6525    jne short 04ba1h                          ; 75 06
    64966526    mov ax, strict word 00046h                ; b8 46 00
    6497     call 0493eh                               ; e8 91 fd
     6527    call 04932h                               ; e8 91 fd
    64986528    mov dx, strict word 00060h                ; ba 60 00
    64996529    in AL, DX                                 ; ec
     
    65016531    ; sub ah, ah                                ; 2a e4
    65026532    cmp ax, 000fah                            ; 3d fa 00
    6503     je short 04bbeh                           ; 74 06
     6533    je short 04bb2h                           ; 74 06
    65046534    mov ax, 003e4h                            ; b8 e4 03
    6505     call 0493eh                               ; e8 80 fd
     6535    call 04932h                               ; e8 80 fd
    65066536    mov AL, strict byte 0a8h                  ; b0 a8
    65076537    mov dx, strict word 00064h                ; ba 64 00
    65086538    out DX, AL                                ; ee
    65096539    xor ax, ax                                ; 31 c0
    6510     call 05e38h                               ; e8 6f 12
     6540    call 05e2ch                               ; e8 6f 12
    65116541    mov sp, bp                                ; 89 ec
    65126542    pop bp                                    ; 5d
    65136543    retn                                      ; c3
    6514 enqueue_key_:                                ; 0xf4bcd LB 0x93
     6544enqueue_key_:                                ; 0xf4bc1 LB 0x93
    65156545    push bp                                   ; 55
    65166546    mov bp, sp                                ; 89 e5
     
    65246554    mov dx, strict word 0001ah                ; ba 1a 00
    65256555    mov ax, strict word 00040h                ; b8 40 00
    6526     call 0161ch                               ; e8 39 ca
     6556    call 0161ch                               ; e8 45 ca
    65276557    mov di, ax                                ; 89 c7
    65286558    mov dx, strict word 0001ch                ; ba 1c 00
    65296559    mov ax, strict word 00040h                ; b8 40 00
    6530     call 0161ch                               ; e8 2e ca
     6560    call 0161ch                               ; e8 3a ca
    65316561    mov si, ax                                ; 89 c6
    65326562    lea cx, [si+002h]                         ; 8d 4c 02
    65336563    cmp cx, strict byte 0003eh                ; 83 f9 3e
    6534     jc short 04bfbh                           ; 72 03
     6564    jc short 04befh                           ; 72 03
    65356565    mov cx, strict word 0001eh                ; b9 1e 00
    65366566    cmp cx, di                                ; 39 f9
    6537     jne short 04c03h                          ; 75 04
     6567    jne short 04bf7h                          ; 75 04
    65386568    xor ax, ax                                ; 31 c0
    6539     jmp short 04c28h                          ; eb 25
     6569    jmp short 04c1ch                          ; eb 25
    65406570    xor bh, bh                                ; 30 ff
    65416571    mov dx, si                                ; 89 f2
    65426572    mov ax, strict word 00040h                ; b8 40 00
    6543     call 0160eh                               ; e8 01 ca
     6573    call 0160eh                               ; e8 0d ca
    65446574    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    65456575    lea dx, [si+001h]                         ; 8d 54 01
    65466576    mov ax, strict word 00040h                ; b8 40 00
    6547     call 0160eh                               ; e8 f4 c9
     6577    call 0160eh                               ; e8 00 ca
    65486578    mov bx, cx                                ; 89 cb
    65496579    mov dx, strict word 0001ch                ; ba 1c 00
    65506580    mov ax, strict word 00040h                ; b8 40 00
    6551     call 0162ah                               ; e8 05 ca
     6581    call 0162ah                               ; e8 11 ca
    65526582    mov ax, strict word 00001h                ; b8 01 00
    65536583    lea sp, [bp-008h]                         ; 8d 66 f8
     
    65676597    cmp bh, byte [bx+si]                      ; 3a 38
    65686598    sub bl, byte [ss:di]                      ; 36 2a 1d
    6569     call far 0f64dh:0274eh                    ; 9a 4e 27 4d f6
     6599    mov cs, [bp+01bh]                         ; 8e 4e 1b
     6600    dec bp                                    ; 4d
     6601    jmp far 09d4ch:0ea4ch                     ; ea 4c ea 4c 9d
     6602    dec bp                                    ; 4d
     6603    retn                                      ; c3
    65706604    dec sp                                    ; 4c
    6571     db  0f6h
     6605    cmovle bx, word [bp+04eh]                 ; 0f 4e 5e 4e
     6606    or word [bp+05ch], 0ea4dh                 ; 81 4e 5c 4d ea
    65726607    dec sp                                    ; 4c
    6573     test ax, 0cf4dh                           ; a9 4d cf
     6608    jmp far 0dc4dh:0d64ch                     ; ea 4c d6 4d dc
    65746609    dec sp                                    ; 4c
    6575     sbb cx, word [bp+06ah]                    ; 1b 4e 6a
     6610    aas                                       ; 3f
    65766611    dec si                                    ; 4e
    6577     lea cx, [bp+068h]                         ; 8d 4e 68
    6578     dec bp                                    ; 4d
    6579     db  0f6h
    6580     dec sp                                    ; 4c
    6581     db  0f6h
    6582     dec sp                                    ; 4c
    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
     6612    jp short 04ca2h                           ; 7a 4e
     6613_int09_function:                             ; 0xf4c54 LB 0x35d
    65896614    push bp                                   ; 55
    65906615    mov bp, sp                                ; 89 e5
     
    65956620    mov byte [bp-00ah], al                    ; 88 46 f6
    65966621    test al, al                               ; 84 c0
    6597     jne short 04c8bh                          ; 75 19
    6598     mov bx, 00d38h                            ; bb 38 0d
     6622    jne short 04c7fh                          ; 75 19
     6623    mov bx, 00da8h                            ; bb a8 0d
    65996624    mov cx, ds                                ; 8c d9
    66006625    mov ax, strict word 00004h                ; b8 04 00
    6601     call 018cch                               ; e8 4f cc
    6602     push 004f7h                               ; 68 f7 04
     6626    call 018cch                               ; e8 5b cc
     6627    push 00567h                               ; 68 67 05
    66036628    push strict byte 00004h                   ; 6a 04
    6604     call 0190dh                               ; e8 88 cc
     6629    call 0190dh                               ; e8 94 cc
    66056630    add sp, strict byte 00004h                ; 83 c4 04
    6606     jmp near 04fb6h                           ; e9 2b 03
     6631    jmp near 04faah                           ; e9 2b 03
    66076632    mov dx, strict word 00017h                ; ba 17 00
    66086633    mov ax, strict word 00040h                ; b8 40 00
    6609     call 01600h                               ; e8 6c c9
     6634    call 01600h                               ; e8 78 c9
    66106635    mov byte [bp-00eh], al                    ; 88 46 f2
    66116636    mov bl, al                                ; 88 c3
    66126637    mov dx, strict word 00018h                ; ba 18 00
    66136638    mov ax, strict word 00040h                ; b8 40 00
    6614     call 01600h                               ; e8 5e c9
     6639    call 01600h                               ; e8 6a c9
    66156640    mov byte [bp-010h], al                    ; 88 46 f0
    66166641    mov byte [bp-00ch], al                    ; 88 46 f4
    66176642    mov dx, 00096h                            ; ba 96 00
    66186643    mov ax, strict word 00040h                ; b8 40 00
    6619     call 01600h                               ; e8 4f c9
     6644    call 01600h                               ; e8 5b c9
    66206645    mov byte [bp-008h], al                    ; 88 46 f8
    66216646    mov byte [bp-006h], al                    ; 88 46 fa
     
    66246649    pop ES                                    ; 07
    66256650    mov cx, strict word 00010h                ; b9 10 00
    6626     mov di, 04c31h                            ; bf 31 4c
     6651    mov di, 04c25h                            ; bf 25 4c
    66276652    repne scasb                               ; f2 ae
    66286653    sal cx, 1                                 ; d1 e1
    66296654    mov di, cx                                ; 89 cf
    6630     mov ax, word [cs:di+04c40h]               ; 2e 8b 85 40 4c
     6655    mov ax, word [cs:di+04c34h]               ; 2e 8b 85 34 4c
    66316656    jmp ax                                    ; ff e0
    66326657    xor bl, 040h                              ; 80 f3 40
     
    66346659    mov dx, strict word 00017h                ; ba 17 00
    66356660    mov ax, strict word 00040h                ; b8 40 00
    6636     call 0160eh                               ; e8 31 c9
     6661    call 0160eh                               ; e8 3d c9
    66376662    or byte [bp-00ch], 040h                   ; 80 4e f4 40
    66386663    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    6639     jmp near 04e5eh                           ; e9 76 01
     6664    jmp near 04e52h                           ; e9 76 01
    66406665    mov al, byte [bp-010h]                    ; 8a 46 f0
    66416666    and AL, strict byte 0bfh                  ; 24 bf
    66426667    mov byte [bp-00ch], al                    ; 88 46 f4
    66436668    movzx bx, al                              ; 0f b6 d8
    6644     jmp near 04e5eh                           ; e9 68 01
     6669    jmp near 04e52h                           ; e9 68 01
    66456670    test byte [bp-006h], 002h                 ; f6 46 fa 02
    6646     jne near 04f98h                           ; 0f 85 9a 02
     6671    jne near 04f8ch                           ; 0f 85 9a 02
    66476672    mov al, byte [bp-00ah]                    ; 8a 46 f6
    66486673    and AL, strict byte 07fh                  ; 24 7f
     
    66536678    inc ax                                    ; 40
    66546679    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    6655     je short 04d17h                           ; 74 06
     6680    je short 04d0bh                           ; 74 06
    66566681    not al                                    ; f6 d0
    66576682    and bl, al                                ; 20 c3
    6658     jmp short 04d19h                          ; eb 02
     6683    jmp short 04d0dh                          ; eb 02
    66596684    or bl, al                                 ; 08 c3
    66606685    xor bh, bh                                ; 30 ff
    66616686    mov dx, strict word 00017h                ; ba 17 00
    66626687    mov ax, strict word 00040h                ; b8 40 00
    6663     call 0160eh                               ; e8 ea c8
    6664     jmp near 04f98h                           ; e9 71 02
     6688    call 0160eh                               ; e8 f6 c8
     6689    jmp near 04f8ch                           ; e9 71 02
    66656690    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6666     jne near 04f98h                           ; 0f 85 69 02
     6691    jne near 04f8ch                           ; 0f 85 69 02
    66676692    or bl, 004h                               ; 80 cb 04
    66686693    xor bh, bh                                ; 30 ff
    66696694    mov dx, strict word 00017h                ; ba 17 00
    66706695    mov ax, strict word 00040h                ; b8 40 00
    6671     call 0160eh                               ; e8 d1 c8
     6696    call 0160eh                               ; e8 dd c8
    66726697    mov al, byte [bp-008h]                    ; 8a 46 f8
    66736698    test AL, strict byte 002h                 ; a8 02
    6674     je short 04d51h                           ; 74 0d
     6699    je short 04d45h                           ; 74 0d
    66756700    or AL, strict byte 004h                   ; 0c 04
    66766701    mov byte [bp-006h], al                    ; 88 46 fa
    66776702    movzx bx, al                              ; 0f b6 d8
    66786703    mov dx, 00096h                            ; ba 96 00
    6679     jmp short 04d5fh                          ; eb 0e
     6704    jmp short 04d53h                          ; eb 0e
    66806705    mov al, byte [bp-010h]                    ; 8a 46 f0
    66816706    or AL, strict byte 001h                   ; 0c 01
     
    66846709    mov dx, strict word 00018h                ; ba 18 00
    66856710    mov ax, strict word 00040h                ; b8 40 00
    6686     call 0160eh                               ; e8 a9 c8
    6687     jmp near 04f98h                           ; e9 30 02
     6711    call 0160eh                               ; e8 b5 c8
     6712    jmp near 04f8ch                           ; e9 30 02
    66886713    test byte [bp-008h], 001h                 ; f6 46 f8 01
    6689     jne near 04f98h                           ; 0f 85 28 02
     6714    jne near 04f8ch                           ; 0f 85 28 02
    66906715    and bl, 0fbh                              ; 80 e3 fb
    66916716    xor bh, bh                                ; 30 ff
    66926717    mov dx, strict word 00017h                ; ba 17 00
    66936718    mov ax, strict word 00040h                ; b8 40 00
    6694     call 0160eh                               ; e8 90 c8
     6719    call 0160eh                               ; e8 9c c8
    66956720    mov al, byte [bp-008h]                    ; 8a 46 f8
    66966721    test AL, strict byte 002h                 ; a8 02
    6697     je short 04d92h                           ; 74 0d
     6722    je short 04d86h                           ; 74 0d
    66986723    and AL, strict byte 0fbh                  ; 24 fb
    66996724    mov byte [bp-006h], al                    ; 88 46 fa
    67006725    movzx bx, al                              ; 0f b6 d8
    67016726    mov dx, 00096h                            ; ba 96 00
    6702     jmp short 04da0h                          ; eb 0e
     6727    jmp short 04d94h                          ; eb 0e
    67036728    mov al, byte [bp-010h]                    ; 8a 46 f0
    67046729    and AL, strict byte 0feh                  ; 24 fe
     
    67076732    mov dx, strict word 00018h                ; ba 18 00
    67086733    mov ax, strict word 00040h                ; b8 40 00
    6709     call 0160eh                               ; e8 68 c8
    6710     jmp near 04f98h                           ; e9 ef 01
     6734    call 0160eh                               ; e8 74 c8
     6735    jmp near 04f8ch                           ; e9 ef 01
    67116736    or bl, 008h                               ; 80 cb 08
    67126737    xor bh, bh                                ; 30 ff
    67136738    mov dx, strict word 00017h                ; ba 17 00
    67146739    mov ax, strict word 00040h                ; b8 40 00
    6715     call 0160eh                               ; e8 57 c8
     6740    call 0160eh                               ; e8 63 c8
    67166741    mov al, byte [bp-008h]                    ; 8a 46 f8
    67176742    test AL, strict byte 002h                 ; a8 02
    6718     je short 04dcbh                           ; 74 0d
     6743    je short 04dbfh                           ; 74 0d
    67196744    or AL, strict byte 008h                   ; 0c 08
    67206745    mov byte [bp-006h], al                    ; 88 46 fa
    67216746    movzx bx, al                              ; 0f b6 d8
    67226747    mov dx, 00096h                            ; ba 96 00
    6723     jmp short 04dd9h                          ; eb 0e
     6748    jmp short 04dcdh                          ; eb 0e
    67246749    mov al, byte [bp-010h]                    ; 8a 46 f0
    67256750    or AL, strict byte 002h                   ; 0c 02
     
    67286753    mov dx, strict word 00018h                ; ba 18 00
    67296754    mov ax, strict word 00040h                ; b8 40 00
    6730     call 0160eh                               ; e8 2f c8
    6731     jmp near 04f98h                           ; e9 b6 01
     6755    call 0160eh                               ; e8 3b c8
     6756    jmp near 04f8ch                           ; e9 b6 01
    67326757    and bl, 0f7h                              ; 80 e3 f7
    67336758    xor bh, bh                                ; 30 ff
    67346759    mov dx, strict word 00017h                ; ba 17 00
    67356760    mov ax, strict word 00040h                ; b8 40 00
    6736     call 0160eh                               ; e8 1e c8
     6761    call 0160eh                               ; e8 2a c8
    67376762    mov al, byte [bp-008h]                    ; 8a 46 f8
    67386763    test AL, strict byte 002h                 ; a8 02
    6739     je short 04e04h                           ; 74 0d
     6764    je short 04df8h                           ; 74 0d
    67406765    and AL, strict byte 0f7h                  ; 24 f7
    67416766    mov byte [bp-006h], al                    ; 88 46 fa
    67426767    movzx bx, al                              ; 0f b6 d8
    67436768    mov dx, 00096h                            ; ba 96 00
    6744     jmp short 04e12h                          ; eb 0e
     6769    jmp short 04e06h                          ; eb 0e
    67456770    mov al, byte [bp-010h]                    ; 8a 46 f0
    67466771    and AL, strict byte 0fdh                  ; 24 fd
     
    67496774    mov dx, strict word 00018h                ; ba 18 00
    67506775    mov ax, strict word 00040h                ; b8 40 00
    6751     call 0160eh                               ; e8 f6 c7
    6752     jmp near 04f98h                           ; e9 7d 01
     6776    call 0160eh                               ; e8 02 c8
     6777    jmp near 04f8ch                           ; e9 7d 01
    67536778    test byte [bp-008h], 003h                 ; f6 46 f8 03
    6754     jne near 04f98h                           ; 0f 85 75 01
     6779    jne near 04f8ch                           ; 0f 85 75 01
    67556780    mov al, byte [bp-010h]                    ; 8a 46 f0
    67566781    or AL, strict byte 020h                   ; 0c 20
     
    67596784    mov dx, strict word 00018h                ; ba 18 00
    67606785    mov ax, strict word 00040h                ; b8 40 00
    6761     call 0160eh                               ; e8 d7 c7
     6786    call 0160eh                               ; e8 e3 c7
    67626787    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    67636788    xor bl, 020h                              ; 80 f3 20
     
    67656790    mov dx, strict word 00017h                ; ba 17 00
    67666791    mov ax, strict word 00040h                ; b8 40 00
    6767     call 0160eh                               ; e8 c6 c7
    6768     jmp near 04f98h                           ; e9 4d 01
     6792    call 0160eh                               ; e8 d2 c7
     6793    jmp near 04f8ch                           ; e9 4d 01
    67696794    test byte [bp-008h], 003h                 ; f6 46 f8 03
    6770     jne near 04f98h                           ; 0f 85 45 01
     6795    jne near 04f8ch                           ; 0f 85 45 01
    67716796    mov al, byte [bp-010h]                    ; 8a 46 f0
    67726797    and AL, strict byte 0dfh                  ; 24 df
     
    67756800    mov dx, strict word 00018h                ; ba 18 00
    67766801    mov ax, strict word 00040h                ; b8 40 00
    6777     call 0160eh                               ; e8 a7 c7
    6778     jmp near 04f98h                           ; e9 2e 01
     6802    call 0160eh                               ; e8 b3 c7
     6803    jmp near 04f8ch                           ; e9 2e 01
    67796804    mov al, byte [bp-010h]                    ; 8a 46 f0
    67806805    or AL, strict byte 010h                   ; 0c 10
     
    67836808    mov dx, strict word 00018h                ; ba 18 00
    67846809    mov ax, strict word 00040h                ; b8 40 00
    6785     call 0160eh                               ; e8 90 c7
     6810    call 0160eh                               ; e8 9c c7
    67866811    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    67876812    xor bl, 010h                              ; 80 f3 10
    6788     jmp short 04e3dh                          ; eb b7
     6813    jmp short 04e31h                          ; eb b7
    67896814    mov al, byte [bp-010h]                    ; 8a 46 f0
    67906815    and AL, strict byte 0efh                  ; 24 ef
    6791     jmp short 04e58h                          ; eb cb
     6816    jmp short 04e4ch                          ; eb cb
    67926817    mov al, bl                                ; 88 d8
    67936818    and AL, strict byte 00ch                  ; 24 0c
    67946819    cmp AL, strict byte 00ch                  ; 3c 0c
    6795     jne short 04e9ah                          ; 75 05
     6820    jne short 04e8eh                          ; 75 05
    67966821    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    67976822    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    6798     jne near 04f98h                           ; 0f 85 f6 00
     6823    jne near 04f8ch                           ; 0f 85 f6 00
    67996824    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    6800     jbe short 04ec6h                          ; 76 1e
    6801     mov bx, 00d38h                            ; bb 38 0d
     6825    jbe short 04ebah                          ; 76 1e
     6826    mov bx, 00da8h                            ; bb a8 0d
    68026827    mov cx, ds                                ; 8c d9
    68036828    mov ax, strict word 00004h                ; b8 04 00
    6804     call 018cch                               ; e8 19 ca
     6829    call 018cch                               ; e8 25 ca
    68056830    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    68066831    push ax                                   ; 50
    6807     push 00511h                               ; 68 11 05
     6832    push 00581h                               ; 68 81 05
    68086833    push strict byte 00004h                   ; 6a 04
    6809     call 0190dh                               ; e8 4d ca
     6834    call 0190dh                               ; e8 59 ca
    68106835    add sp, strict byte 00006h                ; 83 c4 06
    6811     jmp near 04fb6h                           ; e9 f0 00
     6836    jmp near 04faah                           ; e9 f0 00
    68126837    test bl, 008h                             ; f6 c3 08
    6813     je short 04eddh                           ; 74 12
     6838    je short 04ed1h                           ; 74 12
    68146839    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68156840    imul si, si, strict byte 0000ah           ; 6b f6 0a
    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
     6841    mov dl, byte [si+00dfch]                  ; 8a 94 fc 0d
     6842    mov ax, word [si+00dfch]                  ; 8b 84 fc 0d
     6843    jmp near 04f5dh                           ; e9 8c 00
    68196844    test bl, 004h                             ; f6 c3 04
    6820     je short 04ef4h                           ; 74 12
     6845    je short 04ee8h                           ; 74 12
    68216846    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68226847    imul si, si, strict byte 0000ah           ; 6b f6 0a
    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
     6848    mov dl, byte [si+00dfah]                  ; 8a 94 fa 0d
     6849    mov ax, word [si+00dfah]                  ; 8b 84 fa 0d
     6850    jmp near 04f5dh                           ; e9 75 00
    68266851    mov al, byte [bp-006h]                    ; 8a 46 fa
    68276852    and AL, strict byte 002h                  ; 24 02
    68286853    test al, al                               ; 84 c0
    6829     jbe short 04f12h                          ; 76 15
     6854    jbe short 04f06h                          ; 76 15
    68306855    mov al, byte [bp-00ah]                    ; 8a 46 f6
    68316856    cmp AL, strict byte 047h                  ; 3c 47
    6832     jc short 04f12h                           ; 72 0e
     6857    jc short 04f06h                           ; 72 0e
    68336858    cmp AL, strict byte 053h                  ; 3c 53
    6834     jnbe short 04f12h                         ; 77 0a
     6859    jnbe short 04f06h                         ; 77 0a
    68356860    mov DL, strict byte 0e0h                  ; b2 e0
    68366861    movzx si, al                              ; 0f b6 f0
    68376862    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6838     jmp short 04f65h                          ; eb 53
     6863    jmp short 04f59h                          ; eb 53
    68396864    test bl, 003h                             ; f6 c3 03
    6840     je short 04f44h                           ; 74 2d
     6865    je short 04f38h                           ; 74 2d
    68416866    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68426867    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6843     movzx ax, byte [si+00d8eh]                ; 0f b6 84 8e 0d
     6868    movzx ax, byte [si+00dfeh]                ; 0f b6 84 fe 0d
    68446869    movzx dx, bl                              ; 0f b6 d3
    68456870    test dx, ax                               ; 85 c2
    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
     6871    je short 04f28h                           ; 74 0a
     6872    mov dl, byte [si+00df6h]                  ; 8a 94 f6 0d
     6873    mov ax, word [si+00df6h]                  ; 8b 84 f6 0d
     6874    jmp short 04f30h                          ; eb 08
     6875    mov dl, byte [si+00df8h]                  ; 8a 94 f8 0d
     6876    mov ax, word [si+00df8h]                  ; 8b 84 f8 0d
    68526877    shr ax, 008h                              ; c1 e8 08
    68536878    mov byte [bp-00ah], al                    ; 88 46 f6
    6854     jmp short 04f6fh                          ; eb 2b
     6879    jmp short 04f63h                          ; eb 2b
    68556880    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    68566881    imul si, si, strict byte 0000ah           ; 6b f6 0a
    6857     movzx ax, byte [si+00d8eh]                ; 0f b6 84 8e 0d
     6882    movzx ax, byte [si+00dfeh]                ; 0f b6 84 fe 0d
    68586883    movzx dx, bl                              ; 0f b6 d3
    68596884    test dx, ax                               ; 85 c2
    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
     6885    je short 04f55h                           ; 74 0a
     6886    mov dl, byte [si+00df8h]                  ; 8a 94 f8 0d
     6887    mov ax, word [si+00df8h]                  ; 8b 84 f8 0d
     6888    jmp short 04f5dh                          ; eb 08
     6889    mov dl, byte [si+00df6h]                  ; 8a 94 f6 0d
     6890    mov ax, word [si+00df6h]                  ; 8b 84 f6 0d
    68666891    shr ax, 008h                              ; c1 e8 08
    68676892    mov byte [bp-00ah], al                    ; 88 46 f6
    68686893    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6869     jne short 04f8fh                          ; 75 1a
     6894    jne short 04f83h                          ; 75 1a
    68706895    test dl, dl                               ; 84 d2
    6871     jne short 04f8fh                          ; 75 16
    6872     mov bx, 00d38h                            ; bb 38 0d
     6896    jne short 04f83h                          ; 75 16
     6897    mov bx, 00da8h                            ; bb a8 0d
    68736898    mov cx, ds                                ; 8c d9
    68746899    mov ax, strict word 00004h                ; b8 04 00
    6875     call 018cch                               ; e8 48 c9
    6876     push 00548h                               ; 68 48 05
     6900    call 018cch                               ; e8 54 c9
     6901    push 005b8h                               ; 68 b8 05
    68776902    push strict byte 00004h                   ; 6a 04
    6878     call 0190dh                               ; e8 81 c9
     6903    call 0190dh                               ; e8 8d c9
    68796904    add sp, strict byte 00004h                ; 83 c4 04
    68806905    xor dh, dh                                ; 30 f6
    68816906    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6882     call 04bcdh                               ; e8 35 fc
     6907    call 04bc1h                               ; e8 35 fc
    68836908    mov al, byte [bp-00ah]                    ; 8a 46 f6
    68846909    and AL, strict byte 07fh                  ; 24 7f
    68856910    cmp AL, strict byte 01dh                  ; 3c 1d
    6886     je short 04fa5h                           ; 74 04
     6911    je short 04f99h                           ; 74 04
    68876912    and byte [bp-006h], 0feh                  ; 80 66 fa fe
    68886913    and byte [bp-006h], 0fdh                  ; 80 66 fa fd
     
    68906915    mov dx, 00096h                            ; ba 96 00
    68916916    mov ax, strict word 00040h                ; b8 40 00
    6892     call 0160eh                               ; e8 58 c6
     6917    call 0160eh                               ; e8 64 c6
    68936918    lea sp, [bp-004h]                         ; 8d 66 fc
    68946919    pop di                                    ; 5f
     
    68966921    pop bp                                    ; 5d
    68976922    retn                                      ; c3
    6898 dequeue_key_:                                ; 0xf4fbd LB 0x94
     6923dequeue_key_:                                ; 0xf4fb1 LB 0x94
    68996924    push bp                                   ; 55
    69006925    mov bp, sp                                ; 89 e5
     
    69096934    mov dx, strict word 0001ah                ; ba 1a 00
    69106935    mov ax, strict word 00040h                ; b8 40 00
    6911     call 0161ch                               ; e8 45 c6
     6936    call 0161ch                               ; e8 51 c6
    69126937    mov bx, ax                                ; 89 c3
    69136938    mov dx, strict word 0001ch                ; ba 1c 00
    69146939    mov ax, strict word 00040h                ; b8 40 00
    6915     call 0161ch                               ; e8 3a c6
     6940    call 0161ch                               ; e8 46 c6
    69166941    cmp bx, ax                                ; 39 c3
    6917     je short 05023h                           ; 74 3d
     6942    je short 05017h                           ; 74 3d
    69186943    mov dx, bx                                ; 89 da
    69196944    mov ax, strict word 00040h                ; b8 40 00
    6920     call 01600h                               ; e8 12 c6
     6945    call 01600h                               ; e8 1e c6
    69216946    mov cl, al                                ; 88 c1
    69226947    lea dx, [bx+001h]                         ; 8d 57 01
    69236948    mov ax, strict word 00040h                ; b8 40 00
    6924     call 01600h                               ; e8 07 c6
     6949    call 01600h                               ; e8 13 c6
    69256950    mov es, [bp-008h]                         ; 8e 46 f8
    69266951    mov byte [es:si], cl                      ; 26 88 0c
     
    69286953    mov byte [es:di], al                      ; 26 88 05
    69296954    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    6930     je short 0501eh                           ; 74 13
     6955    je short 05012h                           ; 74 13
    69316956    inc bx                                    ; 43
    69326957    inc bx                                    ; 43
    69336958    cmp bx, strict byte 0003eh                ; 83 fb 3e
    6934     jc short 05015h                           ; 72 03
     6959    jc short 05009h                           ; 72 03
    69356960    mov bx, strict word 0001eh                ; bb 1e 00
    69366961    mov dx, strict word 0001ah                ; ba 1a 00
    69376962    mov ax, strict word 00040h                ; b8 40 00
    6938     call 0162ah                               ; e8 0c c6
     6963    call 0162ah                               ; e8 18 c6
    69396964    mov ax, strict word 00001h                ; b8 01 00
    6940     jmp short 05025h                          ; eb 02
     6965    jmp short 05019h                          ; eb 02
    69416966    xor ax, ax                                ; 31 c0
    69426967    lea sp, [bp-004h]                         ; 8d 66 fc
     
    69496974    or cl, byte [bx+di]                       ; 0a 09
    69506975    add ax, 00102h                            ; 05 02 01
    6951     add bh, ch                                ; 00 ef
     6976    add bl, ah                                ; 00 e3
    69526977    push dx                                   ; 52
    6953     add ax, 04c51h                            ; 05 51 4c
     6978    stc                                       ; f9
     6979    push ax                                   ; 50
     6980    inc ax                                    ; 40
    69546981    push cx                                   ; 51
    6955     cbw                                       ; 98
     6982    mov [bx+di-064h], ss                      ; 8c 51 9c
    69566983    push cx                                   ; 51
    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
     6984    db  0c6h, 051h, 0cfh, 051h
     6985    ; mov byte [bx+di-031h], 051h               ; c6 51 cf 51
     6986    inc ax                                    ; 40
    69616987    push dx                                   ; 52
    6962     jnl short 0509dh                          ; 7d 52
    6963     stosb                                     ; aa
     6988    jno short 05091h                          ; 71 52
     6989    sahf                                      ; 9e
    69646990    push dx                                   ; 52
    6965     in AL, strict byte 052h                   ; e4 52
    6966     db  032h
     6991    fcom dword [bp+si+026h]                   ; d8 52 26
    69676992    push bx                                   ; 53
    6968 _int16_function:                             ; 0xf5051 LB 0x2e7
     6993_int16_function:                             ; 0xf5045 LB 0x2e7
    69696994    push bp                                   ; 55
    69706995    mov bp, sp                                ; 89 e5
     
    69736998    mov dx, strict word 00017h                ; ba 17 00
    69746999    mov ax, strict word 00040h                ; b8 40 00
    6975     call 01600h                               ; e8 9f c5
     7000    call 01600h                               ; e8 ab c5
    69767001    mov cl, al                                ; 88 c1
    69777002    mov bh, al                                ; 88 c7
    69787003    mov dx, 00097h                            ; ba 97 00
    69797004    mov ax, strict word 00040h                ; b8 40 00
    6980     call 01600h                               ; e8 92 c5
     7005    call 01600h                               ; e8 9e c5
    69817006    mov bl, al                                ; 88 c3
    69827007    movzx dx, cl                              ; 0f b6 d1
     
    69877012    xor al, dl                                ; 30 d0
    69887013    test ax, ax                               ; 85 c0
    6989     je short 050e3h                           ; 74 60
     7014    je short 050d7h                           ; 74 60
    69907015    cli                                       ; fa
    69917016    mov AL, strict byte 0edh                  ; b0 ed
     
    69977022    ; sub ah, ah                                ; 2a e4
    69987023    test AL, strict byte 001h                 ; a8 01
    6999     jne short 0509ch                          ; 75 08
     7024    jne short 05090h                          ; 75 08
    70007025    mov AL, strict byte 021h                  ; b0 21
    70017026    mov dx, 00080h                            ; ba 80 00
    70027027    out DX, AL                                ; ee
    7003     jmp short 0508ah                          ; eb ee
     7028    jmp short 0507eh                          ; eb ee
    70047029    mov dx, strict word 00060h                ; ba 60 00
    70057030    in AL, DX                                 ; ec
     
    70077032    ; sub ah, ah                                ; 2a e4
    70087033    cmp ax, 000fah                            ; 3d fa 00
    7009     jne short 050e2h                          ; 75 3b
     7034    jne short 050d6h                          ; 75 3b
    70107035    and bl, 0f8h                              ; 80 e3 f8
    70117036    movzx ax, bh                              ; 0f b6 c7
     
    70237048    ; sub ah, ah                                ; 2a e4
    70247049    test AL, strict byte 001h                 ; a8 01
    7025     jne short 050d1h                          ; 75 08
     7050    jne short 050c5h                          ; 75 08
    70267051    mov AL, strict byte 021h                  ; b0 21
    70277052    mov dx, 00080h                            ; ba 80 00
    70287053    out DX, AL                                ; ee
    7029     jmp short 050bfh                          ; eb ee
     7054    jmp short 050b3h                          ; eb ee
    70307055    mov dx, strict word 00060h                ; ba 60 00
    70317056    in AL, DX                                 ; ec
     
    70357060    mov dx, 00097h                            ; ba 97 00
    70367061    mov ax, strict word 00040h                ; b8 40 00
    7037     call 0160eh                               ; e8 2c c5
     7062    call 0160eh                               ; e8 38 c5
    70387063    sti                                       ; fb
    70397064    mov ax, word [bp+012h]                    ; 8b 46 12
    70407065    shr ax, 008h                              ; c1 e8 08
    70417066    cmp ax, 000a2h                            ; 3d a2 00
    7042     jnbe near 052efh                          ; 0f 87 ff 01
     7067    jnbe near 052e3h                          ; 0f 87 ff 01
    70437068    push CS                                   ; 0e
    70447069    pop ES                                    ; 07
    70457070    mov cx, strict word 0000ch                ; b9 0c 00
    7046     mov di, 0502eh                            ; bf 2e 50
     7071    mov di, 05022h                            ; bf 22 50
    70477072    repne scasb                               ; f2 ae
    70487073    sal cx, 1                                 ; d1 e1
    70497074    mov di, cx                                ; 89 cf
    7050     mov ax, word [cs:di+05039h]               ; 2e 8b 85 39 50
     7075    mov ax, word [cs:di+0502dh]               ; 2e 8b 85 2d 50
    70517076    jmp ax                                    ; ff e0
    70527077    push strict byte 00001h                   ; 6a 01
     
    70557080    mov dx, ss                                ; 8c d2
    70567081    lea ax, [bp-006h]                         ; 8d 46 fa
    7057     call 04fbdh                               ; e8 a9 fe
     7082    call 04fb1h                               ; e8 a9 fe
    70587083    test ax, ax                               ; 85 c0
    7059     jne short 05123h                          ; 75 0b
    7060     push 0057fh                               ; 68 7f 05
     7084    jne short 05117h                          ; 75 0b
     7085    push 005efh                               ; 68 ef 05
    70617086    push strict byte 00007h                   ; 6a 07
    7062     call 0190dh                               ; e8 ed c7
     7087    call 0190dh                               ; e8 f9 c7
    70637088    add sp, strict byte 00004h                ; 83 c4 04
    70647089    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7065     je short 0512fh                           ; 74 06
     7090    je short 05123h                           ; 74 06
    70667091    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7067     je short 05135h                           ; 74 06
     7092    je short 05129h                           ; 74 06
    70687093    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7069     jne short 05139h                          ; 75 04
     7094    jne short 0512dh                          ; 75 04
    70707095    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    70717096    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    70747099    or dx, ax                                 ; 09 c2
    70757100    mov word [bp+012h], dx                    ; 89 56 12
    7076     jmp near 05332h                           ; e9 e6 01
     7101    jmp near 05326h                           ; e9 e6 01
    70777102    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    70787103    push strict byte 00000h                   ; 6a 00
     
    70817106    mov dx, ss                                ; 8c d2
    70827107    lea ax, [bp-006h]                         ; 8d 46 fa
    7083     call 04fbdh                               ; e8 5d fe
     7108    call 04fb1h                               ; e8 5d fe
    70847109    test ax, ax                               ; 85 c0
    7085     jne short 0516bh                          ; 75 07
     7110    jne short 0515fh                          ; 75 07
    70867111    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7087     jmp near 05332h                           ; e9 c7 01
     7112    jmp near 05326h                           ; e9 c7 01
    70887113    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7089     je short 05177h                           ; 74 06
     7114    je short 0516bh                           ; 74 06
    70907115    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7091     je short 0517dh                           ; 74 06
     7116    je short 05171h                           ; 74 06
    70927117    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7093     jne short 05181h                          ; 75 04
     7118    jne short 05175h                          ; 75 04
    70947119    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    70957120    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    70997124    mov word [bp+012h], dx                    ; 89 56 12
    71007125    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7101     jmp near 05332h                           ; e9 9a 01
     7126    jmp near 05326h                           ; e9 9a 01
    71027127    mov dx, strict word 00017h                ; ba 17 00
    71037128    mov ax, strict word 00040h                ; b8 40 00
    7104     call 01600h                               ; e8 5f c4
     7129    call 01600h                               ; e8 6b c4
    71057130    mov dx, word [bp+012h]                    ; 8b 56 12
    71067131    mov dl, al                                ; 88 c2
    7107     jmp short 05146h                          ; eb 9e
     7132    jmp short 0513ah                          ; eb 9e
    71087133    mov al, byte [bp+010h]                    ; 8a 46 10
    71097134    movzx dx, al                              ; 0f b6 d0
     
    71117136    shr ax, 008h                              ; c1 e8 08
    71127137    xor ah, ah                                ; 30 e4
    7113     call 04bcdh                               ; e8 14 fa
     7138    call 04bc1h                               ; e8 14 fa
    71147139    test ax, ax                               ; 85 c0
    7115     jne short 051cah                          ; 75 0d
     7140    jne short 051beh                          ; 75 0d
    71167141    mov ax, word [bp+012h]                    ; 8b 46 12
    71177142    xor al, al                                ; 30 c0
    71187143    or AL, strict byte 001h                   ; 0c 01
    71197144    mov word [bp+012h], ax                    ; 89 46 12
    7120     jmp near 05332h                           ; e9 68 01
     7145    jmp near 05326h                           ; e9 68 01
    71217146    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    7122     jmp near 05332h                           ; e9 60 01
     7147    jmp near 05326h                           ; e9 60 01
    71237148    mov ax, word [bp+012h]                    ; 8b 46 12
    71247149    xor al, al                                ; 30 c0
    71257150    or AL, strict byte 030h                   ; 0c 30
    7126     jmp short 051c4h                          ; eb e9
     7151    jmp short 051b8h                          ; eb e9
    71277152    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    71287153    xor cx, cx                                ; 31 c9
     
    71377162    ; sub ah, ah                                ; 2a e4
    71387163    test AL, strict byte 001h                 ; a8 01
    7139     jne short 05202h                          ; 75 0d
     7164    jne short 051f6h                          ; 75 0d
    71407165    dec bx                                    ; 4b
    71417166    test bx, bx                               ; 85 db
    7142     jbe short 05202h                          ; 76 08
     7167    jbe short 051f6h                          ; 76 08
    71437168    mov dx, 00080h                            ; ba 80 00
    71447169    in AL, DX                                 ; ec
    71457170    db  02ah, 0e4h
    71467171    ; sub ah, ah                                ; 2a e4
    7147     jmp short 051ebh                          ; eb e9
     7172    jmp short 051dfh                          ; eb e9
    71487173    test bx, bx                               ; 85 db
    7149     jbe short 05246h                          ; 76 40
     7174    jbe short 0523ah                          ; 76 40
    71507175    mov dx, strict word 00060h                ; ba 60 00
    71517176    in AL, DX                                 ; ec
     
    71537178    ; sub ah, ah                                ; 2a e4
    71547179    cmp ax, 000fah                            ; 3d fa 00
    7155     jne short 05246h                          ; 75 35
     7180    jne short 0523ah                          ; 75 35
    71567181    mov bx, strict word 0ffffh                ; bb ff ff
    71577182    mov dx, strict word 00064h                ; ba 64 00
     
    71607185    ; sub ah, ah                                ; 2a e4
    71617186    test AL, strict byte 001h                 ; a8 01
    7162     jne short 0522bh                          ; 75 0d
     7187    jne short 0521fh                          ; 75 0d
    71637188    dec bx                                    ; 4b
    71647189    test bx, bx                               ; 85 db
    7165     jbe short 0522bh                          ; 76 08
     7190    jbe short 0521fh                          ; 76 08
    71667191    mov dx, 00080h                            ; ba 80 00
    71677192    in AL, DX                                 ; ec
    71687193    db  02ah, 0e4h
    71697194    ; sub ah, ah                                ; 2a e4
    7170     jmp short 05214h                          ; eb e9
     7195    jmp short 05208h                          ; eb e9
    71717196    test bx, bx                               ; 85 db
    7172     jbe short 0523dh                          ; 76 0e
     7197    jbe short 05231h                          ; 76 0e
    71737198    shr cx, 008h                              ; c1 e9 08
    71747199    mov dx, strict word 00060h                ; ba 60 00
     
    71807205    dec byte [bp-004h]                        ; fe 4e fc
    71817206    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7182     jnbe short 05211h                         ; 77 cb
     7207    jnbe short 05205h                         ; 77 cb
    71837208    mov word [bp+00ch], cx                    ; 89 4e 0c
    7184     jmp near 05332h                           ; e9 e6 00
     7209    jmp near 05326h                           ; e9 e6 00
    71857210    push strict byte 00001h                   ; 6a 01
    71867211    mov cx, ss                                ; 8c d1
     
    71887213    mov dx, ss                                ; 8c d2
    71897214    lea ax, [bp-006h]                         ; 8d 46 fa
    7190     call 04fbdh                               ; e8 62 fd
     7215    call 04fb1h                               ; e8 62 fd
    71917216    test ax, ax                               ; 85 c0
    7192     jne short 0526ah                          ; 75 0b
    7193     push 0057fh                               ; 68 7f 05
     7217    jne short 0525eh                          ; 75 0b
     7218    push 005efh                               ; 68 ef 05
    71947219    push strict byte 00007h                   ; 6a 07
    7195     call 0190dh                               ; e8 a6 c6
     7220    call 0190dh                               ; e8 b2 c6
    71967221    add sp, strict byte 00004h                ; 83 c4 04
    71977222    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7198     je near 05139h                            ; 0f 84 c7 fe
     7223    je near 0512dh                            ; 0f 84 c7 fe
    71997224    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7200     je near 05135h                            ; 0f 84 bb fe
    7201     jmp near 05139h                           ; e9 bc fe
     7225    je near 05129h                            ; 0f 84 bb fe
     7226    jmp near 0512dh                           ; e9 bc fe
    72027227    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    72037228    push strict byte 00000h                   ; 6a 00
     
    72067231    mov dx, ss                                ; 8c d2
    72077232    lea ax, [bp-006h]                         ; 8d 46 fa
    7208     call 04fbdh                               ; e8 2c fd
     7233    call 04fb1h                               ; e8 2c fd
    72097234    test ax, ax                               ; 85 c0
    7210     je near 05164h                            ; 0f 84 cd fe
     7235    je near 05158h                            ; 0f 84 cd fe
    72117236    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7212     je near 05181h                            ; 0f 84 e2 fe
     7237    je near 05175h                            ; 0f 84 e2 fe
    72137238    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7214     je near 0517dh                            ; 0f 84 d6 fe
    7215     jmp near 05181h                           ; e9 d7 fe
     7239    je near 05171h                            ; 0f 84 d6 fe
     7240    jmp near 05175h                           ; e9 d7 fe
    72167241    mov dx, strict word 00017h                ; ba 17 00
    72177242    mov ax, strict word 00040h                ; b8 40 00
    7218     call 01600h                               ; e8 4d c3
     7243    call 01600h                               ; e8 59 c3
    72197244    mov dx, word [bp+012h]                    ; 8b 56 12
    72207245    mov dl, al                                ; 88 c2
     
    72227247    mov dx, strict word 00018h                ; ba 18 00
    72237248    mov ax, strict word 00040h                ; b8 40 00
    7224     call 01600h                               ; e8 3c c3
     7249    call 01600h                               ; e8 48 c3
    72257250    mov bh, al                                ; 88 c7
    72267251    and bh, 073h                              ; 80 e7 73
    72277252    mov dx, 00096h                            ; ba 96 00
    72287253    mov ax, strict word 00040h                ; b8 40 00
    7229     call 01600h                               ; e8 2e c3
     7254    call 01600h                               ; e8 3a c3
    72307255    and AL, strict byte 00ch                  ; 24 0c
    72317256    or bh, al                                 ; 08 c7
     
    72347259    movzx ax, bh                              ; 0f b6 c7
    72357260    sal ax, 008h                              ; c1 e0 08
    7236     jmp near 05144h                           ; e9 60 fe
     7261    jmp near 05138h                           ; e9 60 fe
    72377262    mov ax, word [bp+012h]                    ; 8b 46 12
    72387263    xor ah, ah                                ; 30 e4
    72397264    or ah, 080h                               ; 80 cc 80
    7240     jmp near 051c4h                           ; e9 d5 fe
    7241     mov bx, 00d38h                            ; bb 38 0d
     7265    jmp near 051b8h                           ; e9 d5 fe
     7266    mov bx, 00da8h                            ; bb a8 0d
    72427267    mov cx, ds                                ; 8c d9
    72437268    mov ax, strict word 00004h                ; b8 04 00
    7244     call 018cch                               ; e8 d2 c5
     7269    call 018cch                               ; e8 de c5
    72457270    mov ax, word [bp+012h]                    ; 8b 46 12
    72467271    shr ax, 008h                              ; c1 e8 08
    72477272    push ax                                   ; 50
    7248     push 005a3h                               ; 68 a3 05
     7273    push 00613h                               ; 68 13 06
    72497274    push strict byte 00004h                   ; 6a 04
    7250     call 0190dh                               ; e8 04 c6
     7275    call 0190dh                               ; e8 10 c6
    72517276    add sp, strict byte 00006h                ; 83 c4 06
    7252     mov bx, 00d38h                            ; bb 38 0d
     7277    mov bx, 00da8h                            ; bb a8 0d
    72537278    mov cx, ds                                ; 8c d9
    72547279    mov ax, strict word 00004h                ; b8 04 00
    7255     call 018cch                               ; e8 b5 c5
     7280    call 018cch                               ; e8 c1 c5
    72567281    mov ax, word [bp+00eh]                    ; 8b 46 0e
    72577282    push ax                                   ; 50
     
    72627287    mov ax, word [bp+012h]                    ; 8b 46 12
    72637288    push ax                                   ; 50
    7264     push 005cbh                               ; 68 cb 05
     7289    push 0063bh                               ; 68 3b 06
    72657290    push strict byte 00004h                   ; 6a 04
    7266     call 0190dh                               ; e8 de c5
     7291    call 0190dh                               ; e8 ea c5
    72677292    add sp, strict byte 0000ch                ; 83 c4 0c
    72687293    lea sp, [bp-002h]                         ; 8d 66 fe
     
    72707295    pop bp                                    ; 5d
    72717296    retn                                      ; c3
    7272 set_geom_lba_:                               ; 0xf5338 LB 0x9e
     7297set_geom_lba_:                               ; 0xf532c LB 0x9e
    72737298    push si                                   ; 56
    72747299    push di                                   ; 57
     
    72827307    mov di, 000ffh                            ; bf ff 00
    72837308    xor bx, bx                                ; 31 db
    7284     jmp short 05359h                          ; eb 05
     7309    jmp short 0534dh                          ; eb 05
    72857310    cmp bx, strict byte 00004h                ; 83 fb 04
    7286     jnl short 0536fh                          ; 7d 16
     7311    jnl short 05363h                          ; 7d 16
    72877312    cmp dx, word [bp-002h]                    ; 3b 56 fe
    7288     jnbe short 05365h                         ; 77 07
    7289     jne short 05368h                          ; 75 08
     7313    jnbe short 05359h                         ; 77 07
     7314    jne short 0535ch                          ; 75 08
    72907315    cmp ax, word [bp-004h]                    ; 3b 46 fc
    7291     jc short 05368h                           ; 72 03
     7316    jc short 0535ch                           ; 72 03
    72927317    inc di                                    ; 47
    72937318    shr di, 1                                 ; d1 ef
     
    72957320    rcr ax, 1                                 ; d1 d8
    72967321    inc bx                                    ; 43
    7297     jmp short 05354h                          ; eb e5
     7322    jmp short 05348h                          ; eb e5
    72987323    mov ax, di                                ; 89 f8
    72997324    xor dx, dx                                ; 31 d2
    73007325    mov bx, strict word 0003fh                ; bb 3f 00
    73017326    xor cx, cx                                ; 31 c9
    7302     call 09219h                               ; e8 9e 3e
     7327    call 09219h                               ; e8 aa 3e
    73037328    mov bx, ax                                ; 89 c3
    73047329    mov cx, dx                                ; 89 d1
    73057330    mov ax, word [bp-004h]                    ; 8b 46 fc
    73067331    mov dx, word [bp-002h]                    ; 8b 56 fe
    7307     call 091e0h                               ; e8 58 3e
     7332    call 091e0h                               ; e8 64 3e
    73087333    mov word [es:si+002h], ax                 ; 26 89 44 02
    73097334    cmp ax, 00400h                            ; 3d 00 04
    7310     jbe short 05397h                          ; 76 06
     7335    jbe short 0538bh                          ; 76 06
    73117336    mov word [es:si+002h], 00400h             ; 26 c7 44 02 00 04
    73127337    mov word [es:si], di                      ; 26 89 3c
     
    73167341    pop si                                    ; 5e
    73177342    retn                                      ; c3
    7318     pushaw                                    ; 60
    73197343    push sp                                   ; 54
    7320     xchg byte [si-04dh], dl                   ; 86 54 b3
    73217344    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
     7345    jp short 053f0h                           ; 7a 54
     7346    cmpsw                                     ; a7
     7347    push sp                                   ; 54
     7348    cmpsw                                     ; a7
     7349    push sp                                   ; 54
     7350    cmpsw                                     ; a7
     7351    push sp                                   ; 54
     7352    jnle short 053fah                         ; 7f 56
     7353    lodsw                                     ; ad
    73257354    push di                                   ; 57
    7326     mov cx, 0a457h                            ; b9 57 a4
     7355    lodsw                                     ; ad
     7356    push di                                   ; 57
     7357    cbw                                       ; 98
    73277358    push si                                   ; 56
    7328     xchg si, ax                               ; 96
     7359    mov dl, byte [bx-053h]                    ; 8a 57 ad
    73297360    push di                                   ; 57
    7330     mov cx, 0b957h                            ; b9 57 b9
     7361    lodsw                                     ; ad
    73317362    push di                                   ; 57
    7332     xchg si, ax                               ; 96
     7363    mov dl, byte [bx-076h]                    ; 8a 57 8a
    73337364    push di                                   ; 57
    7334     xchg si, ax                               ; 96
     7365    lodsw                                     ; ad
    73357366    push di                                   ; 57
    7336     mov cx, 0b957h                            ; b9 57 b9
     7367    lodsw                                     ; ad
    73377368    push di                                   ; 57
    7338     sbb dl, byte [bx-06ah]                    ; 1a 57 96
     7369    push CS                                   ; 0e
    73397370    push di                                   ; 57
    7340     mov cx, 0b957h                            ; b9 57 b9
     7371    mov dl, byte [bx-053h]                    ; 8a 57 ad
    73417372    push di                                   ; 57
    7342     xchg si, ax                               ; 96
     7373    lodsw                                     ; ad
    73437374    push di                                   ; 57
    7344     dec dx                                    ; 4a
     7375    mov dl, byte [bx+03eh]                    ; 8a 57 3e
    73457376    push di                                   ; 57
    7346     mov cx, 0b957h                            ; b9 57 b9
     7377    lodsw                                     ; ad
    73477378    push di                                   ; 57
    7348     db  0b9h
     7379    lodsw                                     ; ad
    73497380    push di                                   ; 57
    7350 _int13_harddisk:                             ; 0xf53d6 LB 0x441
     7381    lodsw                                     ; ad
     7382    push di                                   ; 57
     7383_int13_harddisk:                             ; 0xf53ca LB 0x441
    73517384    push bp                                   ; 55
    73527385    mov bp, sp                                ; 89 e5
     
    73547387    mov dx, strict word 0000eh                ; ba 0e 00
    73557388    mov ax, strict word 00040h                ; b8 40 00
    7356     call 0161ch                               ; e8 37 c2
     7389    call 0161ch                               ; e8 43 c2
    73577390    mov si, 00122h                            ; be 22 01
    73587391    mov word [bp-004h], ax                    ; 89 46 fc
     
    73607393    mov dx, 0008eh                            ; ba 8e 00
    73617394    mov ax, strict word 00040h                ; b8 40 00
    7362     call 0160eh                               ; e8 18 c2
     7395    call 0160eh                               ; e8 24 c2
    73637396    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73647397    xor ah, ah                                ; 30 e4
    73657398    cmp ax, 00080h                            ; 3d 80 00
    7366     jc short 05405h                           ; 72 05
     7399    jc short 053f9h                           ; 72 05
    73677400    cmp ax, 00090h                            ; 3d 90 00
    7368     jc short 05423h                           ; 72 1e
     7401    jc short 05417h                           ; 72 1e
    73697402    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73707403    xor ah, ah                                ; 30 e4
     
    73737406    shr ax, 008h                              ; c1 e8 08
    73747407    push ax                                   ; 50
    7375     push 005eeh                               ; 68 ee 05
    7376     push 005fdh                               ; 68 fd 05
     7408    push 0065eh                               ; 68 5e 06
     7409    push 0066dh                               ; 68 6d 06
    73777410    push strict byte 00004h                   ; 6a 04
    7378     call 0190dh                               ; e8 f0 c4
     7411    call 0190dh                               ; e8 fc c4
    73797412    add sp, strict byte 0000ah                ; 83 c4 0a
    7380     jmp near 057d4h                           ; e9 b1 03
     7413    jmp near 057c8h                           ; e9 b1 03
    73817414    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73827415    xor ah, ah                                ; 30 e4
     
    73877420    mov byte [bp-002h], dl                    ; 88 56 fe
    73887421    cmp dl, 010h                              ; 80 fa 10
    7389     jc short 0544ch                           ; 72 10
     7422    jc short 05440h                           ; 72 10
    73907423    push ax                                   ; 50
    73917424    mov ax, word [bp+016h]                    ; 8b 46 16
    73927425    shr ax, 008h                              ; c1 e8 08
    73937426    push ax                                   ; 50
    7394     push 005eeh                               ; 68 ee 05
    7395     push 00628h                               ; 68 28 06
    7396     jmp short 05418h                          ; eb cc
     7427    push 0065eh                               ; 68 5e 06
     7428    push 00698h                               ; 68 98 06
     7429    jmp short 0540ch                          ; eb cc
    73977430    mov bx, word [bp+016h]                    ; 8b 5e 16
    73987431    shr bx, 008h                              ; c1 eb 08
    73997432    cmp bx, strict byte 00018h                ; 83 fb 18
    7400     jnbe near 057b9h                          ; 0f 87 60 03
     7433    jnbe near 057adh                          ; 0f 87 60 03
    74017434    add bx, bx                                ; 01 db
    7402     jmp word [cs:bx+053a4h]                   ; 2e ff a7 a4 53
     7435    jmp word [cs:bx+05398h]                   ; 2e ff a7 98 53
    74037436    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7404     jnc near 0546fh                           ; 0f 83 07 00
     7437    jnc near 05463h                           ; 0f 83 07 00
    74057438    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7406     call 01c0ch                               ; e8 9d c7
     7439    call 01c0ch                               ; e8 a9 c7
    74077440    mov byte [bp+017h], 000h                  ; c6 46 17 00
    74087441    xor bx, bx                                ; 31 db
    74097442    mov dx, strict word 00074h                ; ba 74 00
    74107443    mov ax, strict word 00040h                ; b8 40 00
    7411     call 0160eh                               ; e8 90 c1
     7444    call 0160eh                               ; e8 9c c1
    74127445    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    74137446    mov sp, bp                                ; 89 ec
     
    74167449    mov dx, strict word 00074h                ; ba 74 00
    74177450    mov ax, strict word 00040h                ; b8 40 00
    7418     call 01600h                               ; e8 71 c1
     7451    call 01600h                               ; e8 7d c1
    74197452    mov cl, al                                ; 88 c1
    74207453    mov dx, word [bp+016h]                    ; 8b 56 16
     
    74277460    mov dx, strict word 00074h                ; ba 74 00
    74287461    mov ax, strict word 00040h                ; b8 40 00
    7429     call 0160eh                               ; e8 62 c1
     7462    call 0160eh                               ; e8 6e c1
    74307463    test cl, cl                               ; 84 c9
    7431     je short 05473h                           ; 74 c3
    7432     jmp near 057f0h                           ; e9 3d 03
     7464    je short 05467h                           ; 74 c3
     7465    jmp near 057e4h                           ; e9 3d 03
    74337466    mov ax, word [bp+016h]                    ; 8b 46 16
    74347467    xor ah, ah                                ; 30 e4
     
    74507483    mov ax, word [bp-00ch]                    ; 8b 46 f4
    74517484    cmp ax, 00080h                            ; 3d 80 00
    7452     jnbe short 054eeh                         ; 77 04
     7485    jnbe short 054e2h                         ; 77 04
    74537486    test ax, ax                               ; 85 c0
    7454     jne short 05511h                          ; 75 23
    7455     mov bx, 00d38h                            ; bb 38 0d
     7487    jne short 05505h                          ; 75 23
     7488    mov bx, 00da8h                            ; bb a8 0d
    74567489    mov cx, ds                                ; 8c d9
    74577490    mov ax, strict word 00004h                ; b8 04 00
    7458     call 018cch                               ; e8 d3 c3
     7491    call 018cch                               ; e8 df c3
    74597492    mov ax, word [bp+016h]                    ; 8b 46 16
    74607493    shr ax, 008h                              ; c1 e8 08
    74617494    push ax                                   ; 50
    7462     push 005eeh                               ; 68 ee 05
    7463     push 0065ah                               ; 68 5a 06
     7495    push 0065eh                               ; 68 5e 06
     7496    push 006cah                               ; 68 ca 06
    74647497    push strict byte 00004h                   ; 6a 04
    7465     call 0190dh                               ; e8 02 c4
     7498    call 0190dh                               ; e8 0e c4
    74667499    add sp, strict byte 00008h                ; 83 c4 08
    7467     jmp near 057d4h                           ; e9 c3 02
     7500    jmp near 057c8h                           ; e9 c3 02
    74687501    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    74697502    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    74767509    mov word [bp-00ah], dx                    ; 89 56 f6
    74777510    cmp di, ax                                ; 39 c7
    7478     jnc short 0553eh                          ; 73 0c
     7511    jnc short 05532h                          ; 73 0c
    74797512    cmp cx, word [bp-008h]                    ; 3b 4e f8
    7480     jbe short 0553eh                          ; 76 07
     7513    jbe short 05532h                          ; 76 07
    74817514    mov ax, word [bp-006h]                    ; 8b 46 fa
    74827515    cmp ax, dx                                ; 39 d0
    7483     jbe short 0556ch                          ; 76 2e
    7484     mov bx, 00d38h                            ; bb 38 0d
     7516    jbe short 05560h                          ; 76 2e
     7517    mov bx, 00da8h                            ; bb a8 0d
    74857518    mov cx, ds                                ; 8c d9
    74867519    mov ax, strict word 00004h                ; b8 04 00
    7487     call 018cch                               ; e8 83 c3
     7520    call 018cch                               ; e8 8f c3
    74887521    push dword [bp-008h]                      ; 66 ff 76 f8
    74897522    push di                                   ; 57
     
    74947527    shr ax, 008h                              ; c1 e8 08
    74957528    push ax                                   ; 50
    7496     push 005eeh                               ; 68 ee 05
    7497     push 00682h                               ; 68 82 06
     7529    push 0065eh                               ; 68 5e 06
     7530    push 006f2h                               ; 68 f2 06
    74987531    push strict byte 00004h                   ; 6a 04
    7499     call 0190dh                               ; e8 a7 c3
     7532    call 0190dh                               ; e8 b3 c3
    75007533    add sp, strict byte 00010h                ; 83 c4 10
    7501     jmp near 057d4h                           ; e9 68 02
     7534    jmp near 057c8h                           ; e9 68 02
    75027535    mov ax, word [bp+016h]                    ; 8b 46 16
    75037536    shr ax, 008h                              ; c1 e8 08
    75047537    cmp ax, strict word 00004h                ; 3d 04 00
    7505     jne short 0557ah                          ; 75 03
    7506     jmp near 0546fh                           ; e9 f5 fe
     7538    jne short 0556eh                          ; 75 03
     7539    jmp near 05463h                           ; e9 f5 fe
    75077540    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    75087541    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    75107543    add bx, si                                ; 01 f3
    75117544    cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    7512     jne short 0559bh                          ; 75 0f
     7545    jne short 0558fh                          ; 75 0f
    75137546    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    75147547    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    7515     jne short 0559bh                          ; 75 06
     7548    jne short 0558fh                          ; 75 06
    75167549    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7517     jc short 055cbh                           ; 72 30
     7550    jc short 055bfh                           ; 72 30
    75187551    mov ax, di                                ; 89 f8
    75197552    xor dx, dx                                ; 31 d2
    75207553    mov bx, cx                                ; 89 cb
    75217554    xor cx, cx                                ; 31 c9
    7522     call 09219h                               ; e8 73 3c
     7555    call 09219h                               ; e8 7f 3c
    75237556    xor bx, bx                                ; 31 db
    75247557    add ax, word [bp-008h]                    ; 03 46 f8
     
    75267559    mov bx, word [bp-00ah]                    ; 8b 5e f6
    75277560    xor cx, cx                                ; 31 c9
    7528     call 09219h                               ; e8 64 3c
     7561    call 09219h                               ; e8 70 3c
    75297562    xor bx, bx                                ; 31 db
    75307563    add ax, word [bp-006h]                    ; 03 46 fa
     
    75707603    push ES                                   ; 06
    75717604    push si                                   ; 56
    7572     call word [word bx+00014h]                ; ff 97 14 00
     7605    call word [word bx+0007eh]                ; ff 97 7e 00
    75737606    mov dx, ax                                ; 89 c2
    75747607    mov ax, word [bp+016h]                    ; 8b 46 16
     
    75797612    mov word [bp+016h], bx                    ; 89 5e 16
    75807613    test dl, dl                               ; 84 d2
    7581     je near 0546fh                            ; 0f 84 13 fe
    7582     mov bx, 00d38h                            ; bb 38 0d
     7614    je near 05463h                            ; 0f 84 13 fe
     7615    mov bx, 00da8h                            ; bb a8 0d
    75837616    mov cx, ds                                ; 8c d9
    75847617    mov ax, strict word 00004h                ; b8 04 00
    7585     call 018cch                               ; e8 65 c2
     7618    call 018cch                               ; e8 71 c2
    75867619    movzx ax, dl                              ; 0f b6 c2
    75877620    push ax                                   ; 50
     
    75897622    shr ax, 008h                              ; c1 e8 08
    75907623    push ax                                   ; 50
    7591     push 005eeh                               ; 68 ee 05
    7592     push 006c9h                               ; 68 c9 06
     7624    push 0065eh                               ; 68 5e 06
     7625    push 00739h                               ; 68 39 07
    75937626    push strict byte 00004h                   ; 6a 04
    7594     call 0190dh                               ; e8 90 c2
     7627    call 0190dh                               ; e8 9c c2
    75957628    add sp, strict byte 0000ah                ; 83 c4 0a
    75967629    mov ax, word [bp+016h]                    ; 8b 46 16
    75977630    xor ah, ah                                ; 30 e4
    75987631    or ah, 00ch                               ; 80 cc 0c
    7599     jmp near 057dch                           ; e9 51 01
    7600     mov bx, 00d38h                            ; bb 38 0d
     7632    jmp near 057d0h                           ; e9 51 01
     7633    mov bx, 00da8h                            ; bb a8 0d
    76017634    mov cx, ds                                ; 8c d9
    76027635    mov ax, strict word 00004h                ; b8 04 00
    7603     call 018cch                               ; e8 36 c2
    7604     push 006eah                               ; 68 ea 06
     7636    call 018cch                               ; e8 42 c2
     7637    push 0075ah                               ; 68 5a 07
    76057638    push strict byte 00004h                   ; 6a 04
    7606     call 0190dh                               ; e8 6f c2
     7639    call 0190dh                               ; e8 7b c2
    76077640    add sp, strict byte 00004h                ; 83 c4 04
    7608     jmp near 0546fh                           ; e9 cb fd
     7641    jmp near 05463h                           ; e9 cb fd
    76097642    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76107643    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    76497682    or dx, ax                                 ; 09 c2
    76507683    mov word [bp+012h], dx                    ; 89 56 12
    7651     jmp near 0546fh                           ; e9 55 fd
     7684    jmp near 05463h                           ; e9 55 fd
    76527685    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76537686    cwd                                       ; 99
     
    76657698    and AL, strict byte 0c0h                  ; 24 c0
    76667699    cmp AL, strict byte 040h                  ; 3c 40
    7667     jne short 0573fh                          ; 75 03
    7668     jmp near 0546fh                           ; e9 30 fd
     7700    jne short 05733h                          ; 75 03
     7701    jmp near 05463h                           ; e9 30 fd
    76697702    mov ax, word [bp+016h]                    ; 8b 46 16
    76707703    xor ah, ah                                ; 30 e4
    76717704    or ah, 0aah                               ; 80 cc aa
    7672     jmp near 057dch                           ; e9 92 00
     7705    jmp near 057d0h                           ; e9 92 00
    76737706    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    76747707    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    76847717    mov bx, word [bp-008h]                    ; 8b 5e f8
    76857718    xor cx, cx                                ; 31 c9
    7686     call 09219h                               ; e8 a5 3a
     7719    call 09219h                               ; e8 b1 3a
    76877720    mov bx, word [bp-006h]                    ; 8b 5e fa
    76887721    xor cx, cx                                ; 31 c9
    7689     call 09219h                               ; e8 9d 3a
     7722    call 09219h                               ; e8 a9 3a
    76907723    mov word [bp-010h], ax                    ; 89 46 f0
    76917724    mov word [bp-00eh], dx                    ; 89 56 f2
     
    76967729    or ah, 003h                               ; 80 cc 03
    76977730    mov word [bp+016h], ax                    ; 89 46 16
    7698     jmp near 05473h                           ; e9 dd fc
    7699     mov bx, 00d38h                            ; bb 38 0d
     7731    jmp near 05467h                           ; e9 dd fc
     7732    mov bx, 00da8h                            ; bb a8 0d
    77007733    mov cx, ds                                ; 8c d9
    77017734    mov ax, strict word 00004h                ; b8 04 00
    7702     call 018cch                               ; e8 2b c1
     7735    call 018cch                               ; e8 37 c1
    77037736    mov ax, word [bp+016h]                    ; 8b 46 16
    77047737    shr ax, 008h                              ; c1 e8 08
    77057738    push ax                                   ; 50
    7706     push 005eeh                               ; 68 ee 05
    7707     push 00704h                               ; 68 04 07
     7739    push 0065eh                               ; 68 5e 06
     7740    push 00774h                               ; 68 74 07
    77087741    push strict byte 00004h                   ; 6a 04
    7709     call 0190dh                               ; e8 5a c1
     7742    call 0190dh                               ; e8 66 c1
    77107743    add sp, strict byte 00008h                ; 83 c4 08
    7711     jmp near 0546fh                           ; e9 b6 fc
    7712     mov bx, 00d38h                            ; bb 38 0d
     7744    jmp near 05463h                           ; e9 b6 fc
     7745    mov bx, 00da8h                            ; bb a8 0d
    77137746    mov cx, ds                                ; 8c d9
    77147747    mov ax, strict word 00004h                ; b8 04 00
    7715     call 018cch                               ; e8 08 c1
     7748    call 018cch                               ; e8 14 c1
    77167749    mov ax, word [bp+016h]                    ; 8b 46 16
    77177750    shr ax, 008h                              ; c1 e8 08
    77187751    push ax                                   ; 50
    7719     push 005eeh                               ; 68 ee 05
    7720     push 00737h                               ; 68 37 07
    7721     jmp near 05506h                           ; e9 32 fd
     7752    push 0065eh                               ; 68 5e 06
     7753    push 007a7h                               ; 68 a7 07
     7754    jmp near 054fah                           ; e9 32 fd
    77227755    mov ax, word [bp+016h]                    ; 8b 46 16
    77237756    xor ah, ah                                ; 30 e4
     
    77297762    mov dx, strict word 00074h                ; ba 74 00
    77307763    mov ax, strict word 00040h                ; b8 40 00
    7731     call 0160eh                               ; e8 1e be
     7764    call 0160eh                               ; e8 2a be
    77327765    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    7733     jmp near 05482h                           ; e9 8b fc
    7734     mov DL, strict byte 058h                  ; b2 58
    7735     retf 0ca58h                               ; ca 58 ca
     7766    jmp near 05476h                           ; e9 8b fc
     7767    cmpsb                                     ; a6
    77367768    pop ax                                    ; 58
    7737     retf 07958h                               ; ca 58 79
     7769    mov si, 0be58h                            ; be 58 be
     7770    pop ax                                    ; 58
     7771    mov si, 06d58h                            ; be 58 6d
    77387772    pop sp                                    ; 5c
    7739     or ax, 0ca5ah                             ; 0d 5a ca
     7773    add word [bp+si-042h], bx                 ; 01 5a be
    77407774    pop ax                                    ; 58
    7741     adc bx, word [bp+si+079h]                 ; 13 5a 79
     7775    pop ES                                    ; 07
     7776    pop dx                                    ; 5a
     7777    insw                                      ; 6d
    77427778    pop sp                                    ; 5c
    7743     enter 0c85ch, 05ch                        ; c8 5c c8 5c
    7744     enter 0c85ch, 05ch                        ; c8 5c c8 5c
    7745     nop                                       ; 90
     7779    mov sp, 0bc5ch                            ; bc 5c bc
    77467780    pop sp                                    ; 5c
    7747     enter 0c85ch, 05ch                        ; c8 5c c8 5c
    7748 _int13_harddisk_ext:                         ; 0xf5817 LB 0x4cc
     7781    mov sp, 0bc5ch                            ; bc 5c bc
     7782    pop sp                                    ; 5c
     7783    test byte [si-044h], bl                   ; 84 5c bc
     7784    pop sp                                    ; 5c
     7785    db  0bch
     7786    pop sp                                    ; 5c
     7787_int13_harddisk_ext:                         ; 0xf580b LB 0x4cc
    77497788    push bp                                   ; 55
    77507789    mov bp, sp                                ; 89 e5
     
    77527791    mov dx, strict word 0000eh                ; ba 0e 00
    77537792    mov ax, strict word 00040h                ; b8 40 00
    7754     call 0161ch                               ; e8 f6 bd
     7793    call 0161ch                               ; e8 02 be
    77557794    mov word [bp-014h], ax                    ; 89 46 ec
    77567795    mov dx, strict word 0000eh                ; ba 0e 00
    77577796    mov ax, strict word 00040h                ; b8 40 00
    7758     call 0161ch                               ; e8 ea bd
     7797    call 0161ch                               ; e8 f6 bd
    77597798    mov si, 00122h                            ; be 22 01
    77607799    mov word [bp-026h], ax                    ; 89 46 da
     
    77627801    mov dx, 0008eh                            ; ba 8e 00
    77637802    mov ax, strict word 00040h                ; b8 40 00
    7764     call 0160eh                               ; e8 cb bd
     7803    call 0160eh                               ; e8 d7 bd
    77657804    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77667805    xor ah, ah                                ; 30 e4
    77677806    cmp ax, 00080h                            ; 3d 80 00
    7768     jc short 05852h                           ; 72 05
     7807    jc short 05846h                           ; 72 05
    77697808    cmp ax, 00090h                            ; 3d 90 00
    7770     jc short 05870h                           ; 72 1e
     7809    jc short 05864h                           ; 72 1e
    77717810    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77727811    xor ah, ah                                ; 30 e4
     
    77757814    shr ax, 008h                              ; c1 e8 08
    77767815    push ax                                   ; 50
    7777     push 00765h                               ; 68 65 07
    7778     push 005fdh                               ; 68 fd 05
     7816    push 007d5h                               ; 68 d5 07
     7817    push 0066dh                               ; 68 6d 06
    77797818    push strict byte 00004h                   ; 6a 04
    7780     call 0190dh                               ; e8 a3 c0
     7819    call 0190dh                               ; e8 af c0
    77817820    add sp, strict byte 0000ah                ; 83 c4 0a
    7782     jmp near 05ca6h                           ; e9 36 04
     7821    jmp near 05c9ah                           ; e9 36 04
    77837822    mov ax, word [bp+00eh]                    ; 8b 46 0e
    77847823    xor ah, ah                                ; 30 e4
     
    77887827    mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
    77897828    cmp cl, 010h                              ; 80 f9 10
    7790     jc short 05896h                           ; 72 10
     7829    jc short 0588ah                           ; 72 10
    77917830    push ax                                   ; 50
    77927831    mov ax, word [bp+016h]                    ; 8b 46 16
    77937832    shr ax, 008h                              ; c1 e8 08
    77947833    push ax                                   ; 50
    7795     push 00765h                               ; 68 65 07
    7796     push 00628h                               ; 68 28 06
    7797     jmp short 05865h                          ; eb cf
     7834    push 007d5h                               ; 68 d5 07
     7835    push 00698h                               ; 68 98 06
     7836    jmp short 05859h                          ; eb cf
    77987837    mov bx, word [bp+016h]                    ; 8b 5e 16
    77997838    shr bx, 008h                              ; c1 eb 08
    78007839    sub bx, strict byte 00041h                ; 83 eb 41
    78017840    cmp bx, strict byte 0000fh                ; 83 fb 0f
    7802     jnbe near 05cc8h                          ; 0f 87 22 04
     7841    jnbe near 05cbch                          ; 0f 87 22 04
    78037842    add bx, bx                                ; 01 db
    78047843    mov ax, word [bp+016h]                    ; 8b 46 16
    78057844    xor ah, ah                                ; 30 e4
    7806     jmp word [cs:bx+057f7h]                   ; 2e ff a7 f7 57
     7845    jmp word [cs:bx+057ebh]                   ; 2e ff a7 eb 57
    78077846    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    78087847    mov ax, word [bp+016h]                    ; 8b 46 16
     
    78117850    mov word [bp+016h], ax                    ; 89 46 16
    78127851    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    7813     jmp near 05c7dh                           ; e9 b3 03
     7852    jmp near 05c71h                           ; e9 b3 03
    78147853    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    78157854    mov es, [bp+004h]                         ; 8e 46 04
     
    78267865    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    78277866    or ax, word [bp-00ah]                     ; 0b 46 f6
    7828     je short 0590bh                           ; 74 11
     7867    je short 058ffh                           ; 74 11
    78297868    mov ax, word [bp+016h]                    ; 8b 46 16
    78307869    shr ax, 008h                              ; c1 e8 08
    78317870    push ax                                   ; 50
    7832     push 00765h                               ; 68 65 07
    7833     push 00778h                               ; 68 78 07
     7871    push 007d5h                               ; 68 d5 07
     7872    push 007e8h                               ; 68 e8 07
    78347873    push strict byte 00007h                   ; 6a 07
    7835     jmp short 05955h                          ; eb 4a
     7874    jmp short 05949h                          ; eb 4a
    78367875    mov es, [bp-010h]                         ; 8e 46 f0
    78377876    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    78457884    mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
    78467885    cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
    7847     jnbe short 0593bh                         ; 77 0b
    7848     jne short 0595eh                          ; 75 2c
     7886    jnbe short 0592fh                         ; 77 0b
     7887    jne short 05952h                          ; 75 2c
    78497888    mov dx, word [bp-00ah]                    ; 8b 56 f6
    78507889    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    7851     jc short 0595eh                           ; 72 23
    7852     mov bx, 00d38h                            ; bb 38 0d
     7890    jc short 05952h                           ; 72 23
     7891    mov bx, 00da8h                            ; bb a8 0d
    78537892    mov cx, ds                                ; 8c d9
    78547893    mov ax, strict word 00004h                ; b8 04 00
    7855     call 018cch                               ; e8 86 bf
     7894    call 018cch                               ; e8 92 bf
    78567895    mov ax, word [bp+016h]                    ; 8b 46 16
    78577896    shr ax, 008h                              ; c1 e8 08
    78587897    push ax                                   ; 50
    7859     push 00765h                               ; 68 65 07
    7860     push 007a1h                               ; 68 a1 07
     7898    push 007d5h                               ; 68 d5 07
     7899    push 00811h                               ; 68 11 08
    78617900    push strict byte 00004h                   ; 6a 04
    7862     call 0190dh                               ; e8 b5 bf
     7901    call 0190dh                               ; e8 c1 bf
    78637902    add sp, strict byte 00008h                ; 83 c4 08
    7864     jmp near 05ca6h                           ; e9 48 03
     7903    jmp near 05c9ah                           ; e9 48 03
    78657904    mov dx, word [bp+016h]                    ; 8b 56 16
    78667905    shr dx, 008h                              ; c1 ea 08
    78677906    mov word [bp-00ch], dx                    ; 89 56 f4
    78687907    cmp dx, strict byte 00044h                ; 83 fa 44
    7869     je near 05c79h                            ; 0f 84 0b 03
     7908    je near 05c6dh                            ; 0f 84 0b 03
    78707909    cmp dx, strict byte 00047h                ; 83 fa 47
    7871     je near 05c79h                            ; 0f 84 04 03
     7910    je near 05c6dh                            ; 0f 84 04 03
    78727911    mov es, [bp-026h]                         ; 8e 46 da
    78737912    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     
    78937932    push ES                                   ; 06
    78947933    push si                                   ; 56
    7895     call word [word bx-0006ch]                ; ff 97 94 ff
     7934    call word [word bx-00002h]                ; ff 97 fe ff
    78967935    mov dx, ax                                ; 89 c2
    78977936    mov es, [bp-026h]                         ; 8e 46 da
     
    79017940    mov word [es:di+002h], ax                 ; 26 89 45 02
    79027941    test dl, dl                               ; 84 d2
    7903     je near 05c79h                            ; 0f 84 97 02
    7904     mov bx, 00d38h                            ; bb 38 0d
     7942    je near 05c6dh                            ; 0f 84 97 02
     7943    mov bx, 00da8h                            ; bb a8 0d
    79057944    mov cx, ds                                ; 8c d9
    79067945    mov ax, strict word 00004h                ; b8 04 00
    7907     call 018cch                               ; e8 df be
     7946    call 018cch                               ; e8 eb be
    79087947    movzx ax, dl                              ; 0f b6 c2
    79097948    push ax                                   ; 50
    79107949    push word [bp-00ch]                       ; ff 76 f4
    7911     push 00765h                               ; 68 65 07
    7912     push 006c9h                               ; 68 c9 06
     7950    push 007d5h                               ; 68 d5 07
     7951    push 00739h                               ; 68 39 07
    79137952    push strict byte 00004h                   ; 6a 04
    7914     call 0190dh                               ; e8 0e bf
     7953    call 0190dh                               ; e8 1a bf
    79157954    add sp, strict byte 0000ah                ; 83 c4 0a
    79167955    mov ax, word [bp+016h]                    ; 8b 46 16
    79177956    xor ah, ah                                ; 30 e4
    79187957    or ah, 00ch                               ; 80 cc 0c
    7919     jmp near 05caeh                           ; e9 a1 02
     7958    jmp near 05ca2h                           ; e9 a1 02
    79207959    or ah, 0b2h                               ; 80 cc b2
    7921     jmp near 05caeh                           ; e9 9b 02
     7960    jmp near 05ca2h                           ; e9 9b 02
    79227961    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    79237962    mov ax, word [bp+004h]                    ; 8b 46 04
     
    79297968    mov word [bp-00eh], ax                    ; 89 46 f2
    79307969    cmp ax, strict word 0001ah                ; 3d 1a 00
    7931     jc near 05ca6h                            ; 0f 82 76 02
    7932     jc near 05ab7h                            ; 0f 82 83 00
     7970    jc near 05c9ah                            ; 0f 82 76 02
     7971    jc near 05aabh                            ; 0f 82 83 00
    79337972    movzx ax, cl                              ; 0f b6 c1
    79347973    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    79688007    ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
    79698008    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    7970     jc near 05bc3h                            ; 0f 82 04 01
     8009    jc near 05bb7h                            ; 0f 82 04 01
    79718010    mov es, [bp-004h]                         ; 8e 46 fc
    79728011    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    79948033    mov al, byte [es:di+023h]                 ; 26 8a 45 23
    79958034    test al, al                               ; 84 c0
    7996     jne short 05b15h                          ; 75 04
     8035    jne short 05b09h                          ; 75 04
    79978036    xor dx, dx                                ; 31 d2
    7998     jmp short 05b18h                          ; eb 03
     8037    jmp short 05b0ch                          ; eb 03
    79998038    mov dx, strict word 00008h                ; ba 08 00
    80008039    or dl, 010h                               ; 80 ca 10
     
    80118050    or word [bp-008h], dx                     ; 09 56 f8
    80128051    cmp AL, strict byte 003h                  ; 3c 03
    8013     jne short 05b3eh                          ; 75 05
     8052    jne short 05b32h                          ; 75 05
    80148053    mov ax, strict word 00003h                ; b8 03 00
    8015     jmp short 05b40h                          ; eb 02
     8054    jmp short 05b34h                          ; eb 02
    80168055    xor ax, ax                                ; 31 c0
    80178056    or word [bp-008h], ax                     ; 09 46 f8
     
    80388077    xor ch, ch                                ; 30 ed
    80398078    mov byte [bp-002h], ch                    ; 88 6e fe
    8040     jmp short 05ba4h                          ; eb 06
     8079    jmp short 05b98h                          ; eb 06
    80418080    cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
    8042     jnc short 05bb9h                          ; 73 15
     8081    jnc short 05badh                          ; 73 15
    80438082    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    80448083    add dx, 00312h                            ; 81 c2 12 03
    80458084    mov ax, word [bp-014h]                    ; 8b 46 ec
    8046     call 01600h                               ; e8 4e ba
     8085    call 01600h                               ; e8 5a ba
    80478086    add ch, al                                ; 00 c5
    80488087    inc byte [bp-002h]                        ; fe 46 fe
    8049     jmp short 05b9eh                          ; eb e5
     8088    jmp short 05b92h                          ; eb e5
    80508089    neg ch                                    ; f6 dd
    80518090    mov es, [bp-026h]                         ; 8e 46 da
    80528091    mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
    80538092    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    8054     jc near 05c79h                            ; 0f 82 ae 00
     8093    jc near 05c6dh                            ; 0f 82 ae 00
    80558094    movzx ax, cl                              ; 0f b6 c1
    80568095    cwd                                       ; 99
     
    80708109    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    80718110    test al, al                               ; 84 c0
    8072     jne short 05c0bh                          ; 75 09
     8111    jne short 05bffh                          ; 75 09
    80738112    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    80748113    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    80798118    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    80808119    test al, al                               ; 84 c0
    8081     jne short 05c37h                          ; 75 13
     8120    jne short 05c2bh                          ; 75 13
    80828121    mov word [es:bx+030h], dx                 ; 26 89 57 30
    80838122    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    80948133    xor cl, cl                                ; 30 c9
    80958134    mov CH, strict byte 01eh                  ; b5 1e
    8096     jmp short 05c5eh                          ; eb 05
     8135    jmp short 05c52h                          ; eb 05
    80978136    cmp ch, 040h                              ; 80 fd 40
    8098     jnc short 05c70h                          ; 73 12
     8137    jnc short 05c64h                          ; 73 12
    80998138    movzx dx, ch                              ; 0f b6 d5
    81008139    add dx, word [bp+00ah]                    ; 03 56 0a
    81018140    mov ax, word [bp+004h]                    ; 8b 46 04
    8102     call 01600h                               ; e8 96 b9
     8141    call 01600h                               ; e8 a2 b9
    81038142    add cl, al                                ; 00 c1
    81048143    db  0feh, 0c5h
    81058144    ; inc ch                                    ; fe c5
    8106     jmp short 05c59h                          ; eb e9
     8145    jmp short 05c4dh                          ; eb e9
    81078146    neg cl                                    ; f6 d9
    81088147    mov es, [bp-004h]                         ; 8e 46 fc
     
    81128151    mov dx, strict word 00074h                ; ba 74 00
    81138152    mov ax, strict word 00040h                ; b8 40 00
    8114     call 0160eh                               ; e8 86 b9
     8153    call 0160eh                               ; e8 92 b9
    81158154    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    81168155    mov sp, bp                                ; 89 ec
     
    81188157    retn                                      ; c3
    81198158    cmp ax, strict word 00006h                ; 3d 06 00
    8120     je short 05c79h                           ; 74 e4
     8159    je short 05c6dh                           ; 74 e4
    81218160    cmp ax, strict word 00001h                ; 3d 01 00
    8122     jc short 05ca6h                           ; 72 0c
    8123     jbe short 05c79h                          ; 76 dd
     8161    jc short 05c9ah                           ; 72 0c
     8162    jbe short 05c6dh                          ; 76 dd
    81248163    cmp ax, strict word 00003h                ; 3d 03 00
    8125     jc short 05ca6h                           ; 72 05
     8164    jc short 05c9ah                           ; 72 05
    81268165    cmp ax, strict word 00004h                ; 3d 04 00
    8127     jbe short 05c79h                          ; 76 d3
     8166    jbe short 05c6dh                          ; 76 d3
    81288167    mov ax, word [bp+016h]                    ; 8b 46 16
    81298168    xor ah, ah                                ; 30 e4
     
    81358174    mov dx, strict word 00074h                ; ba 74 00
    81368175    mov ax, strict word 00040h                ; b8 40 00
    8137     call 0160eh                               ; e8 4c b9
     8176    call 0160eh                               ; e8 58 b9
    81388177    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8139     jmp short 05c8ch                          ; eb c4
    8140     mov bx, 00d38h                            ; bb 38 0d
     8178    jmp short 05c80h                          ; eb c4
     8179    mov bx, 00da8h                            ; bb a8 0d
    81418180    mov cx, ds                                ; 8c d9
    81428181    mov ax, strict word 00004h                ; b8 04 00
    8143     call 018cch                               ; e8 f9 bb
     8182    call 018cch                               ; e8 05 bc
    81448183    mov ax, word [bp+016h]                    ; 8b 46 16
    81458184    shr ax, 008h                              ; c1 e8 08
    81468185    push ax                                   ; 50
    8147     push 00765h                               ; 68 65 07
    8148     push 00737h                               ; 68 37 07
    8149     jmp near 05953h                           ; e9 70 fc
    8150 _int14_function:                             ; 0xf5ce3 LB 0x155
     8186    push 007d5h                               ; 68 d5 07
     8187    push 007a7h                               ; 68 a7 07
     8188    jmp near 05947h                           ; e9 70 fc
     8189_int14_function:                             ; 0xf5cd7 LB 0x155
    81518190    push bp                                   ; 55
    81528191    mov bp, sp                                ; 89 e5
     
    81568195    add dx, dx                                ; 01 d2
    81578196    mov ax, strict word 00040h                ; b8 40 00
    8158     call 0161ch                               ; e8 29 b9
     8197    call 0161ch                               ; e8 35 b9
    81598198    mov si, ax                                ; 89 c6
    81608199    mov bx, ax                                ; 89 c3
     
    81628201    add dx, strict byte 0007ch                ; 83 c2 7c
    81638202    mov ax, strict word 00040h                ; b8 40 00
    8164     call 01600h                               ; e8 fd b8
     8203    call 01600h                               ; e8 09 b9
    81658204    mov cl, al                                ; 88 c1
    81668205    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8167     jnc near 05e2eh                           ; 0f 83 21 01
     8206    jnc near 05e22h                           ; 0f 83 21 01
    81688207    test si, si                               ; 85 f6
    8169     jbe near 05e2eh                           ; 0f 86 1b 01
     8208    jbe near 05e22h                           ; 0f 86 1b 01
    81708209    mov al, byte [bp+013h]                    ; 8a 46 13
    81718210    cmp AL, strict byte 001h                  ; 3c 01
    8172     jc short 05d2bh                           ; 72 11
    8173     jbe short 05d7fh                          ; 76 63
     8211    jc short 05d1fh                           ; 72 11
     8212    jbe short 05d73h                          ; 76 63
    81748213    cmp AL, strict byte 003h                  ; 3c 03
    8175     je near 05e17h                            ; 0f 84 f5 00
     8214    je near 05e0bh                            ; 0f 84 f5 00
    81768215    cmp AL, strict byte 002h                  ; 3c 02
    8177     je near 05dcdh                            ; 0f 84 a5 00
    8178     jmp near 05e28h                           ; e9 fd 00
     8216    je near 05dc1h                            ; 0f 84 a5 00
     8217    jmp near 05e1ch                           ; e9 fd 00
    81798218    test al, al                               ; 84 c0
    8180     jne near 05e28h                           ; 0f 85 f7 00
     8219    jne near 05e1ch                           ; 0f 85 f7 00
    81818220    lea dx, [bx+003h]                         ; 8d 57 03
    81828221    in AL, DX                                 ; ec
     
    82108249    ; sub ah, ah                                ; 2a e4
    82118250    mov byte [bp+012h], al                    ; 88 46 12
    8212     jmp near 05e09h                           ; e9 97 00
     8251    jmp near 05dfdh                           ; e9 97 00
    82138252    mov AL, strict byte 017h                  ; b0 17
    82148253    mov dx, bx                                ; 89 da
     
    82178256    mov AL, strict byte 004h                  ; b0 04
    82188257    out DX, AL                                ; ee
    8219     jmp short 05d54h                          ; eb d5
     8258    jmp short 05d48h                          ; eb d5
    82208259    mov dx, strict word 0006ch                ; ba 6c 00
    82218260    mov ax, strict word 00040h                ; b8 40 00
    8222     call 0161ch                               ; e8 94 b8
     8261    call 0161ch                               ; e8 a0 b8
    82238262    mov si, ax                                ; 89 c6
    82248263    lea dx, [bx+005h]                         ; 8d 57 05
     
    82288267    and ax, strict word 00060h                ; 25 60 00
    82298268    cmp ax, strict word 00060h                ; 3d 60 00
    8230     je short 05dafh                           ; 74 17
     8269    je short 05da3h                           ; 74 17
    82318270    test cl, cl                               ; 84 c9
    8232     je short 05dafh                           ; 74 13
     8271    je short 05da3h                           ; 74 13
    82338272    mov dx, strict word 0006ch                ; ba 6c 00
    82348273    mov ax, strict word 00040h                ; b8 40 00
    8235     call 0161ch                               ; e8 77 b8
     8274    call 0161ch                               ; e8 83 b8
    82368275    cmp ax, si                                ; 39 f0
    8237     je short 05d8ah                           ; 74 e1
     8276    je short 05d7eh                           ; 74 e1
    82388277    mov si, ax                                ; 89 c6
    82398278    db  0feh, 0c9h
    82408279    ; dec cl                                    ; fe c9
    8241     jmp short 05d8ah                          ; eb db
     8280    jmp short 05d7eh                          ; eb db
    82428281    test cl, cl                               ; 84 c9
    8243     je short 05db9h                           ; 74 06
     8282    je short 05dadh                           ; 74 06
    82448283    mov al, byte [bp+012h]                    ; 8a 46 12
    82458284    mov dx, bx                                ; 89 da
     
    82518290    mov byte [bp+013h], al                    ; 88 46 13
    82528291    test cl, cl                               ; 84 c9
    8253     jne short 05e09h                          ; 75 43
     8292    jne short 05dfdh                          ; 75 43
    82548293    or AL, strict byte 080h                   ; 0c 80
    82558294    mov byte [bp+013h], al                    ; 88 46 13
    8256     jmp short 05e09h                          ; eb 3c
     8295    jmp short 05dfdh                          ; eb 3c
    82578296    mov dx, strict word 0006ch                ; ba 6c 00
    82588297    mov ax, strict word 00040h                ; b8 40 00
    8259     call 0161ch                               ; e8 46 b8
     8298    call 0161ch                               ; e8 52 b8
    82608299    mov si, ax                                ; 89 c6
    82618300    lea dx, [bx+005h]                         ; 8d 57 05
     
    82648303    ; sub ah, ah                                ; 2a e4
    82658304    test AL, strict byte 001h                 ; a8 01
    8266     jne short 05df9h                          ; 75 17
     8305    jne short 05dedh                          ; 75 17
    82678306    test cl, cl                               ; 84 c9
    8268     je short 05df9h                           ; 74 13
     8307    je short 05dedh                           ; 74 13
    82698308    mov dx, strict word 0006ch                ; ba 6c 00
    82708309    mov ax, strict word 00040h                ; b8 40 00
    8271     call 0161ch                               ; e8 2d b8
     8310    call 0161ch                               ; e8 39 b8
    82728311    cmp ax, si                                ; 39 f0
    8273     je short 05dd8h                           ; 74 e5
     8312    je short 05dcch                           ; 74 e5
    82748313    mov si, ax                                ; 89 c6
    82758314    db  0feh, 0c9h
    82768315    ; dec cl                                    ; fe c9
    8277     jmp short 05dd8h                          ; eb df
     8316    jmp short 05dcch                          ; eb df
    82788317    test cl, cl                               ; 84 c9
    8279     je short 05e0fh                           ; 74 12
     8318    je short 05e03h                           ; 74 12
    82808319    mov byte [bp+013h], 000h                  ; c6 46 13 00
    82818320    mov dx, bx                                ; 89 da
     
    82858324    mov byte [bp+012h], al                    ; 88 46 12
    82868325    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8287     jmp short 05e32h                          ; eb 23
     8326    jmp short 05e26h                          ; eb 23
    82888327    lea dx, [bx+005h]                         ; 8d 57 05
    82898328    in AL, DX                                 ; ec
    82908329    db  02ah, 0e4h
    82918330    ; sub ah, ah                                ; 2a e4
    8292     jmp short 05dc8h                          ; eb b1
     8331    jmp short 05dbch                          ; eb b1
    82938332    lea dx, [si+005h]                         ; 8d 54 05
    82948333    in AL, DX                                 ; ec
     
    83008339    db  02ah, 0e4h
    83018340    ; sub ah, ah                                ; 2a e4
    8302     jmp short 05e06h                          ; eb de
     8341    jmp short 05dfah                          ; eb de
    83038342    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8304     jmp short 05e32h                          ; eb 04
     8343    jmp short 05e26h                          ; eb 04
    83058344    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    83068345    lea sp, [bp-002h]                         ; 8d 66 fe
     
    83088347    pop bp                                    ; 5d
    83098348    retn                                      ; c3
    8310 set_enable_a20_:                             ; 0xf5e38 LB 0x2c
     8349set_enable_a20_:                             ; 0xf5e2c LB 0x2c
    83118350    push bp                                   ; 55
    83128351    mov bp, sp                                ; 89 e5
     
    83218360    mov cl, al                                ; 88 c1
    83228361    test bx, bx                               ; 85 db
    8323     je short 05e51h                           ; 74 05
     8362    je short 05e45h                           ; 74 05
    83248363    or AL, strict byte 002h                   ; 0c 02
    83258364    out DX, AL                                ; ee
    8326     jmp short 05e54h                          ; eb 03
     8365    jmp short 05e48h                          ; eb 03
    83278366    and AL, strict byte 0fdh                  ; 24 fd
    83288367    out DX, AL                                ; ee
     
    83378376    pop bp                                    ; 5d
    83388377    retn                                      ; c3
    8339 set_e820_range_:                             ; 0xf5e64 LB 0x8c
     8378set_e820_range_:                             ; 0xf5e58 LB 0x8c
    83408379    push si                                   ; 56
    83418380    push bp                                   ; 55
     
    83668405    retn 0000ah                               ; c2 0a 00
    83678406    in AL, DX                                 ; ec
    8368     jmp near 02097h                           ; e9 d8 c1
     8407    jmp near 0208bh                           ; e9 d8 c1
    83698408    sar byte [bx-06f6fh], 089h                ; c0 bf 91 90 89
    83708409    mov byte [bx+05283h], al                  ; 88 87 83 52
     
    83728411    inc cx                                    ; 41
    83738412    and AL, strict byte 000h                  ; 24 00
    8374     db  08fh, 063h, 02fh
    8375     ; pop word [bp+di+02fh]                     ; 8f 63 2f
     8413    and word [bp+di+023h], strict byte 0005fh ; 83 63 23 5f
     8414    db  036h, 05fh
     8415    ; ss pop di                                 ; 36 5f
     8416    retf                                      ; cb
    83768417    pop di                                    ; 5f
    8377     inc dx                                    ; 42
     8418    rcr word [bx-02ah], 1                     ; d1 5f d6
    83788419    pop di                                    ; 5f
    8379     xlatb                                     ; d7
     8420    fistp dword [bx+07dh]                     ; db 5f 7d
     8421    pushaw                                    ; 60
     8422    sbb ah, byte [bp+si+040h]                 ; 1a 62 40
     8423    db  062h
     8424    les bx, [bx-03ch]                         ; c4 5f c4
    83808425    pop di                                    ; 5f
    8381     fstp qword [bx-01eh]                      ; dd 5f e2
     8426    or ax, 03563h                             ; 0d 63 35
     8427    arpl word [bx+si+063h], cx                ; 63 48 63
     8428    push di                                   ; 57
     8429    arpl bx, cx                               ; 63 cb
    83828430    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
     8431    pop si                                    ; 5e
     8432    db  063h
     8433_int15_function:                             ; 0xf5ee4 LB 0x4cd
    83948434    push bp                                   ; 55
    83958435    mov bp, sp                                ; 89 e5
     
    84018441    shr ax, 008h                              ; c1 e8 08
    84028442    cmp ax, 000ech                            ; 3d ec 00
    8403     jnbe near 0638fh                          ; 0f 87 8b 04
     8443    jnbe near 06383h                          ; 0f 87 8b 04
    84048444    push CS                                   ; 0e
    84058445    pop ES                                    ; 07
    84068446    mov cx, strict word 00012h                ; b9 12 00
    8407     mov di, 05ebbh                            ; bf bb 5e
     8447    mov di, 05eafh                            ; bf af 5e
    84088448    repne scasb                               ; f2 ae
    84098449    sal cx, 1                                 ; d1 e1
    84108450    mov di, cx                                ; 89 cf
    8411     mov si, word [cs:di+05ecch]               ; 2e 8b b5 cc 5e
     8451    mov si, word [cs:di+05ec0h]               ; 2e 8b b5 c0 5e
    84128452    mov ax, word [bp+012h]                    ; 8b 46 12
    84138453    xor ah, ah                                ; 30 e4
     
    84228462    xor ah, ah                                ; 30 e4
    84238463    cmp ax, 000c0h                            ; 3d c0 00
    8424     jne near 0638fh                           ; 0f 85 54 04
     8464    jne near 06383h                           ; 0f 85 54 04
    84258465    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8426     jmp near 06338h                           ; e9 f6 03
     8466    jmp near 0632ch                           ; e9 f6 03
    84278467    mov dx, ax                                ; 89 c2
    84288468    cmp ax, strict word 00001h                ; 3d 01 00
    8429     jc short 05f57h                           ; 72 0e
    8430     jbe short 05f6bh                          ; 76 20
     8469    jc short 05f4bh                           ; 72 0e
     8470    jbe short 05f5fh                          ; 76 20
    84318471    cmp ax, strict word 00003h                ; 3d 03 00
    8432     je short 05f98h                           ; 74 48
     8472    je short 05f8ch                           ; 74 48
    84338473    cmp ax, strict word 00002h                ; 3d 02 00
    8434     je short 05f7bh                           ; 74 26
    8435     jmp short 05fa5h                          ; eb 4e
     8474    je short 05f6fh                           ; 74 26
     8475    jmp short 05f99h                          ; eb 4e
    84368476    test ax, ax                               ; 85 c0
    8437     jne short 05fa5h                          ; 75 4a
     8477    jne short 05f99h                          ; 75 4a
    84388478    xor ax, ax                                ; 31 c0
    8439     call 05e38h                               ; e8 d8 fe
     8479    call 05e2ch                               ; e8 d8 fe
    84408480    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    84418481    mov byte [bp+013h], 000h                  ; c6 46 13 00
    8442     jmp near 05fd0h                           ; e9 65 00
     8482    jmp near 05fc4h                           ; e9 65 00
    84438483    mov ax, strict word 00001h                ; b8 01 00
    8444     call 05e38h                               ; e8 c7 fe
     8484    call 05e2ch                               ; e8 c7 fe
    84458485    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    84468486    mov byte [bp+013h], dh                    ; 88 76 13
    8447     jmp near 05fd0h                           ; e9 55 00
     8487    jmp near 05fc4h                           ; e9 55 00
    84488488    mov dx, 00092h                            ; ba 92 00
    84498489    in AL, DX                                 ; ec
     
    84578497    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    84588498    mov byte [bp+013h], ah                    ; 88 66 13
    8459     jmp near 05fd0h                           ; e9 38 00
     8499    jmp near 05fc4h                           ; e9 38 00
    84608500    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    84618501    mov byte [bp+013h], ah                    ; 88 66 13
    84628502    mov word [bp+00ch], ax                    ; 89 46 0c
    8463     jmp near 05fd0h                           ; e9 2b 00
    8464     mov bx, 00d38h                            ; bb 38 0d
     8503    jmp near 05fc4h                           ; e9 2b 00
     8504    mov bx, 00da8h                            ; bb a8 0d
    84658505    mov cx, ds                                ; 8c d9
    84668506    mov ax, strict word 00004h                ; b8 04 00
    8467     call 018cch                               ; e8 1c b9
     8507    call 018cch                               ; e8 28 b9
    84688508    mov ax, word [bp+012h]                    ; 8b 46 12
    84698509    xor ah, ah                                ; 30 e4
    84708510    push ax                                   ; 50
    8471     push 007c6h                               ; 68 c6 07
     8511    push 00836h                               ; 68 36 08
    84728512    push strict byte 00004h                   ; 6a 04
    8473     call 0190dh                               ; e8 4f b9
     8513    call 0190dh                               ; e8 5b b9
    84748514    add sp, strict byte 00006h                ; 83 c4 06
    84758515    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    84848524    retn                                      ; c3
    84858525    mov word [bp+018h], bx                    ; 89 5e 18
    8486     jmp near 06083h                           ; e9 a6 00
     8526    jmp near 06077h                           ; e9 a6 00
    84878527    mov word [bp+018h], bx                    ; 89 5e 18
    8488     jmp short 05fd0h                          ; eb ee
     8528    jmp short 05fc4h                          ; eb ee
    84898529    mov word [bp+018h], cx                    ; 89 4e 18
    8490     jmp short 05fcdh                          ; eb e6
     8530    jmp short 05fc1h                          ; eb e6
    84918531    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8492     je short 06059h                           ; 74 6c
     8532    je short 0604dh                           ; 74 6c
    84938533    mov dx, 000a0h                            ; ba a0 00
    84948534    mov ax, strict word 00040h                ; b8 40 00
    8495     call 01600h                               ; e8 0a b6
     8535    call 01600h                               ; e8 16 b6
    84968536    test AL, strict byte 001h                 ; a8 01
    8497     jne near 0632fh                           ; 0f 85 33 03
     8537    jne near 06323h                           ; 0f 85 33 03
    84988538    mov bx, strict word 00001h                ; bb 01 00
    84998539    mov dx, 000a0h                            ; ba a0 00
    85008540    mov ax, strict word 00040h                ; b8 40 00
    8501     call 0160eh                               ; e8 06 b6
     8541    call 0160eh                               ; e8 12 b6
    85028542    mov bx, word [bp+014h]                    ; 8b 5e 14
    85038543    mov dx, 00098h                            ; ba 98 00
    85048544    mov ax, strict word 00040h                ; b8 40 00
    8505     call 0162ah                               ; e8 16 b6
     8545    call 0162ah                               ; e8 22 b6
    85068546    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    85078547    mov dx, 0009ah                            ; ba 9a 00
    85088548    mov ax, strict word 00040h                ; b8 40 00
    8509     call 0162ah                               ; e8 0a b6
     8549    call 0162ah                               ; e8 16 b6
    85108550    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    85118551    mov dx, 0009ch                            ; ba 9c 00
    85128552    mov ax, strict word 00040h                ; b8 40 00
    8513     call 0162ah                               ; e8 fe b5
     8553    call 0162ah                               ; e8 0a b6
    85148554    mov bx, word [bp+010h]                    ; 8b 5e 10
    85158555    mov dx, 0009eh                            ; ba 9e 00
    85168556    mov ax, strict word 00040h                ; b8 40 00
    8517     call 0162ah                               ; e8 f2 b5
     8557    call 0162ah                               ; e8 fe b5
    85188558    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85198559    mov dx, 000a1h                            ; ba a1 00
     
    85248564    out DX, AL                                ; ee
    85258565    mov ax, strict word 0000bh                ; b8 0b 00
    8526     call 0165ch                               ; e8 11 b6
     8566    call 0165ch                               ; e8 1d b6
    85278567    or AL, strict byte 040h                   ; 0c 40
    85288568    movzx dx, al                              ; 0f b6 d0
    85298569    mov ax, strict word 0000bh                ; b8 0b 00
    8530     call 01670h                               ; e8 1a b6
    8531     jmp near 05fd0h                           ; e9 77 ff
     8570    call 01670h                               ; e8 26 b6
     8571    jmp near 05fc4h                           ; e9 77 ff
    85328572    cmp ax, strict word 00001h                ; 3d 01 00
    8533     jne short 06077h                          ; 75 19
     8573    jne short 0606bh                          ; 75 19
    85348574    xor bx, bx                                ; 31 db
    85358575    mov dx, 000a0h                            ; ba a0 00
    85368576    mov ax, strict word 00040h                ; b8 40 00
    8537     call 0160eh                               ; e8 a5 b5
     8577    call 0160eh                               ; e8 b1 b5
    85388578    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85398579    mov ax, strict word 0000bh                ; b8 0b 00
    8540     call 0165ch                               ; e8 e9 b5
     8580    call 0165ch                               ; e8 f5 b5
    85418581    and AL, strict byte 0bfh                  ; 24 bf
    8542     jmp short 0604dh                          ; eb d6
     8582    jmp short 06041h                          ; eb d6
    85438583    mov word [bp+018h], bx                    ; 89 5e 18
    85448584    mov ax, dx                                ; 89 d0
     
    85488588    or dx, ax                                 ; 09 c2
    85498589    mov word [bp+012h], dx                    ; 89 56 12
    8550     jmp near 05fd0h                           ; e9 47 ff
     8590    jmp near 05fc4h                           ; e9 47 ff
    85518591    cli                                       ; fa
    85528592    mov ax, strict word 00001h                ; b8 01 00
    8553     call 05e38h                               ; e8 a8 fd
     8593    call 05e2ch                               ; e8 a8 fd
    85548594    mov di, ax                                ; 89 c7
    85558595    mov ax, word [bp+014h]                    ; 8b 46 14
     
    85618601    mov byte [bp-006h], dl                    ; 88 56 fa
    85628602    cmp cx, ax                                ; 39 c1
    8563     jnc short 060afh                          ; 73 05
     8603    jnc short 060a3h                          ; 73 05
    85648604    db  0feh, 0c2h
    85658605    ; inc dl                                    ; fe c2
     
    85698609    mov ax, word [bp+014h]                    ; 8b 46 14
    85708610    mov bx, strict word 0002fh                ; bb 2f 00
    8571     call 0162ah                               ; e8 6c b5
     8611    call 0162ah                               ; e8 78 b5
    85728612    mov dx, word [bp+006h]                    ; 8b 56 06
    85738613    add dx, strict byte 0000ah                ; 83 c2 0a
    85748614    mov ax, word [bp+014h]                    ; 8b 46 14
    85758615    mov bx, cx                                ; 89 cb
    8576     call 0162ah                               ; e8 5e b5
     8616    call 0162ah                               ; e8 6a b5
    85778617    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    85788618    mov dx, word [bp+006h]                    ; 8b 56 06
    85798619    add dx, strict byte 0000ch                ; 83 c2 0c
    85808620    mov ax, word [bp+014h]                    ; 8b 46 14
    8581     call 0160eh                               ; e8 32 b5
     8621    call 0160eh                               ; e8 3e b5
    85828622    mov dx, word [bp+006h]                    ; 8b 56 06
    85838623    add dx, strict byte 0000dh                ; 83 c2 0d
    85848624    mov ax, word [bp+014h]                    ; 8b 46 14
    85858625    mov bx, 00093h                            ; bb 93 00
    8586     call 0160eh                               ; e8 23 b5
     8626    call 0160eh                               ; e8 2f b5
    85878627    mov dx, word [bp+006h]                    ; 8b 56 06
    85888628    add dx, strict byte 0000eh                ; 83 c2 0e
    85898629    mov ax, word [bp+014h]                    ; 8b 46 14
    85908630    xor bx, bx                                ; 31 db
    8591     call 0162ah                               ; e8 31 b5
     8631    call 0162ah                               ; e8 3d b5
    85928632    mov dx, word [bp+006h]                    ; 8b 56 06
    85938633    add dx, strict byte 00020h                ; 83 c2 20
    85948634    mov ax, word [bp+014h]                    ; 8b 46 14
    85958635    mov bx, strict word 0ffffh                ; bb ff ff
    8596     call 0162ah                               ; e8 22 b5
     8636    call 0162ah                               ; e8 2e b5
    85978637    mov dx, word [bp+006h]                    ; 8b 56 06
    85988638    add dx, strict byte 00022h                ; 83 c2 22
    85998639    mov ax, word [bp+014h]                    ; 8b 46 14
    86008640    xor bx, bx                                ; 31 db
    8601     call 0162ah                               ; e8 14 b5
     8641    call 0162ah                               ; e8 20 b5
    86028642    mov dx, word [bp+006h]                    ; 8b 56 06
    86038643    add dx, strict byte 00024h                ; 83 c2 24
    86048644    mov ax, word [bp+014h]                    ; 8b 46 14
    86058645    mov bx, strict word 0000fh                ; bb 0f 00
    8606     call 0160eh                               ; e8 e9 b4
     8646    call 0160eh                               ; e8 f5 b4
    86078647    mov dx, word [bp+006h]                    ; 8b 56 06
    86088648    add dx, strict byte 00025h                ; 83 c2 25
    86098649    mov ax, word [bp+014h]                    ; 8b 46 14
    86108650    mov bx, 0009bh                            ; bb 9b 00
    8611     call 0160eh                               ; e8 da b4
     8651    call 0160eh                               ; e8 e6 b4
    86128652    mov dx, word [bp+006h]                    ; 8b 56 06
    86138653    add dx, strict byte 00026h                ; 83 c2 26
    86148654    mov ax, word [bp+014h]                    ; 8b 46 14
    86158655    xor bx, bx                                ; 31 db
    8616     call 0162ah                               ; e8 e8 b4
     8656    call 0162ah                               ; e8 f4 b4
    86178657    mov ax, ss                                ; 8c d0
    86188658    mov cx, ax                                ; 89 c1
     
    86248664    mov ax, word [bp+014h]                    ; 8b 46 14
    86258665    mov bx, strict word 0ffffh                ; bb ff ff
    8626     call 0162ah                               ; e8 cc b4
     8666    call 0162ah                               ; e8 d8 b4
    86278667    mov dx, word [bp+006h]                    ; 8b 56 06
    86288668    add dx, strict byte 0002ah                ; 83 c2 2a
    86298669    mov ax, word [bp+014h]                    ; 8b 46 14
    86308670    mov bx, cx                                ; 89 cb
    8631     call 0162ah                               ; e8 be b4
     8671    call 0162ah                               ; e8 ca b4
    86328672    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    86338673    mov dx, word [bp+006h]                    ; 8b 56 06
    86348674    add dx, strict byte 0002ch                ; 83 c2 2c
    86358675    mov ax, word [bp+014h]                    ; 8b 46 14
    8636     call 0160eh                               ; e8 92 b4
     8676    call 0160eh                               ; e8 9e b4
    86378677    mov dx, word [bp+006h]                    ; 8b 56 06
    86388678    add dx, strict byte 0002dh                ; 83 c2 2d
    86398679    mov ax, word [bp+014h]                    ; 8b 46 14
    86408680    mov bx, 00093h                            ; bb 93 00
    8641     call 0160eh                               ; e8 83 b4
     8681    call 0160eh                               ; e8 8f b4
    86428682    mov dx, word [bp+006h]                    ; 8b 56 06
    86438683    add dx, strict byte 0002eh                ; 83 c2 2e
    86448684    mov ax, word [bp+014h]                    ; 8b 46 14
    86458685    xor bx, bx                                ; 31 db
    8646     call 0162ah                               ; e8 91 b4
     8686    call 0162ah                               ; e8 9d b4
    86478687    mov si, word [bp+006h]                    ; 8b 76 06
    86488688    mov es, [bp+014h]                         ; 8e 46 14
     
    86558695    mov word [00467h], sp                     ; 89 26 67 04
    86568696    mov [00469h], ss                          ; 8c 16 69 04
    8657     call 061b5h                               ; e8 00 00
     8697    call 061a9h                               ; e8 00 00
    86588698    pop di                                    ; 5f
    86598699    add di, strict byte 0001bh                ; 83 c7 1b
     
    86788718    cld                                       ; fc
    86798719    rep movsw                                 ; f3 a5
    8680     call 061e9h                               ; e8 00 00
     8720    call 061ddh                               ; e8 00 00
    86818721    pop ax                                    ; 58
    86828722    push 0f000h                               ; 68 00 f0
     
    86998739    pop DS                                    ; 1f
    87008740    mov ax, di                                ; 89 f8
    8701     call 05e38h                               ; e8 1e fc
     8741    call 05e2ch                               ; e8 1e fc
    87028742    sti                                       ; fb
    87038743    mov byte [bp+013h], 000h                  ; c6 46 13 00
    87048744    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    8705     jmp near 05fd0h                           ; e9 aa fd
     8745    jmp near 05fc4h                           ; e9 aa fd
    87068746    mov ax, strict word 00031h                ; b8 31 00
    8707     call 0165ch                               ; e8 30 b4
     8747    call 0165ch                               ; e8 3c b4
    87088748    xor ah, ah                                ; 30 e4
    87098749    mov dx, ax                                ; 89 c2
    87108750    sal dx, 008h                              ; c1 e2 08
    87118751    mov ax, strict word 00030h                ; b8 30 00
    8712     call 0165ch                               ; e8 23 b4
     8752    call 0165ch                               ; e8 2f b4
    87138753    xor ah, ah                                ; 30 e4
    87148754    or dx, ax                                 ; 09 c2
    87158755    mov word [bp+012h], dx                    ; 89 56 12
    87168756    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    8717     jbe short 0621fh                          ; 76 da
     8757    jbe short 06213h                          ; 76 da
    87188758    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    8719     jmp short 0621fh                          ; eb d3
     8759    jmp short 06213h                          ; eb d3
    87208760    cli                                       ; fa
    87218761    mov ax, strict word 00001h                ; b8 01 00
    8722     call 05e38h                               ; e8 e5 fb
     8762    call 05e2ch                               ; e8 e5 fb
    87238763    mov dx, word [bp+006h]                    ; 8b 56 06
    87248764    add dx, strict byte 00038h                ; 83 c2 38
    87258765    mov ax, word [bp+014h]                    ; 8b 46 14
    87268766    mov bx, strict word 0ffffh                ; bb ff ff
    8727     call 0162ah                               ; e8 c8 b3
     8767    call 0162ah                               ; e8 d4 b3
    87288768    mov dx, word [bp+006h]                    ; 8b 56 06
    87298769    add dx, strict byte 0003ah                ; 83 c2 3a
    87308770    mov ax, word [bp+014h]                    ; 8b 46 14
    87318771    xor bx, bx                                ; 31 db
    8732     call 0162ah                               ; e8 ba b3
     8772    call 0162ah                               ; e8 c6 b3
    87338773    mov dx, word [bp+006h]                    ; 8b 56 06
    87348774    add dx, strict byte 0003ch                ; 83 c2 3c
    87358775    mov ax, word [bp+014h]                    ; 8b 46 14
    87368776    mov bx, strict word 0000fh                ; bb 0f 00
    8737     call 0160eh                               ; e8 8f b3
     8777    call 0160eh                               ; e8 9b b3
    87388778    mov dx, word [bp+006h]                    ; 8b 56 06
    87398779    add dx, strict byte 0003dh                ; 83 c2 3d
    87408780    mov ax, word [bp+014h]                    ; 8b 46 14
    87418781    mov bx, 0009bh                            ; bb 9b 00
    8742     call 0160eh                               ; e8 80 b3
     8782    call 0160eh                               ; e8 8c b3
    87438783    mov dx, word [bp+006h]                    ; 8b 56 06
    87448784    add dx, strict byte 0003eh                ; 83 c2 3e
    87458785    mov ax, word [bp+014h]                    ; 8b 46 14
    87468786    xor bx, bx                                ; 31 db
    8747     call 0162ah                               ; e8 8e b3
     8787    call 0162ah                               ; e8 9a b3
    87488788    mov AL, strict byte 011h                  ; b0 11
    87498789    mov dx, strict word 00020h                ; ba 20 00
     
    87758815    out DX, AL                                ; ee
    87768816    mov si, word [bp+006h]                    ; 8b 76 06
    8777     call 062ddh                               ; e8 00 00
     8817    call 062d1h                               ; e8 00 00
    87788818    pop di                                    ; 5f
    87798819    add di, strict byte 00018h                ; 83 c7 18
     
    88038843    push cx                                   ; 51
    88048844    retf                                      ; cb
    8805     jmp near 05fd0h                           ; e9 b7 fc
    8806     mov bx, 00d38h                            ; bb 38 0d
     8845    jmp near 05fc4h                           ; e9 b7 fc
     8846    mov bx, 00da8h                            ; bb a8 0d
    88078847    mov cx, ds                                ; 8c d9
    88088848    mov ax, strict word 00004h                ; b8 04 00
    8809     call 018cch                               ; e8 a8 b5
    8810     push 00806h                               ; 68 06 08
     8849    call 018cch                               ; e8 b4 b5
     8850    push 00876h                               ; 68 76 08
    88118851    push strict byte 00004h                   ; 6a 04
    8812     call 0190dh                               ; e8 e1 b5
     8852    call 0190dh                               ; e8 ed b5
    88138853    add sp, strict byte 00004h                ; 83 c4 04
    88148854    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    88178857    or ah, 086h                               ; 80 cc 86
    88188858    mov word [bp+012h], ax                    ; 89 46 12
    8819     jmp near 05fd0h                           ; e9 8f fc
     8859    jmp near 05fc4h                           ; e9 8f fc
    88208860    mov word [bp+018h], cx                    ; 89 4e 18
    88218861    mov word [bp+012h], ax                    ; 89 46 12
    88228862    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    88238863    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    8824     jmp near 05fd0h                           ; e9 7c fc
     8864    jmp near 05fc4h                           ; e9 7c fc
    88258865    mov dx, strict word 0000eh                ; ba 0e 00
    88268866    mov ax, strict word 00040h                ; b8 40 00
    8827     call 0161ch                               ; e8 bf b2
     8867    call 0161ch                               ; e8 cb b2
    88288868    mov word [bp+014h], ax                    ; 89 46 14
    8829     jmp near 0621fh                           ; e9 bc fe
    8830     push 00835h                               ; 68 35 08
     8869    jmp near 06213h                           ; e9 bc fe
     8870    push 008a5h                               ; 68 a5 08
    88318871    push strict byte 00008h                   ; 6a 08
    8832     jmp short 06329h                          ; eb bf
     8872    jmp short 0631dh                          ; eb bf
    88338873    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8834     jne short 0638fh                          ; 75 1f
     8874    jne short 06383h                          ; 75 1f
    88358875    mov word [bp+012h], ax                    ; 89 46 12
    88368876    mov ax, word [bp+00ch]                    ; 8b 46 0c
    88378877    xor ah, ah                                ; 30 e4
    88388878    cmp ax, strict word 00001h                ; 3d 01 00
    8839     jc short 06388h                           ; 72 0b
     8879    jc short 0637ch                           ; 72 0b
    88408880    cmp ax, strict word 00003h                ; 3d 03 00
    8841     jnbe short 06388h                         ; 77 06
     8881    jnbe short 0637ch                         ; 77 06
    88428882    mov word [bp+018h], cx                    ; 89 4e 18
    8843     jmp near 05fd0h                           ; e9 48 fc
     8883    jmp near 05fc4h                           ; e9 48 fc
    88448884    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8845     jmp near 05fd0h                           ; e9 41 fc
    8846     mov bx, 00d38h                            ; bb 38 0d
     8885    jmp near 05fc4h                           ; e9 41 fc
     8886    mov bx, 00da8h                            ; bb a8 0d
    88478887    mov cx, ds                                ; 8c d9
    88488888    mov ax, strict word 00004h                ; b8 04 00
    8849     call 018cch                               ; e8 32 b5
     8889    call 018cch                               ; e8 3e b5
    88508890    push word [bp+00ch]                       ; ff 76 0c
    88518891    push word [bp+012h]                       ; ff 76 12
    8852     push 0084ch                               ; 68 4c 08
     8892    push 008bch                               ; 68 bc 08
    88538893    push strict byte 00004h                   ; 6a 04
    8854     call 0190dh                               ; e8 65 b5
     8894    call 0190dh                               ; e8 71 b5
    88558895    add sp, strict byte 00008h                ; 83 c4 08
    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
     8896    jmp short 06323h                          ; eb 82
     8897    pop dx                                    ; 5a
     8898    db  065h, 07ch, 065h
     8899    ; gs jl short 0640ah                        ; 65 7c 65
     8900    lahf                                      ; 9f
     8901    sal word [gs:di-01fh], 065h               ; 65 c1 65 e1 65
     8902    add ah, byte [bp+041h]                    ; 02 66 41
     8903    insd                                      ; 66 6d
     8904    db  066h
     8905_int15_function32:                           ; 0xf63b1 LB 0x37e
    88688906    push bp                                   ; 55
    88698907    mov bp, sp                                ; 89 e5
     
    88778915    xor ah, ah                                ; 30 e4
    88788916    cmp dx, 000e8h                            ; 81 fa e8 00
    8879     je near 0648ah                            ; 0f 84 ad 00
     8917    je near 0647eh                            ; 0f 84 ad 00
    88808918    cmp dx, 000d0h                            ; 81 fa d0 00
    8881     je short 06425h                           ; 74 42
     8919    je short 06419h                           ; 74 42
    88828920    cmp dx, 00086h                            ; 81 fa 86 00
    8883     jne near 0670bh                           ; 0f 85 20 03
     8921    jne near 066ffh                           ; 0f 85 20 03
    88848922    sti                                       ; fb
    88858923    mov ax, word [bp+01ch]                    ; 8b 46 1c
     
    89008938    db  066h, 00bh, 0c9h
    89018939    ; or ecx, ecx                               ; 66 0b c9
    8902     je near 06422h                            ; 0f 84 0e 00
     8940    je near 06416h                            ; 0f 84 0e 00
    89038941    in AL, strict byte 061h                   ; e4 61
    89048942    and AL, strict byte 010h                  ; 24 10
    89058943    db  03ah, 0c4h
    89068944    ; cmp al, ah                                ; 3a c4
    8907     je short 06414h                           ; 74 f8
     8945    je short 06408h                           ; 74 f8
    89088946    db  08ah, 0e0h
    89098947    ; mov ah, al                                ; 8a e0
    89108948    dec ecx                                   ; 66 49
    8911     jne short 06414h                          ; 75 f2
    8912     jmp near 06735h                           ; e9 10 03
     8949    jne short 06408h                          ; 75 f2
     8950    jmp near 06729h                           ; e9 10 03
    89138951    cmp ax, strict word 0004fh                ; 3d 4f 00
    8914     jne near 0670bh                           ; 0f 85 df 02
     8952    jne near 066ffh                           ; 0f 85 df 02
    89158953    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    8916     jne near 0670bh                           ; 0f 85 d6 02
     8954    jne near 066ffh                           ; 0f 85 d6 02
    89178955    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    8918     jne near 0670bh                           ; 0f 85 cd 02
     8956    jne near 066ffh                           ; 0f 85 cd 02
    89198957    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    8920     jne near 0670bh                           ; 0f 85 c4 02
     8958    jne near 066ffh                           ; 0f 85 c4 02
    89218959    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    8922     jne near 0670bh                           ; 0f 85 bb 02
     8960    jne near 066ffh                           ; 0f 85 bb 02
    89238961    mov ax, word [bp+00ah]                    ; 8b 46 0a
    89248962    or ax, word [bp+008h]                     ; 0b 46 08
    8925     jne near 0670bh                           ; 0f 85 b1 02
     8963    jne near 066ffh                           ; 0f 85 b1 02
    89268964    mov ax, word [bp+006h]                    ; 8b 46 06
    89278965    or ax, word [bp+004h]                     ; 0b 46 04
    8928     jne near 0670bh                           ; 0f 85 a7 02
     8966    jne near 066ffh                           ; 0f 85 a7 02
    89298967    mov word [bp+028h], bx                    ; 89 5e 28
    89308968    mov ax, word [bp+014h]                    ; 8b 46 14
     
    89378975    mov word [bp+006h], ax                    ; 89 46 06
    89388976    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    8939     jmp near 06735h                           ; e9 ab 02
     8977    jmp near 06729h                           ; e9 ab 02
    89408978    cmp ax, strict word 00020h                ; 3d 20 00
    8941     je short 06499h                           ; 74 0a
     8979    je short 0648dh                           ; 74 0a
    89428980    cmp ax, strict word 00001h                ; 3d 01 00
    8943     je near 066c0h                            ; 0f 84 2a 02
    8944     jmp near 0670bh                           ; e9 72 02
     8981    je near 066b4h                            ; 0f 84 2a 02
     8982    jmp near 066ffh                           ; e9 72 02
    89458983    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    8946     jne near 0670bh                           ; 0f 85 69 02
     8984    jne near 066ffh                           ; 0f 85 69 02
    89478985    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    8948     jne near 0670bh                           ; 0f 85 60 02
     8986    jne near 066ffh                           ; 0f 85 60 02
    89498987    mov ax, strict word 00035h                ; b8 35 00
    8950     call 0165ch                               ; e8 ab b1
     8988    call 0165ch                               ; e8 b7 b1
    89518989    movzx bx, al                              ; 0f b6 d8
    89528990    xor dx, dx                                ; 31 d2
     
    89548992    sal bx, 1                                 ; d1 e3
    89558993    rcl dx, 1                                 ; d1 d2
    8956     loop 064b9h                               ; e2 fa
     8994    loop 064adh                               ; e2 fa
    89578995    mov ax, strict word 00034h                ; b8 34 00
    8958     call 0165ch                               ; e8 97 b1
     8996    call 0165ch                               ; e8 a3 b1
    89598997    xor ah, ah                                ; 30 e4
    89608998    mov dx, bx                                ; 89 da
     
    89649002    adc dx, 00100h                            ; 81 d2 00 01
    89659003    cmp dx, 00100h                            ; 81 fa 00 01
    8966     jc short 064dfh                           ; 72 06
    8967     jne short 0650ch                          ; 75 31
     9004    jc short 064d3h                           ; 72 06
     9005    jne short 06500h                          ; 75 31
    89689006    test bx, bx                               ; 85 db
    8969     jnbe short 0650ch                         ; 77 2d
     9007    jnbe short 06500h                         ; 77 2d
    89709008    mov ax, strict word 00031h                ; b8 31 00
    8971     call 0165ch                               ; e8 77 b1
     9009    call 0165ch                               ; e8 83 b1
    89729010    movzx bx, al                              ; 0f b6 d8
    89739011    xor dx, dx                                ; 31 d2
     
    89759013    sal bx, 1                                 ; d1 e3
    89769014    rcl dx, 1                                 ; d1 d2
    8977     loop 064edh                               ; e2 fa
     9015    loop 064e1h                               ; e2 fa
    89789016    mov ax, strict word 00030h                ; b8 30 00
    8979     call 0165ch                               ; e8 63 b1
     9017    call 0165ch                               ; e8 6f b1
    89809018    xor ah, ah                                ; 30 e4
    89819019    or bx, ax                                 ; 09 c3
     
    89839021    sal bx, 1                                 ; d1 e3
    89849022    rcl dx, 1                                 ; d1 d2
    8985     loop 06500h                               ; e2 fa
     9023    loop 064f4h                               ; e2 fa
    89869024    add bx, strict byte 00000h                ; 83 c3 00
    89879025    adc dx, strict byte 00010h                ; 83 d2 10
    89889026    mov ax, strict word 00062h                ; b8 62 00
    8989     call 0165ch                               ; e8 4a b1
     9027    call 0165ch                               ; e8 56 b1
    89909028    xor ah, ah                                ; 30 e4
    89919029    mov word [bp-00ah], ax                    ; 89 46 f6
     
    89959033    sal word [bp-00ah], 1                     ; d1 66 f6
    89969034    rcl word [bp-008h], 1                     ; d1 56 f8
    8997     loop 0651fh                               ; e2 f8
     9035    loop 06513h                               ; e2 f8
    89989036    mov ax, strict word 00061h                ; b8 61 00
    8999     call 0165ch                               ; e8 2f b1
     9037    call 0165ch                               ; e8 3b b1
    90009038    xor ah, ah                                ; 30 e4
    90019039    or word [bp-00ah], ax                     ; 09 46 f6
     
    90049042    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    90059043    mov ax, strict word 00063h                ; b8 63 00
    9006     call 0165ch                               ; e8 19 b1
     9044    call 0165ch                               ; e8 25 b1
    90079045    mov byte [bp-004h], al                    ; 88 46 fc
    90089046    mov byte [bp-006h], al                    ; 88 46 fa
    90099047    mov ax, word [bp+014h]                    ; 8b 46 14
    90109048    cmp ax, strict word 00007h                ; 3d 07 00
    9011     jnbe near 0670bh                          ; 0f 87 b8 01
     9049    jnbe near 066ffh                          ; 0f 87 b8 01
    90129050    mov si, ax                                ; 89 c6
    90139051    add si, ax                                ; 01 c6
     
    90169054    mov ax, dx                                ; 89 d0
    90179055    adc ax, strict word 0ffffh                ; 15 ff ff
    9018     jmp word [cs:si+063adh]                   ; 2e ff a4 ad 63
     9056    jmp word [cs:si+063a1h]                   ; 2e ff a4 a1 63
    90199057    push strict byte 00001h                   ; 6a 01
    90209058    push dword 000000000h                     ; 66 6a 00
     
    90259063    xor bx, bx                                ; 31 db
    90269064    xor cx, cx                                ; 31 c9
    9027     call 05e64h                               ; e8 e7 f8
     9065    call 05e58h                               ; e8 e7 f8
    90289066    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9029     jmp near 066aah                           ; e9 22 01
     9067    jmp near 0669eh                           ; e9 22 01
    90309068    push strict byte 00002h                   ; 6a 02
    90319069    push dword 000000000h                     ; 66 6a 00
     
    90369074    mov bx, 0fc00h                            ; bb 00 fc
    90379075    mov cx, strict word 00009h                ; b9 09 00
    9038     call 05e64h                               ; e8 c4 f8
     9076    call 05e58h                               ; e8 c4 f8
    90399077    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9040     jmp near 066aah                           ; e9 ff 00
     9078    jmp near 0669eh                           ; e9 ff 00
    90419079    push strict byte 00002h                   ; 6a 02
    90429080    push dword 000000000h                     ; 66 6a 00
     
    90479085    xor bx, bx                                ; 31 db
    90489086    mov cx, strict word 0000fh                ; b9 0f 00
    9049     call 05e64h                               ; e8 a2 f8
     9087    call 05e58h                               ; e8 a2 f8
    90509088    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9051     jmp near 066aah                           ; e9 dd 00
     9089    jmp near 0669eh                           ; e9 dd 00
    90529090    push strict byte 00001h                   ; 6a 01
    90539091    push dword 000000000h                     ; 66 6a 00
     
    90589096    xor bx, bx                                ; 31 db
    90599097    mov cx, strict word 00010h                ; b9 10 00
    9060     call 05e64h                               ; e8 82 f8
     9098    call 05e58h                               ; e8 82 f8
    90619099    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9062     jmp near 066aah                           ; e9 bd 00
     9100    jmp near 0669eh                           ; e9 bd 00
    90639101    push strict byte 00003h                   ; 6a 03
    90649102    push dword 000000000h                     ; 66 6a 00
     
    90709108    mov cx, ax                                ; 89 c1
    90719109    mov ax, si                                ; 89 f0
    9072     call 05e64h                               ; e8 61 f8
     9110    call 05e58h                               ; e8 61 f8
    90739111    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9074     jmp near 066aah                           ; e9 9c 00
     9112    jmp near 0669eh                           ; e9 9c 00
    90759113    push strict byte 00002h                   ; 6a 02
    90769114    push dword 000000000h                     ; 66 6a 00
     
    90809118    xor bx, bx                                ; 31 db
    90819119    mov cx, strict word 0fffch                ; b9 fc ff
    9082     call 05e64h                               ; e8 40 f8
     9120    call 05e58h                               ; e8 40 f8
    90839121    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9084     jne short 06631h                          ; 75 07
     9122    jne short 06625h                          ; 75 07
    90859123    mov ax, word [bp-008h]                    ; 8b 46 f8
    90869124    test ax, ax                               ; 85 c0
    9087     je short 06645h                           ; 74 14
     9125    je short 06639h                           ; 74 14
    90889126    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9089     jmp short 066aah                          ; eb 6f
     9127    jmp short 0669eh                          ; eb 6f
    90909128    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9091     jmp short 066aah                          ; eb 65
     9129    jmp short 0669eh                          ; eb 65
    90929130    mov word [bp+014h], ax                    ; 89 46 14
    90939131    mov word [bp+016h], ax                    ; 89 46 16
    9094     jmp short 066aah                          ; eb 5d
     9132    jmp short 0669eh                          ; eb 5d
    90959133    push strict byte 00002h                   ; 6a 02
    90969134    push dword 000000000h                     ; 66 6a 00
     
    91009138    xor bx, bx                                ; 31 db
    91019139    xor cx, cx                                ; 31 c9
    9102     call 05e64h                               ; e8 02 f8
     9140    call 05e58h                               ; e8 02 f8
    91039141    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9104     jne short 0666fh                          ; 75 07
     9142    jne short 06663h                          ; 75 07
    91059143    mov ax, word [bp-008h]                    ; 8b 46 f8
    91069144    test ax, ax                               ; 85 c0
    9107     je short 06671h                           ; 74 02
    9108     jmp short 06631h                          ; eb c0
     9145    je short 06665h                           ; 74 02
     9146    jmp short 06625h                          ; eb c0
    91099147    mov word [bp+014h], ax                    ; 89 46 14
    91109148    mov word [bp+016h], ax                    ; 89 46 16
    9111     jmp short 066aah                          ; eb 31
     9149    jmp short 0669eh                          ; eb 31
    91129150    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9113     jne short 06685h                          ; 75 06
     9151    jne short 06679h                          ; 75 06
    91149152    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9115     je short 066aah                           ; 74 25
     9153    je short 0669eh                           ; 74 25
    91169154    push strict byte 00001h                   ; 6a 01
    91179155    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    91269164    xor bx, bx                                ; 31 db
    91279165    xor cx, cx                                ; 31 c9
    9128     call 05e64h                               ; e8 c2 f7
     9166    call 05e58h                               ; e8 c2 f7
    91299167    xor ax, ax                                ; 31 c0
    91309168    mov word [bp+014h], ax                    ; 89 46 14
     
    91339171    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    91349172    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9135     jmp short 06735h                          ; eb 75
     9173    jmp short 06729h                          ; eb 75
    91369174    mov word [bp+028h], bx                    ; 89 5e 28
    91379175    mov ax, strict word 00031h                ; b8 31 00
    9138     call 0165ch                               ; e8 93 af
     9176    call 0165ch                               ; e8 9f af
    91399177    movzx dx, al                              ; 0f b6 d0
    91409178    sal dx, 008h                              ; c1 e2 08
    91419179    mov ax, strict word 00030h                ; b8 30 00
    9142     call 0165ch                               ; e8 87 af
     9180    call 0165ch                               ; e8 93 af
    91439181    xor ah, ah                                ; 30 e4
    91449182    or dx, ax                                 ; 09 c2
    91459183    mov word [bp+01ch], dx                    ; 89 56 1c
    91469184    cmp dx, 03c00h                            ; 81 fa 00 3c
    9147     jbe short 066e7h                          ; 76 05
     9185    jbe short 066dbh                          ; 76 05
    91489186    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    91499187    mov ax, strict word 00035h                ; b8 35 00
    9150     call 0165ch                               ; e8 6f af
     9188    call 0165ch                               ; e8 7b af
    91519189    movzx dx, al                              ; 0f b6 d0
    91529190    sal dx, 008h                              ; c1 e2 08
    91539191    mov ax, strict word 00034h                ; b8 34 00
    9154     call 0165ch                               ; e8 63 af
     9192    call 0165ch                               ; e8 6f af
    91559193    xor ah, ah                                ; 30 e4
    91569194    or dx, ax                                 ; 09 c2
     
    91599197    mov word [bp+020h], ax                    ; 89 46 20
    91609198    mov word [bp+014h], dx                    ; 89 56 14
    9161     jmp short 06735h                          ; eb 2a
    9162     mov bx, 00d38h                            ; bb 38 0d
     9199    jmp short 06729h                          ; eb 2a
     9200    mov bx, 00da8h                            ; bb a8 0d
    91639201    mov cx, ds                                ; 8c d9
    91649202    mov ax, strict word 00004h                ; b8 04 00
    9165     call 018cch                               ; e8 b6 b1
     9203    call 018cch                               ; e8 c2 b1
    91669204    push word [bp+014h]                       ; ff 76 14
    91679205    push word [bp+020h]                       ; ff 76 20
    9168     push 0084ch                               ; 68 4c 08
     9206    push 008bch                               ; 68 bc 08
    91699207    push strict byte 00004h                   ; 6a 04
    9170     call 0190dh                               ; e8 e9 b1
     9208    call 0190dh                               ; e8 f5 b1
    91719209    add sp, strict byte 00008h                ; 83 c4 08
    91729210    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    91799217    pop bp                                    ; 5d
    91809218    retn                                      ; c3
    9181 init_rtc_:                                   ; 0xf673b LB 0x28
     9219init_rtc_:                                   ; 0xf672f LB 0x28
    91829220    push bp                                   ; 55
    91839221    mov bp, sp                                ; 89 e5
     
    91859223    mov dx, strict word 00026h                ; ba 26 00
    91869224    mov ax, strict word 0000ah                ; b8 0a 00
    9187     call 01670h                               ; e8 28 af
     9225    call 01670h                               ; e8 34 af
    91889226    mov dx, strict word 00002h                ; ba 02 00
    91899227    mov ax, strict word 0000bh                ; b8 0b 00
    9190     call 01670h                               ; e8 1f af
     9228    call 01670h                               ; e8 2b af
    91919229    mov ax, strict word 0000ch                ; b8 0c 00
    9192     call 0165ch                               ; e8 05 af
     9230    call 0165ch                               ; e8 11 af
    91939231    mov ax, strict word 0000dh                ; b8 0d 00
    9194     call 0165ch                               ; e8 ff ae
     9232    call 0165ch                               ; e8 0b af
    91959233    lea sp, [bp-002h]                         ; 8d 66 fe
    91969234    pop dx                                    ; 5a
    91979235    pop bp                                    ; 5d
    91989236    retn                                      ; c3
    9199 rtc_updating_:                               ; 0xf6763 LB 0x21
     9237rtc_updating_:                               ; 0xf6757 LB 0x21
    92009238    push bp                                   ; 55
    92019239    mov bp, sp                                ; 89 e5
     
    92039241    mov dx, 061a8h                            ; ba a8 61
    92049242    dec dx                                    ; 4a
    9205     je short 0677bh                           ; 74 0e
     9243    je short 0676fh                           ; 74 0e
    92069244    mov ax, strict word 0000ah                ; b8 0a 00
    9207     call 0165ch                               ; e8 e9 ae
     9245    call 0165ch                               ; e8 f5 ae
    92089246    test AL, strict byte 080h                 ; a8 80
    9209     jne short 0676ah                          ; 75 f3
     9247    jne short 0675eh                          ; 75 f3
    92109248    xor ax, ax                                ; 31 c0
    9211     jmp short 0677eh                          ; eb 03
     9249    jmp short 06772h                          ; eb 03
    92129250    mov ax, strict word 00001h                ; b8 01 00
    92139251    lea sp, [bp-002h]                         ; 8d 66 fe
     
    92159253    pop bp                                    ; 5d
    92169254    retn                                      ; c3
    9217 _int70_function:                             ; 0xf6784 LB 0xbe
     9255_int70_function:                             ; 0xf6778 LB 0xbe
    92189256    push bp                                   ; 55
    92199257    mov bp, sp                                ; 89 e5
     
    92219259    push ax                                   ; 50
    92229260    mov ax, strict word 0000bh                ; b8 0b 00
    9223     call 0165ch                               ; e8 cd ae
     9261    call 0165ch                               ; e8 d9 ae
    92249262    mov dl, al                                ; 88 c2
    92259263    mov byte [bp-004h], al                    ; 88 46 fc
    92269264    mov ax, strict word 0000ch                ; b8 0c 00
    9227     call 0165ch                               ; e8 c2 ae
     9265    call 0165ch                               ; e8 ce ae
    92289266    mov dh, al                                ; 88 c6
    92299267    test dl, 060h                             ; f6 c2 60
    9230     je near 06829h                            ; 0f 84 86 00
     9268    je near 0681dh                            ; 0f 84 86 00
    92319269    test AL, strict byte 020h                 ; a8 20
    9232     je short 067abh                           ; 74 04
     9270    je short 0679fh                           ; 74 04
    92339271    sti                                       ; fb
    92349272    int 04ah                                  ; cd 4a
    92359273    cli                                       ; fa
    92369274    test dh, 040h                             ; f6 c6 40
    9237     je near 06829h                            ; 0f 84 77 00
     9275    je near 0681dh                            ; 0f 84 77 00
    92389276    mov dx, 000a0h                            ; ba a0 00
    92399277    mov ax, strict word 00040h                ; b8 40 00
    9240     call 01600h                               ; e8 45 ae
     9278    call 01600h                               ; e8 51 ae
    92419279    test al, al                               ; 84 c0
    9242     je short 06829h                           ; 74 6a
     9280    je short 0681dh                           ; 74 6a
    92439281    mov dx, 0009ch                            ; ba 9c 00
    92449282    mov ax, strict word 00040h                ; b8 40 00
    9245     call 01638h                               ; e8 70 ae
     9283    call 01638h                               ; e8 7c ae
    92469284    test dx, dx                               ; 85 d2
    9247     jne short 06815h                          ; 75 49
     9285    jne short 06809h                          ; 75 49
    92489286    cmp ax, 003d1h                            ; 3d d1 03
    9249     jnc short 06815h                          ; 73 44
     9287    jnc short 06809h                          ; 73 44
    92509288    mov dx, 00098h                            ; ba 98 00
    92519289    mov ax, strict word 00040h                ; b8 40 00
    9252     call 0161ch                               ; e8 42 ae
     9290    call 0161ch                               ; e8 4e ae
    92539291    mov si, ax                                ; 89 c6
    92549292    mov dx, 0009ah                            ; ba 9a 00
    92559293    mov ax, strict word 00040h                ; b8 40 00
    9256     call 0161ch                               ; e8 37 ae
     9294    call 0161ch                               ; e8 43 ae
    92579295    mov cx, ax                                ; 89 c1
    92589296    xor bx, bx                                ; 31 db
    92599297    mov dx, 000a0h                            ; ba a0 00
    92609298    mov ax, strict word 00040h                ; b8 40 00
    9261     call 0160eh                               ; e8 1c ae
     9299    call 0160eh                               ; e8 28 ae
    92629300    mov al, byte [bp-004h]                    ; 8a 46 fc
    92639301    and AL, strict byte 037h                  ; 24 37
    92649302    movzx dx, al                              ; 0f b6 d0
    92659303    mov ax, strict word 0000bh                ; b8 0b 00
    9266     call 01670h                               ; e8 70 ae
     9304    call 01670h                               ; e8 7c ae
    92679305    mov dx, cx                                ; 89 ca
    92689306    mov ax, si                                ; 89 f0
    9269     call 01600h                               ; e8 f9 ad
     9307    call 01600h                               ; e8 05 ae
    92709308    or AL, strict byte 080h                   ; 0c 80
    92719309    movzx bx, al                              ; 0f b6 d8
    92729310    mov dx, cx                                ; 89 ca
    92739311    mov ax, si                                ; 89 f0
    9274     call 0160eh                               ; e8 fb ad
    9275     jmp short 06829h                          ; eb 14
     9312    call 0160eh                               ; e8 07 ae
     9313    jmp short 0681dh                          ; eb 14
    92769314    mov bx, ax                                ; 89 c3
    92779315    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    92809318    mov dx, 0009ch                            ; ba 9c 00
    92819319    mov ax, strict word 00040h                ; b8 40 00
    9282     call 0164ah                               ; e8 21 ae
    9283     call 0e03bh                               ; e8 0f 78
     9320    call 0164ah                               ; e8 2d ae
     9321    call 0e03bh                               ; e8 1b 78
    92849322    lea sp, [bp-002h]                         ; 8d 66 fe
    92859323    pop si                                    ; 5e
    92869324    pop bp                                    ; 5d
    92879325    retn                                      ; c3
    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
     9326    dec bp                                    ; 4d
     9327    push 06876h                               ; 68 76 68
     9328    wait                                      ; 9b
     9329    push 068cdh                               ; 68 cd 68
     9330    sbb AL, strict byte 069h                  ; 1c 69
     9331    push sp                                   ; 54
    92939332    db  069h
    9294     mov word [0fa69h], ax                     ; a3 69 fa
     9333    xchg di, ax                               ; 97
    92959334    db  069h
    9296 _int1a_function:                             ; 0xf6842 LB 0x1c8
     9335    out DX, AL                                ; ee
     9336    db  069h
     9337_int1a_function:                             ; 0xf6836 LB 0x1c8
    92979338    push bp                                   ; 55
    92989339    mov bp, sp                                ; 89 e5
     
    93009341    mov al, byte [bp+013h]                    ; 8a 46 13
    93019342    cmp AL, strict byte 007h                  ; 3c 07
    9302     jnbe near 0687eh                          ; 0f 87 2f 00
     9343    jnbe near 06872h                          ; 0f 87 2f 00
    93039344    movzx bx, al                              ; 0f b6 d8
    93049345    add bx, bx                                ; 01 db
    9305     jmp word [cs:bx+06832h]                   ; 2e ff a7 32 68
     9346    jmp word [cs:bx+06826h]                   ; 2e ff a7 26 68
    93069347    cli                                       ; fa
    93079348    mov bx, 0046eh                            ; bb 6e 04
     
    93349375    sti                                       ; fb
    93359376    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9336     jmp short 0687eh                          ; eb d7
    9337     call 06763h                               ; e8 b9 fe
     9377    jmp short 06872h                          ; eb d7
     9378    call 06757h                               ; e8 b9 fe
    93389379    test ax, ax                               ; 85 c0
    9339     je short 068b0h                           ; 74 02
    9340     jmp short 0687eh                          ; eb ce
     9380    je short 068a4h                           ; 74 02
     9381    jmp short 06872h                          ; eb ce
    93419382    xor ax, ax                                ; 31 c0
    9342     call 0165ch                               ; e8 a7 ad
     9383    call 0165ch                               ; e8 b3 ad
    93439384    mov byte [bp+00fh], al                    ; 88 46 0f
    93449385    mov ax, strict word 00002h                ; b8 02 00
    9345     call 0165ch                               ; e8 9e ad
     9386    call 0165ch                               ; e8 aa ad
    93469387    mov byte [bp+010h], al                    ; 88 46 10
    93479388    mov ax, strict word 00004h                ; b8 04 00
    9348     call 0165ch                               ; e8 95 ad
     9389    call 0165ch                               ; e8 a1 ad
    93499390    mov bl, al                                ; 88 c3
    93509391    mov byte [bp+011h], al                    ; 88 46 11
    93519392    mov ax, strict word 0000bh                ; b8 0b 00
    9352     call 0165ch                               ; e8 8a ad
     9393    call 0165ch                               ; e8 96 ad
    93539394    and AL, strict byte 001h                  ; 24 01
    93549395    mov byte [bp+00eh], al                    ; 88 46 0e
    9355     jmp short 0691eh                          ; eb 45
    9356     call 06763h                               ; e8 87 fe
     9396    jmp short 06912h                          ; eb 45
     9397    call 06757h                               ; e8 87 fe
    93579398    test ax, ax                               ; 85 c0
    9358     je short 068e3h                           ; 74 03
    9359     call 0673bh                               ; e8 58 fe
     9399    je short 068d7h                           ; 74 03
     9400    call 0672fh                               ; e8 58 fe
    93609401    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    93619402    xor ax, ax                                ; 31 c0
    9362     call 01670h                               ; e8 84 ad
     9403    call 01670h                               ; e8 90 ad
    93639404    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    93649405    mov ax, strict word 00002h                ; b8 02 00
    9365     call 01670h                               ; e8 7a ad
     9406    call 01670h                               ; e8 86 ad
    93669407    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    93679408    mov ax, strict word 00004h                ; b8 04 00
    9368     call 01670h                               ; e8 70 ad
     9409    call 01670h                               ; e8 7c ad
    93699410    mov ax, strict word 0000bh                ; b8 0b 00
    9370     call 0165ch                               ; e8 56 ad
     9411    call 0165ch                               ; e8 62 ad
    93719412    mov bl, al                                ; 88 c3
    93729413    and bl, 060h                              ; 80 e3 60
     
    93779418    movzx dx, bl                              ; 0f b6 d3
    93789419    mov ax, strict word 0000bh                ; b8 0b 00
    9379     call 01670h                               ; e8 52 ad
     9420    call 01670h                               ; e8 5e ad
    93809421    mov byte [bp+013h], 000h                  ; c6 46 13 00
    93819422    mov byte [bp+012h], bl                    ; 88 5e 12
    9382     jmp near 0687eh                           ; e9 56 ff
     9423    jmp near 06872h                           ; e9 56 ff
    93839424    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9384     call 06763h                               ; e8 34 fe
     9425    call 06757h                               ; e8 34 fe
    93859426    test ax, ax                               ; 85 c0
    9386     je short 06936h                           ; 74 03
    9387     jmp near 0687eh                           ; e9 48 ff
     9427    je short 0692ah                           ; 74 03
     9428    jmp near 06872h                           ; e9 48 ff
    93889429    mov ax, strict word 00009h                ; b8 09 00
    9389     call 0165ch                               ; e8 20 ad
     9430    call 0165ch                               ; e8 2c ad
    93909431    mov byte [bp+010h], al                    ; 88 46 10
    93919432    mov ax, strict word 00008h                ; b8 08 00
    9392     call 0165ch                               ; e8 17 ad
     9433    call 0165ch                               ; e8 23 ad
    93939434    mov byte [bp+00fh], al                    ; 88 46 0f
    93949435    mov ax, strict word 00007h                ; b8 07 00
    9395     call 0165ch                               ; e8 0e ad
     9436    call 0165ch                               ; e8 1a ad
    93969437    mov byte [bp+00eh], al                    ; 88 46 0e
    93979438    mov ax, strict word 00032h                ; b8 32 00
    9398     call 0165ch                               ; e8 05 ad
     9439    call 0165ch                               ; e8 11 ad
    93999440    mov byte [bp+011h], al                    ; 88 46 11
    94009441    mov byte [bp+012h], al                    ; 88 46 12
    9401     jmp near 0687eh                           ; e9 1e ff
    9402     call 06763h                               ; e8 00 fe
     9442    jmp near 06872h                           ; e9 1e ff
     9443    call 06757h                               ; e8 00 fe
    94039444    test ax, ax                               ; 85 c0
    9404     je short 0696dh                           ; 74 06
    9405     call 0673bh                               ; e8 d1 fd
    9406     jmp near 0687eh                           ; e9 11 ff
     9445    je short 06961h                           ; 74 06
     9446    call 0672fh                               ; e8 d1 fd
     9447    jmp near 06872h                           ; e9 11 ff
    94079448    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    94089449    mov ax, strict word 00009h                ; b8 09 00
    9409     call 01670h                               ; e8 f9 ac
     9450    call 01670h                               ; e8 05 ad
    94109451    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    94119452    mov ax, strict word 00008h                ; b8 08 00
    9412     call 01670h                               ; e8 ef ac
     9453    call 01670h                               ; e8 fb ac
    94139454    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    94149455    mov ax, strict word 00007h                ; b8 07 00
    9415     call 01670h                               ; e8 e5 ac
     9456    call 01670h                               ; e8 f1 ac
    94169457    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    94179458    mov ax, strict word 00032h                ; b8 32 00
    9418     call 01670h                               ; e8 db ac
     9459    call 01670h                               ; e8 e7 ac
    94199460    mov ax, strict word 0000bh                ; b8 0b 00
    9420     call 0165ch                               ; e8 c1 ac
     9461    call 0165ch                               ; e8 cd ac
    94219462    mov bl, al                                ; 88 c3
    94229463    and bl, 07fh                              ; 80 e3 7f
    9423     jmp near 06915h                           ; e9 72 ff
     9464    jmp near 06909h                           ; e9 72 ff
    94249465    mov ax, strict word 0000bh                ; b8 0b 00
    9425     call 0165ch                               ; e8 b3 ac
     9466    call 0165ch                               ; e8 bf ac
    94269467    mov bl, al                                ; 88 c3
    94279468    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    94289469    test AL, strict byte 020h                 ; a8 20
    9429     je short 069b7h                           ; 74 03
    9430     jmp near 0687eh                           ; e9 c7 fe
    9431     call 06763h                               ; e8 a9 fd
     9470    je short 069abh                           ; 74 03
     9471    jmp near 06872h                           ; e9 c7 fe
     9472    call 06757h                               ; e8 a9 fd
    94329473    test ax, ax                               ; 85 c0
    9433     je short 069c1h                           ; 74 03
    9434     call 0673bh                               ; e8 7a fd
     9474    je short 069b5h                           ; 74 03
     9475    call 0672fh                               ; e8 7a fd
    94359476    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    94369477    mov ax, strict word 00001h                ; b8 01 00
    9437     call 01670h                               ; e8 a5 ac
     9478    call 01670h                               ; e8 b1 ac
    94389479    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    94399480    mov ax, strict word 00003h                ; b8 03 00
    9440     call 01670h                               ; e8 9b ac
     9481    call 01670h                               ; e8 a7 ac
    94419482    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    94429483    mov ax, strict word 00005h                ; b8 05 00
    9443     call 01670h                               ; e8 91 ac
     9484    call 01670h                               ; e8 9d ac
    94449485    mov dx, 000a1h                            ; ba a1 00
    94459486    in AL, DX                                 ; ec
     
    94539494    movzx dx, al                              ; 0f b6 d0
    94549495    mov ax, strict word 0000bh                ; b8 0b 00
    9455     call 01670h                               ; e8 79 ac
    9456     jmp near 0687eh                           ; e9 84 fe
     9496    call 01670h                               ; e8 85 ac
     9497    jmp near 06872h                           ; e9 84 fe
    94579498    mov ax, strict word 0000bh                ; b8 0b 00
    9458     call 0165ch                               ; e8 5c ac
     9499    call 0165ch                               ; e8 68 ac
    94599500    mov bl, al                                ; 88 c3
    94609501    and AL, strict byte 057h                  ; 24 57
    94619502    movzx dx, al                              ; 0f b6 d0
    9462     jmp near 06918h                           ; e9 0e ff
    9463 send_to_mouse_ctrl_:                         ; 0xf6a0a LB 0x34
     9503    jmp near 0690ch                           ; e9 0e ff
     9504send_to_mouse_ctrl_:                         ; 0xf69fe LB 0x34
    94649505    push bp                                   ; 55
    94659506    mov bp, sp                                ; 89 e5
     
    94729513    ; sub ah, ah                                ; 2a e4
    94739514    test AL, strict byte 002h                 ; a8 02
    9474     je short 06a29h                           ; 74 0e
    9475     push 00886h                               ; 68 86 08
    9476     push 01100h                               ; 68 00 11
     9515    je short 06a1dh                           ; 74 0e
     9516    push 008f6h                               ; 68 f6 08
     9517    push 01170h                               ; 68 70 11
    94779518    push strict byte 00007h                   ; 6a 07
    9478     call 0190dh                               ; e8 e7 ae
     9519    call 0190dh                               ; e8 f3 ae
    94799520    add sp, strict byte 00006h                ; 83 c4 06
    94809521    mov AL, strict byte 0d4h                  ; b0 d4
     
    94909531    pop bp                                    ; 5d
    94919532    retn                                      ; c3
    9492 get_mouse_data_:                             ; 0xf6a3e LB 0x3b
     9533get_mouse_data_:                             ; 0xf6a32 LB 0x3b
    94939534    push bp                                   ; 55
    94949535    mov bp, sp                                ; 89 e5
     
    95049545    and ax, strict word 00021h                ; 25 21 00
    95059546    cmp ax, strict word 00021h                ; 3d 21 00
    9506     je short 06a5fh                           ; 74 07
     9547    je short 06a53h                           ; 74 07
    95079548    test cx, cx                               ; 85 c9
    9508     je short 06a5fh                           ; 74 03
     9549    je short 06a53h                           ; 74 03
    95099550    dec cx                                    ; 49
    9510     jmp short 06a4ah                          ; eb eb
     9551    jmp short 06a3eh                          ; eb eb
    95119552    test cx, cx                               ; 85 c9
    9512     jne short 06a67h                          ; 75 04
     9553    jne short 06a5bh                          ; 75 04
    95139554    mov AL, strict byte 001h                  ; b0 01
    9514     jmp short 06a72h                          ; eb 0b
     9555    jmp short 06a66h                          ; eb 0b
    95159556    mov dx, strict word 00060h                ; ba 60 00
    95169557    in AL, DX                                 ; ec
     
    95249565    pop bp                                    ; 5d
    95259566    retn                                      ; c3
    9526 set_kbd_command_byte_:                       ; 0xf6a79 LB 0x32
     9567set_kbd_command_byte_:                       ; 0xf6a6d LB 0x32
    95279568    push bp                                   ; 55
    95289569    mov bp, sp                                ; 89 e5
     
    95359576    ; sub ah, ah                                ; 2a e4
    95369577    test AL, strict byte 002h                 ; a8 02
    9537     je short 06a98h                           ; 74 0e
    9538     push 00890h                               ; 68 90 08
    9539     push 01100h                               ; 68 00 11
     9578    je short 06a8ch                           ; 74 0e
     9579    push 00900h                               ; 68 00 09
     9580    push 01170h                               ; 68 70 11
    95409581    push strict byte 00007h                   ; 6a 07
    9541     call 0190dh                               ; e8 78 ae
     9582    call 0190dh                               ; e8 84 ae
    95429583    add sp, strict byte 00006h                ; 83 c4 06
    95439584    mov AL, strict byte 060h                  ; b0 60
     
    95529593    pop bp                                    ; 5d
    95539594    retn                                      ; c3
    9554 _int74_function:                             ; 0xf6aab LB 0xca
     9595_int74_function:                             ; 0xf6a9f LB 0xca
    95559596    push bp                                   ; 55
    95569597    mov bp, sp                                ; 89 e5
     
    95589599    mov dx, strict word 0000eh                ; ba 0e 00
    95599600    mov ax, strict word 00040h                ; b8 40 00
    9560     call 0161ch                               ; e8 62 ab
     9601    call 0161ch                               ; e8 6e ab
    95619602    mov cx, ax                                ; 89 c1
    95629603    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    95679608    and AL, strict byte 021h                  ; 24 21
    95689609    cmp AL, strict byte 021h                  ; 3c 21
    9569     jne near 06b61h                           ; 0f 85 92 00
     9610    jne near 06b55h                           ; 0f 85 92 00
    95709611    mov dx, strict word 00060h                ; ba 60 00
    95719612    in AL, DX                                 ; ec
     
    95759616    mov dx, strict word 00026h                ; ba 26 00
    95769617    mov ax, cx                                ; 89 c8
    9577     call 01600h                               ; e8 21 ab
     9618    call 01600h                               ; e8 2d ab
    95789619    mov byte [bp-006h], al                    ; 88 46 fa
    95799620    mov dx, strict word 00027h                ; ba 27 00
    95809621    mov ax, cx                                ; 89 c8
    9581     call 01600h                               ; e8 16 ab
     9622    call 01600h                               ; e8 22 ab
    95829623    mov byte [bp-008h], al                    ; 88 46 f8
    95839624    test AL, strict byte 080h                 ; a8 80
    9584     je short 06b61h                           ; 74 70
     9625    je short 06b55h                           ; 74 70
    95859626    mov al, byte [bp-008h]                    ; 8a 46 f8
    95869627    and AL, strict byte 007h                  ; 24 07
     
    95939634    add dx, strict byte 00028h                ; 83 c2 28
    95949635    mov ax, cx                                ; 89 c8
    9595     call 0160eh                               ; e8 00 ab
     9636    call 0160eh                               ; e8 0c ab
    95969637    mov al, byte [bp-004h]                    ; 8a 46 fc
    95979638    cmp al, byte [bp-002h]                    ; 3a 46 fe
    9598     jc short 06b52h                           ; 72 3c
     9639    jc short 06b46h                           ; 72 3c
    95999640    mov dx, strict word 00028h                ; ba 28 00
    96009641    mov ax, cx                                ; 89 c8
    9601     call 01600h                               ; e8 e2 aa
     9642    call 01600h                               ; e8 ee aa
    96029643    xor ah, ah                                ; 30 e4
    96039644    mov word [bp+00ch], ax                    ; 89 46 0c
    96049645    mov dx, strict word 00029h                ; ba 29 00
    96059646    mov ax, cx                                ; 89 c8
    9606     call 01600h                               ; e8 d5 aa
     9647    call 01600h                               ; e8 e1 aa
    96079648    xor ah, ah                                ; 30 e4
    96089649    mov word [bp+00ah], ax                    ; 89 46 0a
    96099650    mov dx, strict word 0002ah                ; ba 2a 00
    96109651    mov ax, cx                                ; 89 c8
    9611     call 01600h                               ; e8 c8 aa
     9652    call 01600h                               ; e8 d4 aa
    96129653    xor ah, ah                                ; 30 e4
    96139654    mov word [bp+008h], ax                    ; 89 46 08
     
    96169657    mov byte [bp-006h], ah                    ; 88 66 fa
    96179658    test byte [bp-008h], 080h                 ; f6 46 f8 80
    9618     je short 06b55h                           ; 74 0a
     9659    je short 06b49h                           ; 74 0a
    96199660    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    9620     jmp short 06b55h                          ; eb 03
     9661    jmp short 06b49h                          ; eb 03
    96219662    inc byte [bp-006h]                        ; fe 46 fa
    96229663    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    96239664    mov dx, strict word 00026h                ; ba 26 00
    96249665    mov ax, cx                                ; 89 c8
    9625     call 0160eh                               ; e8 ad aa
     9666    call 0160eh                               ; e8 b9 aa
    96269667    mov sp, bp                                ; 89 ec
    96279668    pop bp                                    ; 5d
    96289669    retn                                      ; c3
    9629     mov cx, 02f6bh                            ; b9 6b 2f
     9670    lodsw                                     ; ad
     9671    imul sp, word [bp+di], strict byte 0006ch ; 6b 23 6c
     9672    cmpsb                                     ; a6
    96309673    insb                                      ; 6c
    9631     mov DL, strict byte 06ch                  ; b2 6c
    9632     inc bx                                    ; 43
     9674    aaa                                       ; 37
    96339675    insw                                      ; 6d
    9634     mov CL, strict byte 06dh                  ; b1 6d
    9635     add ax, 0d96ch                            ; 05 6c d9
     9676    movsw                                     ; a5
    96369677    insw                                      ; 6d
    9637     sahf                                      ; 9e
     9678    stc                                       ; f9
     9679    imul cx, bp, strict byte 0006dh           ; 6b cd 6d
     9680    xchg dx, ax                               ; 92
    96389681    outsb                                     ; 6e
    9639 _int15_function_mouse:                       ; 0xf6b75 LB 0x38b
     9682_int15_function_mouse:                       ; 0xf6b69 LB 0x38b
    96409683    push bp                                   ; 55
    96419684    mov bp, sp                                ; 89 e5
     
    96449687    mov dx, strict word 0000eh                ; ba 0e 00
    96459688    mov ax, strict word 00040h                ; b8 40 00
    9646     call 0161ch                               ; e8 97 aa
     9689    call 0161ch                               ; e8 a3 aa
    96479690    mov cx, ax                                ; 89 c1
    96489691    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    9649     jbe short 06b98h                          ; 76 0b
     9692    jbe short 06b8ch                          ; 76 0b
    96509693    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    96519694    mov byte [bp+013h], 001h                  ; c6 46 13 01
    9652     jmp near 06efah                           ; e9 62 03
     9695    jmp near 06eeeh                           ; e9 62 03
    96539696    mov ax, strict word 00065h                ; b8 65 00
    9654     call 06a79h                               ; e8 db fe
     9697    call 06a6dh                               ; e8 db fe
    96559698    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    96569699    mov byte [bp+013h], 000h                  ; c6 46 13 00
    96579700    mov al, byte [bp+012h]                    ; 8a 46 12
    96589701    cmp AL, strict byte 007h                  ; 3c 07
    9659     jnbe near 06ee1h                          ; 0f 87 32 03
     9702    jnbe near 06ed5h                          ; 0f 87 32 03
    96609703    movzx si, al                              ; 0f b6 f0
    96619704    add si, si                                ; 01 f6
    9662     jmp word [cs:si+06b65h]                   ; 2e ff a4 65 6b
     9705    jmp word [cs:si+06b59h]                   ; 2e ff a4 59 6b
    96639706    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    9664     jnbe near 06eech                          ; 0f 87 2b 03
     9707    jnbe near 06ee0h                          ; 0f 87 2b 03
    96659708    mov dx, strict word 00027h                ; ba 27 00
    96669709    mov ax, cx                                ; 89 c8
    9667     call 01600h                               ; e8 37 aa
     9710    call 01600h                               ; e8 43 aa
    96689711    test AL, strict byte 080h                 ; a8 80
    9669     jne short 06bd8h                          ; 75 0b
     9712    jne short 06bcch                          ; 75 0b
    96709713    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    96719714    mov byte [bp+013h], 005h                  ; c6 46 13 05
    9672     jmp near 06ef4h                           ; e9 1c 03
     9715    jmp near 06ee8h                           ; e9 1c 03
    96739716    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    96749717    db  00fh, 094h, 0c0h
     
    96769719    add AL, strict byte 0f4h                  ; 04 f4
    96779720    xor ah, ah                                ; 30 e4
    9678     call 06a0ah                               ; e8 24 fe
     9721    call 069feh                               ; e8 24 fe
    96799722    test al, al                               ; 84 c0
    9680     jne near 06e7ah                           ; 0f 85 8e 02
     9723    jne near 06e6eh                           ; 0f 85 8e 02
    96819724    mov dx, ss                                ; 8c d2
    96829725    lea ax, [bp-008h]                         ; 8d 46 f8
    9683     call 06a3eh                               ; e8 4a fe
     9726    call 06a32h                               ; e8 4a fe
    96849727    test al, al                               ; 84 c0
    9685     je near 06ef4h                            ; 0f 84 fa 02
     9728    je near 06ee8h                            ; 0f 84 fa 02
    96869729    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    9687     jne near 06e7ah                           ; 0f 85 78 02
    9688     jmp near 06ef4h                           ; e9 ef 02
     9730    jne near 06e6eh                           ; 0f 85 78 02
     9731    jmp near 06ee8h                           ; e9 ef 02
    96899732    mov al, byte [bp+00dh]                    ; 8a 46 0d
    96909733    cmp AL, strict byte 001h                  ; 3c 01
    9691     jc short 06c10h                           ; 72 04
     9734    jc short 06c04h                           ; 72 04
    96929735    cmp AL, strict byte 008h                  ; 3c 08
    9693     jbe short 06c13h                          ; 76 03
    9694     jmp near 06da6h                           ; e9 93 01
     9736    jbe short 06c07h                          ; 76 03
     9737    jmp near 06d9ah                           ; e9 93 01
    96959738    mov dx, strict word 00027h                ; ba 27 00
    96969739    mov ax, cx                                ; 89 c8
    9697     call 01600h                               ; e8 e5 a9
     9740    call 01600h                               ; e8 f1 a9
    96989741    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    96999742    db  0feh, 0cch
     
    97049747    mov dx, strict word 00027h                ; ba 27 00
    97059748    mov ax, cx                                ; 89 c8
    9706     call 0160eh                               ; e8 df a9
     9749    call 0160eh                               ; e8 eb a9
    97079750    mov dx, strict word 00026h                ; ba 26 00
    97089751    mov ax, cx                                ; 89 c8
    9709     call 01600h                               ; e8 c9 a9
     9752    call 01600h                               ; e8 d5 a9
    97109753    and AL, strict byte 0f8h                  ; 24 f8
    97119754    movzx bx, al                              ; 0f b6 d8
    97129755    mov dx, strict word 00026h                ; ba 26 00
    97139756    mov ax, cx                                ; 89 c8
    9714     call 0160eh                               ; e8 ca a9
     9757    call 0160eh                               ; e8 d6 a9
    97159758    mov ax, 000ffh                            ; b8 ff 00
    9716     call 06a0ah                               ; e8 c0 fd
     9759    call 069feh                               ; e8 c0 fd
    97179760    test al, al                               ; 84 c0
    9718     jne near 06e7ah                           ; 0f 85 2a 02
     9761    jne near 06e6eh                           ; 0f 85 2a 02
    97199762    mov dx, ss                                ; 8c d2
    97209763    lea ax, [bp-004h]                         ; 8d 46 fc
    9721     call 06a3eh                               ; e8 e6 fd
     9764    call 06a32h                               ; e8 e6 fd
    97229765    mov cl, al                                ; 88 c1
    97239766    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    9724     jne short 06c6bh                          ; 75 0b
     9767    jne short 06c5fh                          ; 75 0b
    97259768    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    97269769    mov byte [bp+013h], 004h                  ; c6 46 13 04
    9727     jmp near 06ef4h                           ; e9 89 02
     9770    jmp near 06ee8h                           ; e9 89 02
    97289771    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9729     je short 06c81h                           ; 74 10
     9772    je short 06c75h                           ; 74 10
    97309773    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    97319774    push ax                                   ; 50
    9732     push 0089bh                               ; 68 9b 08
     9775    push 0090bh                               ; 68 0b 09
    97339776    push strict byte 00007h                   ; 6a 07
    9734     call 0190dh                               ; e8 8f ac
     9777    call 0190dh                               ; e8 9b ac
    97359778    add sp, strict byte 00006h                ; 83 c4 06
    97369779    test cl, cl                               ; 84 c9
    9737     jne near 06e7ah                           ; 0f 85 f3 01
     9780    jne near 06e6eh                           ; 0f 85 f3 01
    97389781    mov dx, ss                                ; 8c d2
    97399782    lea ax, [bp-008h]                         ; 8d 46 f8
    9740     call 06a3eh                               ; e8 af fd
     9783    call 06a32h                               ; e8 af fd
    97419784    test al, al                               ; 84 c0
    9742     jne near 06e7ah                           ; 0f 85 e5 01
     9785    jne near 06e6eh                           ; 0f 85 e5 01
    97439786    mov dx, ss                                ; 8c d2
    97449787    lea ax, [bp-006h]                         ; 8d 46 fa
    9745     call 06a3eh                               ; e8 a1 fd
     9788    call 06a32h                               ; e8 a1 fd
    97469789    test al, al                               ; 84 c0
    9747     jne near 06e7ah                           ; 0f 85 d7 01
     9790    jne near 06e6eh                           ; 0f 85 d7 01
    97489791    mov al, byte [bp-008h]                    ; 8a 46 f8
    97499792    mov byte [bp+00ch], al                    ; 88 46 0c
    97509793    mov al, byte [bp-006h]                    ; 8a 46 fa
    97519794    mov byte [bp+00dh], al                    ; 88 46 0d
    9752     jmp near 06ef4h                           ; e9 42 02
     9795    jmp near 06ee8h                           ; e9 42 02
    97539796    mov al, byte [bp+00dh]                    ; 8a 46 0d
    97549797    cmp AL, strict byte 003h                  ; 3c 03
    9755     jc short 06cc9h                           ; 72 10
    9756     jbe short 06ce7h                          ; 76 2c
     9798    jc short 06cbdh                           ; 72 10
     9799    jbe short 06cdbh                          ; 76 2c
    97579800    cmp AL, strict byte 006h                  ; 3c 06
    9758     je short 06cf9h                           ; 74 3a
     9801    je short 06cedh                           ; 74 3a
    97599802    cmp AL, strict byte 005h                  ; 3c 05
    9760     je short 06cf3h                           ; 74 30
     9803    je short 06ce7h                           ; 74 30
    97619804    cmp AL, strict byte 004h                  ; 3c 04
    9762     je short 06cedh                           ; 74 26
    9763     jmp short 06cffh                          ; eb 36
     9805    je short 06ce1h                           ; 74 26
     9806    jmp short 06cf3h                          ; eb 36
    97649807    cmp AL, strict byte 002h                  ; 3c 02
    9765     je short 06ce1h                           ; 74 14
     9808    je short 06cd5h                           ; 74 14
    97669809    cmp AL, strict byte 001h                  ; 3c 01
    9767     je short 06cdbh                           ; 74 0a
     9810    je short 06ccfh                           ; 74 0a
    97689811    test al, al                               ; 84 c0
    9769     jne short 06cffh                          ; 75 2a
     9812    jne short 06cf3h                          ; 75 2a
    97709813    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    9771     jmp short 06d03h                          ; eb 28
     9814    jmp short 06cf7h                          ; eb 28
    97729815    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    9773     jmp short 06d03h                          ; eb 22
     9816    jmp short 06cf7h                          ; eb 22
    97749817    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    9775     jmp short 06d03h                          ; eb 1c
     9818    jmp short 06cf7h                          ; eb 1c
    97769819    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    9777     jmp short 06d03h                          ; eb 16
     9820    jmp short 06cf7h                          ; eb 16
    97789821    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    9779     jmp short 06d03h                          ; eb 10
     9822    jmp short 06cf7h                          ; eb 10
    97809823    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    9781     jmp short 06d03h                          ; eb 0a
     9824    jmp short 06cf7h                          ; eb 0a
    97829825    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    9783     jmp short 06d03h                          ; eb 04
     9826    jmp short 06cf7h                          ; eb 04
    97849827    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    97859828    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    9786     jbe short 06d38h                          ; 76 2f
     9829    jbe short 06d2ch                          ; 76 2f
    97879830    mov ax, 000f3h                            ; b8 f3 00
    9788     call 06a0ah                               ; e8 fb fc
     9831    call 069feh                               ; e8 fb fc
    97899832    test al, al                               ; 84 c0
    9790     jne short 06d2dh                          ; 75 1a
     9833    jne short 06d21h                          ; 75 1a
    97919834    mov dx, ss                                ; 8c d2
    97929835    lea ax, [bp-006h]                         ; 8d 46 fa
    9793     call 06a3eh                               ; e8 23 fd
     9836    call 06a32h                               ; e8 23 fd
    97949837    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    9795     call 06a0ah                               ; e8 e8 fc
     9838    call 069feh                               ; e8 e8 fc
    97969839    mov dx, ss                                ; 8c d2
    97979840    lea ax, [bp-006h]                         ; 8d 46 fa
    9798     call 06a3eh                               ; e8 14 fd
    9799     jmp near 06ef4h                           ; e9 c7 01
     9841    call 06a32h                               ; e8 14 fd
     9842    jmp near 06ee8h                           ; e9 c7 01
    98009843    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    98019844    mov byte [bp+013h], 003h                  ; c6 46 13 03
    9802     jmp near 06ef4h                           ; e9 bc 01
     9845    jmp near 06ee8h                           ; e9 bc 01
    98039846    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    98049847    mov byte [bp+013h], 002h                  ; c6 46 13 02
    9805     jmp near 06ef4h                           ; e9 b1 01
     9848    jmp near 06ee8h                           ; e9 b1 01
    98069849    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    9807     jnc short 06da6h                          ; 73 5d
     9850    jnc short 06d9ah                          ; 73 5d
    98089851    mov ax, 000e8h                            ; b8 e8 00
    9809     call 06a0ah                               ; e8 bb fc
     9852    call 069feh                               ; e8 bb fc
    98109853    test al, al                               ; 84 c0
    9811     jne short 06d9bh                          ; 75 48
     9854    jne short 06d8fh                          ; 75 48
    98129855    mov dx, ss                                ; 8c d2
    98139856    lea ax, [bp-008h]                         ; 8d 46 f8
    9814     call 06a3eh                               ; e8 e3 fc
     9857    call 06a32h                               ; e8 e3 fc
    98159858    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    9816     je short 06d71h                           ; 74 10
     9859    je short 06d65h                           ; 74 10
    98179860    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    98189861    push ax                                   ; 50
    9819     push 008c6h                               ; 68 c6 08
     9862    push 00936h                               ; 68 36 09
    98209863    push strict byte 00007h                   ; 6a 07
    9821     call 0190dh                               ; e8 9f ab
     9864    call 0190dh                               ; e8 ab ab
    98229865    add sp, strict byte 00006h                ; 83 c4 06
    98239866    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    9824     call 06a0ah                               ; e8 92 fc
     9867    call 069feh                               ; e8 92 fc
    98259868    mov dx, ss                                ; 8c d2
    98269869    lea ax, [bp-008h]                         ; 8d 46 f8
    9827     call 06a3eh                               ; e8 be fc
     9870    call 06a32h                               ; e8 be fc
    98289871    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    9829     je near 06ef4h                            ; 0f 84 6c 01
     9872    je near 06ee8h                            ; 0f 84 6c 01
    98309873    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    98319874    push ax                                   ; 50
    9832     push 008c6h                               ; 68 c6 08
     9875    push 00936h                               ; 68 36 09
    98339876    push strict byte 00007h                   ; 6a 07
    9834     call 0190dh                               ; e8 78 ab
     9877    call 0190dh                               ; e8 84 ab
    98359878    add sp, strict byte 00006h                ; 83 c4 06
    9836     jmp near 06ef4h                           ; e9 59 01
     9879    jmp near 06ee8h                           ; e9 59 01
    98379880    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    98389881    mov byte [bp+013h], 003h                  ; c6 46 13 03
    9839     jmp near 06ef4h                           ; e9 4e 01
     9882    jmp near 06ee8h                           ; e9 4e 01
    98409883    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    98419884    mov byte [bp+013h], 002h                  ; c6 46 13 02
    9842     jmp near 06ef4h                           ; e9 43 01
     9885    jmp near 06ee8h                           ; e9 43 01
    98439886    mov ax, 000f2h                            ; b8 f2 00
    9844     call 06a0ah                               ; e8 53 fc
     9887    call 069feh                               ; e8 53 fc
    98459888    test al, al                               ; 84 c0
    9846     jne short 06dceh                          ; 75 13
     9889    jne short 06dc2h                          ; 75 13
    98479890    mov dx, ss                                ; 8c d2
    98489891    lea ax, [bp-008h]                         ; 8d 46 f8
    9849     call 06a3eh                               ; e8 7b fc
     9892    call 06a32h                               ; e8 7b fc
    98509893    mov dx, ss                                ; 8c d2
    98519894    lea ax, [bp-006h]                         ; 8d 46 fa
    9852     call 06a3eh                               ; e8 73 fc
    9853     jmp near 06ca9h                           ; e9 db fe
     9895    call 06a32h                               ; e8 73 fc
     9896    jmp near 06c9dh                           ; e9 db fe
    98549897    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    98559898    mov byte [bp+013h], 003h                  ; c6 46 13 03
    9856     jmp near 06ef4h                           ; e9 1b 01
     9899    jmp near 06ee8h                           ; e9 1b 01
    98579900    mov al, byte [bp+00dh]                    ; 8a 46 0d
    98589901    test al, al                               ; 84 c0
    9859     jbe short 06de7h                          ; 76 07
     9902    jbe short 06ddbh                          ; 76 07
    98609903    cmp AL, strict byte 002h                  ; 3c 02
    9861     jbe short 06e50h                          ; 76 6c
    9862     jmp near 06e84h                           ; e9 9d 00
     9904    jbe short 06e44h                          ; 76 6c
     9905    jmp near 06e78h                           ; e9 9d 00
    98639906    mov ax, 000e9h                            ; b8 e9 00
    9864     call 06a0ah                               ; e8 1d fc
     9907    call 069feh                               ; e8 1d fc
    98659908    test al, al                               ; 84 c0
    9866     jne near 06e7ah                           ; 0f 85 87 00
     9909    jne near 06e6eh                           ; 0f 85 87 00
    98679910    mov dx, ss                                ; 8c d2
    98689911    lea ax, [bp-008h]                         ; 8d 46 f8
    9869     call 06a3eh                               ; e8 43 fc
     9912    call 06a32h                               ; e8 43 fc
    98709913    mov cl, al                                ; 88 c1
    98719914    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    9872     je short 06e13h                           ; 74 10
     9915    je short 06e07h                           ; 74 10
    98739916    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    98749917    push ax                                   ; 50
    9875     push 008c6h                               ; 68 c6 08
     9918    push 00936h                               ; 68 36 09
    98769919    push strict byte 00007h                   ; 6a 07
    9877     call 0190dh                               ; e8 fd aa
     9920    call 0190dh                               ; e8 09 ab
    98789921    add sp, strict byte 00006h                ; 83 c4 06
    98799922    test cl, cl                               ; 84 c9
    9880     jne short 06e7ah                          ; 75 63
     9923    jne short 06e6eh                          ; 75 63
    98819924    mov dx, ss                                ; 8c d2
    98829925    lea ax, [bp-008h]                         ; 8d 46 f8
    9883     call 06a3eh                               ; e8 1f fc
     9926    call 06a32h                               ; e8 1f fc
    98849927    test al, al                               ; 84 c0
    9885     jne short 06e7ah                          ; 75 57
     9928    jne short 06e6eh                          ; 75 57
    98869929    mov dx, ss                                ; 8c d2
    98879930    lea ax, [bp-006h]                         ; 8d 46 fa
    9888     call 06a3eh                               ; e8 13 fc
     9931    call 06a32h                               ; e8 13 fc
    98899932    test al, al                               ; 84 c0
    9890     jne short 06e7ah                          ; 75 4b
     9933    jne short 06e6eh                          ; 75 4b
    98919934    mov dx, ss                                ; 8c d2
    98929935    lea ax, [bp-004h]                         ; 8d 46 fc
    9893     call 06a3eh                               ; e8 07 fc
     9936    call 06a32h                               ; e8 07 fc
    98949937    test al, al                               ; 84 c0
    9895     jne short 06e7ah                          ; 75 3f
     9938    jne short 06e6eh                          ; 75 3f
    98969939    mov al, byte [bp-008h]                    ; 8a 46 f8
    98979940    mov byte [bp+00ch], al                    ; 88 46 0c
     
    99009943    mov al, byte [bp-004h]                    ; 8a 46 fc
    99019944    mov byte [bp+00eh], al                    ; 88 46 0e
    9902     jmp near 06ef4h                           ; e9 a4 00
     9945    jmp near 06ee8h                           ; e9 a4 00
    99039946    cmp AL, strict byte 001h                  ; 3c 01
    9904     jne short 06e59h                          ; 75 05
     9947    jne short 06e4dh                          ; 75 05
    99059948    mov ax, 000e6h                            ; b8 e6 00
    9906     jmp short 06e5ch                          ; eb 03
     9949    jmp short 06e50h                          ; eb 03
    99079950    mov ax, 000e7h                            ; b8 e7 00
    9908     call 06a0ah                               ; e8 ab fb
     9951    call 069feh                               ; e8 ab fb
    99099952    mov cl, al                                ; 88 c1
    99109953    test cl, cl                               ; 84 c9
    9911     jne short 06e74h                          ; 75 0f
     9954    jne short 06e68h                          ; 75 0f
    99129955    mov dx, ss                                ; 8c d2
    99139956    lea ax, [bp-008h]                         ; 8d 46 f8
    9914     call 06a3eh                               ; e8 d1 fb
     9957    call 06a32h                               ; e8 d1 fb
    99159958    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    99169959    db  00fh, 095h, 0c1h
    99179960    ; setne cl                                  ; 0f 95 c1
    99189961    test cl, cl                               ; 84 c9
    9919     je near 06ef4h                            ; 0f 84 7a 00
     9962    je near 06ee8h                            ; 0f 84 7a 00
    99209963    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    99219964    mov byte [bp+013h], 003h                  ; c6 46 13 03
    9922     jmp short 06ef4h                          ; eb 70
     9965    jmp short 06ee8h                          ; eb 70
    99239966    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    99249967    push ax                                   ; 50
    9925     push 008f2h                               ; 68 f2 08
     9968    push 00962h                               ; 68 62 09
    99269969    push strict byte 00007h                   ; 6a 07
    9927     call 0190dh                               ; e8 7c aa
     9970    call 0190dh                               ; e8 88 aa
    99289971    add sp, strict byte 00006h                ; 83 c4 06
    99299972    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    99309973    mov byte [bp+013h], 001h                  ; c6 46 13 01
    9931     jmp short 06ef4h                          ; eb 56
     9974    jmp short 06ee8h                          ; eb 56
    99329975    mov si, word [bp+00ch]                    ; 8b 76 0c
    99339976    mov bx, si                                ; 89 f3
    99349977    mov dx, strict word 00022h                ; ba 22 00
    99359978    mov ax, cx                                ; 89 c8
    9936     call 0162ah                               ; e8 7f a7
     9979    call 0162ah                               ; e8 8b a7
    99379980    mov bx, word [bp+014h]                    ; 8b 5e 14
    99389981    mov dx, strict word 00024h                ; ba 24 00
    99399982    mov ax, cx                                ; 89 c8
    9940     call 0162ah                               ; e8 74 a7
     9983    call 0162ah                               ; e8 80 a7
    99419984    mov dx, strict word 00027h                ; ba 27 00
    99429985    mov ax, cx                                ; 89 c8
    9943     call 01600h                               ; e8 42 a7
     9986    call 01600h                               ; e8 4e a7
    99449987    mov ah, al                                ; 88 c4
    99459988    test si, si                               ; 85 f6
    9946     jne short 06ed2h                          ; 75 0e
     9989    jne short 06ec6h                          ; 75 0e
    99479990    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    9948     jne short 06ed2h                          ; 75 08
     9991    jne short 06ec6h                          ; 75 08
    99499992    test AL, strict byte 080h                 ; a8 80
    9950     je short 06ed4h                           ; 74 06
     9993    je short 06ec8h                           ; 74 06
    99519994    and AL, strict byte 07fh                  ; 24 7f
    9952     jmp short 06ed4h                          ; eb 02
     9995    jmp short 06ec8h                          ; eb 02
    99539996    or AL, strict byte 080h                   ; 0c 80
    99549997    movzx bx, al                              ; 0f b6 d8
    99559998    mov dx, strict word 00027h                ; ba 27 00
    99569999    mov ax, cx                                ; 89 c8
    9957     call 0160eh                               ; e8 2f a7
    9958     jmp short 06ef4h                          ; eb 13
    9959     push 0090ch                               ; 68 0c 09
     10000    call 0160eh                               ; e8 3b a7
     10001    jmp short 06ee8h                          ; eb 13
     10002    push 0097ch                               ; 68 7c 09
    996010003    push strict byte 00007h                   ; 6a 07
    9961     call 0190dh                               ; e8 24 aa
     10004    call 0190dh                               ; e8 30 aa
    996210005    add sp, strict byte 00004h                ; 83 c4 04
    996310006    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    996410007    mov byte [bp+013h], 001h                  ; c6 46 13 01
    996510008    mov ax, strict word 00047h                ; b8 47 00
    9966     call 06a79h                               ; e8 7f fb
     10009    call 06a6dh                               ; e8 7f fb
    996710010    lea sp, [bp-002h]                         ; 8d 66 fe
    996810011    pop si                                    ; 5e
    996910012    pop bp                                    ; 5d
    997010013    retn                                      ; c3
    9971 _int17_function:                             ; 0xf6f00 LB 0xb3
     10014_int17_function:                             ; 0xf6ef4 LB 0xb3
    997210015    push bp                                   ; 55
    997310016    mov bp, sp                                ; 89 e5
     
    997910022    add dx, strict byte 00008h                ; 83 c2 08
    998010023    mov ax, strict word 00040h                ; b8 40 00
    9981     call 0161ch                               ; e8 08 a7
     10024    call 0161ch                               ; e8 14 a7
    998210025    mov bx, ax                                ; 89 c3
    998310026    mov si, ax                                ; 89 c6
    998410027    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    9985     jnc near 06fa9h                           ; 0f 83 89 00
     10028    jnc near 06f9dh                           ; 0f 83 89 00
    998610029    mov ax, word [bp+00eh]                    ; 8b 46 0e
    998710030    cmp ax, strict word 00003h                ; 3d 03 00
    9988     jnc near 06fa9h                           ; 0f 83 7f 00
     10031    jnc near 06f9dh                           ; 0f 83 7f 00
    998910032    test bx, bx                               ; 85 db
    9990     jbe near 06fa9h                           ; 0f 86 79 00
     10033    jbe near 06f9dh                           ; 0f 86 79 00
    999110034    mov dx, ax                                ; 89 c2
    999210035    add dx, strict byte 00078h                ; 83 c2 78
    999310036    mov ax, strict word 00040h                ; b8 40 00
    9994     call 01600h                               ; e8 c5 a6
     10037    call 01600h                               ; e8 d1 a6
    999510038    movzx cx, al                              ; 0f b6 c8
    999610039    sal cx, 008h                              ; c1 e1 08
    999710040    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    9998     jne short 06f74h                          ; 75 2d
     10041    jne short 06f68h                          ; 75 2d
    999910042    mov al, byte [bp+012h]                    ; 8a 46 12
    1000010043    mov dx, bx                                ; 89 da
     
    1001610059    ; sub ah, ah                                ; 2a e4
    1001710060    test AL, strict byte 040h                 ; a8 40
    10018     je short 06f74h                           ; 74 07
     10061    je short 06f68h                           ; 74 07
    1001910062    test cx, cx                               ; 85 c9
    10020     je short 06f74h                           ; 74 03
     10063    je short 06f68h                           ; 74 03
    1002110064    dec cx                                    ; 49
    10022     jmp short 06f63h                          ; eb ef
     10065    jmp short 06f57h                          ; eb ef
    1002310066    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    10024     jne short 06f90h                          ; 75 16
     10067    jne short 06f84h                          ; 75 16
    1002510068    lea dx, [si+002h]                         ; 8d 54 02
    1002610069    in AL, DX                                 ; ec
     
    1004110084    mov byte [bp+013h], al                    ; 88 46 13
    1004210085    test cx, cx                               ; 85 c9
    10043     jne short 06fa3h                          ; 75 04
     10086    jne short 06f97h                          ; 75 04
    1004410087    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1004510088    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    10046     jmp short 06fadh                          ; eb 04
     10089    jmp short 06fa1h                          ; eb 04
    1004710090    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1004810091    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1005010093    pop bp                                    ; 5d
    1005110094    retn                                      ; c3
    10052 wait_:                                       ; 0xf6fb3 LB 0xb2
     10095wait_:                                       ; 0xf6fa7 LB 0xb2
    1005310096    push bp                                   ; 55
    1005410097    mov bp, sp                                ; 89 e5
     
    1006810111    mov dx, 0046ch                            ; ba 6c 04
    1006910112    xor ax, ax                                ; 31 c0
    10070     call 01638h                               ; e8 62 a6
     10113    call 01638h                               ; e8 6e a6
    1007110114    mov word [bp-00eh], ax                    ; 89 46 f2
    1007210115    mov bx, dx                                ; 89 d3
     
    1007410117    mov dx, 0046ch                            ; ba 6c 04
    1007510118    xor ax, ax                                ; 31 c0
    10076     call 01638h                               ; e8 54 a6
     10119    call 01638h                               ; e8 60 a6
    1007710120    mov word [bp-012h], ax                    ; 89 46 ee
    1007810121    mov di, dx                                ; 89 d7
    1007910122    cmp dx, bx                                ; 39 da
    10080     jnbe short 06ff4h                         ; 77 07
    10081     jne short 06ffbh                          ; 75 0c
     10123    jnbe short 06fe8h                         ; 77 07
     10124    jne short 06fefh                          ; 75 0c
    1008210125    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10083     jbe short 06ffbh                          ; 76 07
     10126    jbe short 06fefh                          ; 76 07
    1008410127    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1008510128    sbb dx, bx                                ; 19 da
    10086     jmp short 07006h                          ; eb 0b
     10129    jmp short 06ffah                          ; eb 0b
    1008710130    cmp dx, bx                                ; 39 da
    10088     jc short 07006h                           ; 72 07
    10089     jne short 0700ah                          ; 75 09
     10131    jc short 06ffah                           ; 72 07
     10132    jne short 06ffeh                          ; 75 09
    1009010133    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10091     jnc short 0700ah                          ; 73 04
     10134    jnc short 06ffeh                          ; 73 04
    1009210135    sub si, ax                                ; 29 c6
    1009310136    sbb cx, dx                                ; 19 d1
     
    1009710140    mov ax, 00100h                            ; b8 00 01
    1009810141    int 016h                                  ; cd 16
    10099     je near 07020h                            ; 0f 84 05 00
     10142    je near 07014h                            ; 0f 84 05 00
    1010010143    mov AL, strict byte 001h                  ; b0 01
    10101     jmp near 07022h                           ; e9 02 00
     10144    jmp near 07016h                           ; e9 02 00
    1010210145    db  032h, 0c0h
    1010310146    ; xor al, al                                ; 32 c0
    1010410147    test al, al                               ; 84 c0
    10105     je short 0704ah                           ; 74 24
     10148    je short 0703eh                           ; 74 24
    1010610149    db  033h, 0c0h
    1010710150    ; xor ax, ax                                ; 33 c0
     
    1011210155    movzx ax, dl                              ; 0f b6 c2
    1011310156    push ax                                   ; 50
    10114     push 0092eh                               ; 68 2e 09
     10157    push 0099eh                               ; 68 9e 09
    1011510158    push strict byte 00004h                   ; 6a 04
    10116     call 0190dh                               ; e8 d0 a8
     10159    call 0190dh                               ; e8 dc a8
    1011710160    add sp, strict byte 00006h                ; 83 c4 06
    1011810161    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10119     je short 0704ah                           ; 74 04
     10162    je short 0703eh                           ; 74 04
    1012010163    mov al, dl                                ; 88 d0
    10121     jmp short 0705ch                          ; eb 12
     10164    jmp short 07050h                          ; eb 12
    1012210165    test cx, cx                               ; 85 c9
    10123     jnle short 06fdbh                         ; 7f 8d
    10124     jne short 07054h                          ; 75 04
     10166    jnle short 06fcfh                         ; 7f 8d
     10167    jne short 07048h                          ; 75 04
    1012510168    test si, si                               ; 85 f6
    10126     jnbe short 06fdbh                         ; 77 87
     10169    jnbe short 06fcfh                         ; 77 87
    1012710170    mov ax, word [bp-010h]                    ; 8b 46 f0
    1012810171    push ax                                   ; 50
     
    1013610179    pop bp                                    ; 5d
    1013710180    retn                                      ; c3
    10138 read_logo_byte_:                             ; 0xf7065 LB 0x16
     10181read_logo_byte_:                             ; 0xf7059 LB 0x16
    1013910182    push bp                                   ; 55
    1014010183    mov bp, sp                                ; 89 e5
     
    1015110194    pop bp                                    ; 5d
    1015210195    retn                                      ; c3
    10153 read_logo_word_:                             ; 0xf707b LB 0x14
     10196read_logo_word_:                             ; 0xf706f LB 0x14
    1015410197    push bp                                   ; 55
    1015510198    mov bp, sp                                ; 89 e5
     
    1016410207    pop bp                                    ; 5d
    1016510208    retn                                      ; c3
    10166 print_detected_harddisks_:                   ; 0xf708f LB 0x130
     10209print_detected_harddisks_:                   ; 0xf7083 LB 0x130
    1016710210    push bp                                   ; 55
    1016810211    mov bp, sp                                ; 89 e5
     
    1017610219    mov dx, strict word 0000eh                ; ba 0e 00
    1017710220    mov ax, strict word 00040h                ; b8 40 00
    10178     call 0161ch                               ; e8 7a a5
     10221    call 0161ch                               ; e8 86 a5
    1017910222    mov si, ax                                ; 89 c6
    1018010223    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1018210225    xor ch, ch                                ; 30 ed
    1018310226    mov dx, 002c0h                            ; ba c0 02
    10184     call 01600h                               ; e8 4e a5
     10227    call 01600h                               ; e8 5a a5
    1018510228    mov byte [bp-00eh], al                    ; 88 46 f2
    1018610229    xor bl, bl                                ; 30 db
    1018710230    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    10188     jnc near 07191h                           ; 0f 83 d3 00
     10231    jnc near 07185h                           ; 0f 83 d3 00
    1018910232    movzx dx, bl                              ; 0f b6 d3
    1019010233    add dx, 002c1h                            ; 81 c2 c1 02
    1019110234    mov ax, si                                ; 89 f0
    10192     call 01600h                               ; e8 36 a5
     10235    call 01600h                               ; e8 42 a5
    1019310236    mov bh, al                                ; 88 c7
    1019410237    cmp AL, strict byte 00ch                  ; 3c 0c
    10195     jc short 070f4h                           ; 72 24
     10238    jc short 070e8h                           ; 72 24
    1019610239    test cl, cl                               ; 84 c9
    10197     jne short 070e1h                          ; 75 0d
    10198     push 0093fh                               ; 68 3f 09
     10240    jne short 070d5h                          ; 75 0d
     10241    push 009afh                               ; 68 af 09
    1019910242    push strict byte 00002h                   ; 6a 02
    10200     call 0190dh                               ; e8 31 a8
     10243    call 0190dh                               ; e8 3d a8
    1020110244    add sp, strict byte 00004h                ; 83 c4 04
    1020210245    mov CL, strict byte 001h                  ; b1 01
     
    1020410247    inc ax                                    ; 40
    1020510248    push ax                                   ; 50
    10206     push 00953h                               ; 68 53 09
     10249    push 009c3h                               ; 68 c3 09
    1020710250    push strict byte 00002h                   ; 6a 02
    10208     call 0190dh                               ; e8 1f a8
     10251    call 0190dh                               ; e8 2b a8
    1020910252    add sp, strict byte 00006h                ; 83 c4 06
    10210     jmp near 0718ch                           ; e9 98 00
     10253    jmp near 07180h                           ; e9 98 00
    1021110254    cmp AL, strict byte 008h                  ; 3c 08
    10212     jc short 0710bh                           ; 72 13
     10255    jc short 070ffh                           ; 72 13
    1021310256    test ch, ch                               ; 84 ed
    10214     jne short 07109h                          ; 75 0d
    10215     push 00966h                               ; 68 66 09
     10257    jne short 070fdh                          ; 75 0d
     10258    push 009d6h                               ; 68 d6 09
    1021610259    push strict byte 00002h                   ; 6a 02
    10217     call 0190dh                               ; e8 09 a8
     10260    call 0190dh                               ; e8 15 a8
    1021810261    add sp, strict byte 00004h                ; 83 c4 04
    1021910262    mov CH, strict byte 001h                  ; b5 01
    10220     jmp short 070e1h                          ; eb d6
     10263    jmp short 070d5h                          ; eb d6
    1022110264    cmp AL, strict byte 004h                  ; 3c 04
    10222     jnc short 07126h                          ; 73 17
     10265    jnc short 0711ah                          ; 73 17
    1022310266    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10224     jne short 07126h                          ; 75 11
    10225     push 0097ah                               ; 68 7a 09
     10267    jne short 0711ah                          ; 75 11
     10268    push 009eah                               ; 68 ea 09
    1022610269    push strict byte 00002h                   ; 6a 02
    10227     call 0190dh                               ; e8 f0 a7
     10270    call 0190dh                               ; e8 fc a7
    1022810271    add sp, strict byte 00004h                ; 83 c4 04
    1022910272    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    10230     jmp short 0713ch                          ; eb 16
     10273    jmp short 07130h                          ; eb 16
    1023110274    cmp bh, 004h                              ; 80 ff 04
    10232     jc short 0713ch                           ; 72 11
     10275    jc short 07130h                           ; 72 11
    1023310276    test cl, cl                               ; 84 c9
    10234     jne short 0713ch                          ; 75 0d
    10235     push 0093fh                               ; 68 3f 09
     10277    jne short 07130h                          ; 75 0d
     10278    push 009afh                               ; 68 af 09
    1023610279    push strict byte 00002h                   ; 6a 02
    10237     call 0190dh                               ; e8 d6 a7
     10280    call 0190dh                               ; e8 e2 a7
    1023810281    add sp, strict byte 00004h                ; 83 c4 04
    1023910282    mov CL, strict byte 001h                  ; b1 01
     
    1024110284    inc ax                                    ; 40
    1024210285    push ax                                   ; 50
    10243     push 0098bh                               ; 68 8b 09
     10286    push 009fbh                               ; 68 fb 09
    1024410287    push strict byte 00002h                   ; 6a 02
    10245     call 0190dh                               ; e8 c4 a7
     10288    call 0190dh                               ; e8 d0 a7
    1024610289    add sp, strict byte 00006h                ; 83 c4 06
    1024710290    cmp bh, 004h                              ; 80 ff 04
    10248     jc short 07154h                           ; 72 03
     10291    jc short 07148h                           ; 72 03
    1024910292    sub bh, 004h                              ; 80 ef 04
    1025010293    movzx ax, bh                              ; 0f b6 c7
     
    1025410297    sar ax, 1                                 ; d1 f8
    1025510298    test ax, ax                               ; 85 c0
    10256     je short 07165h                           ; 74 05
    10257     push 00995h                               ; 68 95 09
    10258     jmp short 07168h                          ; eb 03
    10259     push 009a0h                               ; 68 a0 09
     10299    je short 07159h                           ; 74 05
     10300    push 00a05h                               ; 68 05 0a
     10301    jmp short 0715ch                          ; eb 03
     10302    push 00a10h                               ; 68 10 0a
    1026010303    push strict byte 00002h                   ; 6a 02
    10261     call 0190dh                               ; e8 a0 a7
     10304    call 0190dh                               ; e8 ac a7
    1026210305    add sp, strict byte 00004h                ; 83 c4 04
    1026310306    movzx ax, bh                              ; 0f b6 c7
     
    1026610309    idiv di                                   ; f7 ff
    1026710310    test dx, dx                               ; 85 d2
    10268     je short 07182h                           ; 74 05
    10269     push 009a9h                               ; 68 a9 09
    10270     jmp short 07185h                          ; eb 03
    10271     push 009afh                               ; 68 af 09
     10311    je short 07176h                           ; 74 05
     10312    push 00a19h                               ; 68 19 0a
     10313    jmp short 07179h                          ; eb 03
     10314    push 00a1fh                               ; 68 1f 0a
    1027210315    push di                                   ; 57
    10273     call 0190dh                               ; e8 84 a7
     10316    call 0190dh                               ; e8 90 a7
    1027410317    add sp, strict byte 00004h                ; 83 c4 04
    1027510318    db  0feh, 0c3h
    1027610319    ; inc bl                                    ; fe c3
    10277     jmp near 070b7h                           ; e9 26 ff
     10320    jmp near 070abh                           ; e9 26 ff
    1027810321    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10279     jne short 071aah                          ; 75 13
     10322    jne short 0719eh                          ; 75 13
    1028010323    test cl, cl                               ; 84 c9
    10281     jne short 071aah                          ; 75 0f
     10324    jne short 0719eh                          ; 75 0f
    1028210325    test ch, ch                               ; 84 ed
    10283     jne short 071aah                          ; 75 0b
    10284     push 009b6h                               ; 68 b6 09
     10326    jne short 0719eh                          ; 75 0b
     10327    push 00a26h                               ; 68 26 0a
    1028510328    push strict byte 00002h                   ; 6a 02
    10286     call 0190dh                               ; e8 66 a7
     10329    call 0190dh                               ; e8 72 a7
    1028710330    add sp, strict byte 00004h                ; 83 c4 04
    10288     push 009cah                               ; 68 ca 09
     10331    push 00a3ah                               ; 68 3a 0a
    1028910332    push strict byte 00002h                   ; 6a 02
    10290     call 0190dh                               ; e8 5b a7
     10333    call 0190dh                               ; e8 67 a7
    1029110334    add sp, strict byte 00004h                ; 83 c4 04
    1029210335    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1029810341    pop bp                                    ; 5d
    1029910342    retn                                      ; c3
    10300 get_boot_drive_:                             ; 0xf71bf LB 0x28
     10343get_boot_drive_:                             ; 0xf71b3 LB 0x28
    1030110344    push bp                                   ; 55
    1030210345    mov bp, sp                                ; 89 e5
     
    1030610349    mov dx, strict word 0000eh                ; ba 0e 00
    1030710350    mov ax, strict word 00040h                ; b8 40 00
    10308     call 0161ch                               ; e8 4d a4
     10351    call 0161ch                               ; e8 59 a4
    1030910352    mov dx, 002c0h                            ; ba c0 02
    10310     call 01600h                               ; e8 2b a4
     10353    call 01600h                               ; e8 37 a4
    1031110354    sub bl, 002h                              ; 80 eb 02
    1031210355    cmp bl, al                                ; 38 c3
    10313     jc short 071deh                           ; 72 02
     10356    jc short 071d2h                           ; 72 02
    1031410357    mov BL, strict byte 0ffh                  ; b3 ff
    1031510358    mov al, bl                                ; 88 d8
     
    1031910362    pop bp                                    ; 5d
    1032010363    retn                                      ; c3
    10321 show_logo_:                                  ; 0xf71e7 LB 0x224
     10364show_logo_:                                  ; 0xf71db LB 0x224
    1032210365    push bp                                   ; 55
    1032310366    mov bp, sp                                ; 89 e5
     
    1033010373    mov dx, strict word 0000eh                ; ba 0e 00
    1033110374    mov ax, strict word 00040h                ; b8 40 00
    10332     call 0161ch                               ; e8 21 a4
     10375    call 0161ch                               ; e8 2d a4
    1033310376    mov si, ax                                ; 89 c6
    1033410377    xor cl, cl                                ; 30 c9
     
    1034110384    out strict byte 040h, AL                  ; e6 40
    1034210385    movzx ax, dl                              ; 0f b6 c2
    10343     call 0707bh                               ; e8 68 fe
     10386    call 0706fh                               ; e8 68 fe
    1034410387    cmp ax, 066bbh                            ; 3d bb 66
    10345     jne near 072ebh                           ; 0f 85 d1 00
     10388    jne near 072dfh                           ; 0f 85 d1 00
    1034610389    push SS                                   ; 16
    1034710390    pop ES                                    ; 07
     
    1035110394    mov word [es:di], bx                      ; 26 89 1d
    1035210395    cmp ax, strict word 0004fh                ; 3d 4f 00
    10353     jne near 072ebh                           ; 0f 85 bd 00
     10396    jne near 072dfh                           ; 0f 85 bd 00
    1035410397    mov al, dl                                ; 88 d0
    1035510398    add AL, strict byte 004h                  ; 04 04
    1035610399    xor ah, ah                                ; 30 e4
    10357     call 07065h                               ; e8 2e fe
     10400    call 07059h                               ; e8 2e fe
    1035810401    mov ch, al                                ; 88 c5
    1035910402    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1036110404    add AL, strict byte 005h                  ; 04 05
    1036210405    xor ah, ah                                ; 30 e4
    10363     call 07065h                               ; e8 20 fe
     10406    call 07059h                               ; e8 20 fe
    1036410407    mov dh, al                                ; 88 c6
    1036510408    mov byte [bp-010h], al                    ; 88 46 f0
     
    1036710410    add AL, strict byte 002h                  ; 04 02
    1036810411    xor ah, ah                                ; 30 e4
    10369     call 0707bh                               ; e8 28 fe
     10412    call 0706fh                               ; e8 28 fe
    1037010413    mov bx, ax                                ; 89 c3
    1037110414    mov word [bp-014h], ax                    ; 89 46 ec
     
    1037310416    add AL, strict byte 006h                  ; 04 06
    1037410417    xor ah, ah                                ; 30 e4
    10375     call 07065h                               ; e8 04 fe
     10418    call 07059h                               ; e8 04 fe
    1037610419    mov byte [bp-012h], al                    ; 88 46 ee
    1037710420    test ch, ch                               ; 84 ed
    10378     jne short 07272h                          ; 75 0a
     10421    jne short 07266h                          ; 75 0a
    1037910422    test dh, dh                               ; 84 f6
    10380     jne short 07272h                          ; 75 06
     10423    jne short 07266h                          ; 75 06
    1038110424    test bx, bx                               ; 85 db
    10382     je near 072ebh                            ; 0f 84 79 00
     10425    je near 072dfh                            ; 0f 84 79 00
    1038310426    mov bx, 00142h                            ; bb 42 01
    1038410427    mov ax, 04f02h                            ; b8 02 4f
    1038510428    int 010h                                  ; cd 10
    1038610429    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10387     je short 072a3h                           ; 74 23
     10430    je short 07297h                           ; 74 23
    1038810431    xor bx, bx                                ; 31 db
    10389     jmp short 0728ah                          ; eb 06
     10432    jmp short 0727eh                          ; eb 06
    1039010433    inc bx                                    ; 43
    1039110434    cmp bx, strict byte 00010h                ; 83 fb 10
    10392     jnbe short 072aah                         ; 77 20
     10435    jnbe short 0729eh                         ; 77 20
    1039310436    mov ax, bx                                ; 89 d8
    1039410437    or ah, 002h                               ; 80 cc 02
     
    1039710440    xor dx, dx                                ; 31 d2
    1039810441    mov ax, strict word 00001h                ; b8 01 00
    10399     call 06fb3h                               ; e8 18 fd
     10442    call 06fa7h                               ; e8 18 fd
    1040010443    cmp AL, strict byte 086h                  ; 3c 86
    10401     jne short 07284h                          ; 75 e5
     10444    jne short 07278h                          ; 75 e5
    1040210445    mov CL, strict byte 001h                  ; b1 01
    10403     jmp short 072aah                          ; eb 07
     10446    jmp short 0729eh                          ; eb 07
    1040410447    mov ax, 00210h                            ; b8 10 02
    1040510448    mov dx, 003b8h                            ; ba b8 03
    1040610449    out DX, ax                                ; ef
    1040710450    test cl, cl                               ; 84 c9
    10408     jne short 072c0h                          ; 75 12
     10451    jne short 072b4h                          ; 75 12
    1040910452    mov ax, word [bp-014h]                    ; 8b 46 ec
    1041010453    shr ax, 004h                              ; c1 e8 04
    1041110454    mov dx, strict word 00001h                ; ba 01 00
    10412     call 06fb3h                               ; e8 f9 fc
     10455    call 06fa7h                               ; e8 f9 fc
    1041310456    cmp AL, strict byte 086h                  ; 3c 86
    10414     jne short 072c0h                          ; 75 02
     10457    jne short 072b4h                          ; 75 02
    1041510458    mov CL, strict byte 001h                  ; b1 01
    1041610459    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10417     je short 072ebh                           ; 74 25
     10460    je short 072dfh                           ; 74 25
    1041810461    test cl, cl                               ; 84 c9
    10419     jne short 072ebh                          ; 75 21
     10462    jne short 072dfh                          ; 75 21
    1042010463    mov bx, strict word 00010h                ; bb 10 00
    10421     jmp short 072d4h                          ; eb 05
     10464    jmp short 072c8h                          ; eb 05
    1042210465    dec bx                                    ; 4b
    1042310466    test bx, bx                               ; 85 db
    10424     jbe short 072ebh                          ; 76 17
     10467    jbe short 072dfh                          ; 76 17
    1042510468    mov ax, bx                                ; 89 d8
    1042610469    or ah, 002h                               ; 80 cc 02
     
    1042910472    xor dx, dx                                ; 31 d2
    1043010473    mov ax, strict word 00001h                ; b8 01 00
    10431     call 06fb3h                               ; e8 ce fc
     10474    call 06fa7h                               ; e8 ce fc
    1043210475    cmp AL, strict byte 086h                  ; 3c 86
    10433     jne short 072cfh                          ; 75 e6
     10476    jne short 072c3h                          ; 75 e6
    1043410477    mov CL, strict byte 001h                  ; b1 01
    1043510478    xor bx, bx                                ; 31 db
    1043610479    mov dx, 00339h                            ; ba 39 03
    1043710480    mov ax, si                                ; 89 f0
    10438     call 0160eh                               ; e8 19 a3
     10481    call 0160eh                               ; e8 25 a3
    1043910482    mov AL, strict byte 003h                  ; b0 03
    1044010483    mov AH, strict byte 000h                  ; b4 00
    1044110484    int 010h                                  ; cd 10
    1044210485    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    10443     je near 073ech                            ; 0f 84 e9 00
     10486    je near 073e0h                            ; 0f 84 e9 00
    1044410487    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10445     jne short 07339h                          ; 75 30
     10488    jne short 0732dh                          ; 75 30
    1044610489    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10447     jne short 07339h                          ; 75 2a
     10490    jne short 0732dh                          ; 75 2a
    1044810491    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    10449     jne short 07339h                          ; 75 24
     10492    jne short 0732dh                          ; 75 24
    1045010493    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    10451     jne short 07326h                          ; 75 0b
    10452     push 009cch                               ; 68 cc 09
     10494    jne short 0731ah                          ; 75 0b
     10495    push 00a3ch                               ; 68 3c 0a
    1045310496    push strict byte 00002h                   ; 6a 02
    10454     call 0190dh                               ; e8 ea a5
     10497    call 0190dh                               ; e8 f6 a5
    1045510498    add sp, strict byte 00004h                ; 83 c4 04
    1045610499    test cl, cl                               ; 84 c9
    10457     jne short 07339h                          ; 75 0f
     10500    jne short 0732dh                          ; 75 0f
    1045810501    mov dx, strict word 00001h                ; ba 01 00
    1045910502    mov ax, 000c0h                            ; b8 c0 00
    10460     call 06fb3h                               ; e8 80 fc
     10503    call 06fa7h                               ; e8 80 fc
    1046110504    cmp AL, strict byte 086h                  ; 3c 86
    10462     jne short 07339h                          ; 75 02
     10505    jne short 0732dh                          ; 75 02
    1046310506    mov CL, strict byte 001h                  ; b1 01
    1046410507    test cl, cl                               ; 84 c9
    10465     je near 073ech                            ; 0f 84 ad 00
     10508    je near 073e0h                            ; 0f 84 ad 00
    1046610509    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1046710510    mov ax, 00100h                            ; b8 00 01
     
    1048010523    ; xor dx, dx                                ; 33 d2
    1048110524    int 010h                                  ; cd 10
    10482     push 009eeh                               ; 68 ee 09
     10525    push 00a5eh                               ; 68 5e 0a
    1048310526    push strict byte 00002h                   ; 6a 02
    10484     call 0190dh                               ; e8 a5 a5
     10527    call 0190dh                               ; e8 b1 a5
    1048510528    add sp, strict byte 00004h                ; 83 c4 04
    10486     call 0708fh                               ; e8 21 fd
    10487     push 00a32h                               ; 68 32 0a
     10529    call 07083h                               ; e8 21 fd
     10530    push 00aa2h                               ; 68 a2 0a
    1048810531    push strict byte 00002h                   ; 6a 02
    10489     call 0190dh                               ; e8 97 a5
     10532    call 0190dh                               ; e8 a3 a5
    1049010533    add sp, strict byte 00004h                ; 83 c4 04
    1049110534    mov dx, strict word 00001h                ; ba 01 00
    1049210535    mov ax, strict word 00040h                ; b8 40 00
    10493     call 06fb3h                               ; e8 31 fc
     10536    call 06fa7h                               ; e8 31 fc
    1049410537    mov bl, al                                ; 88 c3
    1049510538    test al, al                               ; 84 c0
    10496     je short 07379h                           ; 74 f1
     10539    je short 0736dh                           ; 74 f1
    1049710540    cmp AL, strict byte 030h                  ; 3c 30
    10498     je short 073dah                           ; 74 4e
     10541    je short 073ceh                           ; 74 4e
    1049910542    cmp bl, 002h                              ; 80 fb 02
    10500     jc short 073b3h                           ; 72 22
     10543    jc short 073a7h                           ; 72 22
    1050110544    cmp bl, 009h                              ; 80 fb 09
    10502     jnbe short 073b3h                         ; 77 1d
     10545    jnbe short 073a7h                         ; 77 1d
    1050310546    movzx ax, bl                              ; 0f b6 c3
    10504     call 071bfh                               ; e8 23 fe
     10547    call 071b3h                               ; e8 23 fe
    1050510548    cmp AL, strict byte 0ffh                  ; 3c ff
    10506     jne short 073a2h                          ; 75 02
    10507     jmp short 07379h                          ; eb d7
     10549    jne short 07396h                          ; 75 02
     10550    jmp short 0736dh                          ; eb d7
    1050810551    movzx bx, al                              ; 0f b6 d8
    1050910552    mov dx, 00338h                            ; ba 38 03
    1051010553    mov ax, si                                ; 89 f0
    10511     call 0160eh                               ; e8 61 a2
     10554    call 0160eh                               ; e8 6d a2
    1051210555    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    10513     jmp short 073dah                          ; eb 27
     10556    jmp short 073ceh                          ; eb 27
    1051410557    cmp bl, 02eh                              ; 80 fb 2e
    10515     je short 073c8h                           ; 74 10
     10558    je short 073bch                           ; 74 10
    1051610559    cmp bl, 026h                              ; 80 fb 26
    10517     je short 073ceh                           ; 74 11
     10560    je short 073c2h                           ; 74 11
    1051810561    cmp bl, 021h                              ; 80 fb 21
    10519     jne short 073d4h                          ; 75 12
     10562    jne short 073c8h                          ; 75 12
    1052010563    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    10521     jmp short 073dah                          ; eb 12
     10564    jmp short 073ceh                          ; eb 12
    1052210565    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    10523     jmp short 073dah                          ; eb 0c
     10566    jmp short 073ceh                          ; eb 0c
    1052410567    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    10525     jmp short 073dah                          ; eb 06
     10568    jmp short 073ceh                          ; eb 06
    1052610569    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    10527     je short 07379h                           ; 74 9f
     10570    je short 0736dh                           ; 74 9f
    1052810571    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1052910572    mov dx, 00339h                            ; ba 39 03
    1053010573    mov ax, si                                ; 89 f0
    10531     call 0160eh                               ; e8 28 a2
     10574    call 0160eh                               ; e8 34 a2
    1053210575    mov AL, strict byte 003h                  ; b0 03
    1053310576    mov AH, strict byte 000h                  ; b4 00
     
    1054210585    push DS                                   ; 1e
    1054310586    mov ds, ax                                ; 8e d8
    10544     call 0edbfh                               ; e8 c1 79
     10587    call 0edbfh                               ; e8 cd 79
    1054510588    pop DS                                    ; 1f
    1054610589    popad                                     ; 66 61
     
    1055310596    pop bp                                    ; 5d
    1055410597    retn                                      ; c3
    10555 delay_boot_:                                 ; 0xf740b LB 0x67
     10598delay_boot_:                                 ; 0xf73ff LB 0x67
    1055610599    push bp                                   ; 55
    1055710600    mov bp, sp                                ; 89 e5
     
    1056010603    mov dx, ax                                ; 89 c2
    1056110604    test ax, ax                               ; 85 c0
    10562     je short 0746bh                           ; 74 55
     10605    je short 0745fh                           ; 74 55
    1056310606    mov AL, strict byte 034h                  ; b0 34
    1056410607    out strict byte 043h, AL                  ; e6 43
     
    1056810611    out strict byte 040h, AL                  ; e6 40
    1056910612    push dx                                   ; 52
    10570     push 00a7ch                               ; 68 7c 0a
     10613    push 00aech                               ; 68 ec 0a
    1057110614    push strict byte 00002h                   ; 6a 02
    10572     call 0190dh                               ; e8 e2 a4
     10615    call 0190dh                               ; e8 ee a4
    1057310616    add sp, strict byte 00006h                ; 83 c4 06
    1057410617    mov bx, dx                                ; 89 d3
    1057510618    test bx, bx                               ; 85 db
    10576     jbe short 0744bh                          ; 76 17
     10619    jbe short 0743fh                          ; 76 17
    1057710620    push bx                                   ; 53
    10578     push 00a9ah                               ; 68 9a 0a
     10621    push 00b0ah                               ; 68 0a 0b
    1057910622    push strict byte 00002h                   ; 6a 02
    10580     call 0190dh                               ; e8 d0 a4
     10623    call 0190dh                               ; e8 dc a4
    1058110624    add sp, strict byte 00006h                ; 83 c4 06
    1058210625    xor dx, dx                                ; 31 d2
    1058310626    mov ax, strict word 00040h                ; b8 40 00
    10584     call 06fb3h                               ; e8 6b fb
     10627    call 06fa7h                               ; e8 6b fb
    1058510628    dec bx                                    ; 4b
    10586     jmp short 07430h                          ; eb e5
    10587     push 009cah                               ; 68 ca 09
     10629    jmp short 07424h                          ; eb e5
     10630    push 00a3ah                               ; 68 3a 0a
    1058810631    push strict byte 00002h                   ; 6a 02
    10589     call 0190dh                               ; e8 ba a4
     10632    call 0190dh                               ; e8 c6 a4
    1059010633    add sp, strict byte 00004h                ; 83 c4 04
    1059110634    mov AL, strict byte 034h                  ; b0 34
     
    1059810641    push DS                                   ; 1e
    1059910642    mov ds, ax                                ; 8e d8
    10600     call 0edbfh                               ; e8 57 79
     10643    call 0edbfh                               ; e8 63 79
    1060110644    pop DS                                    ; 1f
    1060210645    popad                                     ; 66 61
     
    1060610649    pop bp                                    ; 5d
    1060710650    retn                                      ; c3
    10608 scsi_cmd_data_in_:                           ; 0xf7472 LB 0xb2
     10651scsi_cmd_data_in_:                           ; 0xf7466 LB 0xb2
    1060910652    push bp                                   ; 55
    1061010653    mov bp, sp                                ; 89 e5
     
    1062210665    ; sub ah, ah                                ; 2a e4
    1062310666    test AL, strict byte 001h                 ; a8 01
    10624     jne short 07488h                          ; 75 f7
     10667    jne short 0747ch                          ; 75 f7
    1062510668    mov ax, bx                                ; 89 d8
    1062610669    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1062810671    shr dx, 1                                 ; d1 ea
    1062910672    rcr ax, 1                                 ; d1 d8
    10630     loop 07499h                               ; e2 fa
     10673    loop 0748dh                               ; e2 fa
    1063110674    and ax, 000f0h                            ; 25 f0 00
    1063210675    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1064610689    shr dx, 1                                 ; d1 ea
    1064710690    rcr ax, 1                                 ; d1 d8
    10648     loop 074bfh                               ; e2 fa
     10691    loop 074b3h                               ; e2 fa
    1064910692    mov dx, si                                ; 89 f2
    1065010693    out DX, AL                                ; ee
     
    1065210695    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1065310696    cmp cx, ax                                ; 39 c1
    10654     jnc short 074e0h                          ; 73 0e
     10697    jnc short 074d4h                          ; 73 0e
    1065510698    les di, [bp-00ah]                         ; c4 7e f6
    1065610699    add di, cx                                ; 01 cf
     
    1065910702    out DX, AL                                ; ee
    1066010703    inc cx                                    ; 41
    10661     jmp short 074cah                          ; eb ea
     10704    jmp short 074beh                          ; eb ea
    1066210705    mov dx, si                                ; 89 f2
    1066310706    in AL, DX                                 ; ec
     
    1066510708    ; sub ah, ah                                ; 2a e4
    1066610709    test AL, strict byte 001h                 ; a8 01
    10667     jne short 074e0h                          ; 75 f7
     10710    jne short 074d4h                          ; 75 f7
    1066810711    lea dx, [si+001h]                         ; 8d 54 01
    1066910712    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10670     jne short 074f8h                          ; 75 06
     10713    jne short 074ech                          ; 75 06
    1067110714    cmp bx, 08000h                            ; 81 fb 00 80
    10672     jbe short 07512h                          ; 76 1a
     10715    jbe short 07506h                          ; 76 1a
    1067310716    mov cx, 08000h                            ; b9 00 80
    1067410717    les di, [bp+006h]                         ; c4 7e 06
     
    1067910722    add ax, 00800h                            ; 05 00 08
    1068010723    mov word [bp+008h], ax                    ; 89 46 08
    10681     jmp short 074e9h                          ; eb d7
     10724    jmp short 074ddh                          ; eb d7
    1068210725    mov cx, bx                                ; 89 d9
    1068310726    les di, [bp+006h]                         ; c4 7e 06
     
    1068910732    pop bp                                    ; 5d
    1069010733    retn 0000ah                               ; c2 0a 00
    10691 scsi_cmd_data_out_:                          ; 0xf7524 LB 0xb4
     10734scsi_cmd_data_out_:                          ; 0xf7518 LB 0xb4
    1069210735    push bp                                   ; 55
    1069310736    mov bp, sp                                ; 89 e5
     
    1070510748    ; sub ah, ah                                ; 2a e4
    1070610749    test AL, strict byte 001h                 ; a8 01
    10707     jne short 0753ah                          ; 75 f7
     10750    jne short 0752eh                          ; 75 f7
    1070810751    mov ax, bx                                ; 89 d8
    1070910752    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1071110754    shr dx, 1                                 ; d1 ea
    1071210755    rcr ax, 1                                 ; d1 d8
    10713     loop 0754bh                               ; e2 fa
     10756    loop 0753fh                               ; e2 fa
    1071410757    and ax, 000f0h                            ; 25 f0 00
    1071510758    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1072910772    shr dx, 1                                 ; d1 ea
    1073010773    rcr ax, 1                                 ; d1 d8
    10731     loop 07571h                               ; e2 fa
     10774    loop 07565h                               ; e2 fa
    1073210775    mov dx, di                                ; 89 fa
    1073310776    out DX, AL                                ; ee
     
    1073510778    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1073610779    cmp cx, ax                                ; 39 c1
    10737     jnc short 07592h                          ; 73 0e
     10780    jnc short 07586h                          ; 73 0e
    1073810781    les si, [bp-00ah]                         ; c4 76 f6
    1073910782    add si, cx                                ; 01 ce
     
    1074210785    out DX, AL                                ; ee
    1074310786    inc cx                                    ; 41
    10744     jmp short 0757ch                          ; eb ea
     10787    jmp short 07570h                          ; eb ea
    1074510788    lea dx, [di+001h]                         ; 8d 55 01
    1074610789    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10747     jne short 075a1h                          ; 75 06
     10790    jne short 07595h                          ; 75 06
    1074810791    cmp bx, 08000h                            ; 81 fb 00 80
    10749     jbe short 075bch                          ; 76 1b
     10792    jbe short 075b0h                          ; 76 1b
    1075010793    mov cx, 08000h                            ; b9 00 80
    1075110794    les si, [bp+006h]                         ; c4 76 06
     
    1075710800    add ax, 00800h                            ; 05 00 08
    1075810801    mov word [bp+008h], ax                    ; 89 46 08
    10759     jmp short 07592h                          ; eb d6
     10802    jmp short 07586h                          ; eb d6
    1076010803    mov cx, bx                                ; 89 d9
    1076110804    les si, [bp+006h]                         ; c4 76 06
     
    1076710810    ; sub ah, ah                                ; 2a e4
    1076810811    test AL, strict byte 001h                 ; a8 01
    10769     jne short 075c4h                          ; 75 f7
     10812    jne short 075b8h                          ; 75 f7
    1077010813    xor ax, ax                                ; 31 c0
    1077110814    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1077410817    pop bp                                    ; 5d
    1077510818    retn 0000ah                               ; c2 0a 00
    10776 @scsi_read_sectors:                          ; 0xf75d8 LB 0xb6
     10819@scsi_read_sectors:                          ; 0xf75cc LB 0xb6
    1077710820    push bp                                   ; 55
    1077810821    mov bp, sp                                ; 89 e5
     
    1078510828    sub bl, 008h                              ; 80 eb 08
    1078610829    cmp bl, 004h                              ; 80 fb 04
    10787     jbe short 07601h                          ; 76 0f
     10830    jbe short 075f5h                          ; 76 0f
    1078810831    movzx ax, bl                              ; 0f b6 c3
    1078910832    push ax                                   ; 50
    10790     push 00a9eh                               ; 68 9e 0a
     10833    push 00b0eh                               ; 68 0e 0b
    1079110834    push strict byte 00007h                   ; 6a 07
    10792     call 0190dh                               ; e8 0f a3
     10835    call 0190dh                               ; e8 1b a3
    1079310836    add sp, strict byte 00006h                ; 83 c4 06
    1079410837    mov es, [bp+006h]                         ; 8e 46 06
     
    1081710860    sal word [bp-008h], 1                     ; d1 66 f8
    1081810861    rcl word [bp-006h], 1                     ; d1 56 fa
    10819     loop 0764ah                               ; e2 f8
     10862    loop 0763eh                               ; e2 f8
    1082010863    push dword [bp-008h]                      ; 66 ff 76 f8
    1082110864    db  066h, 026h, 0ffh, 074h, 004h
     
    1082510868    mov cx, ss                                ; 8c d1
    1082610869    lea bx, [bp-012h]                         ; 8d 5e ee
    10827     call 07472h                               ; e8 0b fe
     10870    call 07466h                               ; e8 0b fe
    1082810871    mov ah, al                                ; 88 c4
    1082910872    test al, al                               ; 84 c0
    10830     jne short 07682h                          ; 75 15
     10873    jne short 07676h                          ; 75 15
    1083110874    mov es, [bp+006h]                         ; 8e 46 06
    1083210875    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1084110884    pop bp                                    ; 5d
    1084210885    retn 00004h                               ; c2 04 00
    10843 @scsi_write_sectors:                         ; 0xf768e LB 0xb6
     10886@scsi_write_sectors:                         ; 0xf7682 LB 0xb6
    1084410887    push bp                                   ; 55
    1084510888    mov bp, sp                                ; 89 e5
     
    1085210895    sub bl, 008h                              ; 80 eb 08
    1085310896    cmp bl, 004h                              ; 80 fb 04
    10854     jbe short 076b7h                          ; 76 0f
     10897    jbe short 076abh                          ; 76 0f
    1085510898    movzx ax, bl                              ; 0f b6 c3
    1085610899    push ax                                   ; 50
    10857     push 00acch                               ; 68 cc 0a
     10900    push 00b3ch                               ; 68 3c 0b
    1085810901    push strict byte 00007h                   ; 6a 07
    10859     call 0190dh                               ; e8 59 a2
     10902    call 0190dh                               ; e8 65 a2
    1086010903    add sp, strict byte 00006h                ; 83 c4 06
    1086110904    mov es, [bp+006h]                         ; 8e 46 06
     
    1088410927    sal word [bp-008h], 1                     ; d1 66 f8
    1088510928    rcl word [bp-006h], 1                     ; d1 56 fa
    10886     loop 07700h                               ; e2 f8
     10929    loop 076f4h                               ; e2 f8
    1088710930    push dword [bp-008h]                      ; 66 ff 76 f8
    1088810931    db  066h, 026h, 0ffh, 074h, 004h
     
    1089210935    mov cx, ss                                ; 8c d1
    1089310936    lea bx, [bp-012h]                         ; 8d 5e ee
    10894     call 07524h                               ; e8 07 fe
     10937    call 07518h                               ; e8 07 fe
    1089510938    mov ah, al                                ; 88 c4
    1089610939    test al, al                               ; 84 c0
    10897     jne short 07738h                          ; 75 15
     10940    jne short 0772ch                          ; 75 15
    1089810941    mov es, [bp+006h]                         ; 8e 46 06
    1089910942    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1090810951    pop bp                                    ; 5d
    1090910952    retn 00004h                               ; c2 04 00
    10910 scsi_cmd_packet_:                            ; 0xf7744 LB 0x166
     10953scsi_cmd_packet_:                            ; 0xf7738 LB 0x166
    1091110954    push bp                                   ; 55
    1091210955    mov bp, sp                                ; 89 e5
     
    1092010963    mov dx, strict word 0000eh                ; ba 0e 00
    1092110964    mov ax, strict word 00040h                ; b8 40 00
    10922     call 0161ch                               ; e8 bc 9e
     10965    call 0161ch                               ; e8 c8 9e
    1092310966    mov si, 00122h                            ; be 22 01
    1092410967    mov word [bp-00eh], ax                    ; 89 46 f2
    1092510968    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    10926     jne short 0778bh                          ; 75 1f
    10927     mov bx, 00d38h                            ; bb 38 0d
     10969    jne short 0777fh                          ; 75 1f
     10970    mov bx, 00da8h                            ; bb a8 0d
    1092810971    mov cx, ds                                ; 8c d9
    1092910972    mov ax, strict word 00004h                ; b8 04 00
    10930     call 018cch                               ; e8 55 a1
    10931     push 00afbh                               ; 68 fb 0a
    10932     push 00b0bh                               ; 68 0b 0b
     10973    call 018cch                               ; e8 61 a1
     10974    push 00b6bh                               ; 68 6b 0b
     10975    push 00b7bh                               ; 68 7b 0b
    1093310976    push strict byte 00004h                   ; 6a 04
    10934     call 0190dh                               ; e8 8b a1
     10977    call 0190dh                               ; e8 97 a1
    1093510978    add sp, strict byte 00006h                ; 83 c4 06
    1093610979    mov dx, strict word 00001h                ; ba 01 00
    10937     jmp near 0789fh                           ; e9 14 01
     10980    jmp near 07893h                           ; e9 14 01
    1093810981    sub di, strict byte 00008h                ; 83 ef 08
    1093910982    sal di, 002h                              ; c1 e7 02
     
    1094910992    ; sub ah, ah                                ; 2a e4
    1095010993    test AL, strict byte 001h                 ; a8 01
    10951     jne short 077a7h                          ; 75 f7
     10994    jne short 0779bh                          ; 75 f7
    1095210995    xor ax, ax                                ; 31 c0
    1095310996    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1096511008    shr dx, 1                                 ; d1 ea
    1096611009    rcr ax, 1                                 ; d1 d8
    10967     loop 077d2h                               ; e2 fa
     11010    loop 077c6h                               ; e2 fa
    1096811011    and ax, 000f0h                            ; 25 f0 00
    1096911012    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1098311026    shr dx, 1                                 ; d1 ea
    1098411027    rcr ax, 1                                 ; d1 d8
    10985     loop 077f9h                               ; e2 fa
     11028    loop 077edh                               ; e2 fa
    1098611029    mov dx, bx                                ; 89 da
    1098711030    out DX, AL                                ; ee
     
    1098911032    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1099011033    cmp cx, ax                                ; 39 c1
    10991     jnc short 0781ah                          ; 73 0e
     11034    jnc short 0780eh                          ; 73 0e
    1099211035    les di, [bp-00ch]                         ; c4 7e f4
    1099311036    add di, cx                                ; 01 cf
     
    1099611039    out DX, AL                                ; ee
    1099711040    inc cx                                    ; 41
    10998     jmp short 07804h                          ; eb ea
     11041    jmp short 077f8h                          ; eb ea
    1099911042    mov dx, bx                                ; 89 da
    1100011043    in AL, DX                                 ; ec
     
    1100211045    ; sub ah, ah                                ; 2a e4
    1100311046    test AL, strict byte 001h                 ; a8 01
    11004     jne short 0781ah                          ; 75 f7
     11047    jne short 0780eh                          ; 75 f7
    1100511048    test AL, strict byte 002h                 ; a8 02
    11006     je short 07835h                           ; 74 0e
     11049    je short 07829h                           ; 74 0e
    1100711050    lea dx, [bx+003h]                         ; 8d 57 03
    1100811051    xor al, al                                ; 30 c0
     
    1101211055    ; sub ah, ah                                ; 2a e4
    1101311056    mov dx, strict word 00003h                ; ba 03 00
    11014     jmp short 0789fh                          ; eb 6a
     11057    jmp short 07893h                          ; eb 6a
    1101511058    mov ax, word [bp+004h]                    ; 8b 46 04
    1101611059    test ax, ax                               ; 85 c0
    11017     je short 07844h                           ; 74 08
     11060    je short 07838h                           ; 74 08
    1101811061    lea dx, [bx+001h]                         ; 8d 57 01
    1101911062    mov cx, ax                                ; 89 c1
    1102011063    in AL, DX                                 ; ec
    11021     loop 07841h                               ; e2 fd
     11064    loop 07835h                               ; e2 fd
    1102211065    mov ax, word [bp+006h]                    ; 8b 46 06
    1102311066    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1102711070    lea ax, [bx+001h]                         ; 8d 47 01
    1102811071    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    11029     jne short 07865h                          ; 75 07
     11072    jne short 07859h                          ; 75 07
    1103011073    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    11031     jbe short 07882h                          ; 76 1d
     11074    jbe short 07876h                          ; 76 1d
    1103211075    mov dx, ax                                ; 89 c2
    1103311076    mov cx, 08000h                            ; b9 00 80
     
    1103911082    add ax, 00800h                            ; 05 00 08
    1104011083    mov word [bp+00eh], ax                    ; 89 46 0e
    11041     jmp short 07855h                          ; eb d3
     11084    jmp short 07849h                          ; eb d3
    1104211085    mov dx, ax                                ; 89 c2
    1104311086    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1104611089    mov es, [bp-00eh]                         ; 8e 46 f2
    1104711090    cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
    11048     je short 0789dh                           ; 74 07
     11091    je short 07891h                           ; 74 07
    1104911092    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1105011093    in AL, DX                                 ; ec
    11051     loop 0789ah                               ; e2 fd
     11094    loop 0788eh                               ; e2 fd
    1105211095    xor dx, dx                                ; 31 d2
    1105311096    mov ax, dx                                ; 89 d0
     
    1105711100    pop bp                                    ; 5d
    1105811101    retn 0000ch                               ; c2 0c 00
    11059 scsi_enumerate_attached_devices_:            ; 0xf78aa LB 0x373
     11102scsi_enumerate_attached_devices_:            ; 0xf789e LB 0x373
    1106011103    push bp                                   ; 55
    1106111104    mov bp, sp                                ; 89 e5
     
    1106911112    mov dx, strict word 0000eh                ; ba 0e 00
    1107011113    mov ax, strict word 00040h                ; b8 40 00
    11071     call 0161ch                               ; e8 5c 9d
     11114    call 0161ch                               ; e8 68 9d
    1107211115    mov si, 00122h                            ; be 22 01
    1107311116    mov word [bp-012h], ax                    ; 89 46 ee
    1107411117    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    11075     jmp near 07babh                           ; e9 dd 02
     11118    jmp near 07b9fh                           ; e9 dd 02
    1107611119    mov es, [bp-012h]                         ; 8e 46 ee
    1107711120    cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    11078     jnc near 07c13h                           ; 0f 83 38 03
     11121    jnc near 07c07h                           ; 0f 83 38 03
    1107911122    mov cx, strict word 0000ah                ; b9 0a 00
    1108011123    xor bx, bx                                ; 31 db
    1108111124    mov dx, ss                                ; 8c d2
    1108211125    lea ax, [bp-028h]                         ; 8d 46 d8
    11083     call 0924ah                               ; e8 62 19
     11126    call 0924ah                               ; e8 6e 19
    1108411127    mov byte [bp-028h], 025h                  ; c6 46 d8 25
    1108511128    push dword 000000008h                     ; 66 6a 08
     
    1109211135    lea bx, [bp-028h]                         ; 8d 5e d8
    1109311136    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    11094     call 07472h                               ; e8 6b fb
     11137    call 07466h                               ; e8 6b fb
    1109511138    test al, al                               ; 84 c0
    11096     je short 07919h                           ; 74 0e
    11097     push 00b2bh                               ; 68 2b 0b
    11098     push 00b64h                               ; 68 64 0b
     11139    je short 0790dh                           ; 74 0e
     11140    push 00b9bh                               ; 68 9b 0b
     11141    push 00bd4h                               ; 68 d4 0b
    1109911142    push strict byte 00007h                   ; 6a 07
    11100     call 0190dh                               ; e8 f7 9f
     11143    call 0190dh                               ; e8 03 a0
    1110111144    add sp, strict byte 00006h                ; 83 c4 06
    1110211145    movzx dx, byte [bp-00227h]                ; 0f b6 96 d9 fd
     
    1111011153    sal ax, 1                                 ; d1 e0
    1111111154    rcl dx, 1                                 ; d1 d2
    11112     loop 07934h                               ; e2 fa
     11155    loop 07928h                               ; e2 fa
    1111311156    or ax, bx                                 ; 09 d8
    1111411157    or di, dx                                 ; 09 d7
     
    1112611169    sal ax, 1                                 ; d1 e0
    1112711170    rcl dx, 1                                 ; d1 d2
    11128     loop 07964h                               ; e2 fa
     11171    loop 07958h                               ; e2 fa
    1112911172    or bx, ax                                 ; 09 c3
    1113011173    or dx, word [bp-01eh]                     ; 0b 56 e2
     
    1113311176    mov word [bp-00eh], bx                    ; 89 5e f2
    1113411177    test dx, dx                               ; 85 d2
    11135     jne short 07983h                          ; 75 06
     11178    jne short 07977h                          ; 75 06
    1113611179    cmp bx, 00200h                            ; 81 fb 00 02
    11137     je short 079a3h                           ; 74 20
    11138     mov bx, 00d38h                            ; bb 38 0d
     11180    je short 07997h                           ; 74 20
     11181    mov bx, 00da8h                            ; bb a8 0d
    1113911182    mov cx, ds                                ; 8c d9
    1114011183    mov ax, strict word 00004h                ; b8 04 00
    11141     call 018cch                               ; e8 3e 9f
     11184    call 018cch                               ; e8 4a 9f
    1114211185    push dx                                   ; 52
    1114311186    push word [bp-00eh]                       ; ff 76 f2
    1114411187    push word [bp-014h]                       ; ff 76 ec
    11145     push 00b83h                               ; 68 83 0b
     11188    push 00bf3h                               ; 68 f3 0b
    1114611189    push strict byte 00004h                   ; 6a 04
    11147     call 0190dh                               ; e8 70 9f
     11190    call 0190dh                               ; e8 7c 9f
    1114811191    add sp, strict byte 0000ah                ; 83 c4 0a
    11149     jmp near 07ba2h                           ; e9 ff 01
     11192    jmp near 07b96h                           ; e9 ff 01
    1115011193    cmp di, strict byte 00040h                ; 83 ff 40
    11151     jnbe short 079aah                         ; 77 02
    11152     jne short 079b4h                          ; 75 0a
     11194    jnbe short 0799eh                         ; 77 02
     11195    jne short 079a8h                          ; 75 0a
    1115311196    mov dword [bp-018h], strict dword 000ff003fh ; 66 c7 46 e8 3f 00 ff 00
    11154     jmp short 079cdh                          ; eb 19
     11197    jmp short 079c1h                          ; eb 19
    1115511198    cmp di, strict byte 00020h                ; 83 ff 20
    11156     jnbe short 079bbh                         ; 77 02
    11157     jne short 079c5h                          ; 75 0a
     11199    jnbe short 079afh                         ; 77 02
     11200    jne short 079b9h                          ; 75 0a
    1115811201    mov dword [bp-018h], strict dword 000800020h ; 66 c7 46 e8 20 00 80 00
    11159     jmp short 079cdh                          ; eb 08
     11202    jmp short 079c1h                          ; eb 08
    1116011203    mov dword [bp-018h], strict dword 000400020h ; 66 c7 46 e8 20 00 40 00
    1116111204    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    1116411207    mov dx, di                                ; 89 fa
    1116511208    xor cx, cx                                ; 31 c9
    11166     call 091e0h                               ; e8 02 18
     11209    call 091e0h                               ; e8 0e 18
    1116711210    mov word [bp-01ch], ax                    ; 89 46 e4
    1116811211    mov word [bp-01ah], dx                    ; 89 56 e6
     
    1119311236    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    1119411237    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
    11195     jne short 07a47h                          ; 75 07
     11238    jne short 07a3bh                          ; 75 07
    1119611239    cmp word [bp-01ch], 00400h                ; 81 7e e4 00 04
    11197     jbe short 07a4fh                          ; 76 08
     11240    jbe short 07a43h                          ; 76 08
    1119811241    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11199     jmp short 07a56h                          ; eb 07
     11242    jmp short 07a4ah                          ; eb 07
    1120011243    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1120111244    mov word [es:bx+028h], ax                 ; 26 89 47 28
    11202     mov bx, 00d38h                            ; bb 38 0d
     11245    mov bx, 00da8h                            ; bb a8 0d
    1120311246    mov cx, ds                                ; 8c d9
    1120411247    mov ax, strict word 00004h                ; b8 04 00
    11205     call 018cch                               ; e8 6b 9e
     11248    call 018cch                               ; e8 77 9e
    1120611249    push di                                   ; 57
    1120711250    push word [bp-010h]                       ; ff 76 f0
     
    1121211255    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1121311256    push ax                                   ; 50
    11214     push 00bb1h                               ; 68 b1 0b
     11257    push 00c21h                               ; 68 21 0c
    1121511258    push strict byte 00004h                   ; 6a 04
    11216     call 0190dh                               ; e8 8f 9e
     11259    call 0190dh                               ; e8 9b 9e
    1121711260    add sp, strict byte 00012h                ; 83 c4 12
    1121811261    movzx ax, dl                              ; 0f b6 c2
     
    1122611269    mov word [es:bx+030h], ax                 ; 26 89 47 30
    1122711270    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
    11228     jne short 07aa9h                          ; 75 07
     11271    jne short 07a9dh                          ; 75 07
    1122911272    cmp word [bp-01ch], 00400h                ; 81 7e e4 00 04
    11230     jbe short 07ab1h                          ; 76 08
     11273    jbe short 07aa5h                          ; 76 08
    1123111274    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11232     jmp short 07ab8h                          ; eb 07
     11275    jmp short 07aach                          ; eb 07
    1123311276    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1123411277    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
     
    1125211295    mov dx, strict word 00075h                ; ba 75 00
    1125311296    mov ax, strict word 00040h                ; b8 40 00
    11254     call 01600h                               ; e8 0b 9b
     11297    call 01600h                               ; e8 17 9b
    1125511298    db  0feh, 0c0h
    1125611299    ; inc al                                    ; fe c0
     
    1125811301    mov dx, strict word 00075h                ; ba 75 00
    1125911302    mov ax, strict word 00040h                ; b8 40 00
    11260     call 0160eh                               ; e8 0b 9b
     11303    call 0160eh                               ; e8 17 9b
    1126111304    inc byte [bp-00ch]                        ; fe 46 f4
    1126211305    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1126311306    mov es, [bp-012h]                         ; 8e 46 ee
    1126411307    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11265     jmp near 07ba2h                           ; e9 8e 00
    11266     mov bx, 00d38h                            ; bb 38 0d
     11308    jmp near 07b96h                           ; e9 8e 00
     11309    mov bx, 00da8h                            ; bb a8 0d
    1126711310    mov cx, ds                                ; 8c d9
    1126811311    mov ax, strict word 00004h                ; b8 04 00
    11269     call 018cch                               ; e8 ad 9d
     11312    call 018cch                               ; e8 b9 9d
    1127011313    push word [bp-014h]                       ; ff 76 ec
    1127111314    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1127211315    push ax                                   ; 50
    11273     push 00bdbh                               ; 68 db 0b
     11316    push 00c4bh                               ; 68 4b 0c
    1127411317    push strict byte 00004h                   ; 6a 04
    11275     call 0190dh                               ; e8 de 9d
     11318    call 0190dh                               ; e8 ea 9d
    1127611319    add sp, strict byte 00008h                ; 83 c4 08
    1127711320    mov dl, byte [bp-00ch]                    ; 8a 56 f4
     
    1131111354    inc word [bp-014h]                        ; ff 46 ec
    1131211355    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    11313     jnl short 07c13h                          ; 7d 68
     11356    jnl short 07c07h                          ; 7d 68
    1131411357    mov byte [bp-028h], 012h                  ; c6 46 d8 12
    1131511358    xor al, al                                ; 30 c0
     
    1132811371    lea bx, [bp-028h]                         ; 8d 5e d8
    1132911372    mov ax, word [bp-0022ah]                  ; 8b 86 d6 fd
    11330     call 07472h                               ; e8 96 f8
     11373    call 07466h                               ; e8 96 f8
    1133111374    test al, al                               ; 84 c0
    11332     je short 07beeh                           ; 74 0e
    11333     push 00b2bh                               ; 68 2b 0b
    11334     push 00b4bh                               ; 68 4b 0b
     11375    je short 07be2h                           ; 74 0e
     11376    push 00b9bh                               ; 68 9b 0b
     11377    push 00bbbh                               ; 68 bb 0b
    1133511378    push strict byte 00007h                   ; 6a 07
    11336     call 0190dh                               ; e8 22 9d
     11379    call 0190dh                               ; e8 2e 9d
    1133711380    add sp, strict byte 00006h                ; 83 c4 06
    1133811381    test byte [bp-00228h], 0e0h               ; f6 86 d8 fd e0
    11339     jne short 07bfeh                          ; 75 09
     11382    jne short 07bf2h                          ; 75 09
    1134011383    test byte [bp-00228h], 01fh               ; f6 86 d8 fd 1f
    11341     je near 078ceh                            ; 0f 84 d0 fc
     11384    je near 078c2h                            ; 0f 84 d0 fc
    1134211385    test byte [bp-00228h], 0e0h               ; f6 86 d8 fd e0
    11343     jne short 07ba2h                          ; 75 9d
     11386    jne short 07b96h                          ; 75 9d
    1134411387    mov al, byte [bp-00228h]                  ; 8a 86 d8 fd
    1134511388    and AL, strict byte 01fh                  ; 24 1f
    1134611389    cmp AL, strict byte 005h                  ; 3c 05
    11347     je near 07b14h                            ; 0f 84 03 ff
    11348     jmp short 07ba2h                          ; eb 8f
     11390    je near 07b08h                            ; 0f 84 03 ff
     11391    jmp short 07b96h                          ; eb 8f
    1134911392    lea sp, [bp-00ah]                         ; 8d 66 f6
    1135011393    pop di                                    ; 5f
     
    1135511398    pop bp                                    ; 5d
    1135611399    retn                                      ; c3
    11357 _scsi_init:                                  ; 0xf7c1d LB 0x66
     11400_scsi_init:                                  ; 0xf7c11 LB 0x66
    1135811401    push bp                                   ; 55
    1135911402    mov bp, sp                                ; 89 e5
    1136011403    mov dx, strict word 0000eh                ; ba 0e 00
    1136111404    mov ax, strict word 00040h                ; b8 40 00
    11362     call 0161ch                               ; e8 f3 99
     11405    call 0161ch                               ; e8 ff 99
    1136311406    mov bx, 00122h                            ; bb 22 01
    1136411407    mov es, ax                                ; 8e c0
     
    1137111414    ; sub ah, ah                                ; 2a e4
    1137211415    cmp AL, strict byte 055h                  ; 3c 55
    11373     jne short 07c4dh                          ; 75 0c
     11416    jne short 07c41h                          ; 75 0c
    1137411417    xor al, al                                ; 30 c0
    1137511418    mov dx, 00433h                            ; ba 33 04
    1137611419    out DX, AL                                ; ee
    1137711420    mov ax, 00430h                            ; b8 30 04
    11378     call 078aah                               ; e8 5d fc
     11421    call 0789eh                               ; e8 5d fc
    1137911422    mov AL, strict byte 055h                  ; b0 55
    1138011423    mov dx, 00436h                            ; ba 36 04
     
    1138411427    ; sub ah, ah                                ; 2a e4
    1138511428    cmp AL, strict byte 055h                  ; 3c 55
    11386     jne short 07c66h                          ; 75 0c
     11429    jne short 07c5ah                          ; 75 0c
    1138711430    xor al, al                                ; 30 c0
    1138811431    mov dx, 00437h                            ; ba 37 04
    1138911432    out DX, AL                                ; ee
    1139011433    mov ax, 00434h                            ; b8 34 04
    11391     call 078aah                               ; e8 44 fc
     11434    call 0789eh                               ; e8 44 fc
    1139211435    mov AL, strict byte 055h                  ; b0 55
    1139311436    mov dx, 0043ah                            ; ba 3a 04
     
    1139711440    ; sub ah, ah                                ; 2a e4
    1139811441    cmp AL, strict byte 055h                  ; 3c 55
    11399     jne short 07c7fh                          ; 75 0c
     11442    jne short 07c73h                          ; 75 0c
    1140011443    xor al, al                                ; 30 c0
    1140111444    mov dx, 0043bh                            ; ba 3b 04
    1140211445    out DX, AL                                ; ee
    1140311446    mov ax, 00438h                            ; b8 38 04
    11404     call 078aah                               ; e8 2b fc
     11447    call 0789eh                               ; e8 2b fc
    1140511448    mov sp, bp                                ; 89 ec
    1140611449    pop bp                                    ; 5d
    1140711450    retn                                      ; c3
    11408 high_bits_save_:                             ; 0xf7c83 LB 0x17
     11451high_bits_save_:                             ; 0xf7c77 LB 0x17
    1140911452    push bp                                   ; 55
    1141011453    mov bp, sp                                ; 89 e5
     
    1141811461    pop bp                                    ; 5d
    1141911462    retn                                      ; c3
    11420 high_bits_restore_:                          ; 0xf7c9a LB 0x17
     11463high_bits_restore_:                          ; 0xf7c8e LB 0x17
    1142111464    push bp                                   ; 55
    1142211465    mov bp, sp                                ; 89 e5
     
    1143011473    pop bp                                    ; 5d
    1143111474    retn                                      ; c3
    11432 ahci_ctrl_set_bits_:                         ; 0xf7cb1 LB 0x43
     11475ahci_ctrl_set_bits_:                         ; 0xf7ca5 LB 0x43
    1143311476    push bp                                   ; 55
    1143411477    mov bp, sp                                ; 89 e5
     
    1146811511    pop bp                                    ; 5d
    1146911512    retn                                      ; c3
    11470 ahci_ctrl_clear_bits_:                       ; 0xf7cf4 LB 0x47
     11513ahci_ctrl_clear_bits_:                       ; 0xf7ce8 LB 0x47
    1147111514    push bp                                   ; 55
    1147211515    mov bp, sp                                ; 89 e5
     
    1150811551    pop bp                                    ; 5d
    1150911552    retn                                      ; c3
    11510 ahci_ctrl_is_bit_set_:                       ; 0xf7d3b LB 0x39
     11553ahci_ctrl_is_bit_set_:                       ; 0xf7d2f LB 0x39
    1151111554    push bp                                   ; 55
    1151211555    mov bp, sp                                ; 89 e5
     
    1153011573    xchg dx, ax                               ; 92
    1153111574    test dx, di                               ; 85 fa
    11532     jne short 07d67h                          ; 75 04
     11575    jne short 07d5bh                          ; 75 04
    1153311576    test ax, bx                               ; 85 d8
    11534     je short 07d6bh                           ; 74 04
     11577    je short 07d5fh                           ; 74 04
    1153511578    mov AL, strict byte 001h                  ; b0 01
    11536     jmp short 07d6dh                          ; eb 02
     11579    jmp short 07d61h                          ; eb 02
    1153711580    xor al, al                                ; 30 c0
    1153811581    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1154111584    pop bp                                    ; 5d
    1154211585    retn                                      ; c3
    11543 ahci_ctrl_extract_bits_:                     ; 0xf7d74 LB 0x1b
     11586ahci_ctrl_extract_bits_:                     ; 0xf7d68 LB 0x1b
    1154411587    push si                                   ; 56
    1154511588    push bp                                   ; 55
     
    1154911592    and dx, cx                                ; 21 ca
    1155011593    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    11551     jcxz 07d8ah                               ; e3 06
     11594    jcxz 07d7eh                               ; e3 06
    1155211595    shr dx, 1                                 ; d1 ea
    1155311596    rcr ax, 1                                 ; d1 d8
    11554     loop 07d84h                               ; e2 fa
     11597    loop 07d78h                               ; e2 fa
    1155511598    pop bp                                    ; 5d
    1155611599    pop si                                    ; 5e
    1155711600    retn 00002h                               ; c2 02 00
    11558 ahci_addr_to_phys_:                          ; 0xf7d8f LB 0x1e
     11601ahci_addr_to_phys_:                          ; 0xf7d83 LB 0x1e
    1155911602    push bx                                   ; 53
    1156011603    push cx                                   ; 51
     
    1156711610    sal ax, 1                                 ; d1 e0
    1156811611    rcl dx, 1                                 ; d1 d2
    11569     loop 07d9dh                               ; e2 fa
     11612    loop 07d91h                               ; e2 fa
    1157011613    xor cx, cx                                ; 31 c9
    1157111614    add ax, bx                                ; 01 d8
     
    1157511618    pop bx                                    ; 5b
    1157611619    retn                                      ; c3
    11577 ahci_port_cmd_sync_:                         ; 0xf7dad LB 0xd5
     11620ahci_port_cmd_sync_:                         ; 0xf7da1 LB 0xd5
    1157811621    push bp                                   ; 55
    1157911622    mov bp, sp                                ; 89 e5
     
    1158911632    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1159011633    cmp AL, strict byte 0ffh                  ; 3c ff
    11591     je near 07e7ah                            ; 0f 84 aa 00
     11634    je near 07e6eh                            ; 0f 84 aa 00
    1159211635    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    1159311636    xor dx, dx                                ; 31 d2
     
    1160111644    lea ax, [si+00080h]                       ; 8d 84 80 00
    1160211645    mov dx, es                                ; 8c c2
    11603     call 07d8fh                               ; e8 96 ff
     11646    call 07d83h                               ; e8 96 ff
    1160411647    mov es, [bp-00ah]                         ; 8e 46 f6
    1160511648    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1161111654    xor cx, cx                                ; 31 c9
    1161211655    mov ax, di                                ; 89 f8
    11613     call 07cb1h                               ; e8 98 fe
     11656    call 07ca5h                               ; e8 98 fe
    1161411657    lea ax, [si+00138h]                       ; 8d 84 38 01
    1161511658    cwd                                       ; 99
     
    1163811681    mov dx, si                                ; 89 f2
    1163911682    mov ax, di                                ; 89 f8
    11640     call 07d3bh                               ; e8 e2 fe
     11683    call 07d2fh                               ; e8 e2 fe
    1164111684    test al, al                               ; 84 c0
    11642     je short 07e3ch                           ; 74 df
     11685    je short 07e30h                           ; 74 df
    1164311686    mov bx, strict word 00001h                ; bb 01 00
    1164411687    xor cx, cx                                ; 31 c9
    1164511688    mov dx, si                                ; 89 f2
    1164611689    mov ax, di                                ; 89 f8
    11647     call 07cb1h                               ; e8 48 fe
     11690    call 07ca5h                               ; e8 48 fe
    1164811691    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1164911692    add dx, 00118h                            ; 81 c2 18 01
     
    1165111694    xor cx, cx                                ; 31 c9
    1165211695    mov ax, di                                ; 89 f8
    11653     call 07cf4h                               ; e8 7a fe
     11696    call 07ce8h                               ; e8 7a fe
    1165411697    lea sp, [bp-006h]                         ; 8d 66 fa
    1165511698    pop di                                    ; 5f
     
    1165811701    pop bp                                    ; 5d
    1165911702    retn                                      ; c3
    11660 ahci_cmd_data_:                              ; 0xf7e82 LB 0x1ca
     11703ahci_cmd_data_:                              ; 0xf7e76 LB 0x1ca
    1166111704    push bp                                   ; 55
    1166211705    mov bp, sp                                ; 89 e5
     
    1168211725    mov ax, 00080h                            ; b8 80 00
    1168311726    mov dx, word [bp-00ah]                    ; 8b 56 f6
    11684     call 0924ah                               ; e8 89 13
     11727    call 0924ah                               ; e8 95 13
    1168511728    mov es, [bp-00ah]                         ; 8e 46 f6
    1168611729    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1169811741    shr bx, 1                                 ; d1 eb
    1169911742    rcr ax, 1                                 ; d1 d8
    11700     loop 07ef4h                               ; e2 fa
     11743    loop 07ee8h                               ; e2 fa
    1170111744    mov es, [bp-00ah]                         ; 8e 46 f6
    1170211745    mov byte [es:si+00085h], al               ; 26 88 84 85 00
     
    1172311766    mov bx, word [bp-016h]                    ; 8b 5e ea
    1172411767    xor cx, cx                                ; 31 c9
    11725     call 09219h                               ; e8 bc 12
     11768    call 09219h                               ; e8 c8 12
    1172611769    push dx                                   ; 52
    1172711770    push ax                                   ; 50
     
    1173111774    mov ax, 0026ah                            ; b8 6a 02
    1173211775    mov dx, word [bp-00ah]                    ; 8b 56 f6
    11733     call 09137h                               ; e8 c4 11
     11776    call 0912bh                               ; e8 c4 11
    1173411777    mov es, [bp-00ah]                         ; 8e 46 f6
    1173511778    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1175111794    mov es, [bp-012h]                         ; 8e 46 ee
    1175211795    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    11753     je short 07fech                           ; 74 2c
     11796    je short 07fe0h                           ; 74 2c
    1175411797    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1175511798    dec dx                                    ; 4a
     
    1177011813    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1177111814    cmp ax, dx                                ; 39 d0
    11772     jnc short 08006h                          ; 73 03
     11815    jnc short 07ffah                          ; 73 03
    1177311816    inc ax                                    ; 40
    11774     jmp short 07ff6h                          ; eb f0
     11817    jmp short 07feah                          ; eb f0
    1177511818    mov al, byte [bp-008h]                    ; 8a 46 f8
    1177611819    cmp AL, strict byte 035h                  ; 3c 35
    11777     jne short 08013h                          ; 75 06
     11820    jne short 08007h                          ; 75 06
    1177811821    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    11779     jmp short 08027h                          ; eb 14
     11822    jmp short 0801bh                          ; eb 14
    1178011823    cmp AL, strict byte 0a0h                  ; 3c a0
    11781     jne short 08023h                          ; 75 0c
     11824    jne short 08017h                          ; 75 0c
    1178211825    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1178311826    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    11784     jmp short 08027h                          ; eb 04
     11827    jmp short 0801bh                          ; eb 04
    1178511828    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1178611829    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1178811831    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1178911832    mov dx, word [bp-00ch]                    ; 8b 56 f4
    11790     call 07dadh                               ; e8 75 fd
     11833    call 07da1h                               ; e8 75 fd
    1179111834    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1179211835    add ax, 0026ah                            ; 05 6a 02
    1179311836    mov dx, word [bp-00ch]                    ; 8b 56 f4
    11794     call 091b0h                               ; e8 6c 11
     11837    call 091a4h                               ; e8 6c 11
    1179511838    lea sp, [bp-006h]                         ; 8d 66 fa
    1179611839    pop di                                    ; 5f
     
    1179911842    pop bp                                    ; 5d
    1180011843    retn                                      ; c3
    11801 ahci_port_deinit_current_:                   ; 0xf804c LB 0x144
     11844ahci_port_deinit_current_:                   ; 0xf8040 LB 0x144
    1180211845    push bp                                   ; 55
    1180311846    mov bp, sp                                ; 89 e5
     
    1181411857    mov byte [bp-00ah], al                    ; 88 46 f6
    1181511858    cmp AL, strict byte 0ffh                  ; 3c ff
    11816     je near 08187h                            ; 0f 84 17 01
     11859    je near 0817bh                            ; 0f 84 17 01
    1181711860    movzx dx, al                              ; 0f b6 d0
    1181811861    sal dx, 007h                              ; c1 e2 07
     
    1182111864    xor cx, cx                                ; 31 c9
    1182211865    mov ax, si                                ; 89 f0
    11823     call 07cf4h                               ; e8 70 fc
     11866    call 07ce8h                               ; e8 70 fc
    1182411867    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1182511868    sal ax, 007h                              ; c1 e0 07
     
    1183011873    xor cx, cx                                ; 31 c9
    1183111874    mov ax, si                                ; 89 f0
    11832     call 07d3bh                               ; e8 9d fc
     11875    call 07d2fh                               ; e8 9d fc
    1183311876    cmp AL, strict byte 001h                  ; 3c 01
    11834     je short 08084h                           ; 74 e2
     11877    je short 08078h                           ; 74 e2
    1183511878    mov cx, strict word 00020h                ; b9 20 00
    1183611879    xor bx, bx                                ; 31 db
    1183711880    mov ax, di                                ; 89 f8
    1183811881    mov dx, word [bp-00ch]                    ; 8b 56 f4
    11839     call 0924ah                               ; e8 9b 11
     11882    call 0924ah                               ; e8 a7 11
    1184011883    lea ax, [di+00080h]                       ; 8d 85 80 00
    1184111884    mov cx, strict word 00040h                ; b9 40 00
    1184211885    xor bx, bx                                ; 31 db
    1184311886    mov dx, word [bp-00ch]                    ; 8b 56 f4
    11844     call 0924ah                               ; e8 8c 11
     11887    call 0924ah                               ; e8 98 11
    1184511888    lea ax, [di+00200h]                       ; 8d 85 00 02
    1184611889    mov cx, strict word 00060h                ; b9 60 00
    1184711890    xor bx, bx                                ; 31 db
    1184811891    mov dx, word [bp-00ch]                    ; 8b 56 f4
    11849     call 0924ah                               ; e8 7d 11
     11892    call 0924ah                               ; e8 89 11
    1185011893    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1185111894    add ax, 00108h                            ; 05 08 01
     
    1194911992    pop bp                                    ; 5d
    1195011993    retn                                      ; c3
    11951 ahci_port_init_:                             ; 0xf8190 LB 0x206
     11994ahci_port_init_:                             ; 0xf8184 LB 0x206
    1195211995    push bp                                   ; 55
    1195311996    mov bp, sp                                ; 89 e5
     
    1195912002    mov word [bp-00ah], dx                    ; 89 56 f6
    1196012003    mov byte [bp-008h], bl                    ; 88 5e f8
    11961     call 0804ch                               ; e8 a8 fe
     12004    call 08040h                               ; e8 a8 fe
    1196212005    movzx dx, bl                              ; 0f b6 d3
    1196312006    sal dx, 007h                              ; c1 e2 07
     
    1196712010    mov bx, strict word 00011h                ; bb 11 00
    1196812011    xor cx, cx                                ; 31 c9
    11969     call 07cf4h                               ; e8 36 fb
     12012    call 07ce8h                               ; e8 36 fb
    1197012013    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1197112014    sal di, 007h                              ; c1 e7 07
     
    1197512018    mov bx, 0c011h                            ; bb 11 c0
    1197612019    xor cx, cx                                ; 31 c9
    11977     call 07d3bh                               ; e8 62 fb
     12020    call 07d2fh                               ; e8 62 fb
    1197812021    cmp AL, strict byte 001h                  ; 3c 01
    11979     je short 081beh                           ; 74 e1
     12022    je short 081b2h                           ; 74 e1
    1198012023    mov cx, strict word 00020h                ; b9 20 00
    1198112024    xor bx, bx                                ; 31 db
    1198212025    mov ax, si                                ; 89 f0
    1198312026    mov dx, word [bp-00ah]                    ; 8b 56 f6
    11984     call 0924ah                               ; e8 60 10
     12027    call 0924ah                               ; e8 6c 10
    1198512028    lea ax, [si+00080h]                       ; 8d 84 80 00
    1198612029    mov cx, strict word 00040h                ; b9 40 00
    1198712030    xor bx, bx                                ; 31 db
    1198812031    mov dx, word [bp-00ah]                    ; 8b 56 f6
    11989     call 0924ah                               ; e8 51 10
     12032    call 0924ah                               ; e8 5d 10
    1199012033    mov ax, si                                ; 89 f0
    1199112034    add ah, 002h                              ; 80 c4 02
     
    1199412037    xor bx, bx                                ; 31 db
    1199512038    mov dx, word [bp-00ah]                    ; 8b 56 f6
    11996     call 0924ah                               ; e8 3e 10
     12039    call 0924ah                               ; e8 4a 10
    1199712040    lea ax, [di+00108h]                       ; 8d 85 08 01
    1199812041    cwd                                       ; 99
     
    1200812051    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1200912052    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12010     call 07d8fh                               ; e8 60 fb
     12053    call 07d83h                               ; e8 60 fb
    1201112054    mov es, [bp-00ah]                         ; 8e 46 f6
    1201212055    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1205312096    mov ax, si                                ; 89 f0
    1205412097    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12055     call 07d8fh                               ; e8 f4 fa
     12098    call 07d83h                               ; e8 f4 fa
    1205612099    mov es, [bp-00ah]                         ; 8e 46 f6
    1205712100    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1215812201    pop bp                                    ; 5d
    1215912202    retn                                      ; c3
    12160 @ahci_read_sectors:                          ; 0xf8396 LB 0x94
     12203@ahci_read_sectors:                          ; 0xf838a LB 0x94
    1216112204    push bp                                   ; 55
    1216212205    mov bp, sp                                ; 89 e5
     
    1216712210    sub di, strict byte 0000ch                ; 83 ef 0c
    1216812211    cmp di, strict byte 00004h                ; 83 ff 04
    12169     jbe short 083bah                          ; 76 0f
     12212    jbe short 083aeh                          ; 76 0f
    1217012213    push di                                   ; 57
    12171     push 00bf6h                               ; 68 f6 0b
    12172     push 00c08h                               ; 68 08 0c
     12214    push 00c66h                               ; 68 66 0c
     12215    push 00c78h                               ; 68 78 0c
    1217312216    push strict byte 00007h                   ; 6a 07
    12174     call 0190dh                               ; e8 56 95
     12217    call 0190dh                               ; e8 62 95
    1217512218    add sp, strict byte 00008h                ; 83 c4 08
    1217612219    les bx, [bp+004h]                         ; c4 5e 04
    1217712220    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1217812221    xor ax, ax                                ; 31 c0
    12179     call 07c83h                               ; e8 bc f8
     12222    call 07c77h                               ; e8 bc f8
    1218012223    mov es, [bp+006h]                         ; 8e 46 06
    1218112224    add di, bx                                ; 01 df
     
    1218412227    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1218512228    xor ax, ax                                ; 31 c0
    12186     call 08190h                               ; e8 b1 fd
     12229    call 08184h                               ; e8 b1 fd
    1218712230    mov bx, strict word 00025h                ; bb 25 00
    1218812231    mov ax, di                                ; 89 f8
    1218912232    mov dx, word [bp+006h]                    ; 8b 56 06
    12190     call 07e82h                               ; e8 98 fa
     12233    call 07e76h                               ; e8 98 fa
    1219112234    mov es, [bp+006h]                         ; 8e 46 06
    1219212235    mov bx, di                                ; 89 fb
     
    1220812251    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1220912252    xor ax, ax                                ; 31 c0
    12210     call 07c9ah                               ; e8 7b f8
     12253    call 07c8eh                               ; e8 7b f8
    1221112254    xor ax, ax                                ; 31 c0
    1221212255    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1221512258    pop bp                                    ; 5d
    1221612259    retn 00004h                               ; c2 04 00
    12217 @ahci_write_sectors:                         ; 0xf842a LB 0x70
     12260@ahci_write_sectors:                         ; 0xf841e LB 0x70
    1221812261    push bp                                   ; 55
    1221912262    mov bp, sp                                ; 89 e5
     
    1222512268    sub bx, strict byte 0000ch                ; 83 eb 0c
    1222612269    cmp bx, strict byte 00004h                ; 83 fb 04
    12227     jbe short 08452h                          ; 76 0f
     12270    jbe short 08446h                          ; 76 0f
    1222812271    push bx                                   ; 53
    12229     push 00c27h                               ; 68 27 0c
    12230     push 00c08h                               ; 68 08 0c
     12272    push 00c97h                               ; 68 97 0c
     12273    push 00c78h                               ; 68 78 0c
    1223112274    push strict byte 00007h                   ; 6a 07
    12232     call 0190dh                               ; e8 be 94
     12275    call 0190dh                               ; e8 ca 94
    1223312276    add sp, strict byte 00008h                ; 83 c4 08
    1223412277    mov es, cx                                ; 8e c1
    1223512278    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1223612279    xor ax, ax                                ; 31 c0
    12237     call 07c83h                               ; e8 25 f8
     12280    call 07c77h                               ; e8 25 f8
    1223812281    mov es, cx                                ; 8e c1
    1223912282    add bx, si                                ; 01 f3
     
    1224112284    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1224212285    xor ax, ax                                ; 31 c0
    12243     call 08190h                               ; e8 1e fd
     12286    call 08184h                               ; e8 1e fd
    1224412287    mov bx, strict word 00035h                ; bb 35 00
    1224512288    mov ax, si                                ; 89 f0
    1224612289    mov dx, cx                                ; 89 ca
    12247     call 07e82h                               ; e8 06 fa
     12290    call 07e76h                               ; e8 06 fa
    1224812291    mov es, cx                                ; 8e c1
    1224912292    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     
    1225112294    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1225212295    xor ax, ax                                ; 31 c0
    12253     call 07c9ah                               ; e8 0a f8
     12296    call 07c8eh                               ; e8 0a f8
    1225412297    xor ax, ax                                ; 31 c0
    1225512298    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1225712300    pop bp                                    ; 5d
    1225812301    retn 00004h                               ; c2 04 00
    12259 ahci_cmd_packet_:                            ; 0xf849a LB 0x173
     12302ahci_cmd_packet_:                            ; 0xf848e LB 0x173
    1226012303    push bp                                   ; 55
    1226112304    mov bp, sp                                ; 89 e5
     
    1226912312    mov dx, strict word 0000eh                ; ba 0e 00
    1227012313    mov ax, strict word 00040h                ; b8 40 00
    12271     call 0161ch                               ; e8 67 91
     12314    call 0161ch                               ; e8 73 91
    1227212315    mov si, 00122h                            ; be 22 01
    1227312316    mov word [bp-008h], ax                    ; 89 46 f8
    1227412317    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12275     jne short 084e0h                          ; 75 1f
    12276     mov bx, 00d38h                            ; bb 38 0d
     12318    jne short 084d4h                          ; 75 1f
     12319    mov bx, 00da8h                            ; bb a8 0d
    1227712320    mov cx, ds                                ; 8c d9
    1227812321    mov ax, strict word 00004h                ; b8 04 00
    12279     call 018cch                               ; e8 00 94
    12280     push 00c3ah                               ; 68 3a 0c
    12281     push 00c4ah                               ; 68 4a 0c
     12322    call 018cch                               ; e8 0c 94
     12323    push 00caah                               ; 68 aa 0c
     12324    push 00cbah                               ; 68 ba 0c
    1228212325    push strict byte 00004h                   ; 6a 04
    12283     call 0190dh                               ; e8 36 94
     12326    call 0190dh                               ; e8 42 94
    1228412327    add sp, strict byte 00006h                ; 83 c4 06
    1228512328    mov ax, strict word 00001h                ; b8 01 00
    12286     jmp near 08604h                           ; e9 24 01
     12329    jmp near 085f8h                           ; e9 24 01
    1228712330    test byte [bp+004h], 001h                 ; f6 46 04 01
    12288     jne short 084dah                          ; 75 f4
     12331    jne short 084ceh                          ; 75 f4
    1228912332    mov ax, word [bp+006h]                    ; 8b 46 06
    1229012333    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1229212335    sal ax, 1                                 ; d1 e0
    1229312336    rcl dx, 1                                 ; d1 d2
    12294     loop 084efh                               ; e2 fa
     12337    loop 084e3h                               ; e2 fa
    1229512338    mov es, [bp-008h]                         ; 8e 46 f8
    1229612339    mov word [es:si], ax                      ; 26 89 04
     
    1230412347    mov dx, word [bp+008h]                    ; 8b 56 08
    1230512348    xor cx, cx                                ; 31 c9
    12306     call 091e0h                               ; e8 c4 0c
     12349    call 091e0h                               ; e8 d0 0c
    1230712350    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1230812351    xor di, di                                ; 31 ff
     
    1231412357    xor ax, ax                                ; 31 c0
    1231512358    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12316     call 07c83h                               ; e8 47 f7
     12359    call 07c77h                               ; e8 47 f7
    1231712360    mov es, [bp-008h]                         ; 8e 46 f8
    1231812361    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    1232112364    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1232212365    xor ax, ax                                ; 31 c0
    12323     call 08190h                               ; e8 3c fc
     12366    call 08184h                               ; e8 3c fc
    1232412367    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1232512368    push ax                                   ; 50
     
    1232812371    mov ax, 000c0h                            ; b8 c0 00
    1232912372    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12330     call 09257h                               ; e8 ef 0c
     12373    call 09257h                               ; e8 fb 0c
    1233112374    mov es, [bp-008h]                         ; 8e 46 f8
    1233212375    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1233512378    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1233612379    test ax, ax                               ; 85 c0
    12337     je short 085a6h                           ; 74 27
     12380    je short 0859ah                           ; 74 27
    1233812381    dec ax                                    ; 48
    1233912382    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1234812391    mov ax, si                                ; 89 f0
    1234912392    mov dx, word [bp-008h]                    ; 8b 56 f8
    12350     call 07e82h                               ; e8 d1 f8
     12393    call 07e76h                               ; e8 d1 f8
    1235112394    les bx, [bp-00eh]                         ; c4 5e f2
    1235212395    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1237112414    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1237212415    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12373     call 07c9ah                               ; e8 aa f6
     12416    call 07c8eh                               ; e8 aa f6
    1237412417    les bx, [bp-00eh]                         ; c4 5e f2
    1237512418    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1237612419    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12377     jne short 08602h                          ; 75 05
     12420    jne short 085f6h                          ; 75 05
    1237812421    mov ax, strict word 00004h                ; b8 04 00
    12379     jmp short 08604h                          ; eb 02
     12422    jmp short 085f8h                          ; eb 02
    1238012423    xor ax, ax                                ; 31 c0
    1238112424    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1238412427    pop bp                                    ; 5d
    1238512428    retn 0000ch                               ; c2 0c 00
    12386 ahci_port_detect_device_:                    ; 0xf860d LB 0x3d1
     12429ahci_port_detect_device_:                    ; 0xf8601 LB 0x3d1
    1238712430    push bp                                   ; 55
    1238812431    mov bp, sp                                ; 89 e5
     
    1239612439    movzx cx, bl                              ; 0f b6 cb
    1239712440    mov bx, cx                                ; 89 cb
    12398     call 08190h                               ; e8 69 fb
     12441    call 08184h                               ; e8 69 fb
    1239912442    mov dx, strict word 0000eh                ; ba 0e 00
    1240012443    mov ax, strict word 00040h                ; b8 40 00
    12401     call 0161ch                               ; e8 ec 8f
     12444    call 0161ch                               ; e8 f8 8f
    1240212445    mov word [bp-020h], ax                    ; 89 46 e0
    1240312446    mov si, 00122h                            ; be 22 01
     
    1247212515    mov bx, strict word 0000fh                ; bb 0f 00
    1247312516    xor cx, cx                                ; 31 c9
    12474     call 07d74h                               ; e8 90 f6
     12517    call 07d68h                               ; e8 90 f6
    1247512518    cmp ax, strict word 00003h                ; 3d 03 00
    12476     jne near 089d6h                           ; 0f 85 eb 02
     12519    jne near 089cah                           ; 0f 85 eb 02
    1247712520    mov es, [bp-00eh]                         ; 8e 46 f2
    1247812521    mov al, byte [es:si+001edh]               ; 26 8a 84 ed 01
    1247912522    mov byte [bp-00ah], al                    ; 88 46 f6
    1248012523    cmp AL, strict byte 004h                  ; 3c 04
    12481     jnc near 089d6h                           ; 0f 83 da 02
     12524    jnc near 089cah                           ; 0f 83 da 02
    1248212525    mov dx, word [bp-01ch]                    ; 8b 56 e4
    1248312526    add dx, 00118h                            ; 81 c2 18 01
     
    1248612529    mov bx, strict word 00010h                ; bb 10 00
    1248712530    xor cx, cx                                ; 31 c9
    12488     call 07cb1h                               ; e8 9e f5
     12531    call 07ca5h                               ; e8 9e f5
    1248912532    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1249012533    add ax, 00124h                            ; 05 24 01
     
    1251212555    add cl, 00ch                              ; 80 c1 0c
    1251312556    test dx, dx                               ; 85 d2
    12514     jne near 08928h                           ; 0f 85 d5 01
     12557    jne near 0891ch                           ; 0f 85 d5 01
    1251512558    cmp bx, 00101h                            ; 81 fb 01 01
    12516     jne near 08928h                           ; 0f 85 cd 01
     12559    jne near 0891ch                           ; 0f 85 cd 01
    1251712560    mov es, [bp-00eh]                         ; 8e 46 f2
    1251812561    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1252612569    mov ax, si                                ; 89 f0
    1252712570    mov dx, word [bp-020h]                    ; 8b 56 e0
    12528     call 07e82h                               ; e8 fc f6
     12571    call 07e76h                               ; e8 fc f6
    1252912572    mov byte [bp-00ch], cl                    ; 88 4e f4
    1253012573    test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
     
    1254212585    mov word [bp-014h], dx                    ; 89 56 ec
    1254312586    cmp dx, 00fffh                            ; 81 fa ff 0f
    12544     jne short 087c9h                          ; 75 10
     12587    jne short 087bdh                          ; 75 10
    1254512588    cmp di, strict byte 0ffffh                ; 83 ff ff
    12546     jne short 087c9h                          ; 75 0b
     12589    jne short 087bdh                          ; 75 0b
    1254712590    mov di, word [bp-00160h]                  ; 8b be a0 fe
    1254812591    mov dx, word [bp-0015eh]                  ; 8b 96 a2 fe
     
    1257312616    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1257412617    cmp AL, strict byte 001h                  ; 3c 01
    12575     jc short 08834h                           ; 72 0c
    12576     jbe short 0883ch                          ; 76 12
     12618    jc short 08828h                           ; 72 0c
     12619    jbe short 08830h                          ; 76 12
    1257712620    cmp AL, strict byte 003h                  ; 3c 03
    12578     je short 08844h                           ; 74 16
     12621    je short 08838h                           ; 74 16
    1257912622    cmp AL, strict byte 002h                  ; 3c 02
    12580     je short 08840h                           ; 74 0e
    12581     jmp short 0888dh                          ; eb 59
     12623    je short 08834h                           ; 74 0e
     12624    jmp short 08881h                          ; eb 59
    1258212625    test al, al                               ; 84 c0
    12583     jne short 0888dh                          ; 75 55
     12626    jne short 08881h                          ; 75 55
    1258412627    mov DL, strict byte 040h                  ; b2 40
    12585     jmp short 08846h                          ; eb 0a
     12628    jmp short 0883ah                          ; eb 0a
    1258612629    mov DL, strict byte 048h                  ; b2 48
    12587     jmp short 08846h                          ; eb 06
     12630    jmp short 0883ah                          ; eb 06
    1258812631    mov DL, strict byte 050h                  ; b2 50
    12589     jmp short 08846h                          ; eb 02
     12632    jmp short 0883ah                          ; eb 02
    1259012633    mov DL, strict byte 058h                  ; b2 58
    1259112634    mov al, dl                                ; 88 d0
     
    1259312636    movzx bx, al                              ; 0f b6 d8
    1259412637    mov ax, bx                                ; 89 d8
    12595     call 0165ch                               ; e8 0a 8e
     12638    call 0165ch                               ; e8 16 8e
    1259612639    test al, al                               ; 84 c0
    12597     je short 0888dh                           ; 74 37
     12640    je short 08881h                           ; 74 37
    1259812641    mov al, dl                                ; 88 d0
    1259912642    db  0feh, 0c0h
    1260012643    ; inc al                                    ; fe c0
    1260112644    xor ah, ah                                ; 30 e4
    12602     call 0165ch                               ; e8 fd 8d
     12645    call 0165ch                               ; e8 09 8e
    1260312646    xor ah, ah                                ; 30 e4
    1260412647    mov cx, ax                                ; 89 c1
    1260512648    sal cx, 008h                              ; c1 e1 08
    1260612649    movzx ax, dl                              ; 0f b6 c2
    12607     call 0165ch                               ; e8 f0 8d
     12650    call 0165ch                               ; e8 fc 8d
    1260812651    xor ah, ah                                ; 30 e4
    1260912652    add ax, cx                                ; 01 c8
     
    1261212655    add AL, strict byte 002h                  ; 04 02
    1261312656    xor ah, ah                                ; 30 e4
    12614     call 0165ch                               ; e8 e0 8d
     12657    call 0165ch                               ; e8 ec 8d
    1261512658    xor ah, ah                                ; 30 e4
    1261612659    mov word [bp-028h], ax                    ; 89 46 d8
    1261712660    mov ax, bx                                ; 89 d8
    12618     call 0165ch                               ; e8 d6 8d
     12661    call 0165ch                               ; e8 e2 8d
    1261912662    xor ah, ah                                ; 30 e4
    1262012663    mov word [bp-024h], ax                    ; 89 46 dc
    12621     jmp short 0889ah                          ; eb 0d
     12664    jmp short 0888eh                          ; eb 0d
    1262212665    mov bx, di                                ; 89 fb
    1262312666    mov cx, word [bp-014h]                    ; 8b 4e ec
    1262412667    mov dx, ss                                ; 8c d2
    1262512668    lea ax, [bp-028h]                         ; 8d 46 d8
    12626     call 05338h                               ; e8 9e ca
    12627     mov bx, 00d38h                            ; bb 38 0d
     12669    call 0532ch                               ; e8 9e ca
     12670    mov bx, 00da8h                            ; bb a8 0d
    1262812671    mov cx, ds                                ; 8c d9
    1262912672    mov ax, strict word 00004h                ; b8 04 00
    12630     call 018cch                               ; e8 27 90
     12673    call 018cch                               ; e8 33 90
    1263112674    push word [bp-014h]                       ; ff 76 ec
    1263212675    push di                                   ; 57
     
    1264312686    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1264412687    push ax                                   ; 50
    12645     push 00c6ah                               ; 68 6a 0c
     12688    push 00cdah                               ; 68 da 0c
    1264612689    push strict byte 00004h                   ; 6a 04
    12647     call 0190dh                               ; e8 3f 90
     12690    call 0190dh                               ; e8 4b 90
    1264812691    add sp, strict byte 00018h                ; 83 c4 18
    1264912692    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    1267312716    mov dx, strict word 00075h                ; ba 75 00
    1267412717    mov ax, strict word 00040h                ; b8 40 00
    12675     call 01600h                               ; e8 e9 8c
     12718    call 01600h                               ; e8 f5 8c
    1267612719    db  0feh, 0c0h
    1267712720    ; inc al                                    ; fe c0
     
    1267912722    mov dx, strict word 00075h                ; ba 75 00
    1268012723    mov ax, strict word 00040h                ; b8 40 00
    12681     call 0160eh                               ; e8 e9 8c
    12682     jmp near 089c5h                           ; e9 9d 00
     12724    call 0160eh                               ; e8 f5 8c
     12725    jmp near 089b9h                           ; e9 9d 00
    1268312726    cmp dx, 0eb14h                            ; 81 fa 14 eb
    12684     jne near 089c5h                           ; 0f 85 95 00
     12727    jne near 089b9h                           ; 0f 85 95 00
    1268512728    cmp bx, 00101h                            ; 81 fb 01 01
    12686     jne near 089c5h                           ; 0f 85 8d 00
     12729    jne near 089b9h                           ; 0f 85 8d 00
    1268712730    mov es, [bp-00eh]                         ; 8e 46 f2
    1268812731    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1269612739    mov ax, si                                ; 89 f0
    1269712740    mov dx, word [bp-020h]                    ; 8b 56 e0
    12698     call 07e82h                               ; e8 1f f5
     12741    call 07e76h                               ; e8 1f f5
    1269912742    test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
    1270012743    db  00fh, 095h, 0c0h
     
    1273712780    pop bp                                    ; 5d
    1273812781    retn                                      ; c3
    12739 ahci_mem_alloc_:                             ; 0xf89de LB 0x43
     12782ahci_mem_alloc_:                             ; 0xf89d2 LB 0x43
    1274012783    push bp                                   ; 55
    1274112784    mov bp, sp                                ; 89 e5
     
    1274712790    mov dx, 00413h                            ; ba 13 04
    1274812791    xor ax, ax                                ; 31 c0
    12749     call 0161ch                               ; e8 2e 8c
     12792    call 0161ch                               ; e8 3a 8c
    1275012793    test ax, ax                               ; 85 c0
    12751     je short 08a17h                           ; 74 25
     12794    je short 08a0bh                           ; 74 25
    1275212795    dec ax                                    ; 48
    1275312796    mov bx, ax                                ; 89 c3
     
    1275612799    sal ax, 1                                 ; d1 e0
    1275712800    rcl dx, 1                                 ; d1 d2
    12758     loop 089fah                               ; e2 fa
     12801    loop 089eeh                               ; e2 fa
    1275912802    mov si, ax                                ; 89 c6
    1276012803    mov di, dx                                ; 89 d7
     
    1276212805    shr di, 1                                 ; d1 ef
    1276312806    rcr si, 1                                 ; d1 de
    12764     loop 08a07h                               ; e2 fa
     12807    loop 089fbh                               ; e2 fa
    1276512808    mov dx, 00413h                            ; ba 13 04
    1276612809    xor ax, ax                                ; 31 c0
    12767     call 0162ah                               ; e8 15 8c
     12810    call 0162ah                               ; e8 21 8c
    1276812811    mov ax, si                                ; 89 f0
    1276912812    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1277512818    pop bp                                    ; 5d
    1277612819    retn                                      ; c3
    12777 ahci_hba_init_:                              ; 0xf8a21 LB 0x125
     12820ahci_hba_init_:                              ; 0xf8a15 LB 0x125
    1277812821    push bp                                   ; 55
    1277912822    mov bp, sp                                ; 89 e5
     
    1278712830    mov dx, strict word 0000eh                ; ba 0e 00
    1278812831    mov ax, strict word 00040h                ; b8 40 00
    12789     call 0161ch                               ; e8 e5 8b
     12832    call 0161ch                               ; e8 f1 8b
    1279012833    mov bx, 00122h                            ; bb 22 01
    1279112834    mov word [bp-010h], ax                    ; 89 46 f0
     
    1280412847    shr eax, 010h                             ; 66 c1 e8 10
    1280512848    xchg dx, ax                               ; 92
    12806     call 089deh                               ; e8 82 ff
     12849    call 089d2h                               ; e8 82 ff
    1280712850    mov di, ax                                ; 89 c7
    1280812851    test ax, ax                               ; 85 c0
    12809     je near 08b25h                            ; 0f 84 c1 00
     12852    je near 08b19h                            ; 0f 84 c1 00
    1281012853    mov es, [bp-010h]                         ; 8e 46 f0
    1281112854    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1282112864    mov dx, strict word 00004h                ; ba 04 00
    1282212865    mov ax, si                                ; 89 f0
    12823     call 07cb1h                               ; e8 19 f2
     12866    call 07ca5h                               ; e8 19 f2
    1282412867    mov ax, strict word 00004h                ; b8 04 00
    1282512868    xor cx, cx                                ; 31 c9
     
    1283812881    xchg dx, ax                               ; 92
    1283912882    test AL, strict byte 001h                 ; a8 01
    12840     jne short 08a98h                          ; 75 de
     12883    jne short 08a8ch                          ; 75 de
    1284112884    xor ax, ax                                ; 31 c0
    1284212885    xor cx, cx                                ; 31 c9
     
    1285612899    mov bx, strict word 0001fh                ; bb 1f 00
    1285712900    xor cx, cx                                ; 31 c9
    12858     call 07d74h                               ; e8 96 f2
     12901    call 07d68h                               ; e8 96 f2
    1285912902    db  0feh, 0c0h
    1286012903    ; inc al                                    ; fe c0
    1286112904    mov byte [bp-00eh], al                    ; 88 46 f2
    1286212905    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    12863     jmp short 08af2h                          ; eb 09
     12906    jmp short 08ae6h                          ; eb 09
    1286412907    inc byte [bp-00ch]                        ; fe 46 f4
    1286512908    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    12866     jnc short 08b23h                          ; 73 31
     12909    jnc short 08b17h                          ; 73 31
    1286712910    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1286812911    mov ax, strict word 00001h                ; b8 01 00
    1286912912    xor dx, dx                                ; 31 d2
    12870     jcxz 08b03h                               ; e3 06
     12913    jcxz 08af7h                               ; e3 06
    1287112914    sal ax, 1                                 ; d1 e0
    1287212915    rcl dx, 1                                 ; d1 d2
    12873     loop 08afdh                               ; e2 fa
     12916    loop 08af1h                               ; e2 fa
    1287412917    mov bx, ax                                ; 89 c3
    1287512918    mov cx, dx                                ; 89 d1
    1287612919    mov dx, strict word 0000ch                ; ba 0c 00
    1287712920    mov ax, si                                ; 89 f0
    12878     call 07d3bh                               ; e8 2c f2
     12921    call 07d2fh                               ; e8 2c f2
    1287912922    test al, al                               ; 84 c0
    12880     je short 08ae9h                           ; 74 d6
     12923    je short 08addh                           ; 74 d6
    1288112924    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1288212925    xor ax, ax                                ; 31 c0
    1288312926    mov dx, di                                ; 89 fa
    12884     call 0860dh                               ; e8 ef fa
     12927    call 08601h                               ; e8 ef fa
    1288512928    dec byte [bp-00eh]                        ; fe 4e f2
    12886     jne short 08ae9h                          ; 75 c6
     12929    jne short 08addh                          ; 75 c6
    1288712930    xor ax, ax                                ; 31 c0
    1288812931    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1289412937    pop bp                                    ; 5d
    1289512938    retn                                      ; c3
    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
     12939    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 009h, 08ch, 0e7h, 08bh, 0edh, 08bh, 0f3h, 08bh, 0f9h
     12940    db  08bh, 0ffh, 08bh, 005h, 08ch, 009h, 08ch
     12941_ahci_init:                                  ; 0xf8b3a LB 0xfe
    1289912942    push bp                                   ; 55
    1290012943    mov bp, sp                                ; 89 e5
     
    1290412947    mov ax, 00601h                            ; b8 01 06
    1290512948    mov dx, strict word 00001h                ; ba 01 00
    12906     call 09064h                               ; e8 0d 05
     12949    call 09058h                               ; e8 0d 05
    1290712950    mov dx, ax                                ; 89 c2
    1290812951    cmp ax, strict word 0ffffh                ; 3d ff ff
    12909     je near 08c3dh                            ; 0f 84 dd 00
     12952    je near 08c31h                            ; 0f 84 dd 00
    1291012953    xor al, al                                ; 30 c0
    1291112954    shr ax, 008h                              ; c1 e8 08
     
    1291512958    xor ah, ah                                ; 30 e4
    1291612959    mov bx, strict word 00034h                ; bb 34 00
    12917     call 0908fh                               ; e8 1a 05
     12960    call 09083h                               ; e8 1a 05
    1291812961    mov cl, al                                ; 88 c1
    1291912962    test cl, cl                               ; 84 c9
    12920     je short 08b9eh                           ; 74 23
     12963    je short 08b92h                           ; 74 23
    1292112964    movzx bx, cl                              ; 0f b6 d9
    1292212965    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1292412967    mov dx, di                                ; 89 fa
    1292512968    mov ax, si                                ; 89 f0
    12926     call 0908fh                               ; e8 02 05
     12969    call 09083h                               ; e8 02 05
    1292712970    cmp AL, strict byte 012h                  ; 3c 12
    12928     je short 08b9eh                           ; 74 0d
     12971    je short 08b92h                           ; 74 0d
    1292912972    mov al, cl                                ; 88 c8
    1293012973    db  0feh, 0c0h
     
    1293312976    mov dx, di                                ; 89 fa
    1293412977    mov ax, si                                ; 89 f0
    12935     jmp short 08b72h                          ; eb d4
     12978    jmp short 08b66h                          ; eb d4
    1293612979    test cl, cl                               ; 84 c9
    12937     je near 08c3dh                            ; 0f 84 99 00
     12980    je near 08c31h                            ; 0f 84 99 00
    1293812981    add cl, 002h                              ; 80 c1 02
    1293912982    movzx bx, cl                              ; 0f b6 d9
     
    1294212985    mov dx, di                                ; 89 fa
    1294312986    mov ax, si                                ; 89 f0
    12944     call 0908fh                               ; e8 d6 04
     12987    call 09083h                               ; e8 d6 04
    1294512988    cmp AL, strict byte 010h                  ; 3c 10
    12946     jne near 08c3dh                           ; 0f 85 7e 00
     12989    jne near 08c31h                           ; 0f 85 7e 00
    1294712990    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1294812991    mov al, cl                                ; 88 c8
     
    1295112994    mov dx, di                                ; 89 fa
    1295212995    mov ax, si                                ; 89 f0
    12953     call 090b3h                               ; e8 e2 04
     12996    call 090a7h                               ; e8 e2 04
    1295412997    mov dx, ax                                ; 89 c2
    1295512998    and ax, strict word 0000fh                ; 25 0f 00
    1295612999    sub ax, strict word 00004h                ; 2d 04 00
    1295713000    cmp ax, strict word 0000bh                ; 3d 0b 00
    12958     jnbe short 08c15h                         ; 77 37
     13001    jnbe short 08c09h                         ; 77 37
    1295913002    push CS                                   ; 0e
    1296013003    pop ES                                    ; 07
    1296113004    mov cx, strict word 00008h                ; b9 08 00
    12962     mov di, 08b2fh                            ; bf 2f 8b
     13005    mov di, 08b23h                            ; bf 23 8b
    1296313006    repne scasb                               ; f2 ae
    1296413007    sal cx, 1                                 ; d1 e1
    1296513008    mov di, cx                                ; 89 cf
    12966     mov ax, word [cs:di-074cah]               ; 2e 8b 85 36 8b
     13009    mov ax, word [cs:di-074d6h]               ; 2e 8b 85 2a 8b
    1296713010    jmp ax                                    ; ff e0
    1296813011    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    12969     jmp short 08c15h                          ; eb 1c
     13012    jmp short 08c09h                          ; eb 1c
    1297013013    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    12971     jmp short 08c15h                          ; eb 16
     13014    jmp short 08c09h                          ; eb 16
    1297213015    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    12973     jmp short 08c15h                          ; eb 10
     13016    jmp short 08c09h                          ; eb 10
    1297413017    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    12975     jmp short 08c15h                          ; eb 0a
     13018    jmp short 08c09h                          ; eb 0a
    1297613019    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    12977     jmp short 08c15h                          ; eb 04
     13020    jmp short 08c09h                          ; eb 04
    1297813021    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1297913022    mov si, dx                                ; 89 d6
     
    1298213025    mov al, byte [bp-006h]                    ; 8a 46 fa
    1298313026    test al, al                               ; 84 c0
    12984     je short 08c3dh                           ; 74 19
     13027    je short 08c31h                           ; 74 19
    1298513028    movzx bx, al                              ; 0f b6 d8
    1298613029    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1298713030    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    12988     call 090d5h                               ; e8 a3 04
     13031    call 090c9h                               ; e8 a3 04
    1298913032    test AL, strict byte 001h                 ; a8 01
    12990     je short 08c3dh                           ; 74 07
     13033    je short 08c31h                           ; 74 07
    1299113034    and AL, strict byte 0f0h                  ; 24 f0
    1299213035    add ax, si                                ; 01 f0
    12993     call 08a21h                               ; e8 e4 fd
     13036    call 08a15h                               ; e8 e4 fd
    1299413037    lea sp, [bp-004h]                         ; 8d 66 fc
    1299513038    pop di                                    ; 5f
     
    1299713040    pop bp                                    ; 5d
    1299813041    retn                                      ; c3
    12999 apm_out_str_:                                ; 0xf8c44 LB 0x39
     13042apm_out_str_:                                ; 0xf8c38 LB 0x39
    1300013043    push bp                                   ; 55
    1300113044    mov bp, sp                                ; 89 e5
     
    1300313046    mov bx, ax                                ; 89 c3
    1300413047    cmp byte [bx], 000h                       ; 80 3f 00
    13005     je short 08c59h                           ; 74 0a
     13048    je short 08c4dh                           ; 74 0a
    1300613049    mov al, byte [bx]                         ; 8a 07
    1300713050    out DX, AL                                ; ee
     
    1301013053    db  00ah, 0c0h
    1301113054    ; or al, al                                 ; 0a c0
    13012     jne short 08c51h                          ; 75 f8
     13055    jne short 08c45h                          ; 75 f8
    1301313056    lea sp, [bp-002h]                         ; 8d 66 fe
    1301413057    pop bx                                    ; 5b
    1301513058    pop bp                                    ; 5d
    1301613059    retn                                      ; c3
    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
     13060    xchg sp, ax                               ; 94
     13061    mov [bx+si-073h], fs                      ; 8c 60 8d
     13062    cmpsb                                     ; a6
     13063    mov cx, es                                ; 8c c1
     13064    mov [bx+si-073h], fs                      ; 8c 60 8d
     13065    in AL, DX                                 ; ec
     13066    mov [bx+si-073h], fs                      ; 8c 60 8d
     13067    db  0f1h
     13068    db  08ch
     13069    xor ax, 0358dh                            ; 35 8d 35
     13070    lea si, [di]                              ; 8d 35
     13071    lea si, [bx+si]                           ; 8d 30
     13072    lea si, [di]                              ; 8d 35
     13073    lea si, [di]                              ; 8d 35
     13074    lea bp, [bx+di]                           ; 8d 29
    1303013075    db  08dh
    13031 _apm_function:                               ; 0xf8c7d LB 0xf5
     13076_apm_function:                               ; 0xf8c71 LB 0xf5
    1303213077    push bp                                   ; 55
    1303313078    mov bp, sp                                ; 89 e5
     
    1303713082    xor ah, ah                                ; 30 e4
    1303813083    cmp ax, strict word 0000eh                ; 3d 0e 00
    13039     jnbe near 08d41h                          ; 0f 87 b0 00
     13084    jnbe near 08d35h                          ; 0f 87 b0 00
    1304013085    mov bx, ax                                ; 89 c3
    1304113086    add bx, ax                                ; 01 c3
    1304213087    mov dx, word [bp+018h]                    ; 8b 56 18
    1304313088    or dl, 001h                               ; 80 ca 01
    13044     jmp word [cs:bx-073a1h]                   ; 2e ff a7 5f 8c
     13089    jmp word [cs:bx-073adh]                   ; 2e ff a7 53 8c
    1304513090    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1304613091    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1304713092    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    13048     jmp near 08d6ch                           ; e9 ba 00
     13093    jmp near 08d60h                           ; e9 ba 00
    1304913094    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1305013095    mov word [bp+00ch], 092c4h                ; c7 46 0c c4 92
     
    1305313098    mov word [bp+006h], ax                    ; 89 46 06
    1305413099    mov word [bp+004h], ax                    ; 89 46 04
    13055     jmp near 08d6ch                           ; e9 9f 00
     13100    jmp near 08d60h                           ; e9 9f 00
    1305613101    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1305713102    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1306613111    mov si, ax                                ; 89 c6
    1306713112    sal esi, 010h                             ; 66 c1 e6 10
    13068     jmp near 08d6ch                           ; e9 74 00
     13113    jmp near 08d60h                           ; e9 74 00
    1306913114    sti                                       ; fb
    1307013115    hlt                                       ; f4
    13071     jmp near 08d6ch                           ; e9 6f 00
     13116    jmp near 08d60h                           ; e9 6f 00
    1307213117    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    13073     je short 08d22h                           ; 74 1f
     13118    je short 08d16h                           ; 74 1f
    1307413119    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    13075     je short 08d1ah                           ; 74 11
     13120    je short 08d0eh                           ; 74 11
    1307613121    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    13077     jne short 08d2ah                          ; 75 1b
     13122    jne short 08d1eh                          ; 75 1b
    1307813123    mov dx, 08900h                            ; ba 00 89
    13079     mov ax, 00ca2h                            ; b8 a2 0c
    13080     call 08c44h                               ; e8 2c ff
    13081     jmp short 08d6ch                          ; eb 52
     13124    mov ax, 00d12h                            ; b8 12 0d
     13125    call 08c38h                               ; e8 2c ff
     13126    jmp short 08d60h                          ; eb 52
    1308213127    mov dx, 08900h                            ; ba 00 89
    13083     mov ax, 00caah                            ; b8 aa 0c
    13084     jmp short 08d15h                          ; eb f3
     13128    mov ax, 00d1ah                            ; b8 1a 0d
     13129    jmp short 08d09h                          ; eb f3
    1308513130    mov dx, 08900h                            ; ba 00 89
    13086     mov ax, 00cb2h                            ; b8 b2 0c
    13087     jmp short 08d15h                          ; eb eb
     13131    mov ax, 00d22h                            ; b8 22 0d
     13132    jmp short 08d09h                          ; eb eb
    1308813133    or ah, 00ah                               ; 80 cc 0a
    1308913134    mov word [bp+012h], ax                    ; 89 46 12
    1309013135    mov word [bp+018h], dx                    ; 89 56 18
    13091     jmp short 08d6ch                          ; eb 37
     13136    jmp short 08d60h                          ; eb 37
    1309213137    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    13093     jmp short 08d6ch                          ; eb 30
     13138    jmp short 08d60h                          ; eb 30
    1309413139    or ah, 080h                               ; 80 cc 80
    13095     jmp short 08d2dh                          ; eb ec
    13096     mov bx, 00d38h                            ; bb 38 0d
     13140    jmp short 08d21h                          ; eb ec
     13141    mov bx, 00da8h                            ; bb a8 0d
    1309713142    mov cx, ds                                ; 8c d9
    1309813143    mov ax, strict word 00004h                ; b8 04 00
    13099     call 018cch                               ; e8 80 8b
     13144    call 018cch                               ; e8 8c 8b
    1310013145    push word [bp+00ch]                       ; ff 76 0c
    1310113146    push word [bp+012h]                       ; ff 76 12
    13102     push 00cbbh                               ; 68 bb 0c
     13147    push 00d2bh                               ; 68 2b 0d
    1310313148    push strict byte 00004h                   ; 6a 04
    13104     call 0190dh                               ; e8 b3 8b
     13149    call 0190dh                               ; e8 bf 8b
    1310513150    add sp, strict byte 00008h                ; 83 c4 08
    1310613151    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1311313158    pop bp                                    ; 5d
    1311413159    retn                                      ; c3
    13115 pci16_select_reg_:                           ; 0xf8d72 LB 0x24
     13160pci16_select_reg_:                           ; 0xf8d66 LB 0x24
    1311613161    push bp                                   ; 55
    1311713162    mov bp, sp                                ; 89 e5
     
    1313013175    pop bp                                    ; 5d
    1313113176    retn                                      ; c3
    13132 pci16_find_device_:                          ; 0xf8d96 LB 0xf7
     13177pci16_find_device_:                          ; 0xf8d8a LB 0xf7
    1313313178    push bp                                   ; 55
    1313413179    mov bp, sp                                ; 89 e5
     
    1314413189    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1314513190    test bl, 007h                             ; f6 c3 07
    13146     jne short 08ddeh                          ; 75 2d
     13191    jne short 08dd2h                          ; 75 2d
    1314713192    mov dx, strict word 0000eh                ; ba 0e 00
    1314813193    mov ax, bx                                ; 89 d8
    13149     call 08d72h                               ; e8 b9 ff
     13194    call 08d66h                               ; e8 b9 ff
    1315013195    mov dx, 00cfeh                            ; ba fe 0c
    1315113196    in AL, DX                                 ; ec
     
    1315413199    mov byte [bp-006h], al                    ; 88 46 fa
    1315513200    cmp AL, strict byte 0ffh                  ; 3c ff
    13156     jne short 08dcch                          ; 75 06
     13201    jne short 08dc0h                          ; 75 06
    1315713202    add bx, strict byte 00008h                ; 83 c3 08
    13158     jmp near 08e5fh                           ; e9 93 00
     13203    jmp near 08e53h                           ; e9 93 00
    1315913204    test byte [bp-006h], 080h                 ; f6 46 fa 80
    13160     je short 08dd9h                           ; 74 07
     13205    je short 08dcdh                           ; 74 07
    1316113206    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    13162     jmp short 08ddeh                          ; eb 05
     13207    jmp short 08dd2h                          ; eb 05
    1316313208    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1316413209    mov al, byte [bp-006h]                    ; 8a 46 fa
    1316513210    and AL, strict byte 007h                  ; 24 07
    1316613211    cmp AL, strict byte 001h                  ; 3c 01
    13167     jne short 08e06h                          ; 75 1f
     13212    jne short 08dfah                          ; 75 1f
    1316813213    mov ax, bx                                ; 89 d8
    1316913214    shr ax, 008h                              ; c1 e8 08
    1317013215    test ax, ax                               ; 85 c0
    13171     jne short 08e06h                          ; 75 16
     13216    jne short 08dfah                          ; 75 16
    1317213217    mov dx, strict word 0001ah                ; ba 1a 00
    1317313218    mov ax, bx                                ; 89 d8
    13174     call 08d72h                               ; e8 7a ff
     13219    call 08d66h                               ; e8 7a ff
    1317513220    mov dx, 00cfeh                            ; ba fe 0c
    1317613221    in AL, DX                                 ; ec
     
    1317813223    ; sub ah, ah                                ; 2a e4
    1317913224    cmp al, byte [bp-008h]                    ; 3a 46 f8
    13180     jbe short 08e06h                          ; 76 03
     13225    jbe short 08dfah                          ; 76 03
    1318113226    mov byte [bp-008h], al                    ; 88 46 f8
    1318213227    test di, di                               ; 85 ff
    13183     je short 08e0fh                           ; 74 05
     13228    je short 08e03h                           ; 74 05
    1318413229    mov dx, strict word 00008h                ; ba 08 00
    13185     jmp short 08e11h                          ; eb 02
     13230    jmp short 08e05h                          ; eb 02
    1318613231    xor dx, dx                                ; 31 d2
    1318713232    mov ax, bx                                ; 89 d8
    13188     call 08d72h                               ; e8 5c ff
     13233    call 08d66h                               ; e8 5c ff
    1318913234    mov dx, 00cfch                            ; ba fc 0c
    1319013235    in eax, DX                                ; 66 ed
     
    1319713242    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1319813243    test di, di                               ; 85 ff
    13199     je short 08e40h                           ; 74 0f
     13244    je short 08e34h                           ; 74 0f
    1320013245    mov cx, strict word 00008h                ; b9 08 00
    1320113246    shr dx, 1                                 ; d1 ea
    1320213247    rcr ax, 1                                 ; d1 d8
    13203     loop 08e34h                               ; e2 fa
     13248    loop 08e28h                               ; e2 fa
    1320413249    mov word [bp-00eh], ax                    ; 89 46 f2
    1320513250    mov word [bp-00ch], dx                    ; 89 56 f4
    1320613251    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1320713252    cmp ax, word [bp-014h]                    ; 3b 46 ec
    13208     jne short 08e50h                          ; 75 08
     13253    jne short 08e44h                          ; 75 08
    1320913254    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1321013255    cmp ax, word [bp-012h]                    ; 3b 46 ee
    13211     je short 08e56h                           ; 74 06
     13256    je short 08e4ah                           ; 74 06
    1321213257    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    13213     je short 08e5ch                           ; 74 06
     13258    je short 08e50h                           ; 74 06
    1321413259    dec si                                    ; 4e
    1321513260    cmp si, strict byte 0ffffh                ; 83 fe ff
    13216     je short 08e6eh                           ; 74 12
     13261    je short 08e62h                           ; 74 12
    1321713262    add bx, word [bp-00ah]                    ; 03 5e f6
    1321813263    mov dx, bx                                ; 89 da
     
    1322013265    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1322113266    cmp dx, ax                                ; 39 c2
    13222     jbe near 08dach                           ; 0f 86 3e ff
     13267    jbe near 08da0h                           ; 0f 86 3e ff
    1322313268    cmp si, strict byte 0ffffh                ; 83 fe ff
    13224     jne short 08e77h                          ; 75 04
     13269    jne short 08e6bh                          ; 75 04
    1322513270    mov ax, bx                                ; 89 d8
    13226     jmp short 08e7ah                          ; eb 03
     13271    jmp short 08e6eh                          ; eb 03
    1322713272    mov ax, strict word 0ffffh                ; b8 ff ff
    1322813273    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1323113276    pop bp                                    ; 5d
    1323213277    retn                                      ; c3
    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
     13278    arpl word [bx-07083h], cx                 ; 63 8f 7d 8f
     13279    nop                                       ; 90
     13280    db  08fh, 0a5h, 08fh, 0b8h
     13281    ; pop word [di-04771h]                      ; 8f a5 8f b8
     13282    db  08fh, 0cbh
     13283    ; pop bx                                    ; 8f cb
    1324013284    db  08fh
    13241 _pci16_function:                             ; 0xf8e8d LB 0x1d7
     13285_pci16_function:                             ; 0xf8e81 LB 0x1d7
    1324213286    push bp                                   ; 55
    1324313287    mov bp, sp                                ; 89 e5
     
    1325313297    xor ah, ah                                ; 30 e4
    1325413298    cmp bx, strict byte 00003h                ; 83 fb 03
    13255     jc short 08ec6h                           ; 72 1a
    13256     jbe short 08f1eh                          ; 76 70
     13299    jc short 08ebah                           ; 72 1a
     13300    jbe short 08f12h                          ; 76 70
    1325713301    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13258     je near 08febh                            ; 0f 84 36 01
     13302    je near 08fdfh                            ; 0f 84 36 01
    1325913303    cmp bx, strict byte 00008h                ; 83 fb 08
    13260     jc near 09030h                            ; 0f 82 74 01
     13304    jc near 09024h                            ; 0f 82 74 01
    1326113305    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13262     jbe near 08f43h                           ; 0f 86 80 00
    13263     jmp near 09030h                           ; e9 6a 01
     13306    jbe near 08f37h                           ; 0f 86 80 00
     13307    jmp near 09024h                           ; e9 6a 01
    1326413308    cmp bx, strict byte 00002h                ; 83 fb 02
    13265     je short 08eeeh                           ; 74 23
     13309    je short 08ee2h                           ; 74 23
    1326613310    cmp bx, strict byte 00001h                ; 83 fb 01
    13267     jne near 09030h                           ; 0f 85 5e 01
     13311    jne near 09024h                           ; 0f 85 5e 01
    1326813312    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1326913313    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1327113315    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1327213316    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    13273     jmp near 0905dh                           ; e9 6f 01
     13317    jmp near 09051h                           ; e9 6f 01
    1327413318    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    13275     jne short 08efah                          ; 75 06
     13319    jne short 08eeeh                          ; 75 06
    1327613320    or ah, 083h                               ; 80 cc 83
    13277     jmp near 09056h                           ; e9 5c 01
     13321    jmp near 0904ah                           ; e9 5c 01
    1327813322    mov bx, word [bp+008h]                    ; 8b 5e 08
    1327913323    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1328013324    mov ax, word [bp+018h]                    ; 8b 46 18
    1328113325    xor cx, cx                                ; 31 c9
    13282     call 08d96h                               ; e8 8e fe
     13326    call 08d8ah                               ; e8 8e fe
    1328313327    cmp ax, strict word 0ffffh                ; 3d ff ff
    13284     jne short 08f18h                          ; 75 0b
     13328    jne short 08f0ch                          ; 75 0b
    1328513329    mov ax, word [bp+020h]                    ; 8b 46 20
    1328613330    xor ah, ah                                ; 30 e4
    1328713331    or ah, 086h                               ; 80 cc 86
    13288     jmp near 09056h                           ; e9 3e 01
     13332    jmp near 0904ah                           ; e9 3e 01
    1328913333    mov word [bp+014h], ax                    ; 89 46 14
    13290     jmp near 0905dh                           ; e9 3f 01
     13334    jmp near 09051h                           ; e9 3f 01
    1329113335    mov bx, word [bp+008h]                    ; 8b 5e 08
    1329213336    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1329313337    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1329413338    mov cx, strict word 00001h                ; b9 01 00
    13295     call 08d96h                               ; e8 69 fe
     13339    call 08d8ah                               ; e8 69 fe
    1329613340    cmp ax, strict word 0ffffh                ; 3d ff ff
    13297     jne short 08f3dh                          ; 75 0b
     13341    jne short 08f31h                          ; 75 0b
    1329813342    mov ax, word [bp+020h]                    ; 8b 46 20
    1329913343    xor ah, ah                                ; 30 e4
    1330013344    or ah, 086h                               ; 80 cc 86
    13301     jmp near 09056h                           ; e9 19 01
     13345    jmp near 0904ah                           ; e9 19 01
    1330213346    mov word [bp+014h], ax                    ; 89 46 14
    13303     jmp near 0905dh                           ; e9 1a 01
     13347    jmp near 09051h                           ; e9 1a 01
    1330413348    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    13305     jc short 08f50h                           ; 72 06
     13349    jc short 08f44h                           ; 72 06
    1330613350    or ah, 087h                               ; 80 cc 87
    13307     jmp near 09056h                           ; e9 06 01
     13351    jmp near 0904ah                           ; e9 06 01
    1330813352    mov dx, word [bp+004h]                    ; 8b 56 04
    1330913353    mov ax, word [bp+014h]                    ; 8b 46 14
    13310     call 08d72h                               ; e8 19 fe
     13354    call 08d66h                               ; e8 19 fe
    1331113355    mov bx, word [bp+020h]                    ; 8b 5e 20
    1331213356    xor bh, bh                                ; 30 ff
    1331313357    sub bx, strict byte 00008h                ; 83 eb 08
    1331413358    cmp bx, strict byte 00005h                ; 83 fb 05
    13315     jnbe near 0905dh                          ; 0f 87 f5 00
     13359    jnbe near 09051h                          ; 0f 87 f5 00
    1331613360    add bx, bx                                ; 01 db
    13317     jmp word [cs:bx-0717fh]                   ; 2e ff a7 81 8e
     13361    jmp word [cs:bx-0718bh]                   ; 2e ff a7 75 8e
    1331813362    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1331913363    xor bl, bl                                ; 30 db
     
    1332613370    or bx, ax                                 ; 09 c3
    1332713371    mov word [bp+01ch], bx                    ; 89 5e 1c
    13328     jmp near 0905dh                           ; e9 d4 00
     13372    jmp near 09051h                           ; e9 d4 00
    1332913373    mov dx, word [bp+004h]                    ; 8b 56 04
    1333013374    xor dh, dh                                ; 30 f6
     
    1333313377    in ax, DX                                 ; ed
    1333413378    mov word [bp+01ch], ax                    ; 89 46 1c
    13335     jmp near 0905dh                           ; e9 c1 00
     13379    jmp near 09051h                           ; e9 c1 00
    1333613380    mov dx, 00cfch                            ; ba fc 0c
    1333713381    in eax, DX                                ; 66 ed
     
    1334213386    mov word [bp+01ch], ax                    ; 89 46 1c
    1334313387    mov word [bp+01eh], dx                    ; 89 56 1e
    13344     jmp near 0905dh                           ; e9 ac 00
     13388    jmp near 09051h                           ; e9 ac 00
    1334513389    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1334613390    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1334913393    add dx, 00cfch                            ; 81 c2 fc 0c
    1335013394    out DX, AL                                ; ee
    13351     jmp near 0905dh                           ; e9 99 00
     13395    jmp near 09051h                           ; e9 99 00
    1335213396    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1335313397    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1335613400    add dx, 00cfch                            ; 81 c2 fc 0c
    1335713401    out DX, ax                                ; ef
    13358     jmp near 0905dh                           ; e9 86 00
     13402    jmp near 09051h                           ; e9 86 00
    1335913403    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1336013404    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1336513409    ; mov ax, cx                                ; 8b c1
    1336613410    out DX, eax                               ; 66 ef
    13367     jmp short 0905dh                          ; eb 72
     13411    jmp short 09051h                          ; eb 72
    1336813412    mov bx, word [bp+004h]                    ; 8b 5e 04
    1336913413    mov es, [bp+026h]                         ; 8e 46 26
     
    1337213416    mov cx, word [word 00000h]                ; 8b 0e 00 00
    1337313417    cmp cx, word [es:bx]                      ; 26 3b 0f
    13374     jbe short 09011h                          ; 76 11
     13418    jbe short 09005h                          ; 76 11
    1337513419    mov ax, word [bp+020h]                    ; 8b 46 20
    1337613420    xor ah, ah                                ; 30 e4
     
    1337813422    mov word [bp+020h], ax                    ; 89 46 20
    1337913423    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    13380     jmp short 09025h                          ; eb 14
     13424    jmp short 09019h                          ; eb 14
    1338113425    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1338213426    mov si, 0f2c0h                            ; be c0 f2
     
    1339013434    les bx, [bp-008h]                         ; c4 5e f8
    1339113435    mov word [es:bx], ax                      ; 26 89 07
    13392     jmp short 0905dh                          ; eb 2d
    13393     mov bx, 00d38h                            ; bb 38 0d
     13436    jmp short 09051h                          ; eb 2d
     13437    mov bx, 00da8h                            ; bb a8 0d
    1339413438    mov cx, ds                                ; 8c d9
    1339513439    mov ax, strict word 00004h                ; b8 04 00
    13396     call 018cch                               ; e8 91 88
     13440    call 018cch                               ; e8 9d 88
    1339713441    mov ax, word [bp+014h]                    ; 8b 46 14
    1339813442    push ax                                   ; 50
    1339913443    mov ax, word [bp+020h]                    ; 8b 46 20
    1340013444    push ax                                   ; 50
    13401     push 00ceeh                               ; 68 ee 0c
     13445    push 00d5eh                               ; 68 5e 0d
    1340213446    push strict byte 00004h                   ; 6a 04
    13403     call 0190dh                               ; e8 c2 88
     13447    call 0190dh                               ; e8 ce 88
    1340413448    add sp, strict byte 00008h                ; 83 c4 08
    1340513449    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1341313457    pop bp                                    ; 5d
    1341413458    retn                                      ; c3
    13415 pci_find_classcode_:                         ; 0xf9064 LB 0x2b
     13459pci_find_classcode_:                         ; 0xf9058 LB 0x2b
    1341613460    push bp                                   ; 55
    1341713461    mov bp, sp                                ; 89 e5
     
    1342813472    int 01ah                                  ; cd 1a
    1342913473    cmp ah, 000h                              ; 80 fc 00
    13430     je near 09085h                            ; 0f 84 03 00
     13474    je near 09079h                            ; 0f 84 03 00
    1343113475    mov bx, strict word 0ffffh                ; bb ff ff
    1343213476    mov ax, bx                                ; 89 d8
     
    1343713481    pop bp                                    ; 5d
    1343813482    retn                                      ; c3
    13439 pci_read_config_byte_:                       ; 0xf908f LB 0x24
     13483pci_read_config_byte_:                       ; 0xf9083 LB 0x24
    1344013484    push bp                                   ; 55
    1344113485    mov bp, sp                                ; 89 e5
     
    1345613500    pop bp                                    ; 5d
    1345713501    retn                                      ; c3
    13458 pci_read_config_word_:                       ; 0xf90b3 LB 0x22
     13502pci_read_config_word_:                       ; 0xf90a7 LB 0x22
    1345913503    push bp                                   ; 55
    1346013504    mov bp, sp                                ; 89 e5
     
    1347513519    pop bp                                    ; 5d
    1347613520    retn                                      ; c3
    13477 pci_read_config_dword_:                      ; 0xf90d5 LB 0x27
     13521pci_read_config_dword_:                      ; 0xf90c9 LB 0x27
    1347813522    push bp                                   ; 55
    1347913523    mov bp, sp                                ; 89 e5
     
    1349613540    pop bp                                    ; 5d
    1349713541    retn                                      ; c3
    13498 vds_is_present_:                             ; 0xf90fc LB 0x1d
     13542vds_is_present_:                             ; 0xf90f0 LB 0x1d
    1349913543    push bx                                   ; 53
    1350013544    push bp                                   ; 55
     
    1350413548    mov es, ax                                ; 8e c0
    1350513549    test byte [es:bx], 020h                   ; 26 f6 07 20
    13506     je short 09114h                           ; 74 06
     13550    je short 09108h                           ; 74 06
    1350713551    mov ax, strict word 00001h                ; b8 01 00
    1350813552    pop bp                                    ; 5d
     
    1351313557    pop bx                                    ; 5b
    1351413558    retn                                      ; c3
    13515 vds_real_to_lin_:                            ; 0xf9119 LB 0x1e
     13559vds_real_to_lin_:                            ; 0xf910d LB 0x1e
    1351613560    push bx                                   ; 53
    1351713561    push cx                                   ; 51
     
    1352413568    sal ax, 1                                 ; d1 e0
    1352513569    rcl dx, 1                                 ; d1 d2
    13526     loop 09127h                               ; e2 fa
     13570    loop 0911bh                               ; e2 fa
    1352713571    xor cx, cx                                ; 31 c9
    1352813572    add ax, bx                                ; 01 d8
     
    1353213576    pop bx                                    ; 5b
    1353313577    retn                                      ; c3
    13534 vds_build_sg_list_:                          ; 0xf9137 LB 0x79
     13578vds_build_sg_list_:                          ; 0xf912b LB 0x79
    1353513579    push bp                                   ; 55
    1353613580    mov bp, sp                                ; 89 e5
     
    1354613590    mov bx, word [bp+006h]                    ; 8b 5e 06
    1354713591    mov word [es:di+002h], bx                 ; 26 89 5d 02
    13548     call 09119h                               ; e8 c3 ff
     13592    call 0910dh                               ; e8 c3 ff
    1354913593    mov es, si                                ; 8e c6
    1355013594    mov word [es:di+004h], ax                 ; 26 89 45 04
    1355113595    mov word [es:di+006h], dx                 ; 26 89 55 06
    1355213596    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    13553     call 090fch                               ; e8 93 ff
     13597    call 090f0h                               ; e8 93 ff
    1355413598    test ax, ax                               ; 85 c0
    13555     je short 09180h                           ; 74 13
     13599    je short 09174h                           ; 74 13
    1355613600    mov es, si                                ; 8e c6
    1355713601    mov ax, 08105h                            ; b8 05 81
    1355813602    mov dx, strict word 00000h                ; ba 00 00
    1355913603    int 04bh                                  ; cd 4b
    13560     jc near 0917dh                            ; 0f 82 02 00
     13604    jc near 09171h                            ; 0f 82 02 00
    1356113605    db  032h, 0c0h
    1356213606    ; xor al, al                                ; 32 c0
    1356313607    cbw                                       ; 98
    13564     jmp short 091a7h                          ; eb 27
     13608    jmp short 0919bh                          ; eb 27
    1356513609    mov es, si                                ; 8e c6
    1356613610    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1357913623    pop bp                                    ; 5d
    1358013624    retn 00004h                               ; c2 04 00
    13581 vds_free_sg_list_:                           ; 0xf91b0 LB 0x30
     13625vds_free_sg_list_:                           ; 0xf91a4 LB 0x3c
    1358213626    push bp                                   ; 55
    1358313627    mov bp, sp                                ; 89 e5
     
    1358513629    push di                                   ; 57
    1358613630    mov bx, ax                                ; 89 c3
    13587     call 090fch                               ; e8 42 ff
     13631    call 090f0h                               ; e8 42 ff
    1358813632    test ax, ax                               ; 85 c0
    13589     je short 091d1h                           ; 74 13
     13633    je short 091c5h                           ; 74 13
    1359013634    mov di, bx                                ; 89 df
    1359113635    mov es, dx                                ; 8e c2
     
    1359313637    mov dx, strict word 00000h                ; ba 00 00
    1359413638    int 04bh                                  ; cd 4b
    13595     jc near 091d0h                            ; 0f 82 02 00
     13639    jc near 091c4h                            ; 0f 82 02 00
    1359613640    db  032h, 0c0h
    1359713641    ; xor al, al                                ; 32 c0
     
    1360413648    pop bp                                    ; 5d
    1360513649    retn                                      ; c3
     13650    times 0xc db 0
    1360613651__U4D:                                       ; 0xf91e0 LB 0x39
    1360713652    pushfw                                    ; 9c
     
    1437114416    pop DS                                    ; 1f
    1437214417    cld                                       ; fc
    14373     call 04951h                               ; e8 97 67
     14418    call 04945h                               ; e8 8b 67
    1437414419    pop DS                                    ; 1f
    1437514420    mov AL, strict byte 014h                  ; b0 14
     
    1446014505    call 01b48h                               ; e8 ab 38
    1446114506    call 01f42h                               ; e8 a2 3c
    14462     call 08b46h                               ; e8 a3 a8
    14463     call 07c1dh                               ; e8 77 99
     14507    call 08b3ah                               ; e8 97 a8
     14508    call 07c11h                               ; e8 6b 99
    1446414509    call 0ed2fh                               ; e8 86 0a
    1446514510    call 0e2d2h                               ; e8 26 00
     
    1446814513    cld                                       ; fc
    1446914514    call 01732h                               ; e8 80 34
    14470     call 03635h                               ; e8 80 53
     14515    call 03629h                               ; e8 74 53
    1447114516    sti                                       ; fb
    1447214517    int 019h                                  ; cd 19
     
    1458814633    pop DS                                    ; 1f
    1458914634    cld                                       ; fc
    14590     call 05ce3h                               ; e8 a1 75
     14635    call 05cd7h                               ; e8 95 75
    1459114636    popaw                                     ; 61
    1459214637    pop ES                                    ; 07
     
    1470414749    pop DS                                    ; 1f
    1470514750    cld                                       ; fc
    14706     call 05051h                               ; e8 0f 68
     14751    call 05045h                               ; e8 03 68
    1470714752    popaw                                     ; 61
    1470814753    pop DS                                    ; 1f
     
    1472114766    pop DS                                    ; 1f
    1472214767    cld                                       ; fc
    14723     call 05051h                               ; e8 f1 67
     14768    call 05045h                               ; e8 e5 67
    1472414769    popaw                                     ; 61
    1472514770    pop DS                                    ; 1f
     
    1482014865    pop DS                                    ; 1f
    1482114866    cld                                       ; fc
    14822     call 04c60h                               ; e8 91 62
     14867    call 04c54h                               ; e8 85 62
    1482314868    pop ES                                    ; 07
    1482414869    popaw                                     ; 61
     
    1484614891    cld                                       ; fc
    1484714892    push 0ece9h                               ; 68 e9 ec
    14848     jmp near 03679h                           ; e9 08 4a
     14893    jmp near 0366dh                           ; e9 fc 49
    1484914894    push ES                                   ; 06
    1485014895    push ax                                   ; 50
     
    1485214897    push cx                                   ; 51
    1485314898    push dx                                   ; 52
    14854     call 0364dh                               ; e8 d4 49
     14899    call 03641h                               ; e8 c8 49
    1485514900    cmp AL, strict byte 000h                  ; 3c 00
    1485614901    je short 0ecabh                           ; 74 2e
    14857     call 03663h                               ; e8 e3 49
     14902    call 03657h                               ; e8 d7 49
    1485814903    pop dx                                    ; 5a
    1485914904    push dx                                   ; 52
     
    1487314918    cld                                       ; fc
    1487414919    push 0ece9h                               ; 68 e9 ec
    14875     jmp near 03c4dh                           ; e9 b6 4f
     14920    jmp near 03c41h                           ; e9 aa 4f
    1487614921    and dl, 0e0h                              ; 80 e2 e0
    1487714922    db  03ah, 0c2h
     
    1491314958    jne short 0ecc8h                          ; 75 06
    1491414959    push 0ece9h                               ; 68 e9 ec
    14915     jmp near 02eeeh                           ; e9 26 42
     14960    jmp near 02ec9h                           ; e9 01 42
    1491614961int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1491714962    cmp dl, 0e0h                              ; 80 fa e0
     
    1491914964    shr ebx, 010h                             ; 66 c1 eb 10
    1492014965    push bx                                   ; 53
    14921     call 04081h                               ; e8 ac 53
     14966    call 04075h                               ; e8 a0 53
    1492214967    pop bx                                    ; 5b
    1492314968    sal ebx, 010h                             ; 66 c1 e3 10
     
    1492614971    cmp ah, 040h                              ; 80 fc 40
    1492714972    jnbe short 0ece6h                         ; 77 05
    14928     call 053d6h                               ; e8 f2 66
     14973    call 053cah                               ; e8 e6 66
    1492914974    jmp short 0ece9h                          ; eb 03
    14930     call 05817h                               ; e8 2e 6b
     14975    call 0580bh                               ; e8 22 6b
    1493114976int13_out:                                   ; 0xfece9 LB 0x4
    1493214977    pop DS                                    ; 1f
     
    1514115186    pop DS                                    ; 1f
    1514215187    cld                                       ; fc
    15143     call 06f00h                               ; e8 23 7f
     15188    call 06ef4h                               ; e8 17 7f
    1514415189    popaw                                     ; 61
    1514515190    pop ES                                    ; 07
     
    1518915234    mov ax, strict word 00001h                ; b8 01 00
    1519015235    push ax                                   ; 50
    15191     call 046e8h                               ; e8 18 56
     15236    call 046dch                               ; e8 0c 56
    1519215237    inc sp                                    ; 44
    1519315238    inc sp                                    ; 44
     
    1519615241    mov ax, strict word 00002h                ; b8 02 00
    1519715242    push ax                                   ; 50
    15198     call 046e8h                               ; e8 0b 56
     15243    call 046dch                               ; e8 ff 55
    1519915244    inc sp                                    ; 44
    1520015245    inc sp                                    ; 44
     
    1520315248    mov ax, strict word 00003h                ; b8 03 00
    1520415249    push strict byte 00003h                   ; 6a 03
    15205     call 046e8h                               ; e8 fd 55
     15250    call 046dch                               ; e8 f1 55
    1520615251    inc sp                                    ; 44
    1520715252    inc sp                                    ; 44
     
    1521015255    mov ax, strict word 00004h                ; b8 04 00
    1521115256    push ax                                   ; 50
    15212     call 046e8h                               ; e8 f0 55
     15257    call 046dch                               ; e8 e4 55
    1521315258    inc sp                                    ; 44
    1521415259    inc sp                                    ; 44
     
    1555615601    cmp ah, 0c2h                              ; 80 fc c2
    1555715602    je short 0f887h                           ; 74 0e
    15558     call 05ef0h                               ; e8 74 66
     15603    call 05ee4h                               ; e8 68 66
    1555915604    popaw                                     ; 61
    1556015605    pop ES                                    ; 07
     
    1556215607    popfw                                     ; 9d
    1556315608    jmp short 0f895h                          ; eb 13
    15564     call 08c7dh                               ; e8 f8 93
     15609    call 08c71h                               ; e8 ec 93
    1556515610    jmp short 0f87ch                          ; eb f5
    1556615611int15_handler_mouse:                         ; 0xff887 LB 0x5
    15567     call 06b75h                               ; e8 eb 72
     15612    call 06b69h                               ; e8 df 72
    1556815613    jmp short 0f87ch                          ; eb f0
    1556915614int15_handler32:                             ; 0xff88c LB 0x9
    1557015615    pushad                                    ; 66 60
    15571     call 063bdh                               ; e8 2c 6b
     15616    call 063b1h                               ; e8 20 6b
    1557215617    popad                                     ; 66 61
    1557315618    jmp short 0f87dh                          ; eb e8
     
    1559915644    pop DS                                    ; 1f
    1560015645    cld                                       ; fc
    15601     call 06aabh                               ; e8 ee 71
     15646    call 06a9fh                               ; e8 e2 71
    1560215647    pop cx                                    ; 59
    1560315648    jcxz 0f8cch                               ; e3 0c
     
    1569115736    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1569215737    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    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
     15738    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 004h, 090h, 066h
     15739    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0abh, 069h, 061h, 01fh, 007h
    1569515740    db  0cfh
    1569615741int70_handler:                               ; 0xffe8f LB 0x16
     
    1570115746    pop DS                                    ; 1f
    1570215747    cld                                       ; fc
    15703     call 06784h                               ; e8 ec 68
     15748    call 06778h                               ; e8 e0 68
    1570415749    popaw                                     ; 61
    1570515750    pop DS                                    ; 1f
     
    1571415759    push eax                                  ; 66 50
    1571515760    push DS                                   ; 1e
    15716     db  033h, 0c0h
    15717     ; xor ax, ax                                ; 33 c0
     15761    push dx                                   ; 52
     15762    mov ax, strict word 00040h                ; b8 40 00
    1571815763    mov ds, ax                                ; 8e d8
    15719     mov AL, byte [00440h]                     ; a0 40 04
     15764    mov eax, dword [0006ch]                   ; 66 a1 6c 00
     15765    inc eax                                   ; 66 40
     15766    cmp eax, strict dword 0001800b0h          ; 66 3d b0 00 18 00
     15767    jc short 0fec4h                           ; 72 07
     15768    db  066h, 033h, 0c0h
     15769    ; xor eax, eax                              ; 66 33 c0
     15770    inc byte [word 00070h]                    ; fe 06 70 00
     15771    mov dword [0006ch], eax                   ; 66 a3 6c 00
     15772    mov AL, byte [00040h]                     ; a0 40 00
    1572015773    db  00ah, 0c0h
    1572115774    ; or al, al                                 ; 0a c0
    15722     je short 0fec4h                           ; 74 10
     15775    je short 0feddh                           ; 74 0e
    1572315776    db  0feh, 0c8h
    1572415777    ; dec al                                    ; fe c8
    15725     mov byte [00440h], AL                     ; a2 40 04
    15726     jne short 0fec4h                          ; 75 09
    15727     push dx                                   ; 52
     15778    mov byte [00040h], AL                     ; a2 40 00
     15779    jne short 0feddh                          ; 75 07
    1572815780    mov dx, 003f2h                            ; ba f2 03
    1572915781    in AL, DX                                 ; ec
    1573015782    and AL, strict byte 0cfh                  ; 24 cf
    1573115783    out DX, AL                                ; ee
    15732     pop dx                                    ; 5a
    15733     mov eax, dword [0046ch]                   ; 66 a1 6c 04
    15734     inc eax                                   ; 66 40
    15735     cmp eax, strict dword 0001800b0h          ; 66 3d b0 00 18 00
    15736     jc short 0fed9h                           ; 72 07
    15737     db  066h, 033h, 0c0h
    15738     ; xor eax, eax                              ; 66 33 c0
    15739     inc byte [00470h]                         ; fe 06 70 04
    15740     mov dword [0046ch], eax                   ; 66 a3 6c 04
    1574115784    int 01ch                                  ; cd 1c
    1574215785    cli                                       ; fa
    1574315786    call 0e03fh                               ; e8 5c e1
     15787    pop dx                                    ; 5a
    1574415788    pop DS                                    ; 1f
    1574515789    pop eax                                   ; 66 58
    1574615790    iret                                      ; cf
    15747     times 0xa db 0
     15791    times 0x9 db 0
    1574815792    pop ax                                    ; 58
    1574915793    dec bp                                    ; 4d
     
    1580115845cpu_reset:                                   ; 0xffff0 LB 0x10
    1580215846    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    15803     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0d1h
     15847    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0f5h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r47937 r48392  
    1 6425bea00dd0628837a2c2ae3521655f *VBoxPcBios.rom
     1692c90b32e2b85d310eb7e2bbb5e022b *VBoxPcBios.rom
Note: See TracChangeset for help on using the changeset viewer.

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