VirtualBox

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


Ignore:
Timestamp:
Apr 14, 2014 7:29:58 AM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
93293
Message:

update alternative BIOS sources

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

Legend:

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

    r50317 r51062  
    856856    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    857857_pktacc:                                     ; 0xf006a LB 0xc
    858     db  000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 030h, 079h, 0f8h, 086h
     858    db  000h, 000h, 000h, 000h, 000h, 000h, 08fh, 028h, 09ah, 079h, 062h, 087h
    859859_softrst:                                    ; 0xf0076 LB 0xc
    860860    db  000h, 000h, 000h, 000h, 000h, 000h, 077h, 02bh, 091h, 036h, 091h, 036h
    861861_dskacc:                                     ; 0xf0082 LB 0x2e
    862862    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 027h, 052h, 028h, 000h, 000h, 000h, 000h
    863     db  0beh, 077h, 077h, 078h, 0f4h, 085h, 088h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     863    db  028h, 078h, 0e1h, 078h, 05eh, 086h, 0f2h, 086h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    864864    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    865865
    866 section CONST progbits vstart=0xb0 align=1 ; size=0xcc8 class=DATA group=DGROUP
     866section CONST progbits vstart=0xb0 align=1 ; size=0xce0 class=DATA group=DGROUP
    867867    db   'NMI Handler called', 00ah, 000h
    868868    db   'INT18: BOOT FAILURE', 00ah, 000h
     
    940940    db   'INT 15h C2 default case entered', 00ah, 000h, 000h
    941941    db   'Key pressed: %x', 00ah, 000h
     942    db   00ah, 00ah, '  AHCI controller:', 000h
     943    db   00ah, '    %d) Hard disk', 000h
     944    db   00ah, 00ah, '  SCSI controller:', 000h
     945    db   '  IDE controller:', 000h
    942946    db   00ah, 00ah, 'AHCI controller:', 00ah, 000h
    943     db   00ah, '    %d) Hard disk', 000h
    944     db   00ah, 00ah, 'SCSI controller:', 00ah, 000h
    945     db   'IDE controller:', 00ah, 000h
    946947    db   00ah, '    %d) ', 000h
    947948    db   'Secondary ', 000h
     
    957958    db   ' l) LAN', 00ah, 00ah, ' b) Continue booting', 00ah, 000h
    958959    db   'Delaying boot for %d seconds:', 000h
    959     db   ' %d', 000h
     960    db   ' %d', 000h, 000h
    960961    db   'scsi_read_sectors', 000h
    961962    db   '%s: device_id out of range %d', 00ah, 000h
     
    981982    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
    982983
    983 section CONST2 progbits vstart=0xd78 align=1 ; size=0x3fa class=DATA group=DGROUP
    984 _bios_cvs_version_string:                    ; 0xf0d78 LB 0x12
     984section CONST2 progbits vstart=0xd90 align=1 ; size=0x3fa class=DATA group=DGROUP
     985_bios_cvs_version_string:                    ; 0xf0d90 LB 0x12
    985986    db  'VirtualBox 4.3.53', 000h
    986 _bios_prefix_string:                         ; 0xf0d8a LB 0x8
     987_bios_prefix_string:                         ; 0xf0da2 LB 0x8
    987988    db  'BIOS: ', 000h, 000h
    988 _isotag:                                     ; 0xf0d92 LB 0x6
     989_isotag:                                     ; 0xf0daa LB 0x6
    989990    db  'CD001', 000h
    990 _eltorito:                                   ; 0xf0d98 LB 0x18
     991_eltorito:                                   ; 0xf0db0 LB 0x18
    991992    db  'EL TORITO SPECIFICATION', 000h
    992 _drivetypes:                                 ; 0xf0db0 LB 0x28
     993_drivetypes:                                 ; 0xf0dc8 LB 0x28
    993994    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
    994995    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
    995996    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    996 _scan_to_scanascii:                          ; 0xf0dd8 LB 0x37a
     997_scan_to_scanascii:                          ; 0xf0df0 LB 0x37a
    997998    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
    998999    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
     
    10511052    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
    10521053    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
    1053 _panic_msg_keyb_buffer_full:                 ; 0xf1152 LB 0x20
     1054_panic_msg_keyb_buffer_full:                 ; 0xf116a LB 0x20
    10541055    db  '%s: keyboard input buffer full', 00ah, 000h
    10551056
    1056   ; Padding 0x48e bytes at 0xf1172
    1057   times 1166 db 0
     1057  ; Padding 0x476 bytes at 0xf118a
     1058  times 1142 db 0
    10581059
    1059 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7f65 class=CODE group=AUTO
     1060section _TEXT progbits vstart=0x1600 align=1 ; size=0x7fd5 class=CODE group=AUTO
    10601061rom_scan_:                                   ; 0xf1600 LB 0x50
    10611062    push bp                                   ; 55
     
    12791280    push bp                                   ; 55
    12801281    mov bp, sp                                ; 89 e5
    1281     mov bx, 00d8ah                            ; bb 8a 0d
     1282    mov bx, 00da2h                            ; bb a2 0d
    12821283    mov cx, ds                                ; 8c d9
    12831284    mov ax, strict word 00004h                ; b8 04 00
    12841285    call 01931h                               ; e8 ac 01
    1285     push 00d78h                               ; 68 78 0d
     1286    push 00d90h                               ; 68 90 0d
    12861287    push 000d9h                               ; 68 d9 00
    12871288    push strict byte 00004h                   ; 6a 04
     
    13081309    int 010h                                  ; cd 10
    13091310    jmp short 017c1h                          ; eb 03
    1310     call 073cdh                               ; e8 0c 5c
     1311    call 07437h                               ; e8 76 5c
    13111312    mov sp, bp                                ; 89 ec
    13121313    pop bp                                    ; 5d
     
    14541455    mov bx, strict word 0000ah                ; bb 0a 00
    14551456    xor cx, cx                                ; 31 c9
    1456     call 09470h                               ; e8 97 7b
     1457    call 094e0h                               ; e8 07 7c
    14571458    mov word [bp-008h], ax                    ; 89 46 f8
    14581459    mov cx, dx                                ; 89 d1
     
    24172418    mov dx, ss                                ; 8c d2
    24182419    lea ax, [bp-036h]                         ; 8d 46 ca
    2419     call 05389h                               ; e8 6c 31
    2420     mov bx, 00d8ah                            ; bb 8a 0d
     2420    call 053f3h                               ; e8 d6 31
     2421    mov bx, 00da2h                            ; bb a2 0d
    24212422    mov cx, ds                                ; 8c d9
    24222423    mov ax, strict word 00004h                ; b8 04 00
     
    30663067    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    30673068    jne short 028e1h                          ; 75 1f
    3068     mov bx, 00d8ah                            ; bb 8a 0d
     3069    mov bx, 00da2h                            ; bb a2 0d
    30693070    mov cx, ds                                ; 8c d9
    30703071    mov ax, strict word 00004h                ; b8 04 00
     
    39453946    cmp AL, strict byte 048h                  ; 3c 48
    39463947    jbe short 03095h                          ; 76 29
    3947     mov bx, 00d8ah                            ; bb 8a 0d
     3948    mov bx, 00da2h                            ; bb a2 0d
    39483949    mov cx, ds                                ; 8c d9
    39493950    mov ax, strict word 00004h                ; b8 04 00
     
    45454546    mov ax, strict word 00006h                ; b8 06 00
    45464547    jmp near 02fbdh                           ; e9 7e f9
    4547     mov bx, 00d8ah                            ; bb 8a 0d
     4548    mov bx, 00da2h                            ; bb a2 0d
    45484549    mov cx, ds                                ; 8c d9
    45494550    mov ax, strict word 00004h                ; b8 04 00
     
    46424643    cmp ax, strict word 0004ah                ; 3d 4a 00
    46434644    jne near 03829h                           ; 0f 85 1e 01
    4644     mov bx, 00d8ah                            ; bb 8a 0d
     4645    mov bx, 00da2h                            ; bb a2 0d
    46454646    mov cx, ds                                ; 8c d9
    46464647    mov ax, strict word 00004h                ; b8 04 00
     
    47404741    pop bp                                    ; 5d
    47414742    retn                                      ; c3
    4742     mov bx, 00d8ah                            ; bb 8a 0d
     4743    mov bx, 00da2h                            ; bb a2 0d
    47434744    mov cx, ds                                ; 8c d9
    47444745    mov ax, strict word 00004h                ; b8 04 00
     
    48214822    mov dx, ss                                ; 8c d2
    48224823    lea ax, [bp-026h]                         ; 8d 46 da
    4823     call 094dah                               ; e8 e7 5b
     4824    call 0954ah                               ; e8 57 5c
    48244825    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    48254826    mov ax, strict word 00011h                ; b8 11 00
     
    48754876    jnc short 03993h                          ; 73 10
    48764877    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    4877     cmp al, byte [di+00d92h]                  ; 3a 85 92 0d
     4878    cmp al, byte [di+00daah]                  ; 3a 85 aa 0d
    48784879    je short 0397dh                           ; 74 f0
    48794880    mov ax, strict word 00005h                ; b8 05 00
     
    48854886    jnc short 039adh                          ; 73 10
    48864887    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    4887     cmp al, byte [di+00d98h]                  ; 3a 85 98 0d
     4888    cmp al, byte [di+00db0h]                  ; 3a 85 b0 0d
    48884889    je short 03997h                           ; 74 f0
    48894890    mov ax, strict word 00006h                ; b8 06 00
     
    51635164    cmp dx, ax                                ; 39 c2
    51645165    je short 03d2fh                           ; 74 29
    5165     mov bx, 00d8ah                            ; bb 8a 0d
     5166    mov bx, 00da2h                            ; bb a2 0d
    51665167    mov cx, ds                                ; 8c d9
    51675168    mov ax, strict word 00004h                ; b8 04 00
     
    52805281    xor dl, dl                                ; 30 d2
    52815282    xor cx, cx                                ; 31 c9
    5282     call 094a9h                               ; e8 55 56
     5283    call 09519h                               ; e8 c5 56
    52835284    xor bx, bx                                ; 31 db
    52845285    add ax, si                                ; 01 f0
     
    52865287    mov bx, di                                ; 89 fb
    52875288    xor cx, cx                                ; 31 c9
    5288     call 094a9h                               ; e8 48 56
     5289    call 09519h                               ; e8 b8 56
    52895290    mov bx, ax                                ; 89 c3
    52905291    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    53215322    mov dx, ss                                ; 8c d2
    53225323    lea ax, [bp-02eh]                         ; 8d 46 d2
    5323     call 094dah                               ; e8 22 56
     5324    call 0954ah                               ; e8 92 56
    53245325    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    53255326    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    53855386    test al, al                               ; 84 c0
    53865387    je near 03d7bh                            ; 0f 84 13 fe
    5387     mov bx, 00d8ah                            ; bb 8a 0d
     5388    mov bx, 00da2h                            ; bb a2 0d
    53885389    mov cx, ds                                ; 8c d9
    53895390    mov ax, strict word 00004h                ; b8 04 00
     
    54665467    mov word [bp+016h], bx                    ; 89 5e 16
    54675468    jmp near 03d7fh                           ; e9 37 fd
    5468     mov bx, 00d8ah                            ; bb 8a 0d
     5469    mov bx, 00da2h                            ; bb a2 0d
    54695470    mov cx, ds                                ; 8c d9
    54705471    mov ax, strict word 00004h                ; b8 04 00
     
    56285629    mov dx, ss                                ; 8c d2
    56295630    lea ax, [bp-02ch]                         ; 8d 46 d4
    5630     call 094dah                               ; e8 87 52
     5631    call 0954ah                               ; e8 f7 52
    56315632    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    56325633    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    56775678    test dl, dl                               ; 84 d2
    56785679    je near 043a5h                            ; 0f 84 cb 00
    5679     mov bx, 00d8ah                            ; bb 8a 0d
     5680    mov bx, 00da2h                            ; bb a2 0d
    56805681    mov cx, ds                                ; 8c d9
    56815682    mov ax, strict word 00004h                ; b8 04 00
     
    59615962    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    59625963    jmp near 043b8h                           ; e9 8f fd
    5963     mov bx, 00d8ah                            ; bb 8a 0d
     5964    mov bx, 00da2h                            ; bb a2 0d
    59645965    mov cx, ds                                ; 8c d9
    59655966    mov ax, strict word 00004h                ; b8 04 00
     
    59915992    je short 0468bh                           ; 74 21
    59925993    mov dx, strict word 00001h                ; ba 01 00
    5993     mov bx, 00d8ah                            ; bb 8a 0d
     5994    mov bx, 00da2h                            ; bb a2 0d
    59945995    mov cx, ds                                ; 8c d9
    59955996    mov ax, strict word 00004h                ; b8 04 00
    59965997    call 01931h                               ; e8 b9 d2
    59975998    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    5998     add dx, 00db0h                            ; 81 c2 b0 0d
     5999    add dx, 00dc8h                            ; 81 c2 c8 0d
    59996000    push dx                                   ; 52
    60006001    push 00474h                               ; 68 74 04
     
    60166017    test al, al                               ; 84 c0
    60176018    je short 046beh                           ; 74 1b
    6018     mov bx, 00d8ah                            ; bb 8a 0d
     6019    mov bx, 00da2h                            ; bb a2 0d
    60196020    mov cx, ds                                ; 8c d9
    60206021    mov ax, strict word 00004h                ; b8 04 00
    60216022    call 01931h                               ; e8 83 d2
    6022     push 00dc4h                               ; 68 c4 0d
     6023    push 00ddch                               ; 68 dc 0d
    60236024    push 00488h                               ; 68 88 04
    60246025    push strict byte 00004h                   ; 6a 04
     
    60286029    test dl, dl                               ; 84 d2
    60296030    je short 046d2h                           ; 74 10
    6030     mov bx, 00d8ah                            ; bb 8a 0d
     6031    mov bx, 00da2h                            ; bb a2 0d
    60316032    mov cx, ds                                ; 8c d9
    60326033    mov ax, strict word 00004h                ; b8 04 00
    60336034    call 01931h                               ; e8 64 d2
    6034     push 00dceh                               ; 68 ce 0d
     6035    push 00de6h                               ; 68 e6 0d
    60356036    jmp short 046b1h                          ; eb df
    60366037    test bl, 080h                             ; f6 c3 80
    60376038    je short 046e8h                           ; 74 11
    6038     mov bx, 00d8ah                            ; bb 8a 0d
     6039    mov bx, 00da2h                            ; bb a2 0d
    60396040    mov cx, ds                                ; 8c d9
    60406041    mov ax, strict word 00004h                ; b8 04 00
    60416042    call 01931h                               ; e8 4f d2
    60426043    push si                                   ; 56
    6043     push 00dbah                               ; 68 ba 0d
     6044    push 00dd2h                               ; 68 d2 0d
    60446045    jmp short 046f7h                          ; eb 0f
    6045     mov bx, 00d8ah                            ; bb 8a 0d
     6046    mov bx, 00da2h                            ; bb a2 0d
    60466047    mov cx, ds                                ; 8c d9
    60476048    mov ax, strict word 00004h                ; b8 04 00
    60486049    call 01931h                               ; e8 3e d2
    60496050    push si                                   ; 56
    6050     push 00db0h                               ; 68 b0 0d
     6051    push 00dc8h                               ; 68 c8 0d
    60516052    push 0049dh                               ; 68 9d 04
    60526053    push strict byte 00004h                   ; 6a 04
     
    60746075    push dx                                   ; 52
    60756076    mov dx, ax                                ; 89 c2
    6076     mov bx, 00d8ah                            ; bb 8a 0d
     6077    mov bx, 00da2h                            ; bb a2 0d
    60776078    mov cx, ds                                ; 8c d9
    60786079    mov ax, strict word 00004h                ; b8 04 00
     
    61326133    xor ah, ah                                ; 30 e4
    61336134    sar ax, 004h                              ; c1 f8 04
    6134     call 075f1h                               ; e8 38 2e
     6135    call 0765bh                               ; e8 a2 2e
    61356136    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    61366137    jne short 047c2h                          ; 75 03
     
    61496150    mov byte [bp-00ah], al                    ; 88 46 f6
    61506151    mov byte [bp-00ch], al                    ; 88 46 f4
    6151     mov bx, 00d8ah                            ; bb 8a 0d
     6152    mov bx, 00da2h                            ; bb a2 0d
    61526153    mov cx, ds                                ; 8c d9
    61536154    mov ax, strict word 00004h                ; b8 04 00
     
    66256626    out DX, AL                                ; ee
    66266627    xor ax, ax                                ; 31 c0
    6627     call 05e89h                               ; e8 6f 12
     6628    call 05ef3h                               ; e8 d9 12
    66286629    mov sp, bp                                ; 89 ec
    66296630    pop bp                                    ; 5d
     
    66846685    cmp bh, byte [bx+si]                      ; 3a 38
    66856686    sub bl, byte [ss:di]                      ; 36 2a 1d
    6686     jmp short 04ce1h                          ; eb 4e
    6687     js short 04ce2h                           ; 78 4d
    6688     inc di                                    ; 47
     6687    sbb AL, strict byte 04fh                  ; 1c 4f
     6688    db  082h, 04dh, 04ah, 04dh
     6689    ; or byte [di+04ah], 04dh                   ; 82 4d 4a 4d
     6690    dec dx                                    ; 4a
    66896691    dec bp                                    ; 4d
    6690     inc di                                    ; 47
     6692    adc byte [bp+020h], cl                    ; 10 4e 20
    66916693    dec bp                                    ; 4d
    6692     cli                                       ; fa
     6694    mov cs, [bp-020h]                         ; 8e 4e e0
     6695    dec si                                    ; 4e
     6696    add cl, byte [bx-037h]                    ; 02 4f c9
    66936697    dec bp                                    ; 4d
    6694     and byte [di+06ch], cl                    ; 20 4d 6c
     6698    dec dx                                    ; 4a
     6699    dec bp                                    ; 4d
     6700    dec dx                                    ; 4a
     6701    dec bp                                    ; 4d
     6702    dec di                                    ; 4f
    66956703    dec si                                    ; 4e
    6696     mov bx, 0de4eh                            ; bb 4e de
    6697     dec si                                    ; 4e
    6698     mov cx, 0474dh                            ; b9 4d 47
    6699     dec bp                                    ; 4d
    6700     inc di                                    ; 47
    6701     dec bp                                    ; 4d
    6702     xor cx, word [bp+039h]                    ; 33 4e 39
    6703     dec bp                                    ; 4d
    6704     pushfw                                    ; 9c
    6705     dec si                                    ; 4e
    6706     xlatb                                     ; d7
    6707     dec si                                    ; 4e
    6708 _int09_function:                             ; 0xf4cb1 LB 0x35d
     6704    cmp AL, strict byte 04dh                  ; 3c 4d
     6705    ror word [bp-005h], 04eh                  ; c1 4e fb 4e
     6706_int09_function:                             ; 0xf4cb1 LB 0x3c7
    67096707    push bp                                   ; 55
    67106708    mov bp, sp                                ; 89 e5
    6711     push si                                   ; 56
    67126709    push di                                   ; 57
    6713     sub sp, strict byte 0000ch                ; 83 ec 0c
     6710    sub sp, strict byte 0000eh                ; 83 ec 0e
    67146711    mov al, byte [bp+014h]                    ; 8a 46 14
    6715     mov byte [bp-00ah], al                    ; 88 46 f6
     6712    mov byte [bp-008h], al                    ; 88 46 f8
    67166713    test al, al                               ; 84 c0
    6717     jne short 04cdch                          ; 75 19
    6718     mov bx, 00d8ah                            ; bb 8a 0d
     6714    jne short 04cdbh                          ; 75 19
     6715    mov bx, 00da2h                            ; bb a2 0d
    67196716    mov cx, ds                                ; 8c d9
    67206717    mov ax, strict word 00004h                ; b8 04 00
    6721     call 01931h                               ; e8 63 cc
     6718    call 01931h                               ; e8 64 cc
    67226719    push 00567h                               ; 68 67 05
    67236720    push strict byte 00004h                   ; 6a 04
    6724     call 01972h                               ; e8 9c cc
     6721    call 01972h                               ; e8 9d cc
    67256722    add sp, strict byte 00004h                ; 83 c4 04
    6726     jmp near 05007h                           ; e9 2b 03
     6723    jmp near 05072h                           ; e9 97 03
    67276724    mov dx, strict word 00017h                ; ba 17 00
    67286725    mov ax, strict word 00040h                ; b8 40 00
    6729     call 01650h                               ; e8 6b c9
    6730     mov byte [bp-00eh], al                    ; 88 46 f2
    6731     mov bl, al                                ; 88 c3
     6726    call 01650h                               ; e8 6c c9
     6727    mov byte [bp-010h], al                    ; 88 46 f0
     6728    mov byte [bp-00ah], al                    ; 88 46 f6
    67326729    mov dx, strict word 00018h                ; ba 18 00
    67336730    mov ax, strict word 00040h                ; b8 40 00
    67346731    call 01650h                               ; e8 5d c9
    6735     mov byte [bp-010h], al                    ; 88 46 f0
    6736     mov byte [bp-00ch], al                    ; 88 46 f4
     6732    mov byte [bp-00eh], al                    ; 88 46 f2
     6733    mov byte [bp-004h], al                    ; 88 46 fc
    67376734    mov dx, 00096h                            ; ba 96 00
    67386735    mov ax, strict word 00040h                ; b8 40 00
    67396736    call 01650h                               ; e8 4e c9
    6740     mov byte [bp-008h], al                    ; 88 46 f8
    67416737    mov byte [bp-006h], al                    ; 88 46 fa
    6742     mov al, byte [bp-00ah]                    ; 8a 46 f6
     6738    mov byte [bp-00ch], al                    ; 88 46 f4
     6739    mov al, byte [bp-008h]                    ; 8a 46 f8
    67436740    push CS                                   ; 0e
    67446741    pop ES                                    ; 07
     
    67506747    mov ax, word [cs:di+04c91h]               ; 2e 8b 85 91 4c
    67516748    jmp ax                                    ; ff e0
    6752     xor bl, 040h                              ; 80 f3 40
    6753     xor bh, bh                                ; 30 ff
     6749    xor byte [bp-00ah], 040h                  ; 80 76 f6 40
     6750    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    67546751    mov dx, strict word 00017h                ; ba 17 00
    67556752    mov ax, strict word 00040h                ; b8 40 00
    6756     call 0165eh                               ; e8 30 c9
    6757     or byte [bp-00ch], 040h                   ; 80 4e f4 40
    6758     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    6759     jmp near 04eafh                           ; e9 76 01
    6760     mov al, byte [bp-010h]                    ; 8a 46 f0
     6753    call 0165eh                               ; e8 2d c9
     6754    or byte [bp-004h], 040h                   ; 80 4e fc 40
     6755    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
     6756    jmp near 04ed4h                           ; e9 98 01
     6757    mov al, byte [bp-00eh]                    ; 8a 46 f2
    67616758    and AL, strict byte 0bfh                  ; 24 bf
    6762     mov byte [bp-00ch], al                    ; 88 46 f4
     6759    mov byte [bp-004h], al                    ; 88 46 fc
    67636760    movzx bx, al                              ; 0f b6 d8
    6764     jmp near 04eafh                           ; e9 68 01
    6765     test byte [bp-006h], 002h                 ; f6 46 fa 02
    6766     jne near 04fe9h                           ; 0f 85 9a 02
    6767     mov al, byte [bp-00ah]                    ; 8a 46 f6
     6761    jmp near 04ed4h                           ; e9 8a 01
     6762    test byte [bp-00ch], 002h                 ; f6 46 f4 02
     6763    jne near 05054h                           ; 0f 85 02 03
     6764    mov al, byte [bp-008h]                    ; 8a 46 f8
    67686765    and AL, strict byte 07fh                  ; 24 7f
    67696766    cmp AL, strict byte 02ah                  ; 3c 2a
    67706767    db  00fh, 094h, 0c0h
    67716768    ; sete al                                   ; 0f 94 c0
    6772     xor ah, ah                                ; 30 e4
    6773     inc ax                                    ; 40
    6774     test byte [bp-00ah], 080h                 ; f6 46 f6 80
    6775     je short 04d68h                           ; 74 06
     6769    movzx dx, al                              ; 0f b6 d0
     6770    inc dx                                    ; 42
     6771    test byte [bp-008h], 080h                 ; f6 46 f8 80
     6772    je short 04d6fh                           ; 74 09
     6773    mov al, dl                                ; 88 d0
    67766774    not al                                    ; f6 d0
    6777     and bl, al                                ; 20 c3
    6778     jmp short 04d6ah                          ; eb 02
    6779     or bl, al                                 ; 08 c3
    6780     xor bh, bh                                ; 30 ff
     6775    and byte [bp-00ah], al                    ; 20 46 f6
     6776    jmp short 04d72h                          ; eb 03
     6777    or byte [bp-00ah], dl                     ; 08 56 f6
     6778    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    67816779    mov dx, strict word 00017h                ; ba 17 00
    67826780    mov ax, strict word 00040h                ; b8 40 00
    6783     call 0165eh                               ; e8 e9 c8
    6784     jmp near 04fe9h                           ; e9 71 02
    6785     test byte [bp-008h], 001h                 ; f6 46 f8 01
    6786     jne near 04fe9h                           ; 0f 85 69 02
    6787     or bl, 004h                               ; 80 cb 04
    6788     xor bh, bh                                ; 30 ff
     6781    call 0165eh                               ; e8 df c8
     6782    jmp near 05054h                           ; e9 d2 02
     6783    test byte [bp-006h], 001h                 ; f6 46 fa 01
     6784    jne near 05054h                           ; 0f 85 ca 02
     6785    mov al, byte [bp-010h]                    ; 8a 46 f0
     6786    or AL, strict byte 004h                   ; 0c 04
     6787    mov byte [bp-00ah], al                    ; 88 46 f6
     6788    movzx bx, al                              ; 0f b6 d8
    67896789    mov dx, strict word 00017h                ; ba 17 00
    67906790    mov ax, strict word 00040h                ; b8 40 00
    6791     call 0165eh                               ; e8 d0 c8
    6792     mov al, byte [bp-008h]                    ; 8a 46 f8
     6791    call 0165eh                               ; e8 c0 c8
     6792    mov al, byte [bp-006h]                    ; 8a 46 fa
    67936793    test AL, strict byte 002h                 ; a8 02
    6794     je short 04da2h                           ; 74 0d
     6794    je short 04db2h                           ; 74 0d
    67956795    or AL, strict byte 004h                   ; 0c 04
    6796     mov byte [bp-006h], al                    ; 88 46 fa
     6796    mov byte [bp-00ch], al                    ; 88 46 f4
    67976797    movzx bx, al                              ; 0f b6 d8
    67986798    mov dx, 00096h                            ; ba 96 00
    6799     jmp short 04db0h                          ; eb 0e
    6800     mov al, byte [bp-010h]                    ; 8a 46 f0
     6799    jmp short 04dc0h                          ; eb 0e
     6800    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68016801    or AL, strict byte 001h                   ; 0c 01
    6802     mov byte [bp-00ch], al                    ; 88 46 f4
     6802    mov byte [bp-004h], al                    ; 88 46 fc
    68036803    movzx bx, al                              ; 0f b6 d8
    68046804    mov dx, strict word 00018h                ; ba 18 00
    68056805    mov ax, strict word 00040h                ; b8 40 00
    6806     call 0165eh                               ; e8 a8 c8
    6807     jmp near 04fe9h                           ; e9 30 02
    6808     test byte [bp-008h], 001h                 ; f6 46 f8 01
    6809     jne near 04fe9h                           ; 0f 85 28 02
    6810     and bl, 0fbh                              ; 80 e3 fb
    6811     xor bh, bh                                ; 30 ff
     6806    call 0165eh                               ; e8 98 c8
     6807    jmp near 05054h                           ; e9 8b 02
     6808    test byte [bp-006h], 001h                 ; f6 46 fa 01
     6809    jne near 05054h                           ; 0f 85 83 02
     6810    mov al, byte [bp-010h]                    ; 8a 46 f0
     6811    and AL, strict byte 0fbh                  ; 24 fb
     6812    mov byte [bp-00ah], al                    ; 88 46 f6
     6813    movzx bx, al                              ; 0f b6 d8
    68126814    mov dx, strict word 00017h                ; ba 17 00
    68136815    mov ax, strict word 00040h                ; b8 40 00
    6814     call 0165eh                               ; e8 8f c8
    6815     mov al, byte [bp-008h]                    ; 8a 46 f8
     6816    call 0165eh                               ; e8 79 c8
     6817    mov al, byte [bp-006h]                    ; 8a 46 fa
    68166818    test AL, strict byte 002h                 ; a8 02
    6817     je short 04de3h                           ; 74 0d
     6819    je short 04df9h                           ; 74 0d
    68186820    and AL, strict byte 0fbh                  ; 24 fb
    6819     mov byte [bp-006h], al                    ; 88 46 fa
     6821    mov byte [bp-00ch], al                    ; 88 46 f4
    68206822    movzx bx, al                              ; 0f b6 d8
    68216823    mov dx, 00096h                            ; ba 96 00
    6822     jmp short 04df1h                          ; eb 0e
    6823     mov al, byte [bp-010h]                    ; 8a 46 f0
     6824    jmp short 04e07h                          ; eb 0e
     6825    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68246826    and AL, strict byte 0feh                  ; 24 fe
    6825     mov byte [bp-00ch], al                    ; 88 46 f4
     6827    mov byte [bp-004h], al                    ; 88 46 fc
    68266828    movzx bx, al                              ; 0f b6 d8
    68276829    mov dx, strict word 00018h                ; ba 18 00
    68286830    mov ax, strict word 00040h                ; b8 40 00
    6829     call 0165eh                               ; e8 67 c8
    6830     jmp near 04fe9h                           ; e9 ef 01
    6831     or bl, 008h                               ; 80 cb 08
    6832     xor bh, bh                                ; 30 ff
     6831    call 0165eh                               ; e8 51 c8
     6832    jmp near 05054h                           ; e9 44 02
     6833    mov al, byte [bp-010h]                    ; 8a 46 f0
     6834    or AL, strict byte 008h                   ; 0c 08
     6835    mov byte [bp-00ah], al                    ; 88 46 f6
     6836    movzx bx, al                              ; 0f b6 d8
    68336837    mov dx, strict word 00017h                ; ba 17 00
    68346838    mov ax, strict word 00040h                ; b8 40 00
    6835     call 0165eh                               ; e8 56 c8
    6836     mov al, byte [bp-008h]                    ; 8a 46 f8
     6839    call 0165eh                               ; e8 3a c8
     6840    mov al, byte [bp-006h]                    ; 8a 46 fa
    68376841    test AL, strict byte 002h                 ; a8 02
    6838     je short 04e1ch                           ; 74 0d
     6842    je short 04e38h                           ; 74 0d
    68396843    or AL, strict byte 008h                   ; 0c 08
    6840     mov byte [bp-006h], al                    ; 88 46 fa
     6844    mov byte [bp-00ch], al                    ; 88 46 f4
    68416845    movzx bx, al                              ; 0f b6 d8
    68426846    mov dx, 00096h                            ; ba 96 00
    6843     jmp short 04e2ah                          ; eb 0e
    6844     mov al, byte [bp-010h]                    ; 8a 46 f0
     6847    jmp short 04e46h                          ; eb 0e
     6848    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68456849    or AL, strict byte 002h                   ; 0c 02
    6846     mov byte [bp-00ch], al                    ; 88 46 f4
     6850    mov byte [bp-004h], al                    ; 88 46 fc
    68476851    movzx bx, al                              ; 0f b6 d8
    68486852    mov dx, strict word 00018h                ; ba 18 00
    68496853    mov ax, strict word 00040h                ; b8 40 00
    6850     call 0165eh                               ; e8 2e c8
    6851     jmp near 04fe9h                           ; e9 b6 01
    6852     and bl, 0f7h                              ; 80 e3 f7
    6853     xor bh, bh                                ; 30 ff
     6854    call 0165eh                               ; e8 12 c8
     6855    jmp near 05054h                           ; e9 05 02
     6856    mov al, byte [bp-010h]                    ; 8a 46 f0
     6857    and AL, strict byte 0f7h                  ; 24 f7
     6858    mov byte [bp-00ah], al                    ; 88 46 f6
     6859    movzx bx, al                              ; 0f b6 d8
    68546860    mov dx, strict word 00017h                ; ba 17 00
    68556861    mov ax, strict word 00040h                ; b8 40 00
    6856     call 0165eh                               ; e8 1d c8
    6857     mov al, byte [bp-008h]                    ; 8a 46 f8
     6862    call 0165eh                               ; e8 fb c7
     6863    mov al, byte [bp-006h]                    ; 8a 46 fa
    68586864    test AL, strict byte 002h                 ; a8 02
    6859     je short 04e55h                           ; 74 0d
     6865    je short 04e77h                           ; 74 0d
    68606866    and AL, strict byte 0f7h                  ; 24 f7
    6861     mov byte [bp-006h], al                    ; 88 46 fa
     6867    mov byte [bp-00ch], al                    ; 88 46 f4
    68626868    movzx bx, al                              ; 0f b6 d8
    68636869    mov dx, 00096h                            ; ba 96 00
    6864     jmp short 04e63h                          ; eb 0e
    6865     mov al, byte [bp-010h]                    ; 8a 46 f0
     6870    jmp short 04e85h                          ; eb 0e
     6871    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68666872    and AL, strict byte 0fdh                  ; 24 fd
    6867     mov byte [bp-00ch], al                    ; 88 46 f4
     6873    mov byte [bp-004h], al                    ; 88 46 fc
    68686874    movzx bx, al                              ; 0f b6 d8
    68696875    mov dx, strict word 00018h                ; ba 18 00
    68706876    mov ax, strict word 00040h                ; b8 40 00
    6871     call 0165eh                               ; e8 f5 c7
    6872     jmp near 04fe9h                           ; e9 7d 01
    6873     test byte [bp-008h], 003h                 ; f6 46 f8 03
    6874     jne near 04fe9h                           ; 0f 85 75 01
    6875     mov al, byte [bp-010h]                    ; 8a 46 f0
     6877    call 0165eh                               ; e8 d3 c7
     6878    jmp near 05054h                           ; e9 c6 01
     6879    test byte [bp-006h], 003h                 ; f6 46 fa 03
     6880    jne near 05054h                           ; 0f 85 be 01
     6881    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68766882    or AL, strict byte 020h                   ; 0c 20
    6877     mov byte [bp-00ch], al                    ; 88 46 f4
     6883    mov byte [bp-004h], al                    ; 88 46 fc
    68786884    movzx bx, al                              ; 0f b6 d8
    68796885    mov dx, strict word 00018h                ; ba 18 00
    68806886    mov ax, strict word 00040h                ; b8 40 00
    6881     call 0165eh                               ; e8 d6 c7
    6882     mov bl, byte [bp-00eh]                    ; 8a 5e f2
    6883     xor bl, 020h                              ; 80 f3 20
    6884     xor bh, bh                                ; 30 ff
     6887    call 0165eh                               ; e8 b4 c7
     6888    mov al, byte [bp-010h]                    ; 8a 46 f0
     6889    xor AL, strict byte 020h                  ; 34 20
     6890    mov byte [bp-00ah], al                    ; 88 46 f6
     6891    movzx bx, al                              ; 0f b6 d8
    68856892    mov dx, strict word 00017h                ; ba 17 00
    68866893    mov ax, strict word 00040h                ; b8 40 00
    6887     call 0165eh                               ; e8 c5 c7
    6888     jmp near 04fe9h                           ; e9 4d 01
    6889     test byte [bp-008h], 003h                 ; f6 46 f8 03
    6890     jne near 04fe9h                           ; 0f 85 45 01
    6891     mov al, byte [bp-010h]                    ; 8a 46 f0
     6894    call 0165eh                               ; e8 a0 c7
     6895    jmp near 05054h                           ; e9 93 01
     6896    test byte [bp-006h], 003h                 ; f6 46 fa 03
     6897    jne near 05054h                           ; 0f 85 8b 01
     6898    mov al, byte [bp-00eh]                    ; 8a 46 f2
    68926899    and AL, strict byte 0dfh                  ; 24 df
    6893     mov byte [bp-00ch], al                    ; 88 46 f4
     6900    mov byte [bp-004h], al                    ; 88 46 fc
    68946901    movzx bx, al                              ; 0f b6 d8
    68956902    mov dx, strict word 00018h                ; ba 18 00
    68966903    mov ax, strict word 00040h                ; b8 40 00
    6897     call 0165eh                               ; e8 a6 c7
    6898     jmp near 04fe9h                           ; e9 2e 01
    6899     mov al, byte [bp-010h]                    ; 8a 46 f0
     6904    call 0165eh                               ; e8 81 c7
     6905    jmp near 05054h                           ; e9 74 01
     6906    mov al, byte [bp-00eh]                    ; 8a 46 f2
    69006907    or AL, strict byte 010h                   ; 0c 10
    6901     mov byte [bp-00ch], al                    ; 88 46 f4
     6908    mov byte [bp-004h], al                    ; 88 46 fc
    69026909    movzx bx, al                              ; 0f b6 d8
    69036910    mov dx, strict word 00018h                ; ba 18 00
    69046911    mov ax, strict word 00040h                ; b8 40 00
    6905     call 0165eh                               ; e8 8f c7
    6906     mov bl, byte [bp-00eh]                    ; 8a 5e f2
    6907     xor bl, 010h                              ; 80 f3 10
    6908     jmp short 04e8eh                          ; eb b7
     6912    call 0165eh                               ; e8 6a c7
    69096913    mov al, byte [bp-010h]                    ; 8a 46 f0
     6914    xor AL, strict byte 010h                  ; 34 10
     6915    jmp short 04eafh                          ; eb b4
     6916    mov al, byte [bp-00eh]                    ; 8a 46 f2
    69106917    and AL, strict byte 0efh                  ; 24 ef
    6911     jmp short 04ea9h                          ; eb cb
    6912     mov al, bl                                ; 88 d8
     6918    jmp short 04eceh                          ; eb cc
     6919    mov al, byte [bp-010h]                    ; 8a 46 f0
    69136920    and AL, strict byte 00ch                  ; 24 0c
    69146921    cmp AL, strict byte 00ch                  ; 3c 0c
    6915     jne short 04eebh                          ; 75 05
     6922    jne short 04f1ch                          ; 75 11
     6923    mov bx, 01234h                            ; bb 34 12
     6924    mov dx, strict word 00072h                ; ba 72 00
     6925    mov ax, strict word 00040h                ; b8 40 00
     6926    call 0167ah                               ; e8 63 c7
    69166927    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    6917     test byte [bp-00ah], 080h                 ; f6 46 f6 80
    6918     jne near 04fe9h                           ; 0f 85 f6 00
    6919     cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    6920     jbe short 04f17h                          ; 76 1e
    6921     mov bx, 00d8ah                            ; bb 8a 0d
     6928    mov al, byte [bp-008h]                    ; 8a 46 f8
     6929    test AL, strict byte 080h                 ; a8 80
     6930    je short 04f5ah                           ; 74 37
     6931    cmp AL, strict byte 0fah                  ; 3c fa
     6932    jne short 04f37h                          ; 75 10
     6933    mov dx, 00097h                            ; ba 97 00
     6934    mov ax, strict word 00040h                ; b8 40 00
     6935    call 01650h                               ; e8 20 c7
     6936    mov dl, al                                ; 88 c2
     6937    or dl, 010h                               ; 80 ca 10
     6938    jmp short 04f4bh                          ; eb 14
     6939    cmp AL, strict byte 0feh                  ; 3c fe
     6940    jne near 05054h                           ; 0f 85 17 01
     6941    mov dx, 00097h                            ; ba 97 00
     6942    mov ax, strict word 00040h                ; b8 40 00
     6943    call 01650h                               ; e8 0a c7
     6944    mov dl, al                                ; 88 c2
     6945    or dl, 020h                               ; 80 ca 20
     6946    movzx bx, dl                              ; 0f b6 da
     6947    mov dx, 00097h                            ; ba 97 00
     6948    mov ax, strict word 00040h                ; b8 40 00
     6949    call 0165eh                               ; e8 07 c7
     6950    jmp near 05054h                           ; e9 fa 00
     6951    cmp byte [bp-008h], 058h                  ; 80 7e f8 58
     6952    jbe short 04f7eh                          ; 76 1e
     6953    mov bx, 00da2h                            ; bb a2 0d
    69226954    mov cx, ds                                ; 8c d9
    69236955    mov ax, strict word 00004h                ; b8 04 00
    6924     call 01931h                               ; e8 2d ca
    6925     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     6956    call 01931h                               ; e8 c6 c9
     6957    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    69266958    push ax                                   ; 50
    69276959    push 00581h                               ; 68 81 05
    69286960    push strict byte 00004h                   ; 6a 04
    6929     call 01972h                               ; e8 61 ca
     6961    call 01972h                               ; e8 fa c9
    69306962    add sp, strict byte 00006h                ; 83 c4 06
    6931     jmp near 05007h                           ; e9 f0 00
    6932     test bl, 008h                             ; f6 c3 08
    6933     je short 04f2eh                           ; 74 12
    6934     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    6935     imul si, si, strict byte 0000ah           ; 6b f6 0a
    6936     mov dl, byte [si+00ddeh]                  ; 8a 94 de 0d
    6937     mov ax, word [si+00ddeh]                  ; 8b 84 de 0d
    6938     jmp near 04fbah                           ; e9 8c 00
    6939     test bl, 004h                             ; f6 c3 04
    6940     je short 04f45h                           ; 74 12
    6941     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    6942     imul si, si, strict byte 0000ah           ; 6b f6 0a
    6943     mov dl, byte [si+00ddch]                  ; 8a 94 dc 0d
    6944     mov ax, word [si+00ddch]                  ; 8b 84 dc 0d
    6945     jmp near 04fbah                           ; e9 75 00
    6946     mov al, byte [bp-006h]                    ; 8a 46 fa
     6963    jmp near 05072h                           ; e9 f4 00
     6964    mov al, byte [bp-00ah]                    ; 8a 46 f6
     6965    test AL, strict byte 008h                 ; a8 08
     6966    je short 04f97h                           ; 74 12
     6967    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     6968    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     6969    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
     6970    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
     6971    jmp near 05025h                           ; e9 8e 00
     6972    test AL, strict byte 004h                 ; a8 04
     6973    je short 04fadh                           ; 74 12
     6974    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     6975    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     6976    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
     6977    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
     6978    jmp near 05025h                           ; e9 78 00
     6979    mov al, byte [bp-00ch]                    ; 8a 46 f4
    69476980    and AL, strict byte 002h                  ; 24 02
    69486981    test al, al                               ; 84 c0
    6949     jbe short 04f63h                          ; 76 15
    6950     mov al, byte [bp-00ah]                    ; 8a 46 f6
     6982    jbe short 04fcbh                          ; 76 15
     6983    mov al, byte [bp-008h]                    ; 8a 46 f8
    69516984    cmp AL, strict byte 047h                  ; 3c 47
    6952     jc short 04f63h                           ; 72 0e
     6985    jc short 04fcbh                           ; 72 0e
    69536986    cmp AL, strict byte 053h                  ; 3c 53
    6954     jnbe short 04f63h                         ; 77 0a
     6987    jnbe short 04fcbh                         ; 77 0a
    69556988    mov DL, strict byte 0e0h                  ; b2 e0
    6956     movzx si, al                              ; 0f b6 f0
    6957     imul si, si, strict byte 0000ah           ; 6b f6 0a
    6958     jmp short 04fb6h                          ; eb 53
    6959     test bl, 003h                             ; f6 c3 03
    6960     je short 04f95h                           ; 74 2d
    6961     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    6962     imul si, si, strict byte 0000ah           ; 6b f6 0a
    6963     movzx ax, byte [si+00de0h]                ; 0f b6 84 e0 0d
    6964     movzx dx, bl                              ; 0f b6 d3
     6989    movzx bx, al                              ; 0f b6 d8
     6990    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     6991    jmp short 05021h                          ; eb 56
     6992    test byte [bp-00ah], 003h                 ; f6 46 f6 03
     6993    je short 04fffh                           ; 74 2e
     6994    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     6995    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     6996    movzx ax, byte [bx+00df8h]                ; 0f b6 87 f8 0d
     6997    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    69656998    test dx, ax                               ; 85 c2
    6966     je short 04f85h                           ; 74 0a
    6967     mov dl, byte [si+00dd8h]                  ; 8a 94 d8 0d
    6968     mov ax, word [si+00dd8h]                  ; 8b 84 d8 0d
    6969     jmp short 04f8dh                          ; eb 08
    6970     mov dl, byte [si+00ddah]                  ; 8a 94 da 0d
    6971     mov ax, word [si+00ddah]                  ; 8b 84 da 0d
     6999    je short 04fefh                           ; 74 0a
     7000    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
     7001    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
     7002    jmp short 04ff7h                          ; eb 08
     7003    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     7004    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    69727005    shr ax, 008h                              ; c1 e8 08
    6973     mov byte [bp-00ah], al                    ; 88 46 f6
    6974     jmp short 04fc0h                          ; eb 2b
    6975     movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
    6976     imul si, si, strict byte 0000ah           ; 6b f6 0a
    6977     movzx ax, byte [si+00de0h]                ; 0f b6 84 e0 0d
    6978     movzx dx, bl                              ; 0f b6 d3
     7006    mov byte [bp-008h], al                    ; 88 46 f8
     7007    jmp short 0502bh                          ; eb 2c
     7008    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     7009    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     7010    movzx ax, byte [bx+00df8h]                ; 0f b6 87 f8 0d
     7011    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
    69797012    test dx, ax                               ; 85 c2
    6980     je short 04fb2h                           ; 74 0a
    6981     mov dl, byte [si+00ddah]                  ; 8a 94 da 0d
    6982     mov ax, word [si+00ddah]                  ; 8b 84 da 0d
    6983     jmp short 04fbah                          ; eb 08
    6984     mov dl, byte [si+00dd8h]                  ; 8a 94 d8 0d
    6985     mov ax, word [si+00dd8h]                  ; 8b 84 d8 0d
     7013    je short 0501dh                           ; 74 0a
     7014    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
     7015    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
     7016    jmp short 05025h                          ; eb 08
     7017    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
     7018    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    69867019    shr ax, 008h                              ; c1 e8 08
    6987     mov byte [bp-00ah], al                    ; 88 46 f6
    6988     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6989     jne short 04fe0h                          ; 75 1a
     7020    mov byte [bp-008h], al                    ; 88 46 f8
     7021    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     7022    jne short 0504bh                          ; 75 1a
    69907023    test dl, dl                               ; 84 d2
    6991     jne short 04fe0h                          ; 75 16
    6992     mov bx, 00d8ah                            ; bb 8a 0d
     7024    jne short 0504bh                          ; 75 16
     7025    mov bx, 00da2h                            ; bb a2 0d
    69937026    mov cx, ds                                ; 8c d9
    69947027    mov ax, strict word 00004h                ; b8 04 00
    6995     call 01931h                               ; e8 5c c9
     7028    call 01931h                               ; e8 f1 c8
    69967029    push 005b8h                               ; 68 b8 05
    69977030    push strict byte 00004h                   ; 6a 04
    6998     call 01972h                               ; e8 95 c9
     7031    call 01972h                               ; e8 2a c9
    69997032    add sp, strict byte 00004h                ; 83 c4 04
    70007033    xor dh, dh                                ; 30 f6
    7001     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    7002     call 04c1eh                               ; e8 35 fc
    7003     mov al, byte [bp-00ah]                    ; 8a 46 f6
     7034    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     7035    call 04c1eh                               ; e8 ca fb
     7036    mov al, byte [bp-008h]                    ; 8a 46 f8
    70047037    and AL, strict byte 07fh                  ; 24 7f
    70057038    cmp AL, strict byte 01dh                  ; 3c 1d
    7006     je short 04ff6h                           ; 74 04
    7007     and byte [bp-006h], 0feh                  ; 80 66 fa fe
    7008     and byte [bp-006h], 0fdh                  ; 80 66 fa fd
    7009     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     7039    je short 05061h                           ; 74 04
     7040    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
     7041    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
     7042    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    70107043    mov dx, 00096h                            ; ba 96 00
    70117044    mov ax, strict word 00040h                ; b8 40 00
    7012     call 0165eh                               ; e8 57 c6
    7013     lea sp, [bp-004h]                         ; 8d 66 fc
     7045    call 0165eh                               ; e8 ec c5
     7046    lea sp, [bp-002h]                         ; 8d 66 fe
    70147047    pop di                                    ; 5f
    7015     pop si                                    ; 5e
    70167048    pop bp                                    ; 5d
    70177049    retn                                      ; c3
    7018 dequeue_key_:                                ; 0xf500e LB 0x94
     7050dequeue_key_:                                ; 0xf5078 LB 0x94
    70197051    push bp                                   ; 55
    70207052    mov bp, sp                                ; 89 e5
     
    70297061    mov dx, strict word 0001ah                ; ba 1a 00
    70307062    mov ax, strict word 00040h                ; b8 40 00
    7031     call 0166ch                               ; e8 44 c6
     7063    call 0166ch                               ; e8 da c5
    70327064    mov bx, ax                                ; 89 c3
    70337065    mov dx, strict word 0001ch                ; ba 1c 00
    70347066    mov ax, strict word 00040h                ; b8 40 00
    7035     call 0166ch                               ; e8 39 c6
     7067    call 0166ch                               ; e8 cf c5
    70367068    cmp bx, ax                                ; 39 c3
    7037     je short 05074h                           ; 74 3d
     7069    je short 050deh                           ; 74 3d
    70387070    mov dx, bx                                ; 89 da
    70397071    mov ax, strict word 00040h                ; b8 40 00
    7040     call 01650h                               ; e8 11 c6
     7072    call 01650h                               ; e8 a7 c5
    70417073    mov cl, al                                ; 88 c1
    70427074    lea dx, [bx+001h]                         ; 8d 57 01
    70437075    mov ax, strict word 00040h                ; b8 40 00
    7044     call 01650h                               ; e8 06 c6
     7076    call 01650h                               ; e8 9c c5
    70457077    mov es, [bp-008h]                         ; 8e 46 f8
    70467078    mov byte [es:si], cl                      ; 26 88 0c
     
    70487080    mov byte [es:di], al                      ; 26 88 05
    70497081    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7050     je short 0506fh                           ; 74 13
     7082    je short 050d9h                           ; 74 13
    70517083    inc bx                                    ; 43
    70527084    inc bx                                    ; 43
    70537085    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7054     jc short 05066h                           ; 72 03
     7086    jc short 050d0h                           ; 72 03
    70557087    mov bx, strict word 0001eh                ; bb 1e 00
    70567088    mov dx, strict word 0001ah                ; ba 1a 00
    70577089    mov ax, strict word 00040h                ; b8 40 00
    7058     call 0167ah                               ; e8 0b c6
     7090    call 0167ah                               ; e8 a1 c5
    70597091    mov ax, strict word 00001h                ; b8 01 00
    7060     jmp short 05076h                          ; eb 02
     7092    jmp short 050e0h                          ; eb 02
    70617093    xor ax, ax                                ; 31 c0
    70627094    lea sp, [bp-004h]                         ; 8d 66 fc
     
    70697101    or cl, byte [bx+di]                       ; 0a 09
    70707102    add ax, 00102h                            ; 05 02 01
    7071     add byte [bx+si+053h], al                 ; 00 40 53
    7072     push si                                   ; 56
     7103    add byte [bp+si-03fadh], ch               ; 00 aa 53 c0
    70737104    push cx                                   ; 51
    7074     popfw                                     ; 9d
    7075     push cx                                   ; 51
    7076     jmp near 049e4h                           ; e9 51 f9
    7077     push cx                                   ; 51
    7078     and dx, word [bp+si+02ch]                 ; 23 52 2c
     7105    pop ES                                    ; 07
    70797106    push dx                                   ; 52
    7080     popfw                                     ; 9d
     7107    push bx                                   ; 53
    70817108    push dx                                   ; 52
    7082     into                                      ; ce
     7109    arpl word [bp+si-073h], dx                ; 63 52 8d
    70837110    push dx                                   ; 52
    7084     sti                                       ; fb
     7111    xchg si, ax                               ; 96
    70857112    push dx                                   ; 52
    7086     xor ax, 08353h                            ; 35 53 83
     7113    pop ES                                    ; 07
    70877114    push bx                                   ; 53
    7088 _int16_function:                             ; 0xf50a2 LB 0x2e7
     7115    cmp byte [bp+di+065h], dl                 ; 38 53 65
     7116    push bx                                   ; 53
     7117    lahf                                      ; 9f
     7118    push bx                                   ; 53
     7119    in ax, DX                                 ; ed
     7120    push bx                                   ; 53
     7121_int16_function:                             ; 0xf510c LB 0x2e7
    70897122    push bp                                   ; 55
    70907123    mov bp, sp                                ; 89 e5
     
    70937126    mov dx, strict word 00017h                ; ba 17 00
    70947127    mov ax, strict word 00040h                ; b8 40 00
    7095     call 01650h                               ; e8 9e c5
     7128    call 01650h                               ; e8 34 c5
    70967129    mov cl, al                                ; 88 c1
    70977130    mov bh, al                                ; 88 c7
    70987131    mov dx, 00097h                            ; ba 97 00
    70997132    mov ax, strict word 00040h                ; b8 40 00
    7100     call 01650h                               ; e8 91 c5
     7133    call 01650h                               ; e8 27 c5
    71017134    mov bl, al                                ; 88 c3
    71027135    movzx dx, cl                              ; 0f b6 d1
     
    71077140    xor al, dl                                ; 30 d0
    71087141    test ax, ax                               ; 85 c0
    7109     je short 05134h                           ; 74 60
     7142    je short 0519eh                           ; 74 60
    71107143    cli                                       ; fa
    71117144    mov AL, strict byte 0edh                  ; b0 ed
     
    71177150    ; sub ah, ah                                ; 2a e4
    71187151    test AL, strict byte 001h                 ; a8 01
    7119     jne short 050edh                          ; 75 08
     7152    jne short 05157h                          ; 75 08
    71207153    mov AL, strict byte 021h                  ; b0 21
    71217154    mov dx, 00080h                            ; ba 80 00
    71227155    out DX, AL                                ; ee
    7123     jmp short 050dbh                          ; eb ee
     7156    jmp short 05145h                          ; eb ee
    71247157    mov dx, strict word 00060h                ; ba 60 00
    71257158    in AL, DX                                 ; ec
     
    71277160    ; sub ah, ah                                ; 2a e4
    71287161    cmp ax, 000fah                            ; 3d fa 00
    7129     jne short 05133h                          ; 75 3b
    7130     and bl, 0f8h                              ; 80 e3 f8
     7162    jne short 0519dh                          ; 75 3b
     7163    and bl, 0c8h                              ; 80 e3 c8
    71317164    movzx ax, bh                              ; 0f b6 c7
    71327165    sar ax, 004h                              ; c1 f8 04
     
    71437176    ; sub ah, ah                                ; 2a e4
    71447177    test AL, strict byte 001h                 ; a8 01
    7145     jne short 05122h                          ; 75 08
     7178    jne short 0518ch                          ; 75 08
    71467179    mov AL, strict byte 021h                  ; b0 21
    71477180    mov dx, 00080h                            ; ba 80 00
    71487181    out DX, AL                                ; ee
    7149     jmp short 05110h                          ; eb ee
     7182    jmp short 0517ah                          ; eb ee
    71507183    mov dx, strict word 00060h                ; ba 60 00
    71517184    in AL, DX                                 ; ec
     
    71557188    mov dx, 00097h                            ; ba 97 00
    71567189    mov ax, strict word 00040h                ; b8 40 00
    7157     call 0165eh                               ; e8 2b c5
     7190    call 0165eh                               ; e8 c1 c4
    71587191    sti                                       ; fb
    71597192    mov ax, word [bp+012h]                    ; 8b 46 12
    71607193    shr ax, 008h                              ; c1 e8 08
    71617194    cmp ax, 000a2h                            ; 3d a2 00
    7162     jnbe near 05340h                          ; 0f 87 ff 01
     7195    jnbe near 053aah                          ; 0f 87 ff 01
    71637196    push CS                                   ; 0e
    71647197    pop ES                                    ; 07
    71657198    mov cx, strict word 0000ch                ; b9 0c 00
    7166     mov di, 0507fh                            ; bf 7f 50
     7199    mov di, 050e9h                            ; bf e9 50
    71677200    repne scasb                               ; f2 ae
    71687201    sal cx, 1                                 ; d1 e1
    71697202    mov di, cx                                ; 89 cf
    7170     mov ax, word [cs:di+0508ah]               ; 2e 8b 85 8a 50
     7203    mov ax, word [cs:di+050f4h]               ; 2e 8b 85 f4 50
    71717204    jmp ax                                    ; ff e0
    71727205    push strict byte 00001h                   ; 6a 01
     
    71757208    mov dx, ss                                ; 8c d2
    71767209    lea ax, [bp-006h]                         ; 8d 46 fa
    7177     call 0500eh                               ; e8 a9 fe
     7210    call 05078h                               ; e8 a9 fe
    71787211    test ax, ax                               ; 85 c0
    7179     jne short 05174h                          ; 75 0b
     7212    jne short 051deh                          ; 75 0b
    71807213    push 005efh                               ; 68 ef 05
    71817214    push strict byte 00007h                   ; 6a 07
    7182     call 01972h                               ; e8 01 c8
     7215    call 01972h                               ; e8 97 c7
    71837216    add sp, strict byte 00004h                ; 83 c4 04
    71847217    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7185     je short 05180h                           ; 74 06
     7218    je short 051eah                           ; 74 06
    71867219    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7187     je short 05186h                           ; 74 06
     7220    je short 051f0h                           ; 74 06
    71887221    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7189     jne short 0518ah                          ; 75 04
     7222    jne short 051f4h                          ; 75 04
    71907223    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    71917224    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    71947227    or dx, ax                                 ; 09 c2
    71957228    mov word [bp+012h], dx                    ; 89 56 12
    7196     jmp near 05383h                           ; e9 e6 01
     7229    jmp near 053edh                           ; e9 e6 01
    71977230    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    71987231    push strict byte 00000h                   ; 6a 00
     
    72017234    mov dx, ss                                ; 8c d2
    72027235    lea ax, [bp-006h]                         ; 8d 46 fa
    7203     call 0500eh                               ; e8 5d fe
     7236    call 05078h                               ; e8 5d fe
    72047237    test ax, ax                               ; 85 c0
    7205     jne short 051bch                          ; 75 07
     7238    jne short 05226h                          ; 75 07
    72067239    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7207     jmp near 05383h                           ; e9 c7 01
     7240    jmp near 053edh                           ; e9 c7 01
    72087241    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7209     je short 051c8h                           ; 74 06
     7242    je short 05232h                           ; 74 06
    72107243    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7211     je short 051ceh                           ; 74 06
     7244    je short 05238h                           ; 74 06
    72127245    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7213     jne short 051d2h                          ; 75 04
     7246    jne short 0523ch                          ; 75 04
    72147247    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    72157248    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    72197252    mov word [bp+012h], dx                    ; 89 56 12
    72207253    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7221     jmp near 05383h                           ; e9 9a 01
     7254    jmp near 053edh                           ; e9 9a 01
    72227255    mov dx, strict word 00017h                ; ba 17 00
    72237256    mov ax, strict word 00040h                ; b8 40 00
    7224     call 01650h                               ; e8 5e c4
     7257    call 01650h                               ; e8 f4 c3
    72257258    mov dx, word [bp+012h]                    ; 8b 56 12
    72267259    mov dl, al                                ; 88 c2
    7227     jmp short 05197h                          ; eb 9e
     7260    jmp short 05201h                          ; eb 9e
    72287261    mov al, byte [bp+010h]                    ; 8a 46 10
    72297262    movzx dx, al                              ; 0f b6 d0
     
    72317264    shr ax, 008h                              ; c1 e8 08
    72327265    xor ah, ah                                ; 30 e4
    7233     call 04c1eh                               ; e8 14 fa
     7266    call 04c1eh                               ; e8 aa f9
    72347267    test ax, ax                               ; 85 c0
    7235     jne short 0521bh                          ; 75 0d
     7268    jne short 05285h                          ; 75 0d
    72367269    mov ax, word [bp+012h]                    ; 8b 46 12
    72377270    xor al, al                                ; 30 c0
    72387271    or AL, strict byte 001h                   ; 0c 01
    72397272    mov word [bp+012h], ax                    ; 89 46 12
    7240     jmp near 05383h                           ; e9 68 01
     7273    jmp near 053edh                           ; e9 68 01
    72417274    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    7242     jmp near 05383h                           ; e9 60 01
     7275    jmp near 053edh                           ; e9 60 01
    72437276    mov ax, word [bp+012h]                    ; 8b 46 12
    72447277    xor al, al                                ; 30 c0
    72457278    or AL, strict byte 030h                   ; 0c 30
    7246     jmp short 05215h                          ; eb e9
     7279    jmp short 0527fh                          ; eb e9
    72477280    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    72487281    xor cx, cx                                ; 31 c9
     
    72577290    ; sub ah, ah                                ; 2a e4
    72587291    test AL, strict byte 001h                 ; a8 01
    7259     jne short 05253h                          ; 75 0d
     7292    jne short 052bdh                          ; 75 0d
    72607293    dec bx                                    ; 4b
    72617294    test bx, bx                               ; 85 db
    7262     jbe short 05253h                          ; 76 08
     7295    jbe short 052bdh                          ; 76 08
    72637296    mov dx, 00080h                            ; ba 80 00
    72647297    in AL, DX                                 ; ec
    72657298    db  02ah, 0e4h
    72667299    ; sub ah, ah                                ; 2a e4
    7267     jmp short 0523ch                          ; eb e9
     7300    jmp short 052a6h                          ; eb e9
    72687301    test bx, bx                               ; 85 db
    7269     jbe short 05297h                          ; 76 40
     7302    jbe short 05301h                          ; 76 40
    72707303    mov dx, strict word 00060h                ; ba 60 00
    72717304    in AL, DX                                 ; ec
     
    72737306    ; sub ah, ah                                ; 2a e4
    72747307    cmp ax, 000fah                            ; 3d fa 00
    7275     jne short 05297h                          ; 75 35
     7308    jne short 05301h                          ; 75 35
    72767309    mov bx, strict word 0ffffh                ; bb ff ff
    72777310    mov dx, strict word 00064h                ; ba 64 00
     
    72807313    ; sub ah, ah                                ; 2a e4
    72817314    test AL, strict byte 001h                 ; a8 01
    7282     jne short 0527ch                          ; 75 0d
     7315    jne short 052e6h                          ; 75 0d
    72837316    dec bx                                    ; 4b
    72847317    test bx, bx                               ; 85 db
    7285     jbe short 0527ch                          ; 76 08
     7318    jbe short 052e6h                          ; 76 08
    72867319    mov dx, 00080h                            ; ba 80 00
    72877320    in AL, DX                                 ; ec
    72887321    db  02ah, 0e4h
    72897322    ; sub ah, ah                                ; 2a e4
    7290     jmp short 05265h                          ; eb e9
     7323    jmp short 052cfh                          ; eb e9
    72917324    test bx, bx                               ; 85 db
    7292     jbe short 0528eh                          ; 76 0e
     7325    jbe short 052f8h                          ; 76 0e
    72937326    shr cx, 008h                              ; c1 e9 08
    72947327    mov dx, strict word 00060h                ; ba 60 00
     
    73007333    dec byte [bp-004h]                        ; fe 4e fc
    73017334    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7302     jnbe short 05262h                         ; 77 cb
     7335    jnbe short 052cch                         ; 77 cb
    73037336    mov word [bp+00ch], cx                    ; 89 4e 0c
    7304     jmp near 05383h                           ; e9 e6 00
     7337    jmp near 053edh                           ; e9 e6 00
    73057338    push strict byte 00001h                   ; 6a 01
    73067339    mov cx, ss                                ; 8c d1
     
    73087341    mov dx, ss                                ; 8c d2
    73097342    lea ax, [bp-006h]                         ; 8d 46 fa
    7310     call 0500eh                               ; e8 62 fd
     7343    call 05078h                               ; e8 62 fd
    73117344    test ax, ax                               ; 85 c0
    7312     jne short 052bbh                          ; 75 0b
     7345    jne short 05325h                          ; 75 0b
    73137346    push 005efh                               ; 68 ef 05
    73147347    push strict byte 00007h                   ; 6a 07
    7315     call 01972h                               ; e8 ba c6
     7348    call 01972h                               ; e8 50 c6
    73167349    add sp, strict byte 00004h                ; 83 c4 04
    73177350    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7318     je near 0518ah                            ; 0f 84 c7 fe
     7351    je near 051f4h                            ; 0f 84 c7 fe
    73197352    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7320     je near 05186h                            ; 0f 84 bb fe
    7321     jmp near 0518ah                           ; e9 bc fe
     7353    je near 051f0h                            ; 0f 84 bb fe
     7354    jmp near 051f4h                           ; e9 bc fe
    73227355    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    73237356    push strict byte 00000h                   ; 6a 00
     
    73267359    mov dx, ss                                ; 8c d2
    73277360    lea ax, [bp-006h]                         ; 8d 46 fa
    7328     call 0500eh                               ; e8 2c fd
     7361    call 05078h                               ; e8 2c fd
    73297362    test ax, ax                               ; 85 c0
    7330     je near 051b5h                            ; 0f 84 cd fe
     7363    je near 0521fh                            ; 0f 84 cd fe
    73317364    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7332     je near 051d2h                            ; 0f 84 e2 fe
     7365    je near 0523ch                            ; 0f 84 e2 fe
    73337366    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7334     je near 051ceh                            ; 0f 84 d6 fe
    7335     jmp near 051d2h                           ; e9 d7 fe
     7367    je near 05238h                            ; 0f 84 d6 fe
     7368    jmp near 0523ch                           ; e9 d7 fe
    73367369    mov dx, strict word 00017h                ; ba 17 00
    73377370    mov ax, strict word 00040h                ; b8 40 00
    7338     call 01650h                               ; e8 4c c3
     7371    call 01650h                               ; e8 e2 c2
    73397372    mov dx, word [bp+012h]                    ; 8b 56 12
    73407373    mov dl, al                                ; 88 c2
     
    73427375    mov dx, strict word 00018h                ; ba 18 00
    73437376    mov ax, strict word 00040h                ; b8 40 00
    7344     call 01650h                               ; e8 3b c3
     7377    call 01650h                               ; e8 d1 c2
    73457378    mov bh, al                                ; 88 c7
    73467379    and bh, 073h                              ; 80 e7 73
    73477380    mov dx, 00096h                            ; ba 96 00
    73487381    mov ax, strict word 00040h                ; b8 40 00
    7349     call 01650h                               ; e8 2d c3
     7382    call 01650h                               ; e8 c3 c2
    73507383    and AL, strict byte 00ch                  ; 24 0c
    73517384    or bh, al                                 ; 08 c7
     
    73547387    movzx ax, bh                              ; 0f b6 c7
    73557388    sal ax, 008h                              ; c1 e0 08
    7356     jmp near 05195h                           ; e9 60 fe
     7389    jmp near 051ffh                           ; e9 60 fe
    73577390    mov ax, word [bp+012h]                    ; 8b 46 12
    73587391    xor ah, ah                                ; 30 e4
    73597392    or ah, 080h                               ; 80 cc 80
    7360     jmp near 05215h                           ; e9 d5 fe
    7361     mov bx, 00d8ah                            ; bb 8a 0d
     7393    jmp near 0527fh                           ; e9 d5 fe
     7394    mov bx, 00da2h                            ; bb a2 0d
    73627395    mov cx, ds                                ; 8c d9
    73637396    mov ax, strict word 00004h                ; b8 04 00
    7364     call 01931h                               ; e8 e6 c5
     7397    call 01931h                               ; e8 7c c5
    73657398    mov ax, word [bp+012h]                    ; 8b 46 12
    73667399    shr ax, 008h                              ; c1 e8 08
     
    73687401    push 00613h                               ; 68 13 06
    73697402    push strict byte 00004h                   ; 6a 04
    7370     call 01972h                               ; e8 18 c6
     7403    call 01972h                               ; e8 ae c5
    73717404    add sp, strict byte 00006h                ; 83 c4 06
    7372     mov bx, 00d8ah                            ; bb 8a 0d
     7405    mov bx, 00da2h                            ; bb a2 0d
    73737406    mov cx, ds                                ; 8c d9
    73747407    mov ax, strict word 00004h                ; b8 04 00
    7375     call 01931h                               ; e8 c9 c5
     7408    call 01931h                               ; e8 5f c5
    73767409    mov ax, word [bp+00eh]                    ; 8b 46 0e
    73777410    push ax                                   ; 50
     
    73847417    push 0063bh                               ; 68 3b 06
    73857418    push strict byte 00004h                   ; 6a 04
    7386     call 01972h                               ; e8 f2 c5
     7419    call 01972h                               ; e8 88 c5
    73877420    add sp, strict byte 0000ch                ; 83 c4 0c
    73887421    lea sp, [bp-002h]                         ; 8d 66 fe
     
    73907423    pop bp                                    ; 5d
    73917424    retn                                      ; c3
    7392 set_geom_lba_:                               ; 0xf5389 LB 0x9e
     7425set_geom_lba_:                               ; 0xf53f3 LB 0x9e
    73937426    push si                                   ; 56
    73947427    push di                                   ; 57
     
    74027435    mov di, 000ffh                            ; bf ff 00
    74037436    xor bx, bx                                ; 31 db
    7404     jmp short 053aah                          ; eb 05
     7437    jmp short 05414h                          ; eb 05
    74057438    cmp bx, strict byte 00004h                ; 83 fb 04
    7406     jnl short 053c0h                          ; 7d 16
     7439    jnl short 0542ah                          ; 7d 16
    74077440    cmp dx, word [bp-002h]                    ; 3b 56 fe
    7408     jnbe short 053b6h                         ; 77 07
    7409     jne short 053b9h                          ; 75 08
     7441    jnbe short 05420h                         ; 77 07
     7442    jne short 05423h                          ; 75 08
    74107443    cmp ax, word [bp-004h]                    ; 3b 46 fc
    7411     jc short 053b9h                           ; 72 03
     7444    jc short 05423h                           ; 72 03
    74127445    inc di                                    ; 47
    74137446    shr di, 1                                 ; d1 ef
     
    74157448    rcr ax, 1                                 ; d1 d8
    74167449    inc bx                                    ; 43
    7417     jmp short 053a5h                          ; eb e5
     7450    jmp short 0540fh                          ; eb e5
    74187451    mov ax, di                                ; 89 f8
    74197452    xor dx, dx                                ; 31 d2
    74207453    mov bx, strict word 0003fh                ; bb 3f 00
    74217454    xor cx, cx                                ; 31 c9
    7422     call 094a9h                               ; e8 dd 40
     7455    call 09519h                               ; e8 e3 40
    74237456    mov bx, ax                                ; 89 c3
    74247457    mov cx, dx                                ; 89 d1
    74257458    mov ax, word [bp-004h]                    ; 8b 46 fc
    74267459    mov dx, word [bp-002h]                    ; 8b 56 fe
    7427     call 09470h                               ; e8 97 40
     7460    call 094e0h                               ; e8 9d 40
    74287461    mov word [es:si+002h], ax                 ; 26 89 44 02
    74297462    cmp ax, 00400h                            ; 3d 00 04
    7430     jbe short 053e8h                          ; 76 06
     7463    jbe short 05452h                          ; 76 06
    74317464    mov word [es:si+002h], 00400h             ; 26 c7 44 02 00 04
    74327465    mov word [es:si], di                      ; 26 89 3c
     
    74367469    pop si                                    ; 5e
    74377470    retn                                      ; c3
    7438     mov CL, strict byte 054h                  ; b1 54
    7439     xlatb                                     ; d7
    7440     push sp                                   ; 54
    7441     add AL, strict byte 055h                  ; 04 55
    7442     add AL, strict byte 055h                  ; 04 55
    7443     add AL, strict byte 055h                  ; 04 55
    7444     fcom qword [bp+00ah]                      ; dc 56 0a
     7471    sbb dx, word [di+041h]                    ; 1b 55 41
     7472    push bp                                   ; 55
     7473    outsb                                     ; 6e
     7474    push bp                                   ; 55
     7475    outsb                                     ; 6e
     7476    push bp                                   ; 55
     7477    outsb                                     ; 6e
     7478    push bp                                   ; 55
     7479    inc si                                    ; 46
     7480    push di                                   ; 57
     7481    je short 054c5h                           ; 74 58
     7482    je short 054c7h                           ; 74 58
     7483    pop di                                    ; 5f
     7484    push di                                   ; 57
     7485    push cx                                   ; 51
    74457486    pop ax                                    ; 58
    7446     or bl, byte [bx+si-00bh]                  ; 0a 58 f5
    7447     push si                                   ; 56
    7448     out 057h, ax                              ; e7 57
    7449     or bl, byte [bx+si+00ah]                  ; 0a 58 0a
     7487    je short 054cdh                           ; 74 58
     7488    je short 054cfh                           ; 74 58
     7489    push cx                                   ; 51
    74507490    pop ax                                    ; 58
    7451     out 057h, ax                              ; e7 57
    7452     out 057h, ax                              ; e7 57
    7453     or bl, byte [bx+si+00ah]                  ; 0a 58 0a
     7491    push cx                                   ; 51
    74547492    pop ax                                    ; 58
    7455     imul dx, word [bx-019h], strict byte 00057h ; 6b 57 e7 57
    7456     or bl, byte [bx+si+00ah]                  ; 0a 58 0a
     7493    je short 054d5h                           ; 74 58
     7494    je short 054d7h                           ; 74 58
     7495    aad 057h                                  ; d5 57
     7496    push cx                                   ; 51
    74577497    pop ax                                    ; 58
    7458     out 057h, ax                              ; e7 57
    7459     wait                                      ; 9b
    7460     push di                                   ; 57
    7461     or bl, byte [bx+si+00ah]                  ; 0a 58 0a
     7498    je short 054ddh                           ; 74 58
     7499    je short 054dfh                           ; 74 58
     7500    push cx                                   ; 51
    74627501    pop ax                                    ; 58
    7463     db  00ah
     7502    add ax, 07458h                            ; 05 58 74
    74647503    pop ax                                    ; 58
    7465 _int13_harddisk:                             ; 0xf5427 LB 0x441
     7504    je short 054e7h                           ; 74 58
     7505    je short 054e9h                           ; 74 58
     7506_int13_harddisk:                             ; 0xf5491 LB 0x441
    74667507    push bp                                   ; 55
    74677508    mov bp, sp                                ; 89 e5
     
    74697510    mov dx, strict word 0000eh                ; ba 0e 00
    74707511    mov ax, strict word 00040h                ; b8 40 00
    7471     call 0166ch                               ; e8 36 c2
     7512    call 0166ch                               ; e8 cc c1
    74727513    mov si, 00122h                            ; be 22 01
    74737514    mov word [bp-004h], ax                    ; 89 46 fc
     
    74757516    mov dx, 0008eh                            ; ba 8e 00
    74767517    mov ax, strict word 00040h                ; b8 40 00
    7477     call 0165eh                               ; e8 17 c2
     7518    call 0165eh                               ; e8 ad c1
    74787519    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74797520    xor ah, ah                                ; 30 e4
    74807521    cmp ax, 00080h                            ; 3d 80 00
    7481     jc short 05456h                           ; 72 05
     7522    jc short 054c0h                           ; 72 05
    74827523    cmp ax, 00090h                            ; 3d 90 00
    7483     jc short 05474h                           ; 72 1e
     7524    jc short 054deh                           ; 72 1e
    74847525    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74857526    xor ah, ah                                ; 30 e4
     
    74917532    push 0066dh                               ; 68 6d 06
    74927533    push strict byte 00004h                   ; 6a 04
    7493     call 01972h                               ; e8 04 c5
     7534    call 01972h                               ; e8 9a c4
    74947535    add sp, strict byte 0000ah                ; 83 c4 0a
    7495     jmp near 05825h                           ; e9 b1 03
     7536    jmp near 0588fh                           ; e9 b1 03
    74967537    mov ax, word [bp+00eh]                    ; 8b 46 0e
    74977538    xor ah, ah                                ; 30 e4
     
    75027543    mov byte [bp-002h], dl                    ; 88 56 fe
    75037544    cmp dl, 010h                              ; 80 fa 10
    7504     jc short 0549dh                           ; 72 10
     7545    jc short 05507h                           ; 72 10
    75057546    push ax                                   ; 50
    75067547    mov ax, word [bp+016h]                    ; 8b 46 16
     
    75097550    push 0065eh                               ; 68 5e 06
    75107551    push 00698h                               ; 68 98 06
    7511     jmp short 05469h                          ; eb cc
     7552    jmp short 054d3h                          ; eb cc
    75127553    mov bx, word [bp+016h]                    ; 8b 5e 16
    75137554    shr bx, 008h                              ; c1 eb 08
    75147555    cmp bx, strict byte 00018h                ; 83 fb 18
    7515     jnbe near 0580ah                          ; 0f 87 60 03
     7556    jnbe near 05874h                          ; 0f 87 60 03
    75167557    add bx, bx                                ; 01 db
    7517     jmp word [cs:bx+053f5h]                   ; 2e ff a7 f5 53
     7558    jmp word [cs:bx+0545fh]                   ; 2e ff a7 5f 54
    75187559    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7519     jnc near 054c0h                           ; 0f 83 07 00
     7560    jnc near 0552ah                           ; 0f 83 07 00
    75207561    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    7521     call 01c71h                               ; e8 b1 c7
     7562    call 01c71h                               ; e8 47 c7
    75227563    mov byte [bp+017h], 000h                  ; c6 46 17 00
    75237564    xor bx, bx                                ; 31 db
    75247565    mov dx, strict word 00074h                ; ba 74 00
    75257566    mov ax, strict word 00040h                ; b8 40 00
    7526     call 0165eh                               ; e8 8f c1
     7567    call 0165eh                               ; e8 25 c1
    75277568    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    75287569    mov sp, bp                                ; 89 ec
     
    75317572    mov dx, strict word 00074h                ; ba 74 00
    75327573    mov ax, strict word 00040h                ; b8 40 00
    7533     call 01650h                               ; e8 70 c1
     7574    call 01650h                               ; e8 06 c1
    75347575    mov cl, al                                ; 88 c1
    75357576    mov dx, word [bp+016h]                    ; 8b 56 16
     
    75427583    mov dx, strict word 00074h                ; ba 74 00
    75437584    mov ax, strict word 00040h                ; b8 40 00
    7544     call 0165eh                               ; e8 61 c1
     7585    call 0165eh                               ; e8 f7 c0
    75457586    test cl, cl                               ; 84 c9
    7546     je short 054c4h                           ; 74 c3
    7547     jmp near 05841h                           ; e9 3d 03
     7587    je short 0552eh                           ; 74 c3
     7588    jmp near 058abh                           ; e9 3d 03
    75487589    mov ax, word [bp+016h]                    ; 8b 46 16
    75497590    xor ah, ah                                ; 30 e4
     
    75657606    mov ax, word [bp-00ch]                    ; 8b 46 f4
    75667607    cmp ax, 00080h                            ; 3d 80 00
    7567     jnbe short 0553fh                         ; 77 04
     7608    jnbe short 055a9h                         ; 77 04
    75687609    test ax, ax                               ; 85 c0
    7569     jne short 05562h                          ; 75 23
    7570     mov bx, 00d8ah                            ; bb 8a 0d
     7610    jne short 055cch                          ; 75 23
     7611    mov bx, 00da2h                            ; bb a2 0d
    75717612    mov cx, ds                                ; 8c d9
    75727613    mov ax, strict word 00004h                ; b8 04 00
    7573     call 01931h                               ; e8 e7 c3
     7614    call 01931h                               ; e8 7d c3
    75747615    mov ax, word [bp+016h]                    ; 8b 46 16
    75757616    shr ax, 008h                              ; c1 e8 08
     
    75787619    push 006cah                               ; 68 ca 06
    75797620    push strict byte 00004h                   ; 6a 04
    7580     call 01972h                               ; e8 16 c4
     7621    call 01972h                               ; e8 ac c3
    75817622    add sp, strict byte 00008h                ; 83 c4 08
    7582     jmp near 05825h                           ; e9 c3 02
     7623    jmp near 0588fh                           ; e9 c3 02
    75837624    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    75847625    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    75917632    mov word [bp-00ah], dx                    ; 89 56 f6
    75927633    cmp di, ax                                ; 39 c7
    7593     jnc short 0558fh                          ; 73 0c
     7634    jnc short 055f9h                          ; 73 0c
    75947635    cmp cx, word [bp-008h]                    ; 3b 4e f8
    7595     jbe short 0558fh                          ; 76 07
     7636    jbe short 055f9h                          ; 76 07
    75967637    mov ax, word [bp-006h]                    ; 8b 46 fa
    75977638    cmp ax, dx                                ; 39 d0
    7598     jbe short 055bdh                          ; 76 2e
    7599     mov bx, 00d8ah                            ; bb 8a 0d
     7639    jbe short 05627h                          ; 76 2e
     7640    mov bx, 00da2h                            ; bb a2 0d
    76007641    mov cx, ds                                ; 8c d9
    76017642    mov ax, strict word 00004h                ; b8 04 00
    7602     call 01931h                               ; e8 97 c3
     7643    call 01931h                               ; e8 2d c3
    76037644    push dword [bp-008h]                      ; 66 ff 76 f8
    76047645    push di                                   ; 57
     
    76127653    push 006f2h                               ; 68 f2 06
    76137654    push strict byte 00004h                   ; 6a 04
    7614     call 01972h                               ; e8 bb c3
     7655    call 01972h                               ; e8 51 c3
    76157656    add sp, strict byte 00010h                ; 83 c4 10
    7616     jmp near 05825h                           ; e9 68 02
     7657    jmp near 0588fh                           ; e9 68 02
    76177658    mov ax, word [bp+016h]                    ; 8b 46 16
    76187659    shr ax, 008h                              ; c1 e8 08
    76197660    cmp ax, strict word 00004h                ; 3d 04 00
    7620     jne short 055cbh                          ; 75 03
    7621     jmp near 054c0h                           ; e9 f5 fe
     7661    jne short 05635h                          ; 75 03
     7662    jmp near 0552ah                           ; e9 f5 fe
    76227663    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    76237664    imul bx, bx, strict byte 00018h           ; 6b db 18
     
    76257666    add bx, si                                ; 01 f3
    76267667    cmp cx, word [es:bx+02ch]                 ; 26 3b 4f 2c
    7627     jne short 055ech                          ; 75 0f
     7668    jne short 05656h                          ; 75 0f
    76287669    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
    76297670    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    7630     jne short 055ech                          ; 75 06
     7671    jne short 05656h                          ; 75 06
    76317672    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    7632     jc short 0561ch                           ; 72 30
     7673    jc short 05686h                           ; 72 30
    76337674    mov ax, di                                ; 89 f8
    76347675    xor dx, dx                                ; 31 d2
    76357676    mov bx, cx                                ; 89 cb
    76367677    xor cx, cx                                ; 31 c9
    7637     call 094a9h                               ; e8 b2 3e
     7678    call 09519h                               ; e8 b8 3e
    76387679    xor bx, bx                                ; 31 db
    76397680    add ax, word [bp-008h]                    ; 03 46 f8
     
    76417682    mov bx, word [bp-00ah]                    ; 8b 5e f6
    76427683    xor cx, cx                                ; 31 c9
    7643     call 094a9h                               ; e8 a3 3e
     7684    call 09519h                               ; e8 a9 3e
    76447685    xor bx, bx                                ; 31 db
    76457686    add ax, word [bp-006h]                    ; 03 46 fa
     
    76947735    mov word [bp+016h], bx                    ; 89 5e 16
    76957736    test dl, dl                               ; 84 d2
    7696     je near 054c0h                            ; 0f 84 13 fe
    7697     mov bx, 00d8ah                            ; bb 8a 0d
     7737    je near 0552ah                            ; 0f 84 13 fe
     7738    mov bx, 00da2h                            ; bb a2 0d
    76987739    mov cx, ds                                ; 8c d9
    76997740    mov ax, strict word 00004h                ; b8 04 00
    7700     call 01931h                               ; e8 79 c2
     7741    call 01931h                               ; e8 0f c2
    77017742    movzx ax, dl                              ; 0f b6 c2
    77027743    push ax                                   ; 50
     
    77077748    push 00739h                               ; 68 39 07
    77087749    push strict byte 00004h                   ; 6a 04
    7709     call 01972h                               ; e8 a4 c2
     7750    call 01972h                               ; e8 3a c2
    77107751    add sp, strict byte 0000ah                ; 83 c4 0a
    77117752    mov ax, word [bp+016h]                    ; 8b 46 16
    77127753    xor ah, ah                                ; 30 e4
    77137754    or ah, 00ch                               ; 80 cc 0c
    7714     jmp near 0582dh                           ; e9 51 01
    7715     mov bx, 00d8ah                            ; bb 8a 0d
     7755    jmp near 05897h                           ; e9 51 01
     7756    mov bx, 00da2h                            ; bb a2 0d
    77167757    mov cx, ds                                ; 8c d9
    77177758    mov ax, strict word 00004h                ; b8 04 00
    7718     call 01931h                               ; e8 4a c2
     7759    call 01931h                               ; e8 e0 c1
    77197760    push 0075ah                               ; 68 5a 07
    77207761    push strict byte 00004h                   ; 6a 04
    7721     call 01972h                               ; e8 83 c2
     7762    call 01972h                               ; e8 19 c2
    77227763    add sp, strict byte 00004h                ; 83 c4 04
    7723     jmp near 054c0h                           ; e9 cb fd
     7764    jmp near 0552ah                           ; e9 cb fd
    77247765    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77257766    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    77647805    or dx, ax                                 ; 09 c2
    77657806    mov word [bp+012h], dx                    ; 89 56 12
    7766     jmp near 054c0h                           ; e9 55 fd
     7807    jmp near 0552ah                           ; e9 55 fd
    77677808    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77687809    cwd                                       ; 99
     
    77807821    and AL, strict byte 0c0h                  ; 24 c0
    77817822    cmp AL, strict byte 040h                  ; 3c 40
    7782     jne short 05790h                          ; 75 03
    7783     jmp near 054c0h                           ; e9 30 fd
     7823    jne short 057fah                          ; 75 03
     7824    jmp near 0552ah                           ; e9 30 fd
    77847825    mov ax, word [bp+016h]                    ; 8b 46 16
    77857826    xor ah, ah                                ; 30 e4
    77867827    or ah, 0aah                               ; 80 cc aa
    7787     jmp near 0582dh                           ; e9 92 00
     7828    jmp near 05897h                           ; e9 92 00
    77887829    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    77897830    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    77997840    mov bx, word [bp-008h]                    ; 8b 5e f8
    78007841    xor cx, cx                                ; 31 c9
    7801     call 094a9h                               ; e8 e4 3c
     7842    call 09519h                               ; e8 ea 3c
    78027843    mov bx, word [bp-006h]                    ; 8b 5e fa
    78037844    xor cx, cx                                ; 31 c9
    7804     call 094a9h                               ; e8 dc 3c
     7845    call 09519h                               ; e8 e2 3c
    78057846    mov word [bp-010h], ax                    ; 89 46 f0
    78067847    mov word [bp-00eh], dx                    ; 89 56 f2
     
    78117852    or ah, 003h                               ; 80 cc 03
    78127853    mov word [bp+016h], ax                    ; 89 46 16
    7813     jmp near 054c4h                           ; e9 dd fc
    7814     mov bx, 00d8ah                            ; bb 8a 0d
     7854    jmp near 0552eh                           ; e9 dd fc
     7855    mov bx, 00da2h                            ; bb a2 0d
    78157856    mov cx, ds                                ; 8c d9
    78167857    mov ax, strict word 00004h                ; b8 04 00
    7817     call 01931h                               ; e8 3f c1
     7858    call 01931h                               ; e8 d5 c0
    78187859    mov ax, word [bp+016h]                    ; 8b 46 16
    78197860    shr ax, 008h                              ; c1 e8 08
     
    78227863    push 00774h                               ; 68 74 07
    78237864    push strict byte 00004h                   ; 6a 04
    7824     call 01972h                               ; e8 6e c1
     7865    call 01972h                               ; e8 04 c1
    78257866    add sp, strict byte 00008h                ; 83 c4 08
    7826     jmp near 054c0h                           ; e9 b6 fc
    7827     mov bx, 00d8ah                            ; bb 8a 0d
     7867    jmp near 0552ah                           ; e9 b6 fc
     7868    mov bx, 00da2h                            ; bb a2 0d
    78287869    mov cx, ds                                ; 8c d9
    78297870    mov ax, strict word 00004h                ; b8 04 00
    7830     call 01931h                               ; e8 1c c1
     7871    call 01931h                               ; e8 b2 c0
    78317872    mov ax, word [bp+016h]                    ; 8b 46 16
    78327873    shr ax, 008h                              ; c1 e8 08
     
    78347875    push 0065eh                               ; 68 5e 06
    78357876    push 007a7h                               ; 68 a7 07
    7836     jmp near 05557h                           ; e9 32 fd
     7877    jmp near 055c1h                           ; e9 32 fd
    78377878    mov ax, word [bp+016h]                    ; 8b 46 16
    78387879    xor ah, ah                                ; 30 e4
     
    78447885    mov dx, strict word 00074h                ; ba 74 00
    78457886    mov ax, strict word 00040h                ; b8 40 00
    7846     call 0165eh                               ; e8 1d be
     7887    call 0165eh                               ; e8 b3 bd
    78477888    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    7848     jmp near 054d3h                           ; e9 8b fc
    7849     add bx, word [bx+di+01bh]                 ; 03 59 1b
     7889    jmp near 0553dh                           ; e9 8b fc
     7890    insw                                      ; 6d
    78507891    pop cx                                    ; 59
    7851     sbb bx, word [bx+di+01bh]                 ; 1b 59 1b
     7892    test word [bx+di-07bh], bx                ; 85 59 85
    78527893    pop cx                                    ; 59
    7853     retf 05e5ch                               ; ca 5c 5e
     7894    test word [bx+di+034h], bx                ; 85 59 34
     7895    pop bp                                    ; 5d
     7896    enter 0855ah, 059h                        ; c8 5a 85 59
     7897    into                                      ; ce
    78547898    pop dx                                    ; 5a
    7855     sbb bx, word [bx+di+064h]                 ; 1b 59 64
    7856     pop dx                                    ; 5a
    7857     retf 0195ch                               ; ca 5c 19
     7899    xor AL, strict byte 05dh                  ; 34 5d
     7900    sbb word [di-07dh], strict byte 0005dh    ; 83 5d 83 5d
     7901    sbb word [di-07dh], strict byte 0005dh    ; 83 5d 83 5d
     7902    dec bx                                    ; 4b
    78587903    pop bp                                    ; 5d
    7859     sbb word [di+019h], bx                    ; 19 5d 19
    7860     pop bp                                    ; 5d
    7861     sbb word [di-01fh], bx                    ; 19 5d e1
    7862     pop sp                                    ; 5c
    7863     sbb word [di+019h], bx                    ; 19 5d 19
    7864     pop bp                                    ; 5d
    7865 _int13_harddisk_ext:                         ; 0xf5868 LB 0x4cc
     7904    sbb word [di-07dh], strict byte 0005dh    ; 83 5d 83 5d
     7905_int13_harddisk_ext:                         ; 0xf58d2 LB 0x4cc
    78667906    push bp                                   ; 55
    78677907    mov bp, sp                                ; 89 e5
     
    78697909    mov dx, strict word 0000eh                ; ba 0e 00
    78707910    mov ax, strict word 00040h                ; b8 40 00
    7871     call 0166ch                               ; e8 f5 bd
     7911    call 0166ch                               ; e8 8b bd
    78727912    mov word [bp-014h], ax                    ; 89 46 ec
    78737913    mov dx, strict word 0000eh                ; ba 0e 00
    78747914    mov ax, strict word 00040h                ; b8 40 00
    7875     call 0166ch                               ; e8 e9 bd
     7915    call 0166ch                               ; e8 7f bd
    78767916    mov si, 00122h                            ; be 22 01
    78777917    mov word [bp-026h], ax                    ; 89 46 da
     
    78797919    mov dx, 0008eh                            ; ba 8e 00
    78807920    mov ax, strict word 00040h                ; b8 40 00
    7881     call 0165eh                               ; e8 ca bd
     7921    call 0165eh                               ; e8 60 bd
    78827922    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78837923    xor ah, ah                                ; 30 e4
    78847924    cmp ax, 00080h                            ; 3d 80 00
    7885     jc short 058a3h                           ; 72 05
     7925    jc short 0590dh                           ; 72 05
    78867926    cmp ax, 00090h                            ; 3d 90 00
    7887     jc short 058c1h                           ; 72 1e
     7927    jc short 0592bh                           ; 72 1e
    78887928    mov ax, word [bp+00eh]                    ; 8b 46 0e
    78897929    xor ah, ah                                ; 30 e4
     
    78957935    push 0066dh                               ; 68 6d 06
    78967936    push strict byte 00004h                   ; 6a 04
    7897     call 01972h                               ; e8 b7 c0
     7937    call 01972h                               ; e8 4d c0
    78987938    add sp, strict byte 0000ah                ; 83 c4 0a
    7899     jmp near 05cf7h                           ; e9 36 04
     7939    jmp near 05d61h                           ; e9 36 04
    79007940    mov ax, word [bp+00eh]                    ; 8b 46 0e
    79017941    xor ah, ah                                ; 30 e4
     
    79057945    mov cl, byte [es:bx+0011fh]               ; 26 8a 8f 1f 01
    79067946    cmp cl, 010h                              ; 80 f9 10
    7907     jc short 058e7h                           ; 72 10
     7947    jc short 05951h                           ; 72 10
    79087948    push ax                                   ; 50
    79097949    mov ax, word [bp+016h]                    ; 8b 46 16
     
    79127952    push 007d5h                               ; 68 d5 07
    79137953    push 00698h                               ; 68 98 06
    7914     jmp short 058b6h                          ; eb cf
     7954    jmp short 05920h                          ; eb cf
    79157955    mov bx, word [bp+016h]                    ; 8b 5e 16
    79167956    shr bx, 008h                              ; c1 eb 08
    79177957    sub bx, strict byte 00041h                ; 83 eb 41
    79187958    cmp bx, strict byte 0000fh                ; 83 fb 0f
    7919     jnbe near 05d19h                          ; 0f 87 22 04
     7959    jnbe near 05d83h                          ; 0f 87 22 04
    79207960    add bx, bx                                ; 01 db
    79217961    mov ax, word [bp+016h]                    ; 8b 46 16
    79227962    xor ah, ah                                ; 30 e4
    7923     jmp word [cs:bx+05848h]                   ; 2e ff a7 48 58
     7963    jmp word [cs:bx+058b2h]                   ; 2e ff a7 b2 58
    79247964    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    79257965    mov ax, word [bp+016h]                    ; 8b 46 16
     
    79287968    mov word [bp+016h], ax                    ; 89 46 16
    79297969    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    7930     jmp near 05cceh                           ; e9 b3 03
     7970    jmp near 05d38h                           ; e9 b3 03
    79317971    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    79327972    mov es, [bp+004h]                         ; 8e 46 04
     
    79437983    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
    79447984    or ax, word [bp-00ah]                     ; 0b 46 f6
    7945     je short 0595ch                           ; 74 11
     7985    je short 059c6h                           ; 74 11
    79467986    mov ax, word [bp+016h]                    ; 8b 46 16
    79477987    shr ax, 008h                              ; c1 e8 08
     
    79507990    push 007e8h                               ; 68 e8 07
    79517991    push strict byte 00007h                   ; 6a 07
    7952     jmp short 059a6h                          ; eb 4a
     7992    jmp short 05a10h                          ; eb 4a
    79537993    mov es, [bp-010h]                         ; 8e 46 f0
    79547994    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    79628002    mov ch, byte [es:bx+01eh]                 ; 26 8a 6f 1e
    79638003    cmp ax, word [es:bx+034h]                 ; 26 3b 47 34
    7964     jnbe short 0598ch                         ; 77 0b
    7965     jne short 059afh                          ; 75 2c
     8004    jnbe short 059f6h                         ; 77 0b
     8005    jne short 05a19h                          ; 75 2c
    79668006    mov dx, word [bp-00ah]                    ; 8b 56 f6
    79678007    cmp dx, word [es:bx+032h]                 ; 26 3b 57 32
    7968     jc short 059afh                           ; 72 23
    7969     mov bx, 00d8ah                            ; bb 8a 0d
     8008    jc short 05a19h                           ; 72 23
     8009    mov bx, 00da2h                            ; bb a2 0d
    79708010    mov cx, ds                                ; 8c d9
    79718011    mov ax, strict word 00004h                ; b8 04 00
    7972     call 01931h                               ; e8 9a bf
     8012    call 01931h                               ; e8 30 bf
    79738013    mov ax, word [bp+016h]                    ; 8b 46 16
    79748014    shr ax, 008h                              ; c1 e8 08
     
    79778017    push 00811h                               ; 68 11 08
    79788018    push strict byte 00004h                   ; 6a 04
    7979     call 01972h                               ; e8 c9 bf
     8019    call 01972h                               ; e8 5f bf
    79808020    add sp, strict byte 00008h                ; 83 c4 08
    7981     jmp near 05cf7h                           ; e9 48 03
     8021    jmp near 05d61h                           ; e9 48 03
    79828022    mov dx, word [bp+016h]                    ; 8b 56 16
    79838023    shr dx, 008h                              ; c1 ea 08
    79848024    mov word [bp-00ch], dx                    ; 89 56 f4
    79858025    cmp dx, strict byte 00044h                ; 83 fa 44
    7986     je near 05ccah                            ; 0f 84 0b 03
     8026    je near 05d34h                            ; 0f 84 0b 03
    79878027    cmp dx, strict byte 00047h                ; 83 fa 47
    7988     je near 05ccah                            ; 0f 84 04 03
     8028    je near 05d34h                            ; 0f 84 04 03
    79898029    mov es, [bp-026h]                         ; 8e 46 da
    79908030    db  066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h
     
    80188058    mov word [es:di+002h], ax                 ; 26 89 45 02
    80198059    test dl, dl                               ; 84 d2
    8020     je near 05ccah                            ; 0f 84 97 02
    8021     mov bx, 00d8ah                            ; bb 8a 0d
     8060    je near 05d34h                            ; 0f 84 97 02
     8061    mov bx, 00da2h                            ; bb a2 0d
    80228062    mov cx, ds                                ; 8c d9
    80238063    mov ax, strict word 00004h                ; b8 04 00
    8024     call 01931h                               ; e8 f3 be
     8064    call 01931h                               ; e8 89 be
    80258065    movzx ax, dl                              ; 0f b6 c2
    80268066    push ax                                   ; 50
     
    80298069    push 00739h                               ; 68 39 07
    80308070    push strict byte 00004h                   ; 6a 04
    8031     call 01972h                               ; e8 22 bf
     8071    call 01972h                               ; e8 b8 be
    80328072    add sp, strict byte 0000ah                ; 83 c4 0a
    80338073    mov ax, word [bp+016h]                    ; 8b 46 16
    80348074    xor ah, ah                                ; 30 e4
    80358075    or ah, 00ch                               ; 80 cc 0c
    8036     jmp near 05cffh                           ; e9 a1 02
     8076    jmp near 05d69h                           ; e9 a1 02
    80378077    or ah, 0b2h                               ; 80 cc b2
    8038     jmp near 05cffh                           ; e9 9b 02
     8078    jmp near 05d69h                           ; e9 9b 02
    80398079    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    80408080    mov ax, word [bp+004h]                    ; 8b 46 04
     
    80468086    mov word [bp-00eh], ax                    ; 89 46 f2
    80478087    cmp ax, strict word 0001ah                ; 3d 1a 00
    8048     jc near 05cf7h                            ; 0f 82 76 02
    8049     jc near 05b08h                            ; 0f 82 83 00
     8088    jc near 05d61h                            ; 0f 82 76 02
     8089    jc near 05b72h                            ; 0f 82 83 00
    80508090    movzx ax, cl                              ; 0f b6 c1
    80518091    imul ax, ax, strict byte 00018h           ; 6b c0 18
     
    80858125    ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00
    80868126    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    8087     jc near 05c14h                            ; 0f 82 04 01
     8127    jc near 05c7eh                            ; 0f 82 04 01
    80888128    mov es, [bp-004h]                         ; 8e 46 fc
    80898129    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    81118151    mov al, byte [es:di+023h]                 ; 26 8a 45 23
    81128152    test al, al                               ; 84 c0
    8113     jne short 05b66h                          ; 75 04
     8153    jne short 05bd0h                          ; 75 04
    81148154    xor dx, dx                                ; 31 d2
    8115     jmp short 05b69h                          ; eb 03
     8155    jmp short 05bd3h                          ; eb 03
    81168156    mov dx, strict word 00008h                ; ba 08 00
    81178157    or dl, 010h                               ; 80 ca 10
     
    81288168    or word [bp-008h], dx                     ; 09 56 f8
    81298169    cmp AL, strict byte 003h                  ; 3c 03
    8130     jne short 05b8fh                          ; 75 05
     8170    jne short 05bf9h                          ; 75 05
    81318171    mov ax, strict word 00003h                ; b8 03 00
    8132     jmp short 05b91h                          ; eb 02
     8172    jmp short 05bfbh                          ; eb 02
    81338173    xor ax, ax                                ; 31 c0
    81348174    or word [bp-008h], ax                     ; 09 46 f8
     
    81558195    xor ch, ch                                ; 30 ed
    81568196    mov byte [bp-002h], ch                    ; 88 6e fe
    8157     jmp short 05bf5h                          ; eb 06
     8197    jmp short 05c5fh                          ; eb 06
    81588198    cmp byte [bp-002h], 00fh                  ; 80 7e fe 0f
    8159     jnc short 05c0ah                          ; 73 15
     8199    jnc short 05c74h                          ; 73 15
    81608200    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    81618201    add dx, 00312h                            ; 81 c2 12 03
    81628202    mov ax, word [bp-014h]                    ; 8b 46 ec
    8163     call 01650h                               ; e8 4d ba
     8203    call 01650h                               ; e8 e3 b9
    81648204    add ch, al                                ; 00 c5
    81658205    inc byte [bp-002h]                        ; fe 46 fe
    8166     jmp short 05befh                          ; eb e5
     8206    jmp short 05c59h                          ; eb e5
    81678207    neg ch                                    ; f6 dd
    81688208    mov es, [bp-026h]                         ; 8e 46 da
    81698209    mov byte [es:si+001ffh], ch               ; 26 88 ac ff 01
    81708210    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    8171     jc near 05ccah                            ; 0f 82 ae 00
     8211    jc near 05d34h                            ; 0f 82 ae 00
    81728212    movzx ax, cl                              ; 0f b6 c1
    81738213    cwd                                       ; 99
     
    81878227    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    81888228    test al, al                               ; 84 c0
    8189     jne short 05c5ch                          ; 75 09
     8229    jne short 05cc6h                          ; 75 09
    81908230    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    81918231    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    81968236    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    81978237    test al, al                               ; 84 c0
    8198     jne short 05c88h                          ; 75 13
     8238    jne short 05cf2h                          ; 75 13
    81998239    mov word [es:bx+030h], dx                 ; 26 89 57 30
    82008240    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    82118251    xor cl, cl                                ; 30 c9
    82128252    mov CH, strict byte 01eh                  ; b5 1e
    8213     jmp short 05cafh                          ; eb 05
     8253    jmp short 05d19h                          ; eb 05
    82148254    cmp ch, 040h                              ; 80 fd 40
    8215     jnc short 05cc1h                          ; 73 12
     8255    jnc short 05d2bh                          ; 73 12
    82168256    movzx dx, ch                              ; 0f b6 d5
    82178257    add dx, word [bp+00ah]                    ; 03 56 0a
    82188258    mov ax, word [bp+004h]                    ; 8b 46 04
    8219     call 01650h                               ; e8 95 b9
     8259    call 01650h                               ; e8 2b b9
    82208260    add cl, al                                ; 00 c1
    82218261    db  0feh, 0c5h
    82228262    ; inc ch                                    ; fe c5
    8223     jmp short 05caah                          ; eb e9
     8263    jmp short 05d14h                          ; eb e9
    82248264    neg cl                                    ; f6 d9
    82258265    mov es, [bp-004h]                         ; 8e 46 fc
     
    82298269    mov dx, strict word 00074h                ; ba 74 00
    82308270    mov ax, strict word 00040h                ; b8 40 00
    8231     call 0165eh                               ; e8 85 b9
     8271    call 0165eh                               ; e8 1b b9
    82328272    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    82338273    mov sp, bp                                ; 89 ec
     
    82358275    retn                                      ; c3
    82368276    cmp ax, strict word 00006h                ; 3d 06 00
    8237     je short 05ccah                           ; 74 e4
     8277    je short 05d34h                           ; 74 e4
    82388278    cmp ax, strict word 00001h                ; 3d 01 00
    8239     jc short 05cf7h                           ; 72 0c
    8240     jbe short 05ccah                          ; 76 dd
     8279    jc short 05d61h                           ; 72 0c
     8280    jbe short 05d34h                          ; 76 dd
    82418281    cmp ax, strict word 00003h                ; 3d 03 00
    8242     jc short 05cf7h                           ; 72 05
     8282    jc short 05d61h                           ; 72 05
    82438283    cmp ax, strict word 00004h                ; 3d 04 00
    8244     jbe short 05ccah                          ; 76 d3
     8284    jbe short 05d34h                          ; 76 d3
    82458285    mov ax, word [bp+016h]                    ; 8b 46 16
    82468286    xor ah, ah                                ; 30 e4
     
    82528292    mov dx, strict word 00074h                ; ba 74 00
    82538293    mov ax, strict word 00040h                ; b8 40 00
    8254     call 0165eh                               ; e8 4b b9
     8294    call 0165eh                               ; e8 e1 b8
    82558295    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8256     jmp short 05cddh                          ; eb c4
    8257     mov bx, 00d8ah                            ; bb 8a 0d
     8296    jmp short 05d47h                          ; eb c4
     8297    mov bx, 00da2h                            ; bb a2 0d
    82588298    mov cx, ds                                ; 8c d9
    82598299    mov ax, strict word 00004h                ; b8 04 00
    8260     call 01931h                               ; e8 0d bc
     8300    call 01931h                               ; e8 a3 bb
    82618301    mov ax, word [bp+016h]                    ; 8b 46 16
    82628302    shr ax, 008h                              ; c1 e8 08
     
    82648304    push 007d5h                               ; 68 d5 07
    82658305    push 007a7h                               ; 68 a7 07
    8266     jmp near 059a4h                           ; e9 70 fc
    8267 _int14_function:                             ; 0xf5d34 LB 0x155
     8306    jmp near 05a0eh                           ; e9 70 fc
     8307_int14_function:                             ; 0xf5d9e LB 0x155
    82688308    push bp                                   ; 55
    82698309    mov bp, sp                                ; 89 e5
     
    82738313    add dx, dx                                ; 01 d2
    82748314    mov ax, strict word 00040h                ; b8 40 00
    8275     call 0166ch                               ; e8 28 b9
     8315    call 0166ch                               ; e8 be b8
    82768316    mov si, ax                                ; 89 c6
    82778317    mov bx, ax                                ; 89 c3
     
    82798319    add dx, strict byte 0007ch                ; 83 c2 7c
    82808320    mov ax, strict word 00040h                ; b8 40 00
    8281     call 01650h                               ; e8 fc b8
     8321    call 01650h                               ; e8 92 b8
    82828322    mov cl, al                                ; 88 c1
    82838323    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8284     jnc near 05e7fh                           ; 0f 83 21 01
     8324    jnc near 05ee9h                           ; 0f 83 21 01
    82858325    test si, si                               ; 85 f6
    8286     jbe near 05e7fh                           ; 0f 86 1b 01
     8326    jbe near 05ee9h                           ; 0f 86 1b 01
    82878327    mov al, byte [bp+013h]                    ; 8a 46 13
    82888328    cmp AL, strict byte 001h                  ; 3c 01
    8289     jc short 05d7ch                           ; 72 11
    8290     jbe short 05dd0h                          ; 76 63
     8329    jc short 05de6h                           ; 72 11
     8330    jbe short 05e3ah                          ; 76 63
    82918331    cmp AL, strict byte 003h                  ; 3c 03
    8292     je near 05e68h                            ; 0f 84 f5 00
     8332    je near 05ed2h                            ; 0f 84 f5 00
    82938333    cmp AL, strict byte 002h                  ; 3c 02
    8294     je near 05e1eh                            ; 0f 84 a5 00
    8295     jmp near 05e79h                           ; e9 fd 00
     8334    je near 05e88h                            ; 0f 84 a5 00
     8335    jmp near 05ee3h                           ; e9 fd 00
    82968336    test al, al                               ; 84 c0
    8297     jne near 05e79h                           ; 0f 85 f7 00
     8337    jne near 05ee3h                           ; 0f 85 f7 00
    82988338    lea dx, [bx+003h]                         ; 8d 57 03
    82998339    in AL, DX                                 ; ec
     
    83278367    ; sub ah, ah                                ; 2a e4
    83288368    mov byte [bp+012h], al                    ; 88 46 12
    8329     jmp near 05e5ah                           ; e9 97 00
     8369    jmp near 05ec4h                           ; e9 97 00
    83308370    mov AL, strict byte 017h                  ; b0 17
    83318371    mov dx, bx                                ; 89 da
     
    83348374    mov AL, strict byte 004h                  ; b0 04
    83358375    out DX, AL                                ; ee
    8336     jmp short 05da5h                          ; eb d5
     8376    jmp short 05e0fh                          ; eb d5
    83378377    mov dx, strict word 0006ch                ; ba 6c 00
    83388378    mov ax, strict word 00040h                ; b8 40 00
    8339     call 0166ch                               ; e8 93 b8
     8379    call 0166ch                               ; e8 29 b8
    83408380    mov si, ax                                ; 89 c6
    83418381    lea dx, [bx+005h]                         ; 8d 57 05
     
    83458385    and ax, strict word 00060h                ; 25 60 00
    83468386    cmp ax, strict word 00060h                ; 3d 60 00
    8347     je short 05e00h                           ; 74 17
     8387    je short 05e6ah                           ; 74 17
    83488388    test cl, cl                               ; 84 c9
    8349     je short 05e00h                           ; 74 13
     8389    je short 05e6ah                           ; 74 13
    83508390    mov dx, strict word 0006ch                ; ba 6c 00
    83518391    mov ax, strict word 00040h                ; b8 40 00
    8352     call 0166ch                               ; e8 76 b8
     8392    call 0166ch                               ; e8 0c b8
    83538393    cmp ax, si                                ; 39 f0
    8354     je short 05ddbh                           ; 74 e1
     8394    je short 05e45h                           ; 74 e1
    83558395    mov si, ax                                ; 89 c6
    83568396    db  0feh, 0c9h
    83578397    ; dec cl                                    ; fe c9
    8358     jmp short 05ddbh                          ; eb db
     8398    jmp short 05e45h                          ; eb db
    83598399    test cl, cl                               ; 84 c9
    8360     je short 05e0ah                           ; 74 06
     8400    je short 05e74h                           ; 74 06
    83618401    mov al, byte [bp+012h]                    ; 8a 46 12
    83628402    mov dx, bx                                ; 89 da
     
    83688408    mov byte [bp+013h], al                    ; 88 46 13
    83698409    test cl, cl                               ; 84 c9
    8370     jne short 05e5ah                          ; 75 43
     8410    jne short 05ec4h                          ; 75 43
    83718411    or AL, strict byte 080h                   ; 0c 80
    83728412    mov byte [bp+013h], al                    ; 88 46 13
    8373     jmp short 05e5ah                          ; eb 3c
     8413    jmp short 05ec4h                          ; eb 3c
    83748414    mov dx, strict word 0006ch                ; ba 6c 00
    83758415    mov ax, strict word 00040h                ; b8 40 00
    8376     call 0166ch                               ; e8 45 b8
     8416    call 0166ch                               ; e8 db b7
    83778417    mov si, ax                                ; 89 c6
    83788418    lea dx, [bx+005h]                         ; 8d 57 05
     
    83818421    ; sub ah, ah                                ; 2a e4
    83828422    test AL, strict byte 001h                 ; a8 01
    8383     jne short 05e4ah                          ; 75 17
     8423    jne short 05eb4h                          ; 75 17
    83848424    test cl, cl                               ; 84 c9
    8385     je short 05e4ah                           ; 74 13
     8425    je short 05eb4h                           ; 74 13
    83868426    mov dx, strict word 0006ch                ; ba 6c 00
    83878427    mov ax, strict word 00040h                ; b8 40 00
    8388     call 0166ch                               ; e8 2c b8
     8428    call 0166ch                               ; e8 c2 b7
    83898429    cmp ax, si                                ; 39 f0
    8390     je short 05e29h                           ; 74 e5
     8430    je short 05e93h                           ; 74 e5
    83918431    mov si, ax                                ; 89 c6
    83928432    db  0feh, 0c9h
    83938433    ; dec cl                                    ; fe c9
    8394     jmp short 05e29h                          ; eb df
     8434    jmp short 05e93h                          ; eb df
    83958435    test cl, cl                               ; 84 c9
    8396     je short 05e60h                           ; 74 12
     8436    je short 05ecah                           ; 74 12
    83978437    mov byte [bp+013h], 000h                  ; c6 46 13 00
    83988438    mov dx, bx                                ; 89 da
     
    84028442    mov byte [bp+012h], al                    ; 88 46 12
    84038443    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    8404     jmp short 05e83h                          ; eb 23
     8444    jmp short 05eedh                          ; eb 23
    84058445    lea dx, [bx+005h]                         ; 8d 57 05
    84068446    in AL, DX                                 ; ec
    84078447    db  02ah, 0e4h
    84088448    ; sub ah, ah                                ; 2a e4
    8409     jmp short 05e19h                          ; eb b1
     8449    jmp short 05e83h                          ; eb b1
    84108450    lea dx, [si+005h]                         ; 8d 54 05
    84118451    in AL, DX                                 ; ec
     
    84178457    db  02ah, 0e4h
    84188458    ; sub ah, ah                                ; 2a e4
    8419     jmp short 05e57h                          ; eb de
     8459    jmp short 05ec1h                          ; eb de
    84208460    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8421     jmp short 05e83h                          ; eb 04
     8461    jmp short 05eedh                          ; eb 04
    84228462    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    84238463    lea sp, [bp-002h]                         ; 8d 66 fe
     
    84258465    pop bp                                    ; 5d
    84268466    retn                                      ; c3
    8427 set_enable_a20_:                             ; 0xf5e89 LB 0x2c
     8467set_enable_a20_:                             ; 0xf5ef3 LB 0x2c
    84288468    push bp                                   ; 55
    84298469    mov bp, sp                                ; 89 e5
     
    84388478    mov cl, al                                ; 88 c1
    84398479    test bx, bx                               ; 85 db
    8440     je short 05ea2h                           ; 74 05
     8480    je short 05f0ch                           ; 74 05
    84418481    or AL, strict byte 002h                   ; 0c 02
    84428482    out DX, AL                                ; ee
    8443     jmp short 05ea5h                          ; eb 03
     8483    jmp short 05f0fh                          ; eb 03
    84448484    and AL, strict byte 0fdh                  ; 24 fd
    84458485    out DX, AL                                ; ee
     
    84548494    pop bp                                    ; 5d
    84558495    retn                                      ; c3
    8456 set_e820_range_:                             ; 0xf5eb5 LB 0x8c
     8496set_e820_range_:                             ; 0xf5f1f LB 0x8c
    84578497    push si                                   ; 56
    84588498    push bp                                   ; 55
     
    84828522    pop si                                    ; 5e
    84838523    retn 0000ah                               ; c2 0a 00
    8484     in AL, DX                                 ; ec
    8485     jmp near 020e8h                           ; e9 d8 c1
    8486     sar byte [bx-06f6fh], 089h                ; c0 bf 91 90 89
    8487     mov byte [bx+05283h], al                  ; 88 87 83 52
    8488     dec di                                    ; 4f
    8489     inc cx                                    ; 41
    8490     and AL, strict byte 000h                  ; 24 00
    8491     loopne 05f82h                             ; e0 63
    8492     sbb byte [bx-06dh], 05fh                  ; 80 5f 93 5f
    8493     sub byte [bx+si+02eh], ah                 ; 28 60 2e
    8494     pushaw                                    ; 60
    8495     xor sp, word [bx+si+038h]                 ; 33 60 38
    8496     pushaw                                    ; 60
    8497     fisub dword [bx+si+077h]                  ; da 60 77
    8498     bound bx, [di+02162h]                     ; 62 9d 62 21
    8499     pushaw                                    ; 60
    8500     and word [bx+si+06ah], sp                 ; 21 60 6a
    8501     arpl word [bp+si-05a9dh], dx              ; 63 92 63 a5
    8502     arpl word [si+02863h], si                 ; 63 b4 63 28
    8503     pushaw                                    ; 60
    8504     db  0bbh
    8505     db  063h
    8506 _int15_function:                             ; 0xf5f41 LB 0x4cd
     8524    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
     8525    db  000h, 04ah, 064h, 0eah, 05fh, 0fdh, 05fh, 092h, 060h, 098h, 060h, 09dh, 060h, 0a2h, 060h, 044h
     8526    db  061h, 0e1h, 062h, 007h, 063h, 08bh, 060h, 08bh, 060h, 0d4h, 063h, 0fch, 063h, 00fh, 064h, 01eh
     8527    db  064h, 092h, 060h, 025h, 064h
     8528_int15_function:                             ; 0xf5fab LB 0x4cd
    85078529    push bp                                   ; 55
    85088530    mov bp, sp                                ; 89 e5
     
    85148536    shr ax, 008h                              ; c1 e8 08
    85158537    cmp ax, 000ech                            ; 3d ec 00
    8516     jnbe near 063e0h                          ; 0f 87 8b 04
     8538    jnbe near 0644ah                          ; 0f 87 8b 04
    85178539    push CS                                   ; 0e
    85188540    pop ES                                    ; 07
    85198541    mov cx, strict word 00012h                ; b9 12 00
    8520     mov di, 05f0ch                            ; bf 0c 5f
     8542    mov di, 05f76h                            ; bf 76 5f
    85218543    repne scasb                               ; f2 ae
    85228544    sal cx, 1                                 ; d1 e1
    85238545    mov di, cx                                ; 89 cf
    8524     mov si, word [cs:di+05f1dh]               ; 2e 8b b5 1d 5f
     8546    mov si, word [cs:di+05f87h]               ; 2e 8b b5 87 5f
    85258547    mov ax, word [bp+012h]                    ; 8b 46 12
    85268548    xor ah, ah                                ; 30 e4
     
    85358557    xor ah, ah                                ; 30 e4
    85368558    cmp ax, 000c0h                            ; 3d c0 00
    8537     jne near 063e0h                           ; 0f 85 54 04
     8559    jne near 0644ah                           ; 0f 85 54 04
    85388560    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8539     jmp near 06389h                           ; e9 f6 03
     8561    jmp near 063f3h                           ; e9 f6 03
    85408562    mov dx, ax                                ; 89 c2
    85418563    cmp ax, strict word 00001h                ; 3d 01 00
    8542     jc short 05fa8h                           ; 72 0e
    8543     jbe short 05fbch                          ; 76 20
     8564    jc short 06012h                           ; 72 0e
     8565    jbe short 06026h                          ; 76 20
    85448566    cmp ax, strict word 00003h                ; 3d 03 00
    8545     je short 05fe9h                           ; 74 48
     8567    je short 06053h                           ; 74 48
    85468568    cmp ax, strict word 00002h                ; 3d 02 00
    8547     je short 05fcch                           ; 74 26
    8548     jmp short 05ff6h                          ; eb 4e
     8569    je short 06036h                           ; 74 26
     8570    jmp short 06060h                          ; eb 4e
    85498571    test ax, ax                               ; 85 c0
    8550     jne short 05ff6h                          ; 75 4a
     8572    jne short 06060h                          ; 75 4a
    85518573    xor ax, ax                                ; 31 c0
    8552     call 05e89h                               ; e8 d8 fe
     8574    call 05ef3h                               ; e8 d8 fe
    85538575    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85548576    mov byte [bp+013h], 000h                  ; c6 46 13 00
    8555     jmp near 06021h                           ; e9 65 00
     8577    jmp near 0608bh                           ; e9 65 00
    85568578    mov ax, strict word 00001h                ; b8 01 00
    8557     call 05e89h                               ; e8 c7 fe
     8579    call 05ef3h                               ; e8 c7 fe
    85588580    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85598581    mov byte [bp+013h], dh                    ; 88 76 13
    8560     jmp near 06021h                           ; e9 55 00
     8582    jmp near 0608bh                           ; e9 55 00
    85618583    mov dx, 00092h                            ; ba 92 00
    85628584    in AL, DX                                 ; ec
     
    85708592    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85718593    mov byte [bp+013h], ah                    ; 88 66 13
    8572     jmp near 06021h                           ; e9 38 00
     8594    jmp near 0608bh                           ; e9 38 00
    85738595    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    85748596    mov byte [bp+013h], ah                    ; 88 66 13
    85758597    mov word [bp+00ch], ax                    ; 89 46 0c
    8576     jmp near 06021h                           ; e9 2b 00
    8577     mov bx, 00d8ah                            ; bb 8a 0d
     8598    jmp near 0608bh                           ; e9 2b 00
     8599    mov bx, 00da2h                            ; bb a2 0d
    85788600    mov cx, ds                                ; 8c d9
    85798601    mov ax, strict word 00004h                ; b8 04 00
    8580     call 01931h                               ; e8 30 b9
     8602    call 01931h                               ; e8 c6 b8
    85818603    mov ax, word [bp+012h]                    ; 8b 46 12
    85828604    xor ah, ah                                ; 30 e4
     
    85848606    push 00836h                               ; 68 36 08
    85858607    push strict byte 00004h                   ; 6a 04
    8586     call 01972h                               ; e8 63 b9
     8608    call 01972h                               ; e8 f9 b8
    85878609    add sp, strict byte 00006h                ; 83 c4 06
    85888610    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    85978619    retn                                      ; c3
    85988620    mov word [bp+018h], bx                    ; 89 5e 18
    8599     jmp near 060d4h                           ; e9 a6 00
     8621    jmp near 0613eh                           ; e9 a6 00
    86008622    mov word [bp+018h], bx                    ; 89 5e 18
    8601     jmp short 06021h                          ; eb ee
     8623    jmp short 0608bh                          ; eb ee
    86028624    mov word [bp+018h], cx                    ; 89 4e 18
    8603     jmp short 0601eh                          ; eb e6
     8625    jmp short 06088h                          ; eb e6
    86048626    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8605     je short 060aah                           ; 74 6c
     8627    je short 06114h                           ; 74 6c
    86068628    mov dx, 000a0h                            ; ba a0 00
    86078629    mov ax, strict word 00040h                ; b8 40 00
    8608     call 01650h                               ; e8 09 b6
     8630    call 01650h                               ; e8 9f b5
    86098631    test AL, strict byte 001h                 ; a8 01
    8610     jne near 06380h                           ; 0f 85 33 03
     8632    jne near 063eah                           ; 0f 85 33 03
    86118633    mov bx, strict word 00001h                ; bb 01 00
    86128634    mov dx, 000a0h                            ; ba a0 00
    86138635    mov ax, strict word 00040h                ; b8 40 00
    8614     call 0165eh                               ; e8 05 b6
     8636    call 0165eh                               ; e8 9b b5
    86158637    mov bx, word [bp+014h]                    ; 8b 5e 14
    86168638    mov dx, 00098h                            ; ba 98 00
    86178639    mov ax, strict word 00040h                ; b8 40 00
    8618     call 0167ah                               ; e8 15 b6
     8640    call 0167ah                               ; e8 ab b5
    86198641    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    86208642    mov dx, 0009ah                            ; ba 9a 00
    86218643    mov ax, strict word 00040h                ; b8 40 00
    8622     call 0167ah                               ; e8 09 b6
     8644    call 0167ah                               ; e8 9f b5
    86238645    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    86248646    mov dx, 0009ch                            ; ba 9c 00
    86258647    mov ax, strict word 00040h                ; b8 40 00
    8626     call 0167ah                               ; e8 fd b5
     8648    call 0167ah                               ; e8 93 b5
    86278649    mov bx, word [bp+010h]                    ; 8b 5e 10
    86288650    mov dx, 0009eh                            ; ba 9e 00
    86298651    mov ax, strict word 00040h                ; b8 40 00
    8630     call 0167ah                               ; e8 f1 b5
     8652    call 0167ah                               ; e8 87 b5
    86318653    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    86328654    mov dx, 000a1h                            ; ba a1 00
     
    86378659    out DX, AL                                ; ee
    86388660    mov ax, strict word 0000bh                ; b8 0b 00
    8639     call 016ach                               ; e8 10 b6
     8661    call 016ach                               ; e8 a6 b5
    86408662    or AL, strict byte 040h                   ; 0c 40
    86418663    movzx dx, al                              ; 0f b6 d0
    86428664    mov ax, strict word 0000bh                ; b8 0b 00
    8643     call 016c9h                               ; e8 22 b6
    8644     jmp near 06021h                           ; e9 77 ff
     8665    call 016c9h                               ; e8 b8 b5
     8666    jmp near 0608bh                           ; e9 77 ff
    86458667    cmp ax, strict word 00001h                ; 3d 01 00
    8646     jne short 060c8h                          ; 75 19
     8668    jne short 06132h                          ; 75 19
    86478669    xor bx, bx                                ; 31 db
    86488670    mov dx, 000a0h                            ; ba a0 00
    86498671    mov ax, strict word 00040h                ; b8 40 00
    8650     call 0165eh                               ; e8 a4 b5
     8672    call 0165eh                               ; e8 3a b5
    86518673    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    86528674    mov ax, strict word 0000bh                ; b8 0b 00
    8653     call 016ach                               ; e8 e8 b5
     8675    call 016ach                               ; e8 7e b5
    86548676    and AL, strict byte 0bfh                  ; 24 bf
    8655     jmp short 0609eh                          ; eb d6
     8677    jmp short 06108h                          ; eb d6
    86568678    mov word [bp+018h], bx                    ; 89 5e 18
    86578679    mov ax, dx                                ; 89 d0
     
    86618683    or dx, ax                                 ; 09 c2
    86628684    mov word [bp+012h], dx                    ; 89 56 12
    8663     jmp near 06021h                           ; e9 47 ff
     8685    jmp near 0608bh                           ; e9 47 ff
    86648686    cli                                       ; fa
    86658687    mov ax, strict word 00001h                ; b8 01 00
    8666     call 05e89h                               ; e8 a8 fd
     8688    call 05ef3h                               ; e8 a8 fd
    86678689    mov di, ax                                ; 89 c7
    86688690    mov ax, word [bp+014h]                    ; 8b 46 14
     
    86748696    mov byte [bp-006h], dl                    ; 88 56 fa
    86758697    cmp cx, ax                                ; 39 c1
    8676     jnc short 06100h                          ; 73 05
     8698    jnc short 0616ah                          ; 73 05
    86778699    db  0feh, 0c2h
    86788700    ; inc dl                                    ; fe c2
     
    86828704    mov ax, word [bp+014h]                    ; 8b 46 14
    86838705    mov bx, strict word 0002fh                ; bb 2f 00
    8684     call 0167ah                               ; e8 6b b5
     8706    call 0167ah                               ; e8 01 b5
    86858707    mov dx, word [bp+006h]                    ; 8b 56 06
    86868708    add dx, strict byte 0000ah                ; 83 c2 0a
    86878709    mov ax, word [bp+014h]                    ; 8b 46 14
    86888710    mov bx, cx                                ; 89 cb
    8689     call 0167ah                               ; e8 5d b5
     8711    call 0167ah                               ; e8 f3 b4
    86908712    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    86918713    mov dx, word [bp+006h]                    ; 8b 56 06
    86928714    add dx, strict byte 0000ch                ; 83 c2 0c
    86938715    mov ax, word [bp+014h]                    ; 8b 46 14
    8694     call 0165eh                               ; e8 31 b5
     8716    call 0165eh                               ; e8 c7 b4
    86958717    mov dx, word [bp+006h]                    ; 8b 56 06
    86968718    add dx, strict byte 0000dh                ; 83 c2 0d
    86978719    mov ax, word [bp+014h]                    ; 8b 46 14
    86988720    mov bx, 00093h                            ; bb 93 00
    8699     call 0165eh                               ; e8 22 b5
     8721    call 0165eh                               ; e8 b8 b4
    87008722    mov dx, word [bp+006h]                    ; 8b 56 06
    87018723    add dx, strict byte 0000eh                ; 83 c2 0e
    87028724    mov ax, word [bp+014h]                    ; 8b 46 14
    87038725    xor bx, bx                                ; 31 db
    8704     call 0167ah                               ; e8 30 b5
     8726    call 0167ah                               ; e8 c6 b4
    87058727    mov dx, word [bp+006h]                    ; 8b 56 06
    87068728    add dx, strict byte 00020h                ; 83 c2 20
    87078729    mov ax, word [bp+014h]                    ; 8b 46 14
    87088730    mov bx, strict word 0ffffh                ; bb ff ff
    8709     call 0167ah                               ; e8 21 b5
     8731    call 0167ah                               ; e8 b7 b4
    87108732    mov dx, word [bp+006h]                    ; 8b 56 06
    87118733    add dx, strict byte 00022h                ; 83 c2 22
    87128734    mov ax, word [bp+014h]                    ; 8b 46 14
    87138735    xor bx, bx                                ; 31 db
    8714     call 0167ah                               ; e8 13 b5
     8736    call 0167ah                               ; e8 a9 b4
    87158737    mov dx, word [bp+006h]                    ; 8b 56 06
    87168738    add dx, strict byte 00024h                ; 83 c2 24
    87178739    mov ax, word [bp+014h]                    ; 8b 46 14
    87188740    mov bx, strict word 0000fh                ; bb 0f 00
    8719     call 0165eh                               ; e8 e8 b4
     8741    call 0165eh                               ; e8 7e b4
    87208742    mov dx, word [bp+006h]                    ; 8b 56 06
    87218743    add dx, strict byte 00025h                ; 83 c2 25
    87228744    mov ax, word [bp+014h]                    ; 8b 46 14
    87238745    mov bx, 0009bh                            ; bb 9b 00
    8724     call 0165eh                               ; e8 d9 b4
     8746    call 0165eh                               ; e8 6f b4
    87258747    mov dx, word [bp+006h]                    ; 8b 56 06
    87268748    add dx, strict byte 00026h                ; 83 c2 26
    87278749    mov ax, word [bp+014h]                    ; 8b 46 14
    87288750    xor bx, bx                                ; 31 db
    8729     call 0167ah                               ; e8 e7 b4
     8751    call 0167ah                               ; e8 7d b4
    87308752    mov ax, ss                                ; 8c d0
    87318753    mov cx, ax                                ; 89 c1
     
    87378759    mov ax, word [bp+014h]                    ; 8b 46 14
    87388760    mov bx, strict word 0ffffh                ; bb ff ff
    8739     call 0167ah                               ; e8 cb b4
     8761    call 0167ah                               ; e8 61 b4
    87408762    mov dx, word [bp+006h]                    ; 8b 56 06
    87418763    add dx, strict byte 0002ah                ; 83 c2 2a
    87428764    mov ax, word [bp+014h]                    ; 8b 46 14
    87438765    mov bx, cx                                ; 89 cb
    8744     call 0167ah                               ; e8 bd b4
     8766    call 0167ah                               ; e8 53 b4
    87458767    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    87468768    mov dx, word [bp+006h]                    ; 8b 56 06
    87478769    add dx, strict byte 0002ch                ; 83 c2 2c
    87488770    mov ax, word [bp+014h]                    ; 8b 46 14
    8749     call 0165eh                               ; e8 91 b4
     8771    call 0165eh                               ; e8 27 b4
    87508772    mov dx, word [bp+006h]                    ; 8b 56 06
    87518773    add dx, strict byte 0002dh                ; 83 c2 2d
    87528774    mov ax, word [bp+014h]                    ; 8b 46 14
    87538775    mov bx, 00093h                            ; bb 93 00
    8754     call 0165eh                               ; e8 82 b4
     8776    call 0165eh                               ; e8 18 b4
    87558777    mov dx, word [bp+006h]                    ; 8b 56 06
    87568778    add dx, strict byte 0002eh                ; 83 c2 2e
    87578779    mov ax, word [bp+014h]                    ; 8b 46 14
    87588780    xor bx, bx                                ; 31 db
    8759     call 0167ah                               ; e8 90 b4
     8781    call 0167ah                               ; e8 26 b4
    87608782    mov si, word [bp+006h]                    ; 8b 76 06
    87618783    mov es, [bp+014h]                         ; 8e 46 14
     
    87688790    mov word [00467h], sp                     ; 89 26 67 04
    87698791    mov [00469h], ss                          ; 8c 16 69 04
    8770     call 06206h                               ; e8 00 00
     8792    call 06270h                               ; e8 00 00
    87718793    pop di                                    ; 5f
    87728794    add di, strict byte 0001bh                ; 83 c7 1b
     
    87918813    cld                                       ; fc
    87928814    rep movsw                                 ; f3 a5
    8793     call 0623ah                               ; e8 00 00
     8815    call 062a4h                               ; e8 00 00
    87948816    pop ax                                    ; 58
    87958817    push 0f000h                               ; 68 00 f0
     
    88128834    pop DS                                    ; 1f
    88138835    mov ax, di                                ; 89 f8
    8814     call 05e89h                               ; e8 1e fc
     8836    call 05ef3h                               ; e8 1e fc
    88158837    sti                                       ; fb
    88168838    mov byte [bp+013h], 000h                  ; c6 46 13 00
    88178839    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    8818     jmp near 06021h                           ; e9 aa fd
     8840    jmp near 0608bh                           ; e9 aa fd
    88198841    mov ax, strict word 00031h                ; b8 31 00
    8820     call 016ach                               ; e8 2f b4
     8842    call 016ach                               ; e8 c5 b3
    88218843    xor ah, ah                                ; 30 e4
    88228844    mov dx, ax                                ; 89 c2
    88238845    sal dx, 008h                              ; c1 e2 08
    88248846    mov ax, strict word 00030h                ; b8 30 00
    8825     call 016ach                               ; e8 22 b4
     8847    call 016ach                               ; e8 b8 b3
    88268848    xor ah, ah                                ; 30 e4
    88278849    or dx, ax                                 ; 09 c2
    88288850    mov word [bp+012h], dx                    ; 89 56 12
    88298851    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    8830     jbe short 06270h                          ; 76 da
     8852    jbe short 062dah                          ; 76 da
    88318853    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    8832     jmp short 06270h                          ; eb d3
     8854    jmp short 062dah                          ; eb d3
    88338855    cli                                       ; fa
    88348856    mov ax, strict word 00001h                ; b8 01 00
    8835     call 05e89h                               ; e8 e5 fb
     8857    call 05ef3h                               ; e8 e5 fb
    88368858    mov dx, word [bp+006h]                    ; 8b 56 06
    88378859    add dx, strict byte 00038h                ; 83 c2 38
    88388860    mov ax, word [bp+014h]                    ; 8b 46 14
    88398861    mov bx, strict word 0ffffh                ; bb ff ff
    8840     call 0167ah                               ; e8 c7 b3
     8862    call 0167ah                               ; e8 5d b3
    88418863    mov dx, word [bp+006h]                    ; 8b 56 06
    88428864    add dx, strict byte 0003ah                ; 83 c2 3a
    88438865    mov ax, word [bp+014h]                    ; 8b 46 14
    88448866    xor bx, bx                                ; 31 db
    8845     call 0167ah                               ; e8 b9 b3
     8867    call 0167ah                               ; e8 4f b3
    88468868    mov dx, word [bp+006h]                    ; 8b 56 06
    88478869    add dx, strict byte 0003ch                ; 83 c2 3c
    88488870    mov ax, word [bp+014h]                    ; 8b 46 14
    88498871    mov bx, strict word 0000fh                ; bb 0f 00
    8850     call 0165eh                               ; e8 8e b3
     8872    call 0165eh                               ; e8 24 b3
    88518873    mov dx, word [bp+006h]                    ; 8b 56 06
    88528874    add dx, strict byte 0003dh                ; 83 c2 3d
    88538875    mov ax, word [bp+014h]                    ; 8b 46 14
    88548876    mov bx, 0009bh                            ; bb 9b 00
    8855     call 0165eh                               ; e8 7f b3
     8877    call 0165eh                               ; e8 15 b3
    88568878    mov dx, word [bp+006h]                    ; 8b 56 06
    88578879    add dx, strict byte 0003eh                ; 83 c2 3e
    88588880    mov ax, word [bp+014h]                    ; 8b 46 14
    88598881    xor bx, bx                                ; 31 db
    8860     call 0167ah                               ; e8 8d b3
     8882    call 0167ah                               ; e8 23 b3
    88618883    mov AL, strict byte 011h                  ; b0 11
    88628884    mov dx, strict word 00020h                ; ba 20 00
     
    88888910    out DX, AL                                ; ee
    88898911    mov si, word [bp+006h]                    ; 8b 76 06
    8890     call 0632eh                               ; e8 00 00
     8912    call 06398h                               ; e8 00 00
    88918913    pop di                                    ; 5f
    88928914    add di, strict byte 00018h                ; 83 c7 18
     
    89168938    push cx                                   ; 51
    89178939    retf                                      ; cb
    8918     jmp near 06021h                           ; e9 b7 fc
    8919     mov bx, 00d8ah                            ; bb 8a 0d
     8940    jmp near 0608bh                           ; e9 b7 fc
     8941    mov bx, 00da2h                            ; bb a2 0d
    89208942    mov cx, ds                                ; 8c d9
    89218943    mov ax, strict word 00004h                ; b8 04 00
    8922     call 01931h                               ; e8 bc b5
     8944    call 01931h                               ; e8 52 b5
    89238945    push 00876h                               ; 68 76 08
    89248946    push strict byte 00004h                   ; 6a 04
    8925     call 01972h                               ; e8 f5 b5
     8947    call 01972h                               ; e8 8b b5
    89268948    add sp, strict byte 00004h                ; 83 c4 04
    89278949    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    89308952    or ah, 086h                               ; 80 cc 86
    89318953    mov word [bp+012h], ax                    ; 89 46 12
    8932     jmp near 06021h                           ; e9 8f fc
     8954    jmp near 0608bh                           ; e9 8f fc
    89338955    mov word [bp+018h], cx                    ; 89 4e 18
    89348956    mov word [bp+012h], ax                    ; 89 46 12
    89358957    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    89368958    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    8937     jmp near 06021h                           ; e9 7c fc
     8959    jmp near 0608bh                           ; e9 7c fc
    89388960    mov dx, strict word 0000eh                ; ba 0e 00
    89398961    mov ax, strict word 00040h                ; b8 40 00
    8940     call 0166ch                               ; e8 be b2
     8962    call 0166ch                               ; e8 54 b2
    89418963    mov word [bp+014h], ax                    ; 89 46 14
    8942     jmp near 06270h                           ; e9 bc fe
     8964    jmp near 062dah                           ; e9 bc fe
    89438965    push 008a5h                               ; 68 a5 08
    89448966    push strict byte 00008h                   ; 6a 08
    8945     jmp short 0637ah                          ; eb bf
     8967    jmp short 063e4h                          ; eb bf
    89468968    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    8947     jne short 063e0h                          ; 75 1f
     8969    jne short 0644ah                          ; 75 1f
    89488970    mov word [bp+012h], ax                    ; 89 46 12
    89498971    mov ax, word [bp+00ch]                    ; 8b 46 0c
    89508972    xor ah, ah                                ; 30 e4
    89518973    cmp ax, strict word 00001h                ; 3d 01 00
    8952     jc short 063d9h                           ; 72 0b
     8974    jc short 06443h                           ; 72 0b
    89538975    cmp ax, strict word 00003h                ; 3d 03 00
    8954     jnbe short 063d9h                         ; 77 06
     8976    jnbe short 06443h                         ; 77 06
    89558977    mov word [bp+018h], cx                    ; 89 4e 18
    8956     jmp near 06021h                           ; e9 48 fc
     8978    jmp near 0608bh                           ; e9 48 fc
    89578979    or byte [bp+018h], 001h                   ; 80 4e 18 01
    8958     jmp near 06021h                           ; e9 41 fc
    8959     mov bx, 00d8ah                            ; bb 8a 0d
     8980    jmp near 0608bh                           ; e9 41 fc
     8981    mov bx, 00da2h                            ; bb a2 0d
    89608982    mov cx, ds                                ; 8c d9
    89618983    mov ax, strict word 00004h                ; b8 04 00
    8962     call 01931h                               ; e8 46 b5
     8984    call 01931h                               ; e8 dc b4
    89638985    push word [bp+00ch]                       ; ff 76 0c
    89648986    push word [bp+012h]                       ; ff 76 12
    89658987    push 008bch                               ; 68 bc 08
    89668988    push strict byte 00004h                   ; 6a 04
    8967     call 01972h                               ; e8 79 b5
     8989    call 01972h                               ; e8 0f b5
    89688990    add sp, strict byte 00008h                ; 83 c4 08
    8969     jmp short 06380h                          ; eb 82
    8970     mov BH, strict byte 065h                  ; b7 65
    8971     fldenv [di-004h]                          ; d9 65 fc
    8972     db  065h, 01eh
    8973     ; gs push DS                                ; 65 1e
    8974     db  066h, 03eh, 066h, 05fh
    8975     ; ds pop edi                                ; 66 3e 66 5f
    8976     db  066h, 09eh, 066h, 0cah, 066h
    8977 _int15_function32:                           ; 0xf640e LB 0x37e
     8991    jmp short 063eah                          ; eb 82
     8992    db  021h, 066h, 043h, 066h, 066h, 066h, 088h, 066h, 0a8h, 066h, 0c9h, 066h, 008h, 067h, 034h, 067h
     8993_int15_function32:                           ; 0xf6478 LB 0x37e
    89788994    push bp                                   ; 55
    89798995    mov bp, sp                                ; 89 e5
     
    89879003    xor ah, ah                                ; 30 e4
    89889004    cmp dx, 000e8h                            ; 81 fa e8 00
    8989     je near 064dbh                            ; 0f 84 ad 00
     9005    je near 06545h                            ; 0f 84 ad 00
    89909006    cmp dx, 000d0h                            ; 81 fa d0 00
    8991     je short 06476h                           ; 74 42
     9007    je short 064e0h                           ; 74 42
    89929008    cmp dx, 00086h                            ; 81 fa 86 00
    8993     jne near 0675ch                           ; 0f 85 20 03
     9009    jne near 067c6h                           ; 0f 85 20 03
    89949010    sti                                       ; fb
    89959011    mov ax, word [bp+01ch]                    ; 8b 46 1c
     
    90109026    db  066h, 00bh, 0c9h
    90119027    ; or ecx, ecx                               ; 66 0b c9
    9012     je near 06473h                            ; 0f 84 0e 00
     9028    je near 064ddh                            ; 0f 84 0e 00
    90139029    in AL, strict byte 061h                   ; e4 61
    90149030    and AL, strict byte 010h                  ; 24 10
    90159031    db  03ah, 0c4h
    90169032    ; cmp al, ah                                ; 3a c4
    9017     je short 06465h                           ; 74 f8
     9033    je short 064cfh                           ; 74 f8
    90189034    db  08ah, 0e0h
    90199035    ; mov ah, al                                ; 8a e0
    90209036    dec ecx                                   ; 66 49
    9021     jne short 06465h                          ; 75 f2
    9022     jmp near 06786h                           ; e9 10 03
     9037    jne short 064cfh                          ; 75 f2
     9038    jmp near 067f0h                           ; e9 10 03
    90239039    cmp ax, strict word 0004fh                ; 3d 4f 00
    9024     jne near 0675ch                           ; 0f 85 df 02
     9040    jne near 067c6h                           ; 0f 85 df 02
    90259041    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9026     jne near 0675ch                           ; 0f 85 d6 02
     9042    jne near 067c6h                           ; 0f 85 d6 02
    90279043    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9028     jne near 0675ch                           ; 0f 85 cd 02
     9044    jne near 067c6h                           ; 0f 85 cd 02
    90299045    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9030     jne near 0675ch                           ; 0f 85 c4 02
     9046    jne near 067c6h                           ; 0f 85 c4 02
    90319047    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9032     jne near 0675ch                           ; 0f 85 bb 02
     9048    jne near 067c6h                           ; 0f 85 bb 02
    90339049    mov ax, word [bp+00ah]                    ; 8b 46 0a
    90349050    or ax, word [bp+008h]                     ; 0b 46 08
    9035     jne near 0675ch                           ; 0f 85 b1 02
     9051    jne near 067c6h                           ; 0f 85 b1 02
    90369052    mov ax, word [bp+006h]                    ; 8b 46 06
    90379053    or ax, word [bp+004h]                     ; 0b 46 04
    9038     jne near 0675ch                           ; 0f 85 a7 02
     9054    jne near 067c6h                           ; 0f 85 a7 02
    90399055    mov word [bp+028h], bx                    ; 89 5e 28
    90409056    mov ax, word [bp+014h]                    ; 8b 46 14
     
    90479063    mov word [bp+006h], ax                    ; 89 46 06
    90489064    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9049     jmp near 06786h                           ; e9 ab 02
     9065    jmp near 067f0h                           ; e9 ab 02
    90509066    cmp ax, strict word 00020h                ; 3d 20 00
    9051     je short 064eah                           ; 74 0a
     9067    je short 06554h                           ; 74 0a
    90529068    cmp ax, strict word 00001h                ; 3d 01 00
    9053     je near 06711h                            ; 0f 84 2a 02
    9054     jmp near 0675ch                           ; e9 72 02
     9069    je near 0677bh                            ; 0f 84 2a 02
     9070    jmp near 067c6h                           ; e9 72 02
    90559071    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9056     jne near 0675ch                           ; 0f 85 69 02
     9072    jne near 067c6h                           ; 0f 85 69 02
    90579073    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9058     jne near 0675ch                           ; 0f 85 60 02
     9074    jne near 067c6h                           ; 0f 85 60 02
    90599075    mov ax, strict word 00035h                ; b8 35 00
    9060     call 016ach                               ; e8 aa b1
     9076    call 016ach                               ; e8 40 b1
    90619077    movzx bx, al                              ; 0f b6 d8
    90629078    xor dx, dx                                ; 31 d2
     
    90649080    sal bx, 1                                 ; d1 e3
    90659081    rcl dx, 1                                 ; d1 d2
    9066     loop 0650ah                               ; e2 fa
     9082    loop 06574h                               ; e2 fa
    90679083    mov ax, strict word 00034h                ; b8 34 00
    9068     call 016ach                               ; e8 96 b1
     9084    call 016ach                               ; e8 2c b1
    90699085    xor ah, ah                                ; 30 e4
    90709086    mov dx, bx                                ; 89 da
     
    90749090    adc dx, 00100h                            ; 81 d2 00 01
    90759091    cmp dx, 00100h                            ; 81 fa 00 01
    9076     jc short 06530h                           ; 72 06
    9077     jne short 0655dh                          ; 75 31
     9092    jc short 0659ah                           ; 72 06
     9093    jne short 065c7h                          ; 75 31
    90789094    test bx, bx                               ; 85 db
    9079     jnbe short 0655dh                         ; 77 2d
     9095    jnbe short 065c7h                         ; 77 2d
    90809096    mov ax, strict word 00031h                ; b8 31 00
    9081     call 016ach                               ; e8 76 b1
     9097    call 016ach                               ; e8 0c b1
    90829098    movzx bx, al                              ; 0f b6 d8
    90839099    xor dx, dx                                ; 31 d2
     
    90859101    sal bx, 1                                 ; d1 e3
    90869102    rcl dx, 1                                 ; d1 d2
    9087     loop 0653eh                               ; e2 fa
     9103    loop 065a8h                               ; e2 fa
    90889104    mov ax, strict word 00030h                ; b8 30 00
    9089     call 016ach                               ; e8 62 b1
     9105    call 016ach                               ; e8 f8 b0
    90909106    xor ah, ah                                ; 30 e4
    90919107    or bx, ax                                 ; 09 c3
     
    90939109    sal bx, 1                                 ; d1 e3
    90949110    rcl dx, 1                                 ; d1 d2
    9095     loop 06551h                               ; e2 fa
     9111    loop 065bbh                               ; e2 fa
    90969112    add bx, strict byte 00000h                ; 83 c3 00
    90979113    adc dx, strict byte 00010h                ; 83 d2 10
    90989114    mov ax, strict word 00062h                ; b8 62 00
    9099     call 016ach                               ; e8 49 b1
     9115    call 016ach                               ; e8 df b0
    91009116    xor ah, ah                                ; 30 e4
    91019117    mov word [bp-00ah], ax                    ; 89 46 f6
     
    91059121    sal word [bp-00ah], 1                     ; d1 66 f6
    91069122    rcl word [bp-008h], 1                     ; d1 56 f8
    9107     loop 06570h                               ; e2 f8
     9123    loop 065dah                               ; e2 f8
    91089124    mov ax, strict word 00061h                ; b8 61 00
    9109     call 016ach                               ; e8 2e b1
     9125    call 016ach                               ; e8 c4 b0
    91109126    xor ah, ah                                ; 30 e4
    91119127    or word [bp-00ah], ax                     ; 09 46 f6
     
    91149130    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    91159131    mov ax, strict word 00063h                ; b8 63 00
    9116     call 016ach                               ; e8 18 b1
     9132    call 016ach                               ; e8 ae b0
    91179133    mov byte [bp-004h], al                    ; 88 46 fc
    91189134    mov byte [bp-006h], al                    ; 88 46 fa
    91199135    mov ax, word [bp+014h]                    ; 8b 46 14
    91209136    cmp ax, strict word 00007h                ; 3d 07 00
    9121     jnbe near 0675ch                          ; 0f 87 b8 01
     9137    jnbe near 067c6h                          ; 0f 87 b8 01
    91229138    mov si, ax                                ; 89 c6
    91239139    add si, ax                                ; 01 c6
     
    91269142    mov ax, dx                                ; 89 d0
    91279143    adc ax, strict word 0ffffh                ; 15 ff ff
    9128     jmp word [cs:si+063feh]                   ; 2e ff a4 fe 63
     9144    jmp word [cs:si+06468h]                   ; 2e ff a4 68 64
    91299145    push strict byte 00001h                   ; 6a 01
    91309146    push dword 000000000h                     ; 66 6a 00
     
    91359151    xor bx, bx                                ; 31 db
    91369152    xor cx, cx                                ; 31 c9
    9137     call 05eb5h                               ; e8 e7 f8
     9153    call 05f1fh                               ; e8 e7 f8
    91389154    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9139     jmp near 066fbh                           ; e9 22 01
     9155    jmp near 06765h                           ; e9 22 01
    91409156    push strict byte 00002h                   ; 6a 02
    91419157    push dword 000000000h                     ; 66 6a 00
     
    91469162    mov bx, 0fc00h                            ; bb 00 fc
    91479163    mov cx, strict word 00009h                ; b9 09 00
    9148     call 05eb5h                               ; e8 c4 f8
     9164    call 05f1fh                               ; e8 c4 f8
    91499165    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9150     jmp near 066fbh                           ; e9 ff 00
     9166    jmp near 06765h                           ; e9 ff 00
    91519167    push strict byte 00002h                   ; 6a 02
    91529168    push dword 000000000h                     ; 66 6a 00
     
    91579173    xor bx, bx                                ; 31 db
    91589174    mov cx, strict word 0000fh                ; b9 0f 00
    9159     call 05eb5h                               ; e8 a2 f8
     9175    call 05f1fh                               ; e8 a2 f8
    91609176    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9161     jmp near 066fbh                           ; e9 dd 00
     9177    jmp near 06765h                           ; e9 dd 00
    91629178    push strict byte 00001h                   ; 6a 01
    91639179    push dword 000000000h                     ; 66 6a 00
     
    91689184    xor bx, bx                                ; 31 db
    91699185    mov cx, strict word 00010h                ; b9 10 00
    9170     call 05eb5h                               ; e8 82 f8
     9186    call 05f1fh                               ; e8 82 f8
    91719187    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9172     jmp near 066fbh                           ; e9 bd 00
     9188    jmp near 06765h                           ; e9 bd 00
    91739189    push strict byte 00003h                   ; 6a 03
    91749190    push dword 000000000h                     ; 66 6a 00
     
    91809196    mov cx, ax                                ; 89 c1
    91819197    mov ax, si                                ; 89 f0
    9182     call 05eb5h                               ; e8 61 f8
     9198    call 05f1fh                               ; e8 61 f8
    91839199    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9184     jmp near 066fbh                           ; e9 9c 00
     9200    jmp near 06765h                           ; e9 9c 00
    91859201    push strict byte 00002h                   ; 6a 02
    91869202    push dword 000000000h                     ; 66 6a 00
     
    91909206    xor bx, bx                                ; 31 db
    91919207    mov cx, strict word 0fffch                ; b9 fc ff
    9192     call 05eb5h                               ; e8 40 f8
     9208    call 05f1fh                               ; e8 40 f8
    91939209    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9194     jne short 06682h                          ; 75 07
     9210    jne short 066ech                          ; 75 07
    91959211    mov ax, word [bp-008h]                    ; 8b 46 f8
    91969212    test ax, ax                               ; 85 c0
    9197     je short 06696h                           ; 74 14
     9213    je short 06700h                           ; 74 14
    91989214    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9199     jmp short 066fbh                          ; eb 6f
     9215    jmp short 06765h                          ; eb 6f
    92009216    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9201     jmp short 066fbh                          ; eb 65
     9217    jmp short 06765h                          ; eb 65
    92029218    mov word [bp+014h], ax                    ; 89 46 14
    92039219    mov word [bp+016h], ax                    ; 89 46 16
    9204     jmp short 066fbh                          ; eb 5d
     9220    jmp short 06765h                          ; eb 5d
    92059221    push strict byte 00002h                   ; 6a 02
    92069222    push dword 000000000h                     ; 66 6a 00
     
    92109226    xor bx, bx                                ; 31 db
    92119227    xor cx, cx                                ; 31 c9
    9212     call 05eb5h                               ; e8 02 f8
     9228    call 05f1fh                               ; e8 02 f8
    92139229    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9214     jne short 066c0h                          ; 75 07
     9230    jne short 0672ah                          ; 75 07
    92159231    mov ax, word [bp-008h]                    ; 8b 46 f8
    92169232    test ax, ax                               ; 85 c0
    9217     je short 066c2h                           ; 74 02
    9218     jmp short 06682h                          ; eb c0
     9233    je short 0672ch                           ; 74 02
     9234    jmp short 066ech                          ; eb c0
    92199235    mov word [bp+014h], ax                    ; 89 46 14
    92209236    mov word [bp+016h], ax                    ; 89 46 16
    9221     jmp short 066fbh                          ; eb 31
     9237    jmp short 06765h                          ; eb 31
    92229238    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9223     jne short 066d6h                          ; 75 06
     9239    jne short 06740h                          ; 75 06
    92249240    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9225     je short 066fbh                           ; 74 25
     9241    je short 06765h                           ; 74 25
    92269242    push strict byte 00001h                   ; 6a 01
    92279243    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    92369252    xor bx, bx                                ; 31 db
    92379253    xor cx, cx                                ; 31 c9
    9238     call 05eb5h                               ; e8 c2 f7
     9254    call 05f1fh                               ; e8 c2 f7
    92399255    xor ax, ax                                ; 31 c0
    92409256    mov word [bp+014h], ax                    ; 89 46 14
     
    92439259    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    92449260    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9245     jmp short 06786h                          ; eb 75
     9261    jmp short 067f0h                          ; eb 75
    92469262    mov word [bp+028h], bx                    ; 89 5e 28
    92479263    mov ax, strict word 00031h                ; b8 31 00
    9248     call 016ach                               ; e8 92 af
     9264    call 016ach                               ; e8 28 af
    92499265    movzx dx, al                              ; 0f b6 d0
    92509266    sal dx, 008h                              ; c1 e2 08
    92519267    mov ax, strict word 00030h                ; b8 30 00
    9252     call 016ach                               ; e8 86 af
     9268    call 016ach                               ; e8 1c af
    92539269    xor ah, ah                                ; 30 e4
    92549270    or dx, ax                                 ; 09 c2
    92559271    mov word [bp+01ch], dx                    ; 89 56 1c
    92569272    cmp dx, 03c00h                            ; 81 fa 00 3c
    9257     jbe short 06738h                          ; 76 05
     9273    jbe short 067a2h                          ; 76 05
    92589274    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    92599275    mov ax, strict word 00035h                ; b8 35 00
    9260     call 016ach                               ; e8 6e af
     9276    call 016ach                               ; e8 04 af
    92619277    movzx dx, al                              ; 0f b6 d0
    92629278    sal dx, 008h                              ; c1 e2 08
    92639279    mov ax, strict word 00034h                ; b8 34 00
    9264     call 016ach                               ; e8 62 af
     9280    call 016ach                               ; e8 f8 ae
    92659281    xor ah, ah                                ; 30 e4
    92669282    or dx, ax                                 ; 09 c2
     
    92699285    mov word [bp+020h], ax                    ; 89 46 20
    92709286    mov word [bp+014h], dx                    ; 89 56 14
    9271     jmp short 06786h                          ; eb 2a
    9272     mov bx, 00d8ah                            ; bb 8a 0d
     9287    jmp short 067f0h                          ; eb 2a
     9288    mov bx, 00da2h                            ; bb a2 0d
    92739289    mov cx, ds                                ; 8c d9
    92749290    mov ax, strict word 00004h                ; b8 04 00
    9275     call 01931h                               ; e8 ca b1
     9291    call 01931h                               ; e8 60 b1
    92769292    push word [bp+014h]                       ; ff 76 14
    92779293    push word [bp+020h]                       ; ff 76 20
    92789294    push 008bch                               ; 68 bc 08
    92799295    push strict byte 00004h                   ; 6a 04
    9280     call 01972h                               ; e8 fd b1
     9296    call 01972h                               ; e8 93 b1
    92819297    add sp, strict byte 00008h                ; 83 c4 08
    92829298    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    92899305    pop bp                                    ; 5d
    92909306    retn                                      ; c3
    9291 _inv_op_handler:                             ; 0xf678c LB 0x195
     9307_inv_op_handler:                             ; 0xf67f6 LB 0x195
    92929308    push bp                                   ; 55
    92939309    mov bp, sp                                ; 89 e5
     
    92989314    les bx, [bp+018h]                         ; c4 5e 18
    92999315    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    9300     jne short 067a2h                          ; 75 06
     9316    jne short 0680ch                          ; 75 06
    93019317    inc word [bp+018h]                        ; ff 46 18
    9302     jmp near 0691ah                           ; e9 78 01
     9318    jmp near 06984h                           ; e9 78 01
    93039319    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    9304     jne near 06916h                           ; 0f 85 6b 01
     9320    jne near 06980h                           ; 0f 85 6b 01
    93059321    mov si, 00800h                            ; be 00 08
    93069322    xor ax, ax                                ; 31 c0
     
    93309346    sal ax, 1                                 ; d1 e0
    93319347    rcl dx, 1                                 ; d1 d2
    9332     loop 067fbh                               ; e2 fa
     9348    loop 06865h                               ; e2 fa
    93339349    cmp bx, dx                                ; 39 d3
    9334     jne short 06809h                          ; 75 04
     9350    jne short 06873h                          ; 75 04
    93359351    cmp di, ax                                ; 39 c7
    9336     je short 0680eh                           ; 74 05
     9352    je short 06878h                           ; 74 05
    93379353    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    93389354    mov es, [bp-006h]                         ; 8e 46 fa
     
    93449360    sal ax, 1                                 ; d1 e0
    93459361    rcl dx, 1                                 ; d1 d2
    9346     loop 06823h                               ; e2 fa
     9362    loop 0688dh                               ; e2 fa
    93479363    cmp di, dx                                ; 39 d7
    9348     jne short 06831h                          ; 75 04
     9364    jne short 0689bh                          ; 75 04
    93499365    cmp bx, ax                                ; 39 c3
    9350     je short 06835h                           ; 74 04
     9366    je short 0689fh                           ; 74 04
    93519367    or byte [bp-008h], 002h                   ; 80 4e f8 02
    93529368    push strict byte 00000h                   ; 6a 00
     
    93989414    mov ax, strict word 00008h                ; b8 08 00
    93999415    test cx, strict word 00001h               ; f7 c1 01 00
    9400     je near 068d3h                            ; 0f 84 02 00
     9416    je near 0693dh                            ; 0f 84 02 00
    94019417    mov es, ax                                ; 8e c0
    94029418    test cx, strict word 00002h               ; f7 c1 02 00
    9403     je near 068fbh                            ; 0f 84 20 00
     9419    je near 06965h                            ; 0f 84 20 00
    94049420    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    94059421    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    94189434    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    94199435    iret                                      ; cf
    9420     jmp short 0691ah                          ; eb 04
     9436    jmp short 06984h                          ; eb 04
    94219437    sti                                       ; fb
    94229438    hlt                                       ; f4
    9423     jmp short 06917h                          ; eb fd
     9439    jmp short 06981h                          ; eb fd
    94249440    lea sp, [bp-004h]                         ; 8d 66 fc
    94259441    pop di                                    ; 5f
     
    94279443    pop bp                                    ; 5d
    94289444    retn                                      ; c3
    9429 init_rtc_:                                   ; 0xf6921 LB 0x28
     9445init_rtc_:                                   ; 0xf698b LB 0x28
    94309446    push bp                                   ; 55
    94319447    mov bp, sp                                ; 89 e5
     
    94339449    mov dx, strict word 00026h                ; ba 26 00
    94349450    mov ax, strict word 0000ah                ; b8 0a 00
    9435     call 016c9h                               ; e8 9b ad
     9451    call 016c9h                               ; e8 31 ad
    94369452    mov dx, strict word 00002h                ; ba 02 00
    94379453    mov ax, strict word 0000bh                ; b8 0b 00
    9438     call 016c9h                               ; e8 92 ad
     9454    call 016c9h                               ; e8 28 ad
    94399455    mov ax, strict word 0000ch                ; b8 0c 00
    9440     call 016ach                               ; e8 6f ad
     9456    call 016ach                               ; e8 05 ad
    94419457    mov ax, strict word 0000dh                ; b8 0d 00
    9442     call 016ach                               ; e8 69 ad
     9458    call 016ach                               ; e8 ff ac
    94439459    lea sp, [bp-002h]                         ; 8d 66 fe
    94449460    pop dx                                    ; 5a
    94459461    pop bp                                    ; 5d
    94469462    retn                                      ; c3
    9447 rtc_updating_:                               ; 0xf6949 LB 0x21
     9463rtc_updating_:                               ; 0xf69b3 LB 0x21
    94489464    push bp                                   ; 55
    94499465    mov bp, sp                                ; 89 e5
     
    94519467    mov dx, 061a8h                            ; ba a8 61
    94529468    dec dx                                    ; 4a
    9453     je short 06961h                           ; 74 0e
     9469    je short 069cbh                           ; 74 0e
    94549470    mov ax, strict word 0000ah                ; b8 0a 00
    9455     call 016ach                               ; e8 53 ad
     9471    call 016ach                               ; e8 e9 ac
    94569472    test AL, strict byte 080h                 ; a8 80
    9457     jne short 06950h                          ; 75 f3
     9473    jne short 069bah                          ; 75 f3
    94589474    xor ax, ax                                ; 31 c0
    9459     jmp short 06964h                          ; eb 03
     9475    jmp short 069ceh                          ; eb 03
    94609476    mov ax, strict word 00001h                ; b8 01 00
    94619477    lea sp, [bp-002h]                         ; 8d 66 fe
     
    94639479    pop bp                                    ; 5d
    94649480    retn                                      ; c3
    9465 _int70_function:                             ; 0xf696a LB 0xbe
     9481_int70_function:                             ; 0xf69d4 LB 0xbe
    94669482    push bp                                   ; 55
    94679483    mov bp, sp                                ; 89 e5
     
    94699485    push ax                                   ; 50
    94709486    mov ax, strict word 0000bh                ; b8 0b 00
    9471     call 016ach                               ; e8 37 ad
     9487    call 016ach                               ; e8 cd ac
    94729488    mov dl, al                                ; 88 c2
    94739489    mov byte [bp-004h], al                    ; 88 46 fc
    94749490    mov ax, strict word 0000ch                ; b8 0c 00
    9475     call 016ach                               ; e8 2c ad
     9491    call 016ach                               ; e8 c2 ac
    94769492    mov dh, al                                ; 88 c6
    94779493    test dl, 060h                             ; f6 c2 60
    9478     je near 06a0fh                            ; 0f 84 86 00
     9494    je near 06a79h                            ; 0f 84 86 00
    94799495    test AL, strict byte 020h                 ; a8 20
    9480     je short 06991h                           ; 74 04
     9496    je short 069fbh                           ; 74 04
    94819497    sti                                       ; fb
    94829498    int 04ah                                  ; cd 4a
    94839499    cli                                       ; fa
    94849500    test dh, 040h                             ; f6 c6 40
    9485     je near 06a0fh                            ; 0f 84 77 00
     9501    je near 06a79h                            ; 0f 84 77 00
    94869502    mov dx, 000a0h                            ; ba a0 00
    94879503    mov ax, strict word 00040h                ; b8 40 00
    9488     call 01650h                               ; e8 af ac
     9504    call 01650h                               ; e8 45 ac
    94899505    test al, al                               ; 84 c0
    9490     je short 06a0fh                           ; 74 6a
     9506    je short 06a79h                           ; 74 6a
    94919507    mov dx, 0009ch                            ; ba 9c 00
    94929508    mov ax, strict word 00040h                ; b8 40 00
    9493     call 01688h                               ; e8 da ac
     9509    call 01688h                               ; e8 70 ac
    94949510    test dx, dx                               ; 85 d2
    9495     jne short 069fbh                          ; 75 49
     9511    jne short 06a65h                          ; 75 49
    94969512    cmp ax, 003d1h                            ; 3d d1 03
    9497     jnc short 069fbh                          ; 73 44
     9513    jnc short 06a65h                          ; 73 44
    94989514    mov dx, 00098h                            ; ba 98 00
    94999515    mov ax, strict word 00040h                ; b8 40 00
    9500     call 0166ch                               ; e8 ac ac
     9516    call 0166ch                               ; e8 42 ac
    95019517    mov si, ax                                ; 89 c6
    95029518    mov dx, 0009ah                            ; ba 9a 00
    95039519    mov ax, strict word 00040h                ; b8 40 00
    9504     call 0166ch                               ; e8 a1 ac
     9520    call 0166ch                               ; e8 37 ac
    95059521    mov cx, ax                                ; 89 c1
    95069522    xor bx, bx                                ; 31 db
    95079523    mov dx, 000a0h                            ; ba a0 00
    95089524    mov ax, strict word 00040h                ; b8 40 00
    9509     call 0165eh                               ; e8 86 ac
     9525    call 0165eh                               ; e8 1c ac
    95109526    mov al, byte [bp-004h]                    ; 8a 46 fc
    95119527    and AL, strict byte 037h                  ; 24 37
    95129528    movzx dx, al                              ; 0f b6 d0
    95139529    mov ax, strict word 0000bh                ; b8 0b 00
    9514     call 016c9h                               ; e8 e3 ac
     9530    call 016c9h                               ; e8 79 ac
    95159531    mov dx, cx                                ; 89 ca
    95169532    mov ax, si                                ; 89 f0
    9517     call 01650h                               ; e8 63 ac
     9533    call 01650h                               ; e8 f9 ab
    95189534    or AL, strict byte 080h                   ; 0c 80
    95199535    movzx bx, al                              ; 0f b6 d8
    95209536    mov dx, cx                                ; 89 ca
    95219537    mov ax, si                                ; 89 f0
    9522     call 0165eh                               ; e8 65 ac
    9523     jmp short 06a0fh                          ; eb 14
     9538    call 0165eh                               ; e8 fb ab
     9539    jmp short 06a79h                          ; eb 14
    95249540    mov bx, ax                                ; 89 c3
    95259541    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    95289544    mov dx, 0009ch                            ; ba 9c 00
    95299545    mov ax, strict word 00040h                ; b8 40 00
    9530     call 0169ah                               ; e8 8b ac
    9531     call 0e03bh                               ; e8 29 76
     9546    call 0169ah                               ; e8 21 ac
     9547    call 0e030h                               ; e8 b4 75
    95329548    lea sp, [bp-002h]                         ; 8d 66 fe
    95339549    pop si                                    ; 5e
    95349550    pop bp                                    ; 5d
    95359551    retn                                      ; c3
    9536     aas                                       ; 3f
    9537     push strict byte 00068h                   ; 6a 68
    9538     push strict byte 0ff8dh                   ; 6a 8d
    9539     push strict byte 0ffbfh                   ; 6a bf
    9540     push strict byte 0000eh                   ; 6a 0e
    9541     imul ax, word [bp+06bh], strict byte 0ff89h ; 6b 46 6b 89
    9542     imul sp, ax, strict byte 0006bh           ; 6b e0 6b
    9543 _int1a_function:                             ; 0xf6a28 LB 0x1c8
     9552    test ax, 0d26ah                           ; a9 6a d2
     9553    push strict byte 0fff7h                   ; 6a f7
     9554    push strict byte 00029h                   ; 6a 29
     9555    imul di, word [bx+si+06bh], strict byte 0ffb0h ; 6b 78 6b b0
     9556    imul si, bx, strict byte 0006bh           ; 6b f3 6b
     9557    dec dx                                    ; 4a
     9558    insb                                      ; 6c
     9559_int1a_function:                             ; 0xf6a92 LB 0x1c8
    95449560    push bp                                   ; 55
    95459561    mov bp, sp                                ; 89 e5
     
    95479563    mov al, byte [bp+013h]                    ; 8a 46 13
    95489564    cmp AL, strict byte 007h                  ; 3c 07
    9549     jnbe near 06a64h                          ; 0f 87 2f 00
     9565    jnbe near 06aceh                          ; 0f 87 2f 00
    95509566    movzx bx, al                              ; 0f b6 d8
    95519567    add bx, bx                                ; 01 db
    9552     jmp word [cs:bx+06a18h]                   ; 2e ff a7 18 6a
     9568    jmp word [cs:bx+06a82h]                   ; 2e ff a7 82 6a
    95539569    cli                                       ; fa
    95549570    mov bx, 0046eh                            ; bb 6e 04
     
    95819597    sti                                       ; fb
    95829598    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9583     jmp short 06a64h                          ; eb d7
    9584     call 06949h                               ; e8 b9 fe
     9599    jmp short 06aceh                          ; eb d7
     9600    call 069b3h                               ; e8 b9 fe
    95859601    test ax, ax                               ; 85 c0
    9586     je short 06a96h                           ; 74 02
    9587     jmp short 06a64h                          ; eb ce
     9602    je short 06b00h                           ; 74 02
     9603    jmp short 06aceh                          ; eb ce
    95889604    xor ax, ax                                ; 31 c0
    9589     call 016ach                               ; e8 11 ac
     9605    call 016ach                               ; e8 a7 ab
    95909606    mov byte [bp+00fh], al                    ; 88 46 0f
    95919607    mov ax, strict word 00002h                ; b8 02 00
    9592     call 016ach                               ; e8 08 ac
     9608    call 016ach                               ; e8 9e ab
    95939609    mov byte [bp+010h], al                    ; 88 46 10
    95949610    mov ax, strict word 00004h                ; b8 04 00
    9595     call 016ach                               ; e8 ff ab
     9611    call 016ach                               ; e8 95 ab
    95969612    mov bl, al                                ; 88 c3
    95979613    mov byte [bp+011h], al                    ; 88 46 11
    95989614    mov ax, strict word 0000bh                ; b8 0b 00
    9599     call 016ach                               ; e8 f4 ab
     9615    call 016ach                               ; e8 8a ab
    96009616    and AL, strict byte 001h                  ; 24 01
    96019617    mov byte [bp+00eh], al                    ; 88 46 0e
    9602     jmp short 06b04h                          ; eb 45
    9603     call 06949h                               ; e8 87 fe
     9618    jmp short 06b6eh                          ; eb 45
     9619    call 069b3h                               ; e8 87 fe
    96049620    test ax, ax                               ; 85 c0
    9605     je short 06ac9h                           ; 74 03
    9606     call 06921h                               ; e8 58 fe
     9621    je short 06b33h                           ; 74 03
     9622    call 0698bh                               ; e8 58 fe
    96079623    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    96089624    xor ax, ax                                ; 31 c0
    9609     call 016c9h                               ; e8 f7 ab
     9625    call 016c9h                               ; e8 8d ab
    96109626    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    96119627    mov ax, strict word 00002h                ; b8 02 00
    9612     call 016c9h                               ; e8 ed ab
     9628    call 016c9h                               ; e8 83 ab
    96139629    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    96149630    mov ax, strict word 00004h                ; b8 04 00
    9615     call 016c9h                               ; e8 e3 ab
     9631    call 016c9h                               ; e8 79 ab
    96169632    mov ax, strict word 0000bh                ; b8 0b 00
    9617     call 016ach                               ; e8 c0 ab
     9633    call 016ach                               ; e8 56 ab
    96189634    mov bl, al                                ; 88 c3
    96199635    and bl, 060h                              ; 80 e3 60
     
    96249640    movzx dx, bl                              ; 0f b6 d3
    96259641    mov ax, strict word 0000bh                ; b8 0b 00
    9626     call 016c9h                               ; e8 c5 ab
     9642    call 016c9h                               ; e8 5b ab
    96279643    mov byte [bp+013h], 000h                  ; c6 46 13 00
    96289644    mov byte [bp+012h], bl                    ; 88 5e 12
    9629     jmp near 06a64h                           ; e9 56 ff
     9645    jmp near 06aceh                           ; e9 56 ff
    96309646    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9631     call 06949h                               ; e8 34 fe
     9647    call 069b3h                               ; e8 34 fe
    96329648    test ax, ax                               ; 85 c0
    9633     je short 06b1ch                           ; 74 03
    9634     jmp near 06a64h                           ; e9 48 ff
     9649    je short 06b86h                           ; 74 03
     9650    jmp near 06aceh                           ; e9 48 ff
    96359651    mov ax, strict word 00009h                ; b8 09 00
    9636     call 016ach                               ; e8 8a ab
     9652    call 016ach                               ; e8 20 ab
    96379653    mov byte [bp+010h], al                    ; 88 46 10
    96389654    mov ax, strict word 00008h                ; b8 08 00
    9639     call 016ach                               ; e8 81 ab
     9655    call 016ach                               ; e8 17 ab
    96409656    mov byte [bp+00fh], al                    ; 88 46 0f
    96419657    mov ax, strict word 00007h                ; b8 07 00
    9642     call 016ach                               ; e8 78 ab
     9658    call 016ach                               ; e8 0e ab
    96439659    mov byte [bp+00eh], al                    ; 88 46 0e
    96449660    mov ax, strict word 00032h                ; b8 32 00
    9645     call 016ach                               ; e8 6f ab
     9661    call 016ach                               ; e8 05 ab
    96469662    mov byte [bp+011h], al                    ; 88 46 11
    96479663    mov byte [bp+012h], al                    ; 88 46 12
    9648     jmp near 06a64h                           ; e9 1e ff
    9649     call 06949h                               ; e8 00 fe
     9664    jmp near 06aceh                           ; e9 1e ff
     9665    call 069b3h                               ; e8 00 fe
    96509666    test ax, ax                               ; 85 c0
    9651     je short 06b53h                           ; 74 06
    9652     call 06921h                               ; e8 d1 fd
    9653     jmp near 06a64h                           ; e9 11 ff
     9667    je short 06bbdh                           ; 74 06
     9668    call 0698bh                               ; e8 d1 fd
     9669    jmp near 06aceh                           ; e9 11 ff
    96549670    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    96559671    mov ax, strict word 00009h                ; b8 09 00
    9656     call 016c9h                               ; e8 6c ab
     9672    call 016c9h                               ; e8 02 ab
    96579673    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    96589674    mov ax, strict word 00008h                ; b8 08 00
    9659     call 016c9h                               ; e8 62 ab
     9675    call 016c9h                               ; e8 f8 aa
    96609676    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    96619677    mov ax, strict word 00007h                ; b8 07 00
    9662     call 016c9h                               ; e8 58 ab
     9678    call 016c9h                               ; e8 ee aa
    96639679    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    96649680    mov ax, strict word 00032h                ; b8 32 00
    9665     call 016c9h                               ; e8 4e ab
     9681    call 016c9h                               ; e8 e4 aa
    96669682    mov ax, strict word 0000bh                ; b8 0b 00
    9667     call 016ach                               ; e8 2b ab
     9683    call 016ach                               ; e8 c1 aa
    96689684    mov bl, al                                ; 88 c3
    96699685    and bl, 07fh                              ; 80 e3 7f
    9670     jmp near 06afbh                           ; e9 72 ff
     9686    jmp near 06b65h                           ; e9 72 ff
    96719687    mov ax, strict word 0000bh                ; b8 0b 00
    9672     call 016ach                               ; e8 1d ab
     9688    call 016ach                               ; e8 b3 aa
    96739689    mov bl, al                                ; 88 c3
    96749690    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    96759691    test AL, strict byte 020h                 ; a8 20
    9676     je short 06b9dh                           ; 74 03
    9677     jmp near 06a64h                           ; e9 c7 fe
    9678     call 06949h                               ; e8 a9 fd
     9692    je short 06c07h                           ; 74 03
     9693    jmp near 06aceh                           ; e9 c7 fe
     9694    call 069b3h                               ; e8 a9 fd
    96799695    test ax, ax                               ; 85 c0
    9680     je short 06ba7h                           ; 74 03
    9681     call 06921h                               ; e8 7a fd
     9696    je short 06c11h                           ; 74 03
     9697    call 0698bh                               ; e8 7a fd
    96829698    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    96839699    mov ax, strict word 00001h                ; b8 01 00
    9684     call 016c9h                               ; e8 18 ab
     9700    call 016c9h                               ; e8 ae aa
    96859701    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    96869702    mov ax, strict word 00003h                ; b8 03 00
    9687     call 016c9h                               ; e8 0e ab
     9703    call 016c9h                               ; e8 a4 aa
    96889704    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    96899705    mov ax, strict word 00005h                ; b8 05 00
    9690     call 016c9h                               ; e8 04 ab
     9706    call 016c9h                               ; e8 9a aa
    96919707    mov dx, 000a1h                            ; ba a1 00
    96929708    in AL, DX                                 ; ec
     
    97009716    movzx dx, al                              ; 0f b6 d0
    97019717    mov ax, strict word 0000bh                ; b8 0b 00
    9702     call 016c9h                               ; e8 ec aa
    9703     jmp near 06a64h                           ; e9 84 fe
     9718    call 016c9h                               ; e8 82 aa
     9719    jmp near 06aceh                           ; e9 84 fe
    97049720    mov ax, strict word 0000bh                ; b8 0b 00
    9705     call 016ach                               ; e8 c6 aa
     9721    call 016ach                               ; e8 5c aa
    97069722    mov bl, al                                ; 88 c3
    97079723    and AL, strict byte 057h                  ; 24 57
    97089724    movzx dx, al                              ; 0f b6 d0
    9709     jmp near 06afeh                           ; e9 0e ff
    9710 send_to_mouse_ctrl_:                         ; 0xf6bf0 LB 0x34
     9725    jmp near 06b68h                           ; e9 0e ff
     9726send_to_mouse_ctrl_:                         ; 0xf6c5a LB 0x34
    97119727    push bp                                   ; 55
    97129728    mov bp, sp                                ; 89 e5
     
    97199735    ; sub ah, ah                                ; 2a e4
    97209736    test AL, strict byte 002h                 ; a8 02
    9721     je short 06c0fh                           ; 74 0e
     9737    je short 06c79h                           ; 74 0e
    97229738    push 008f6h                               ; 68 f6 08
    9723     push 01152h                               ; 68 52 11
     9739    push 0116ah                               ; 68 6a 11
    97249740    push strict byte 00007h                   ; 6a 07
    9725     call 01972h                               ; e8 66 ad
     9741    call 01972h                               ; e8 fc ac
    97269742    add sp, strict byte 00006h                ; 83 c4 06
    97279743    mov AL, strict byte 0d4h                  ; b0 d4
     
    97379753    pop bp                                    ; 5d
    97389754    retn                                      ; c3
    9739 get_mouse_data_:                             ; 0xf6c24 LB 0x3b
     9755get_mouse_data_:                             ; 0xf6c8e LB 0x3b
    97409756    push bp                                   ; 55
    97419757    mov bp, sp                                ; 89 e5
     
    97519767    and ax, strict word 00021h                ; 25 21 00
    97529768    cmp ax, strict word 00021h                ; 3d 21 00
    9753     je short 06c45h                           ; 74 07
     9769    je short 06cafh                           ; 74 07
    97549770    test cx, cx                               ; 85 c9
    9755     je short 06c45h                           ; 74 03
     9771    je short 06cafh                           ; 74 03
    97569772    dec cx                                    ; 49
    9757     jmp short 06c30h                          ; eb eb
     9773    jmp short 06c9ah                          ; eb eb
    97589774    test cx, cx                               ; 85 c9
    9759     jne short 06c4dh                          ; 75 04
     9775    jne short 06cb7h                          ; 75 04
    97609776    mov AL, strict byte 001h                  ; b0 01
    9761     jmp short 06c58h                          ; eb 0b
     9777    jmp short 06cc2h                          ; eb 0b
    97629778    mov dx, strict word 00060h                ; ba 60 00
    97639779    in AL, DX                                 ; ec
     
    97719787    pop bp                                    ; 5d
    97729788    retn                                      ; c3
    9773 set_kbd_command_byte_:                       ; 0xf6c5f LB 0x32
     9789set_kbd_command_byte_:                       ; 0xf6cc9 LB 0x32
    97749790    push bp                                   ; 55
    97759791    mov bp, sp                                ; 89 e5
     
    97829798    ; sub ah, ah                                ; 2a e4
    97839799    test AL, strict byte 002h                 ; a8 02
    9784     je short 06c7eh                           ; 74 0e
     9800    je short 06ce8h                           ; 74 0e
    97859801    push 00900h                               ; 68 00 09
    9786     push 01152h                               ; 68 52 11
     9802    push 0116ah                               ; 68 6a 11
    97879803    push strict byte 00007h                   ; 6a 07
    9788     call 01972h                               ; e8 f7 ac
     9804    call 01972h                               ; e8 8d ac
    97899805    add sp, strict byte 00006h                ; 83 c4 06
    97909806    mov AL, strict byte 060h                  ; b0 60
     
    97999815    pop bp                                    ; 5d
    98009816    retn                                      ; c3
    9801 _int74_function:                             ; 0xf6c91 LB 0xca
     9817_int74_function:                             ; 0xf6cfb LB 0xca
    98029818    push bp                                   ; 55
    98039819    mov bp, sp                                ; 89 e5
     
    98059821    mov dx, strict word 0000eh                ; ba 0e 00
    98069822    mov ax, strict word 00040h                ; b8 40 00
    9807     call 0166ch                               ; e8 cc a9
     9823    call 0166ch                               ; e8 62 a9
    98089824    mov cx, ax                                ; 89 c1
    98099825    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    98149830    and AL, strict byte 021h                  ; 24 21
    98159831    cmp AL, strict byte 021h                  ; 3c 21
    9816     jne near 06d47h                           ; 0f 85 92 00
     9832    jne near 06db1h                           ; 0f 85 92 00
    98179833    mov dx, strict word 00060h                ; ba 60 00
    98189834    in AL, DX                                 ; ec
     
    98229838    mov dx, strict word 00026h                ; ba 26 00
    98239839    mov ax, cx                                ; 89 c8
    9824     call 01650h                               ; e8 8b a9
     9840    call 01650h                               ; e8 21 a9
    98259841    mov byte [bp-006h], al                    ; 88 46 fa
    98269842    mov dx, strict word 00027h                ; ba 27 00
    98279843    mov ax, cx                                ; 89 c8
    9828     call 01650h                               ; e8 80 a9
     9844    call 01650h                               ; e8 16 a9
    98299845    mov byte [bp-008h], al                    ; 88 46 f8
    98309846    test AL, strict byte 080h                 ; a8 80
    9831     je short 06d47h                           ; 74 70
     9847    je short 06db1h                           ; 74 70
    98329848    mov al, byte [bp-008h]                    ; 8a 46 f8
    98339849    and AL, strict byte 007h                  ; 24 07
     
    98409856    add dx, strict byte 00028h                ; 83 c2 28
    98419857    mov ax, cx                                ; 89 c8
    9842     call 0165eh                               ; e8 6a a9
     9858    call 0165eh                               ; e8 00 a9
    98439859    mov al, byte [bp-004h]                    ; 8a 46 fc
    98449860    cmp al, byte [bp-002h]                    ; 3a 46 fe
    9845     jc short 06d38h                           ; 72 3c
     9861    jc short 06da2h                           ; 72 3c
    98469862    mov dx, strict word 00028h                ; ba 28 00
    98479863    mov ax, cx                                ; 89 c8
    9848     call 01650h                               ; e8 4c a9
     9864    call 01650h                               ; e8 e2 a8
    98499865    xor ah, ah                                ; 30 e4
    98509866    mov word [bp+00ch], ax                    ; 89 46 0c
    98519867    mov dx, strict word 00029h                ; ba 29 00
    98529868    mov ax, cx                                ; 89 c8
    9853     call 01650h                               ; e8 3f a9
     9869    call 01650h                               ; e8 d5 a8
    98549870    xor ah, ah                                ; 30 e4
    98559871    mov word [bp+00ah], ax                    ; 89 46 0a
    98569872    mov dx, strict word 0002ah                ; ba 2a 00
    98579873    mov ax, cx                                ; 89 c8
    9858     call 01650h                               ; e8 32 a9
     9874    call 01650h                               ; e8 c8 a8
    98599875    xor ah, ah                                ; 30 e4
    98609876    mov word [bp+008h], ax                    ; 89 46 08
     
    98639879    mov byte [bp-006h], ah                    ; 88 66 fa
    98649880    test byte [bp-008h], 080h                 ; f6 46 f8 80
    9865     je short 06d3bh                           ; 74 0a
     9881    je short 06da5h                           ; 74 0a
    98669882    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    9867     jmp short 06d3bh                          ; eb 03
     9883    jmp short 06da5h                          ; eb 03
    98689884    inc byte [bp-006h]                        ; fe 46 fa
    98699885    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    98709886    mov dx, strict word 00026h                ; ba 26 00
    98719887    mov ax, cx                                ; 89 c8
    9872     call 0165eh                               ; e8 17 a9
     9888    call 0165eh                               ; e8 ad a8
    98739889    mov sp, bp                                ; 89 ec
    98749890    pop bp                                    ; 5d
    98759891    retn                                      ; c3
    9876     lahf                                      ; 9f
    9877     insw                                      ; 6d
    9878     adc ax, 0986eh                            ; 15 6e 98
     9892    or word [bp+07fh], bp                     ; 09 6e 7f
    98799893    outsb                                     ; 6e
    9880     sub word [bx-069h], bp                    ; 29 6f 97
     9894    add ch, byte [bx-06dh]                    ; 02 6f 93
    98819895    outsw                                     ; 6f
    9882     jmp short 06dc4h                          ; eb 6d
    9883     mov di, 0846fh                            ; bf 6f 84
     9896    add word [bx+si+055h], si                 ; 01 70 55
     9897    outsb                                     ; 6e
     9898    sub word [bx+si-012h], si                 ; 29 70 ee
    98849899    db  070h
    9885 _int15_function_mouse:                       ; 0xf6d5b LB 0x38b
     9900_int15_function_mouse:                       ; 0xf6dc5 LB 0x38b
    98869901    push bp                                   ; 55
    98879902    mov bp, sp                                ; 89 e5
     
    98909905    mov dx, strict word 0000eh                ; ba 0e 00
    98919906    mov ax, strict word 00040h                ; b8 40 00
    9892     call 0166ch                               ; e8 01 a9
     9907    call 0166ch                               ; e8 97 a8
    98939908    mov cx, ax                                ; 89 c1
    98949909    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    9895     jbe short 06d7eh                          ; 76 0b
     9910    jbe short 06de8h                          ; 76 0b
    98969911    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    98979912    mov byte [bp+013h], 001h                  ; c6 46 13 01
    9898     jmp near 070e0h                           ; e9 62 03
     9913    jmp near 0714ah                           ; e9 62 03
    98999914    mov ax, strict word 00065h                ; b8 65 00
    9900     call 06c5fh                               ; e8 db fe
     9915    call 06cc9h                               ; e8 db fe
    99019916    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    99029917    mov byte [bp+013h], 000h                  ; c6 46 13 00
    99039918    mov al, byte [bp+012h]                    ; 8a 46 12
    99049919    cmp AL, strict byte 007h                  ; 3c 07
    9905     jnbe near 070c7h                          ; 0f 87 32 03
     9920    jnbe near 07131h                          ; 0f 87 32 03
    99069921    movzx si, al                              ; 0f b6 f0
    99079922    add si, si                                ; 01 f6
    9908     jmp word [cs:si+06d4bh]                   ; 2e ff a4 4b 6d
     9923    jmp word [cs:si+06db5h]                   ; 2e ff a4 b5 6d
    99099924    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    9910     jnbe near 070d2h                          ; 0f 87 2b 03
     9925    jnbe near 0713ch                          ; 0f 87 2b 03
    99119926    mov dx, strict word 00027h                ; ba 27 00
    99129927    mov ax, cx                                ; 89 c8
    9913     call 01650h                               ; e8 a1 a8
     9928    call 01650h                               ; e8 37 a8
    99149929    test AL, strict byte 080h                 ; a8 80
    9915     jne short 06dbeh                          ; 75 0b
     9930    jne short 06e28h                          ; 75 0b
    99169931    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    99179932    mov byte [bp+013h], 005h                  ; c6 46 13 05
    9918     jmp near 070dah                           ; e9 1c 03
     9933    jmp near 07144h                           ; e9 1c 03
    99199934    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    99209935    db  00fh, 094h, 0c0h
     
    99229937    add AL, strict byte 0f4h                  ; 04 f4
    99239938    xor ah, ah                                ; 30 e4
    9924     call 06bf0h                               ; e8 24 fe
     9939    call 06c5ah                               ; e8 24 fe
    99259940    test al, al                               ; 84 c0
    9926     jne near 07060h                           ; 0f 85 8e 02
     9941    jne near 070cah                           ; 0f 85 8e 02
    99279942    mov dx, ss                                ; 8c d2
    99289943    lea ax, [bp-008h]                         ; 8d 46 f8
    9929     call 06c24h                               ; e8 4a fe
     9944    call 06c8eh                               ; e8 4a fe
    99309945    test al, al                               ; 84 c0
    9931     je near 070dah                            ; 0f 84 fa 02
     9946    je near 07144h                            ; 0f 84 fa 02
    99329947    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    9933     jne near 07060h                           ; 0f 85 78 02
    9934     jmp near 070dah                           ; e9 ef 02
     9948    jne near 070cah                           ; 0f 85 78 02
     9949    jmp near 07144h                           ; e9 ef 02
    99359950    mov al, byte [bp+00dh]                    ; 8a 46 0d
    99369951    cmp AL, strict byte 001h                  ; 3c 01
    9937     jc short 06df6h                           ; 72 04
     9952    jc short 06e60h                           ; 72 04
    99389953    cmp AL, strict byte 008h                  ; 3c 08
    9939     jbe short 06df9h                          ; 76 03
    9940     jmp near 06f8ch                           ; e9 93 01
     9954    jbe short 06e63h                          ; 76 03
     9955    jmp near 06ff6h                           ; e9 93 01
    99419956    mov dx, strict word 00027h                ; ba 27 00
    99429957    mov ax, cx                                ; 89 c8
    9943     call 01650h                               ; e8 4f a8
     9958    call 01650h                               ; e8 e5 a7
    99449959    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    99459960    db  0feh, 0cch
     
    99509965    mov dx, strict word 00027h                ; ba 27 00
    99519966    mov ax, cx                                ; 89 c8
    9952     call 0165eh                               ; e8 49 a8
     9967    call 0165eh                               ; e8 df a7
    99539968    mov dx, strict word 00026h                ; ba 26 00
    99549969    mov ax, cx                                ; 89 c8
    9955     call 01650h                               ; e8 33 a8
     9970    call 01650h                               ; e8 c9 a7
    99569971    and AL, strict byte 0f8h                  ; 24 f8
    99579972    movzx bx, al                              ; 0f b6 d8
    99589973    mov dx, strict word 00026h                ; ba 26 00
    99599974    mov ax, cx                                ; 89 c8
    9960     call 0165eh                               ; e8 34 a8
     9975    call 0165eh                               ; e8 ca a7
    99619976    mov ax, 000ffh                            ; b8 ff 00
    9962     call 06bf0h                               ; e8 c0 fd
     9977    call 06c5ah                               ; e8 c0 fd
    99639978    test al, al                               ; 84 c0
    9964     jne near 07060h                           ; 0f 85 2a 02
     9979    jne near 070cah                           ; 0f 85 2a 02
    99659980    mov dx, ss                                ; 8c d2
    99669981    lea ax, [bp-004h]                         ; 8d 46 fc
    9967     call 06c24h                               ; e8 e6 fd
     9982    call 06c8eh                               ; e8 e6 fd
    99689983    mov cl, al                                ; 88 c1
    99699984    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    9970     jne short 06e51h                          ; 75 0b
     9985    jne short 06ebbh                          ; 75 0b
    99719986    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    99729987    mov byte [bp+013h], 004h                  ; c6 46 13 04
    9973     jmp near 070dah                           ; e9 89 02
     9988    jmp near 07144h                           ; e9 89 02
    99749989    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    9975     je short 06e67h                           ; 74 10
     9990    je short 06ed1h                           ; 74 10
    99769991    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    99779992    push ax                                   ; 50
    99789993    push 0090bh                               ; 68 0b 09
    99799994    push strict byte 00007h                   ; 6a 07
    9980     call 01972h                               ; e8 0e ab
     9995    call 01972h                               ; e8 a4 aa
    99819996    add sp, strict byte 00006h                ; 83 c4 06
    99829997    test cl, cl                               ; 84 c9
    9983     jne near 07060h                           ; 0f 85 f3 01
     9998    jne near 070cah                           ; 0f 85 f3 01
    99849999    mov dx, ss                                ; 8c d2
    998510000    lea ax, [bp-008h]                         ; 8d 46 f8
    9986     call 06c24h                               ; e8 af fd
     10001    call 06c8eh                               ; e8 af fd
    998710002    test al, al                               ; 84 c0
    9988     jne near 07060h                           ; 0f 85 e5 01
     10003    jne near 070cah                           ; 0f 85 e5 01
    998910004    mov dx, ss                                ; 8c d2
    999010005    lea ax, [bp-006h]                         ; 8d 46 fa
    9991     call 06c24h                               ; e8 a1 fd
     10006    call 06c8eh                               ; e8 a1 fd
    999210007    test al, al                               ; 84 c0
    9993     jne near 07060h                           ; 0f 85 d7 01
     10008    jne near 070cah                           ; 0f 85 d7 01
    999410009    mov al, byte [bp-008h]                    ; 8a 46 f8
    999510010    mov byte [bp+00ch], al                    ; 88 46 0c
    999610011    mov al, byte [bp-006h]                    ; 8a 46 fa
    999710012    mov byte [bp+00dh], al                    ; 88 46 0d
    9998     jmp near 070dah                           ; e9 42 02
     10013    jmp near 07144h                           ; e9 42 02
    999910014    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1000010015    cmp AL, strict byte 003h                  ; 3c 03
    10001     jc short 06eafh                           ; 72 10
    10002     jbe short 06ecdh                          ; 76 2c
     10016    jc short 06f19h                           ; 72 10
     10017    jbe short 06f37h                          ; 76 2c
    1000310018    cmp AL, strict byte 006h                  ; 3c 06
    10004     je short 06edfh                           ; 74 3a
     10019    je short 06f49h                           ; 74 3a
    1000510020    cmp AL, strict byte 005h                  ; 3c 05
    10006     je short 06ed9h                           ; 74 30
     10021    je short 06f43h                           ; 74 30
    1000710022    cmp AL, strict byte 004h                  ; 3c 04
    10008     je short 06ed3h                           ; 74 26
    10009     jmp short 06ee5h                          ; eb 36
     10023    je short 06f3dh                           ; 74 26
     10024    jmp short 06f4fh                          ; eb 36
    1001010025    cmp AL, strict byte 002h                  ; 3c 02
    10011     je short 06ec7h                           ; 74 14
     10026    je short 06f31h                           ; 74 14
    1001210027    cmp AL, strict byte 001h                  ; 3c 01
    10013     je short 06ec1h                           ; 74 0a
     10028    je short 06f2bh                           ; 74 0a
    1001410029    test al, al                               ; 84 c0
    10015     jne short 06ee5h                          ; 75 2a
     10030    jne short 06f4fh                          ; 75 2a
    1001610031    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10017     jmp short 06ee9h                          ; eb 28
     10032    jmp short 06f53h                          ; eb 28
    1001810033    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10019     jmp short 06ee9h                          ; eb 22
     10034    jmp short 06f53h                          ; eb 22
    1002010035    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10021     jmp short 06ee9h                          ; eb 1c
     10036    jmp short 06f53h                          ; eb 1c
    1002210037    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10023     jmp short 06ee9h                          ; eb 16
     10038    jmp short 06f53h                          ; eb 16
    1002410039    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10025     jmp short 06ee9h                          ; eb 10
     10040    jmp short 06f53h                          ; eb 10
    1002610041    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10027     jmp short 06ee9h                          ; eb 0a
     10042    jmp short 06f53h                          ; eb 0a
    1002810043    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10029     jmp short 06ee9h                          ; eb 04
     10044    jmp short 06f53h                          ; eb 04
    1003010045    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1003110046    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10032     jbe short 06f1eh                          ; 76 2f
     10047    jbe short 06f88h                          ; 76 2f
    1003310048    mov ax, 000f3h                            ; b8 f3 00
    10034     call 06bf0h                               ; e8 fb fc
     10049    call 06c5ah                               ; e8 fb fc
    1003510050    test al, al                               ; 84 c0
    10036     jne short 06f13h                          ; 75 1a
     10051    jne short 06f7dh                          ; 75 1a
    1003710052    mov dx, ss                                ; 8c d2
    1003810053    lea ax, [bp-006h]                         ; 8d 46 fa
    10039     call 06c24h                               ; e8 23 fd
     10054    call 06c8eh                               ; e8 23 fd
    1004010055    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10041     call 06bf0h                               ; e8 e8 fc
     10056    call 06c5ah                               ; e8 e8 fc
    1004210057    mov dx, ss                                ; 8c d2
    1004310058    lea ax, [bp-006h]                         ; 8d 46 fa
    10044     call 06c24h                               ; e8 14 fd
    10045     jmp near 070dah                           ; e9 c7 01
     10059    call 06c8eh                               ; e8 14 fd
     10060    jmp near 07144h                           ; e9 c7 01
    1004610061    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1004710062    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10048     jmp near 070dah                           ; e9 bc 01
     10063    jmp near 07144h                           ; e9 bc 01
    1004910064    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1005010065    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10051     jmp near 070dah                           ; e9 b1 01
     10066    jmp near 07144h                           ; e9 b1 01
    1005210067    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10053     jnc short 06f8ch                          ; 73 5d
     10068    jnc short 06ff6h                          ; 73 5d
    1005410069    mov ax, 000e8h                            ; b8 e8 00
    10055     call 06bf0h                               ; e8 bb fc
     10070    call 06c5ah                               ; e8 bb fc
    1005610071    test al, al                               ; 84 c0
    10057     jne short 06f81h                          ; 75 48
     10072    jne short 06febh                          ; 75 48
    1005810073    mov dx, ss                                ; 8c d2
    1005910074    lea ax, [bp-008h]                         ; 8d 46 f8
    10060     call 06c24h                               ; e8 e3 fc
     10075    call 06c8eh                               ; e8 e3 fc
    1006110076    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10062     je short 06f57h                           ; 74 10
     10077    je short 06fc1h                           ; 74 10
    1006310078    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1006410079    push ax                                   ; 50
    1006510080    push 00936h                               ; 68 36 09
    1006610081    push strict byte 00007h                   ; 6a 07
    10067     call 01972h                               ; e8 1e aa
     10082    call 01972h                               ; e8 b4 a9
    1006810083    add sp, strict byte 00006h                ; 83 c4 06
    1006910084    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10070     call 06bf0h                               ; e8 92 fc
     10085    call 06c5ah                               ; e8 92 fc
    1007110086    mov dx, ss                                ; 8c d2
    1007210087    lea ax, [bp-008h]                         ; 8d 46 f8
    10073     call 06c24h                               ; e8 be fc
     10088    call 06c8eh                               ; e8 be fc
    1007410089    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10075     je near 070dah                            ; 0f 84 6c 01
     10090    je near 07144h                            ; 0f 84 6c 01
    1007610091    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1007710092    push ax                                   ; 50
    1007810093    push 00936h                               ; 68 36 09
    1007910094    push strict byte 00007h                   ; 6a 07
    10080     call 01972h                               ; e8 f7 a9
     10095    call 01972h                               ; e8 8d a9
    1008110096    add sp, strict byte 00006h                ; 83 c4 06
    10082     jmp near 070dah                           ; e9 59 01
     10097    jmp near 07144h                           ; e9 59 01
    1008310098    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1008410099    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10085     jmp near 070dah                           ; e9 4e 01
     10100    jmp near 07144h                           ; e9 4e 01
    1008610101    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1008710102    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10088     jmp near 070dah                           ; e9 43 01
     10103    jmp near 07144h                           ; e9 43 01
    1008910104    mov ax, 000f2h                            ; b8 f2 00
    10090     call 06bf0h                               ; e8 53 fc
     10105    call 06c5ah                               ; e8 53 fc
    1009110106    test al, al                               ; 84 c0
    10092     jne short 06fb4h                          ; 75 13
     10107    jne short 0701eh                          ; 75 13
    1009310108    mov dx, ss                                ; 8c d2
    1009410109    lea ax, [bp-008h]                         ; 8d 46 f8
    10095     call 06c24h                               ; e8 7b fc
     10110    call 06c8eh                               ; e8 7b fc
    1009610111    mov dx, ss                                ; 8c d2
    1009710112    lea ax, [bp-006h]                         ; 8d 46 fa
    10098     call 06c24h                               ; e8 73 fc
    10099     jmp near 06e8fh                           ; e9 db fe
     10113    call 06c8eh                               ; e8 73 fc
     10114    jmp near 06ef9h                           ; e9 db fe
    1010010115    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1010110116    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10102     jmp near 070dah                           ; e9 1b 01
     10117    jmp near 07144h                           ; e9 1b 01
    1010310118    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1010410119    test al, al                               ; 84 c0
    10105     jbe short 06fcdh                          ; 76 07
     10120    jbe short 07037h                          ; 76 07
    1010610121    cmp AL, strict byte 002h                  ; 3c 02
    10107     jbe short 07036h                          ; 76 6c
    10108     jmp near 0706ah                           ; e9 9d 00
     10122    jbe short 070a0h                          ; 76 6c
     10123    jmp near 070d4h                           ; e9 9d 00
    1010910124    mov ax, 000e9h                            ; b8 e9 00
    10110     call 06bf0h                               ; e8 1d fc
     10125    call 06c5ah                               ; e8 1d fc
    1011110126    test al, al                               ; 84 c0
    10112     jne near 07060h                           ; 0f 85 87 00
     10127    jne near 070cah                           ; 0f 85 87 00
    1011310128    mov dx, ss                                ; 8c d2
    1011410129    lea ax, [bp-008h]                         ; 8d 46 f8
    10115     call 06c24h                               ; e8 43 fc
     10130    call 06c8eh                               ; e8 43 fc
    1011610131    mov cl, al                                ; 88 c1
    1011710132    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10118     je short 06ff9h                           ; 74 10
     10133    je short 07063h                           ; 74 10
    1011910134    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1012010135    push ax                                   ; 50
    1012110136    push 00936h                               ; 68 36 09
    1012210137    push strict byte 00007h                   ; 6a 07
    10123     call 01972h                               ; e8 7c a9
     10138    call 01972h                               ; e8 12 a9
    1012410139    add sp, strict byte 00006h                ; 83 c4 06
    1012510140    test cl, cl                               ; 84 c9
    10126     jne short 07060h                          ; 75 63
     10141    jne short 070cah                          ; 75 63
    1012710142    mov dx, ss                                ; 8c d2
    1012810143    lea ax, [bp-008h]                         ; 8d 46 f8
    10129     call 06c24h                               ; e8 1f fc
     10144    call 06c8eh                               ; e8 1f fc
    1013010145    test al, al                               ; 84 c0
    10131     jne short 07060h                          ; 75 57
     10146    jne short 070cah                          ; 75 57
    1013210147    mov dx, ss                                ; 8c d2
    1013310148    lea ax, [bp-006h]                         ; 8d 46 fa
    10134     call 06c24h                               ; e8 13 fc
     10149    call 06c8eh                               ; e8 13 fc
    1013510150    test al, al                               ; 84 c0
    10136     jne short 07060h                          ; 75 4b
     10151    jne short 070cah                          ; 75 4b
    1013710152    mov dx, ss                                ; 8c d2
    1013810153    lea ax, [bp-004h]                         ; 8d 46 fc
    10139     call 06c24h                               ; e8 07 fc
     10154    call 06c8eh                               ; e8 07 fc
    1014010155    test al, al                               ; 84 c0
    10141     jne short 07060h                          ; 75 3f
     10156    jne short 070cah                          ; 75 3f
    1014210157    mov al, byte [bp-008h]                    ; 8a 46 f8
    1014310158    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1014610161    mov al, byte [bp-004h]                    ; 8a 46 fc
    1014710162    mov byte [bp+00eh], al                    ; 88 46 0e
    10148     jmp near 070dah                           ; e9 a4 00
     10163    jmp near 07144h                           ; e9 a4 00
    1014910164    cmp AL, strict byte 001h                  ; 3c 01
    10150     jne short 0703fh                          ; 75 05
     10165    jne short 070a9h                          ; 75 05
    1015110166    mov ax, 000e6h                            ; b8 e6 00
    10152     jmp short 07042h                          ; eb 03
     10167    jmp short 070ach                          ; eb 03
    1015310168    mov ax, 000e7h                            ; b8 e7 00
    10154     call 06bf0h                               ; e8 ab fb
     10169    call 06c5ah                               ; e8 ab fb
    1015510170    mov cl, al                                ; 88 c1
    1015610171    test cl, cl                               ; 84 c9
    10157     jne short 0705ah                          ; 75 0f
     10172    jne short 070c4h                          ; 75 0f
    1015810173    mov dx, ss                                ; 8c d2
    1015910174    lea ax, [bp-008h]                         ; 8d 46 f8
    10160     call 06c24h                               ; e8 d1 fb
     10175    call 06c8eh                               ; e8 d1 fb
    1016110176    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1016210177    db  00fh, 095h, 0c1h
    1016310178    ; setne cl                                  ; 0f 95 c1
    1016410179    test cl, cl                               ; 84 c9
    10165     je near 070dah                            ; 0f 84 7a 00
     10180    je near 07144h                            ; 0f 84 7a 00
    1016610181    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1016710182    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10168     jmp short 070dah                          ; eb 70
     10183    jmp short 07144h                          ; eb 70
    1016910184    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1017010185    push ax                                   ; 50
    1017110186    push 00962h                               ; 68 62 09
    1017210187    push strict byte 00007h                   ; 6a 07
    10173     call 01972h                               ; e8 fb a8
     10188    call 01972h                               ; e8 91 a8
    1017410189    add sp, strict byte 00006h                ; 83 c4 06
    1017510190    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1017610191    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10177     jmp short 070dah                          ; eb 56
     10192    jmp short 07144h                          ; eb 56
    1017810193    mov si, word [bp+00ch]                    ; 8b 76 0c
    1017910194    mov bx, si                                ; 89 f3
    1018010195    mov dx, strict word 00022h                ; ba 22 00
    1018110196    mov ax, cx                                ; 89 c8
    10182     call 0167ah                               ; e8 e9 a5
     10197    call 0167ah                               ; e8 7f a5
    1018310198    mov bx, word [bp+014h]                    ; 8b 5e 14
    1018410199    mov dx, strict word 00024h                ; ba 24 00
    1018510200    mov ax, cx                                ; 89 c8
    10186     call 0167ah                               ; e8 de a5
     10201    call 0167ah                               ; e8 74 a5
    1018710202    mov dx, strict word 00027h                ; ba 27 00
    1018810203    mov ax, cx                                ; 89 c8
    10189     call 01650h                               ; e8 ac a5
     10204    call 01650h                               ; e8 42 a5
    1019010205    mov ah, al                                ; 88 c4
    1019110206    test si, si                               ; 85 f6
    10192     jne short 070b8h                          ; 75 0e
     10207    jne short 07122h                          ; 75 0e
    1019310208    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    10194     jne short 070b8h                          ; 75 08
     10209    jne short 07122h                          ; 75 08
    1019510210    test AL, strict byte 080h                 ; a8 80
    10196     je short 070bah                           ; 74 06
     10211    je short 07124h                           ; 74 06
    1019710212    and AL, strict byte 07fh                  ; 24 7f
    10198     jmp short 070bah                          ; eb 02
     10213    jmp short 07124h                          ; eb 02
    1019910214    or AL, strict byte 080h                   ; 0c 80
    1020010215    movzx bx, al                              ; 0f b6 d8
    1020110216    mov dx, strict word 00027h                ; ba 27 00
    1020210217    mov ax, cx                                ; 89 c8
    10203     call 0165eh                               ; e8 99 a5
    10204     jmp short 070dah                          ; eb 13
     10218    call 0165eh                               ; e8 2f a5
     10219    jmp short 07144h                          ; eb 13
    1020510220    push 0097ch                               ; 68 7c 09
    1020610221    push strict byte 00007h                   ; 6a 07
    10207     call 01972h                               ; e8 a3 a8
     10222    call 01972h                               ; e8 39 a8
    1020810223    add sp, strict byte 00004h                ; 83 c4 04
    1020910224    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1021010225    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1021110226    mov ax, strict word 00047h                ; b8 47 00
    10212     call 06c5fh                               ; e8 7f fb
     10227    call 06cc9h                               ; e8 7f fb
    1021310228    lea sp, [bp-002h]                         ; 8d 66 fe
    1021410229    pop si                                    ; 5e
    1021510230    pop bp                                    ; 5d
    1021610231    retn                                      ; c3
    10217 _int17_function:                             ; 0xf70e6 LB 0xb3
     10232_int17_function:                             ; 0xf7150 LB 0xb3
    1021810233    push bp                                   ; 55
    1021910234    mov bp, sp                                ; 89 e5
     
    1022510240    add dx, strict byte 00008h                ; 83 c2 08
    1022610241    mov ax, strict word 00040h                ; b8 40 00
    10227     call 0166ch                               ; e8 72 a5
     10242    call 0166ch                               ; e8 08 a5
    1022810243    mov bx, ax                                ; 89 c3
    1022910244    mov si, ax                                ; 89 c6
    1023010245    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    10231     jnc near 0718fh                           ; 0f 83 89 00
     10246    jnc near 071f9h                           ; 0f 83 89 00
    1023210247    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1023310248    cmp ax, strict word 00003h                ; 3d 03 00
    10234     jnc near 0718fh                           ; 0f 83 7f 00
     10249    jnc near 071f9h                           ; 0f 83 7f 00
    1023510250    test bx, bx                               ; 85 db
    10236     jbe near 0718fh                           ; 0f 86 79 00
     10251    jbe near 071f9h                           ; 0f 86 79 00
    1023710252    mov dx, ax                                ; 89 c2
    1023810253    add dx, strict byte 00078h                ; 83 c2 78
    1023910254    mov ax, strict word 00040h                ; b8 40 00
    10240     call 01650h                               ; e8 2f a5
     10255    call 01650h                               ; e8 c5 a4
    1024110256    movzx cx, al                              ; 0f b6 c8
    1024210257    sal cx, 008h                              ; c1 e1 08
    1024310258    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    10244     jne short 0715ah                          ; 75 2d
     10259    jne short 071c4h                          ; 75 2d
    1024510260    mov al, byte [bp+012h]                    ; 8a 46 12
    1024610261    mov dx, bx                                ; 89 da
     
    1026210277    ; sub ah, ah                                ; 2a e4
    1026310278    test AL, strict byte 040h                 ; a8 40
    10264     je short 0715ah                           ; 74 07
     10279    je short 071c4h                           ; 74 07
    1026510280    test cx, cx                               ; 85 c9
    10266     je short 0715ah                           ; 74 03
     10281    je short 071c4h                           ; 74 03
    1026710282    dec cx                                    ; 49
    10268     jmp short 07149h                          ; eb ef
     10283    jmp short 071b3h                          ; eb ef
    1026910284    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    10270     jne short 07176h                          ; 75 16
     10285    jne short 071e0h                          ; 75 16
    1027110286    lea dx, [si+002h]                         ; 8d 54 02
    1027210287    in AL, DX                                 ; ec
     
    1028710302    mov byte [bp+013h], al                    ; 88 46 13
    1028810303    test cx, cx                               ; 85 c9
    10289     jne short 07189h                          ; 75 04
     10304    jne short 071f3h                          ; 75 04
    1029010305    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1029110306    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    10292     jmp short 07193h                          ; eb 04
     10307    jmp short 071fdh                          ; eb 04
    1029310308    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1029410309    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1029610311    pop bp                                    ; 5d
    1029710312    retn                                      ; c3
    10298 wait_:                                       ; 0xf7199 LB 0xb2
     10313wait_:                                       ; 0xf7203 LB 0xb2
    1029910314    push bp                                   ; 55
    1030010315    mov bp, sp                                ; 89 e5
     
    1031410329    mov dx, 0046ch                            ; ba 6c 04
    1031510330    xor ax, ax                                ; 31 c0
    10316     call 01688h                               ; e8 cc a4
     10331    call 01688h                               ; e8 62 a4
    1031710332    mov word [bp-00eh], ax                    ; 89 46 f2
    1031810333    mov bx, dx                                ; 89 d3
     
    1032010335    mov dx, 0046ch                            ; ba 6c 04
    1032110336    xor ax, ax                                ; 31 c0
    10322     call 01688h                               ; e8 be a4
     10337    call 01688h                               ; e8 54 a4
    1032310338    mov word [bp-012h], ax                    ; 89 46 ee
    1032410339    mov di, dx                                ; 89 d7
    1032510340    cmp dx, bx                                ; 39 da
    10326     jnbe short 071dah                         ; 77 07
    10327     jne short 071e1h                          ; 75 0c
     10341    jnbe short 07244h                         ; 77 07
     10342    jne short 0724bh                          ; 75 0c
    1032810343    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10329     jbe short 071e1h                          ; 76 07
     10344    jbe short 0724bh                          ; 76 07
    1033010345    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1033110346    sbb dx, bx                                ; 19 da
    10332     jmp short 071ech                          ; eb 0b
     10347    jmp short 07256h                          ; eb 0b
    1033310348    cmp dx, bx                                ; 39 da
    10334     jc short 071ech                           ; 72 07
    10335     jne short 071f0h                          ; 75 09
     10349    jc short 07256h                           ; 72 07
     10350    jne short 0725ah                          ; 75 09
    1033610351    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    10337     jnc short 071f0h                          ; 73 04
     10352    jnc short 0725ah                          ; 73 04
    1033810353    sub si, ax                                ; 29 c6
    1033910354    sbb cx, dx                                ; 19 d1
     
    1034310358    mov ax, 00100h                            ; b8 00 01
    1034410359    int 016h                                  ; cd 16
    10345     je near 07206h                            ; 0f 84 05 00
     10360    je near 07270h                            ; 0f 84 05 00
    1034610361    mov AL, strict byte 001h                  ; b0 01
    10347     jmp near 07208h                           ; e9 02 00
     10362    jmp near 07272h                           ; e9 02 00
    1034810363    db  032h, 0c0h
    1034910364    ; xor al, al                                ; 32 c0
    1035010365    test al, al                               ; 84 c0
    10351     je short 07230h                           ; 74 24
     10366    je short 0729ah                           ; 74 24
    1035210367    db  033h, 0c0h
    1035310368    ; xor ax, ax                                ; 33 c0
     
    1036010375    push 0099eh                               ; 68 9e 09
    1036110376    push strict byte 00004h                   ; 6a 04
    10362     call 01972h                               ; e8 4f a7
     10377    call 01972h                               ; e8 e5 a6
    1036310378    add sp, strict byte 00006h                ; 83 c4 06
    1036410379    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10365     je short 07230h                           ; 74 04
     10380    je short 0729ah                           ; 74 04
    1036610381    mov al, dl                                ; 88 d0
    10367     jmp short 07242h                          ; eb 12
     10382    jmp short 072ach                          ; eb 12
    1036810383    test cx, cx                               ; 85 c9
    10369     jnle short 071c1h                         ; 7f 8d
    10370     jne short 0723ah                          ; 75 04
     10384    jnle short 0722bh                         ; 7f 8d
     10385    jne short 072a4h                          ; 75 04
    1037110386    test si, si                               ; 85 f6
    10372     jnbe short 071c1h                         ; 77 87
     10387    jnbe short 0722bh                         ; 77 87
    1037310388    mov ax, word [bp-010h]                    ; 8b 46 f0
    1037410389    push ax                                   ; 50
     
    1038210397    pop bp                                    ; 5d
    1038310398    retn                                      ; c3
    10384 read_logo_byte_:                             ; 0xf724b LB 0x16
     10399read_logo_byte_:                             ; 0xf72b5 LB 0x16
    1038510400    push bp                                   ; 55
    1038610401    mov bp, sp                                ; 89 e5
     
    1039710412    pop bp                                    ; 5d
    1039810413    retn                                      ; c3
    10399 read_logo_word_:                             ; 0xf7261 LB 0x14
     10414read_logo_word_:                             ; 0xf72cb LB 0x14
    1040010415    push bp                                   ; 55
    1040110416    mov bp, sp                                ; 89 e5
     
    1041010425    pop bp                                    ; 5d
    1041110426    retn                                      ; c3
    10412 print_detected_harddisks_:                   ; 0xf7275 LB 0x130
     10427print_detected_harddisks_:                   ; 0xf72df LB 0x130
    1041310428    push bp                                   ; 55
    1041410429    mov bp, sp                                ; 89 e5
     
    1042210437    mov dx, strict word 0000eh                ; ba 0e 00
    1042310438    mov ax, strict word 00040h                ; b8 40 00
    10424     call 0166ch                               ; e8 e4 a3
     10439    call 0166ch                               ; e8 7a a3
    1042510440    mov si, ax                                ; 89 c6
    1042610441    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1042810443    xor ch, ch                                ; 30 ed
    1042910444    mov dx, 002c0h                            ; ba c0 02
    10430     call 01650h                               ; e8 b8 a3
     10445    call 01650h                               ; e8 4e a3
    1043110446    mov byte [bp-00eh], al                    ; 88 46 f2
    1043210447    xor bl, bl                                ; 30 db
    1043310448    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    10434     jnc near 07377h                           ; 0f 83 d3 00
     10449    jnc near 073e1h                           ; 0f 83 d3 00
    1043510450    movzx dx, bl                              ; 0f b6 d3
    1043610451    add dx, 002c1h                            ; 81 c2 c1 02
    1043710452    mov ax, si                                ; 89 f0
    10438     call 01650h                               ; e8 a0 a3
     10453    call 01650h                               ; e8 36 a3
    1043910454    mov bh, al                                ; 88 c7
    1044010455    cmp AL, strict byte 00ch                  ; 3c 0c
    10441     jc short 072dah                           ; 72 24
     10456    jc short 07344h                           ; 72 24
    1044210457    test cl, cl                               ; 84 c9
    10443     jne short 072c7h                          ; 75 0d
     10458    jne short 07331h                          ; 75 0d
    1044410459    push 009afh                               ; 68 af 09
    1044510460    push strict byte 00002h                   ; 6a 02
    10446     call 01972h                               ; e8 b0 a6
     10461    call 01972h                               ; e8 46 a6
    1044710462    add sp, strict byte 00004h                ; 83 c4 04
    1044810463    mov CL, strict byte 001h                  ; b1 01
     
    1045010465    inc ax                                    ; 40
    1045110466    push ax                                   ; 50
    10452     push 009c3h                               ; 68 c3 09
     10467    push 009c4h                               ; 68 c4 09
    1045310468    push strict byte 00002h                   ; 6a 02
    10454     call 01972h                               ; e8 9e a6
     10469    call 01972h                               ; e8 34 a6
    1045510470    add sp, strict byte 00006h                ; 83 c4 06
    10456     jmp near 07372h                           ; e9 98 00
     10471    jmp near 073dch                           ; e9 98 00
    1045710472    cmp AL, strict byte 008h                  ; 3c 08
    10458     jc short 072f1h                           ; 72 13
     10473    jc short 0735bh                           ; 72 13
    1045910474    test ch, ch                               ; 84 ed
    10460     jne short 072efh                          ; 75 0d
    10461     push 009d6h                               ; 68 d6 09
     10475    jne short 07359h                          ; 75 0d
     10476    push 009d7h                               ; 68 d7 09
    1046210477    push strict byte 00002h                   ; 6a 02
    10463     call 01972h                               ; e8 88 a6
     10478    call 01972h                               ; e8 1e a6
    1046410479    add sp, strict byte 00004h                ; 83 c4 04
    1046510480    mov CH, strict byte 001h                  ; b5 01
    10466     jmp short 072c7h                          ; eb d6
     10481    jmp short 07331h                          ; eb d6
    1046710482    cmp AL, strict byte 004h                  ; 3c 04
    10468     jnc short 0730ch                          ; 73 17
     10483    jnc short 07376h                          ; 73 17
    1046910484    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10470     jne short 0730ch                          ; 75 11
    10471     push 009eah                               ; 68 ea 09
     10485    jne short 07376h                          ; 75 11
     10486    push 009ech                               ; 68 ec 09
    1047210487    push strict byte 00002h                   ; 6a 02
    10473     call 01972h                               ; e8 6f a6
     10488    call 01972h                               ; e8 05 a6
    1047410489    add sp, strict byte 00004h                ; 83 c4 04
    1047510490    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    10476     jmp short 07322h                          ; eb 16
     10491    jmp short 0738ch                          ; eb 16
    1047710492    cmp bh, 004h                              ; 80 ff 04
    10478     jc short 07322h                           ; 72 11
     10493    jc short 0738ch                           ; 72 11
    1047910494    test cl, cl                               ; 84 c9
    10480     jne short 07322h                          ; 75 0d
    10481     push 009afh                               ; 68 af 09
     10495    jne short 0738ch                          ; 75 0d
     10496    push 009feh                               ; 68 fe 09
    1048210497    push strict byte 00002h                   ; 6a 02
    10483     call 01972h                               ; e8 55 a6
     10498    call 01972h                               ; e8 eb a5
    1048410499    add sp, strict byte 00004h                ; 83 c4 04
    1048510500    mov CL, strict byte 001h                  ; b1 01
     
    1048710502    inc ax                                    ; 40
    1048810503    push ax                                   ; 50
    10489     push 009fbh                               ; 68 fb 09
     10504    push 00a12h                               ; 68 12 0a
    1049010505    push strict byte 00002h                   ; 6a 02
    10491     call 01972h                               ; e8 43 a6
     10506    call 01972h                               ; e8 d9 a5
    1049210507    add sp, strict byte 00006h                ; 83 c4 06
    1049310508    cmp bh, 004h                              ; 80 ff 04
    10494     jc short 0733ah                           ; 72 03
     10509    jc short 073a4h                           ; 72 03
    1049510510    sub bh, 004h                              ; 80 ef 04
    1049610511    movzx ax, bh                              ; 0f b6 c7
     
    1050010515    sar ax, 1                                 ; d1 f8
    1050110516    test ax, ax                               ; 85 c0
    10502     je short 0734bh                           ; 74 05
    10503     push 00a05h                               ; 68 05 0a
    10504     jmp short 0734eh                          ; eb 03
    10505     push 00a10h                               ; 68 10 0a
     10517    je short 073b5h                           ; 74 05
     10518    push 00a1ch                               ; 68 1c 0a
     10519    jmp short 073b8h                          ; eb 03
     10520    push 00a27h                               ; 68 27 0a
    1050610521    push strict byte 00002h                   ; 6a 02
    10507     call 01972h                               ; e8 1f a6
     10522    call 01972h                               ; e8 b5 a5
    1050810523    add sp, strict byte 00004h                ; 83 c4 04
    1050910524    movzx ax, bh                              ; 0f b6 c7
     
    1051210527    idiv di                                   ; f7 ff
    1051310528    test dx, dx                               ; 85 d2
    10514     je short 07368h                           ; 74 05
    10515     push 00a19h                               ; 68 19 0a
    10516     jmp short 0736bh                          ; eb 03
    10517     push 00a1fh                               ; 68 1f 0a
     10529    je short 073d2h                           ; 74 05
     10530    push 00a30h                               ; 68 30 0a
     10531    jmp short 073d5h                          ; eb 03
     10532    push 00a36h                               ; 68 36 0a
    1051810533    push di                                   ; 57
    10519     call 01972h                               ; e8 03 a6
     10534    call 01972h                               ; e8 99 a5
    1052010535    add sp, strict byte 00004h                ; 83 c4 04
    1052110536    db  0feh, 0c3h
    1052210537    ; inc bl                                    ; fe c3
    10523     jmp near 0729dh                           ; e9 26 ff
     10538    jmp near 07307h                           ; e9 26 ff
    1052410539    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10525     jne short 07390h                          ; 75 13
     10540    jne short 073fah                          ; 75 13
    1052610541    test cl, cl                               ; 84 c9
    10527     jne short 07390h                          ; 75 0f
     10542    jne short 073fah                          ; 75 0f
    1052810543    test ch, ch                               ; 84 ed
    10529     jne short 07390h                          ; 75 0b
    10530     push 00a26h                               ; 68 26 0a
     10544    jne short 073fah                          ; 75 0b
     10545    push 00a3dh                               ; 68 3d 0a
    1053110546    push strict byte 00002h                   ; 6a 02
    10532     call 01972h                               ; e8 e5 a5
     10547    call 01972h                               ; e8 7b a5
    1053310548    add sp, strict byte 00004h                ; 83 c4 04
    10534     push 00a3ah                               ; 68 3a 0a
     10549    push 00a51h                               ; 68 51 0a
    1053510550    push strict byte 00002h                   ; 6a 02
    10536     call 01972h                               ; e8 da a5
     10551    call 01972h                               ; e8 70 a5
    1053710552    add sp, strict byte 00004h                ; 83 c4 04
    1053810553    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1054410559    pop bp                                    ; 5d
    1054510560    retn                                      ; c3
    10546 get_boot_drive_:                             ; 0xf73a5 LB 0x28
     10561get_boot_drive_:                             ; 0xf740f LB 0x28
    1054710562    push bp                                   ; 55
    1054810563    mov bp, sp                                ; 89 e5
     
    1055210567    mov dx, strict word 0000eh                ; ba 0e 00
    1055310568    mov ax, strict word 00040h                ; b8 40 00
    10554     call 0166ch                               ; e8 b7 a2
     10569    call 0166ch                               ; e8 4d a2
    1055510570    mov dx, 002c0h                            ; ba c0 02
    10556     call 01650h                               ; e8 95 a2
     10571    call 01650h                               ; e8 2b a2
    1055710572    sub bl, 002h                              ; 80 eb 02
    1055810573    cmp bl, al                                ; 38 c3
    10559     jc short 073c4h                           ; 72 02
     10574    jc short 0742eh                           ; 72 02
    1056010575    mov BL, strict byte 0ffh                  ; b3 ff
    1056110576    mov al, bl                                ; 88 d8
     
    1056510580    pop bp                                    ; 5d
    1056610581    retn                                      ; c3
    10567 show_logo_:                                  ; 0xf73cd LB 0x224
     10582show_logo_:                                  ; 0xf7437 LB 0x224
    1056810583    push bp                                   ; 55
    1056910584    mov bp, sp                                ; 89 e5
     
    1057610591    mov dx, strict word 0000eh                ; ba 0e 00
    1057710592    mov ax, strict word 00040h                ; b8 40 00
    10578     call 0166ch                               ; e8 8b a2
     10593    call 0166ch                               ; e8 21 a2
    1057910594    mov si, ax                                ; 89 c6
    1058010595    xor cl, cl                                ; 30 c9
     
    1058710602    out strict byte 040h, AL                  ; e6 40
    1058810603    movzx ax, dl                              ; 0f b6 c2
    10589     call 07261h                               ; e8 68 fe
     10604    call 072cbh                               ; e8 68 fe
    1059010605    cmp ax, 066bbh                            ; 3d bb 66
    10591     jne near 074d1h                           ; 0f 85 d1 00
     10606    jne near 0753bh                           ; 0f 85 d1 00
    1059210607    push SS                                   ; 16
    1059310608    pop ES                                    ; 07
     
    1059710612    mov word [es:di], bx                      ; 26 89 1d
    1059810613    cmp ax, strict word 0004fh                ; 3d 4f 00
    10599     jne near 074d1h                           ; 0f 85 bd 00
     10614    jne near 0753bh                           ; 0f 85 bd 00
    1060010615    mov al, dl                                ; 88 d0
    1060110616    add AL, strict byte 004h                  ; 04 04
    1060210617    xor ah, ah                                ; 30 e4
    10603     call 0724bh                               ; e8 2e fe
     10618    call 072b5h                               ; e8 2e fe
    1060410619    mov ch, al                                ; 88 c5
    1060510620    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1060710622    add AL, strict byte 005h                  ; 04 05
    1060810623    xor ah, ah                                ; 30 e4
    10609     call 0724bh                               ; e8 20 fe
     10624    call 072b5h                               ; e8 20 fe
    1061010625    mov dh, al                                ; 88 c6
    1061110626    mov byte [bp-010h], al                    ; 88 46 f0
     
    1061310628    add AL, strict byte 002h                  ; 04 02
    1061410629    xor ah, ah                                ; 30 e4
    10615     call 07261h                               ; e8 28 fe
     10630    call 072cbh                               ; e8 28 fe
    1061610631    mov bx, ax                                ; 89 c3
    1061710632    mov word [bp-014h], ax                    ; 89 46 ec
     
    1061910634    add AL, strict byte 006h                  ; 04 06
    1062010635    xor ah, ah                                ; 30 e4
    10621     call 0724bh                               ; e8 04 fe
     10636    call 072b5h                               ; e8 04 fe
    1062210637    mov byte [bp-012h], al                    ; 88 46 ee
    1062310638    test ch, ch                               ; 84 ed
    10624     jne short 07458h                          ; 75 0a
     10639    jne short 074c2h                          ; 75 0a
    1062510640    test dh, dh                               ; 84 f6
    10626     jne short 07458h                          ; 75 06
     10641    jne short 074c2h                          ; 75 06
    1062710642    test bx, bx                               ; 85 db
    10628     je near 074d1h                            ; 0f 84 79 00
     10643    je near 0753bh                            ; 0f 84 79 00
    1062910644    mov bx, 00142h                            ; bb 42 01
    1063010645    mov ax, 04f02h                            ; b8 02 4f
    1063110646    int 010h                                  ; cd 10
    1063210647    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10633     je short 07489h                           ; 74 23
     10648    je short 074f3h                           ; 74 23
    1063410649    xor bx, bx                                ; 31 db
    10635     jmp short 07470h                          ; eb 06
     10650    jmp short 074dah                          ; eb 06
    1063610651    inc bx                                    ; 43
    1063710652    cmp bx, strict byte 00010h                ; 83 fb 10
    10638     jnbe short 07490h                         ; 77 20
     10653    jnbe short 074fah                         ; 77 20
    1063910654    mov ax, bx                                ; 89 d8
    1064010655    or ah, 002h                               ; 80 cc 02
     
    1064310658    xor dx, dx                                ; 31 d2
    1064410659    mov ax, strict word 00001h                ; b8 01 00
    10645     call 07199h                               ; e8 18 fd
     10660    call 07203h                               ; e8 18 fd
    1064610661    cmp AL, strict byte 086h                  ; 3c 86
    10647     jne short 0746ah                          ; 75 e5
     10662    jne short 074d4h                          ; 75 e5
    1064810663    mov CL, strict byte 001h                  ; b1 01
    10649     jmp short 07490h                          ; eb 07
     10664    jmp short 074fah                          ; eb 07
    1065010665    mov ax, 00210h                            ; b8 10 02
    1065110666    mov dx, 003b8h                            ; ba b8 03
    1065210667    out DX, ax                                ; ef
    1065310668    test cl, cl                               ; 84 c9
    10654     jne short 074a6h                          ; 75 12
     10669    jne short 07510h                          ; 75 12
    1065510670    mov ax, word [bp-014h]                    ; 8b 46 ec
    1065610671    shr ax, 004h                              ; c1 e8 04
    1065710672    mov dx, strict word 00001h                ; ba 01 00
    10658     call 07199h                               ; e8 f9 fc
     10673    call 07203h                               ; e8 f9 fc
    1065910674    cmp AL, strict byte 086h                  ; 3c 86
    10660     jne short 074a6h                          ; 75 02
     10675    jne short 07510h                          ; 75 02
    1066110676    mov CL, strict byte 001h                  ; b1 01
    1066210677    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10663     je short 074d1h                           ; 74 25
     10678    je short 0753bh                           ; 74 25
    1066410679    test cl, cl                               ; 84 c9
    10665     jne short 074d1h                          ; 75 21
     10680    jne short 0753bh                          ; 75 21
    1066610681    mov bx, strict word 00010h                ; bb 10 00
    10667     jmp short 074bah                          ; eb 05
     10682    jmp short 07524h                          ; eb 05
    1066810683    dec bx                                    ; 4b
    1066910684    test bx, bx                               ; 85 db
    10670     jbe short 074d1h                          ; 76 17
     10685    jbe short 0753bh                          ; 76 17
    1067110686    mov ax, bx                                ; 89 d8
    1067210687    or ah, 002h                               ; 80 cc 02
     
    1067510690    xor dx, dx                                ; 31 d2
    1067610691    mov ax, strict word 00001h                ; b8 01 00
    10677     call 07199h                               ; e8 ce fc
     10692    call 07203h                               ; e8 ce fc
    1067810693    cmp AL, strict byte 086h                  ; 3c 86
    10679     jne short 074b5h                          ; 75 e6
     10694    jne short 0751fh                          ; 75 e6
    1068010695    mov CL, strict byte 001h                  ; b1 01
    1068110696    xor bx, bx                                ; 31 db
    1068210697    mov dx, 00339h                            ; ba 39 03
    1068310698    mov ax, si                                ; 89 f0
    10684     call 0165eh                               ; e8 83 a1
     10699    call 0165eh                               ; e8 19 a1
    1068510700    mov AL, strict byte 003h                  ; b0 03
    1068610701    mov AH, strict byte 000h                  ; b4 00
    1068710702    int 010h                                  ; cd 10
    1068810703    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    10689     je near 075d2h                            ; 0f 84 e9 00
     10704    je near 0763ch                            ; 0f 84 e9 00
    1069010705    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    10691     jne short 0751fh                          ; 75 30
     10706    jne short 07589h                          ; 75 30
    1069210707    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    10693     jne short 0751fh                          ; 75 2a
     10708    jne short 07589h                          ; 75 2a
    1069410709    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    10695     jne short 0751fh                          ; 75 24
     10710    jne short 07589h                          ; 75 24
    1069610711    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    10697     jne short 0750ch                          ; 75 0b
    10698     push 00a3ch                               ; 68 3c 0a
     10712    jne short 07576h                          ; 75 0b
     10713    push 00a53h                               ; 68 53 0a
    1069910714    push strict byte 00002h                   ; 6a 02
    10700     call 01972h                               ; e8 69 a4
     10715    call 01972h                               ; e8 ff a3
    1070110716    add sp, strict byte 00004h                ; 83 c4 04
    1070210717    test cl, cl                               ; 84 c9
    10703     jne short 0751fh                          ; 75 0f
     10718    jne short 07589h                          ; 75 0f
    1070410719    mov dx, strict word 00001h                ; ba 01 00
    1070510720    mov ax, 000c0h                            ; b8 c0 00
    10706     call 07199h                               ; e8 80 fc
     10721    call 07203h                               ; e8 80 fc
    1070710722    cmp AL, strict byte 086h                  ; 3c 86
    10708     jne short 0751fh                          ; 75 02
     10723    jne short 07589h                          ; 75 02
    1070910724    mov CL, strict byte 001h                  ; b1 01
    1071010725    test cl, cl                               ; 84 c9
    10711     je near 075d2h                            ; 0f 84 ad 00
     10726    je near 0763ch                            ; 0f 84 ad 00
    1071210727    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1071310728    mov ax, 00100h                            ; b8 00 01
     
    1072610741    ; xor dx, dx                                ; 33 d2
    1072710742    int 010h                                  ; cd 10
    10728     push 00a5eh                               ; 68 5e 0a
     10743    push 00a75h                               ; 68 75 0a
    1072910744    push strict byte 00002h                   ; 6a 02
    10730     call 01972h                               ; e8 24 a4
     10745    call 01972h                               ; e8 ba a3
    1073110746    add sp, strict byte 00004h                ; 83 c4 04
    10732     call 07275h                               ; e8 21 fd
    10733     push 00aa2h                               ; 68 a2 0a
     10747    call 072dfh                               ; e8 21 fd
     10748    push 00ab9h                               ; 68 b9 0a
    1073410749    push strict byte 00002h                   ; 6a 02
    10735     call 01972h                               ; e8 16 a4
     10750    call 01972h                               ; e8 ac a3
    1073610751    add sp, strict byte 00004h                ; 83 c4 04
    1073710752    mov dx, strict word 00001h                ; ba 01 00
    1073810753    mov ax, strict word 00040h                ; b8 40 00
    10739     call 07199h                               ; e8 31 fc
     10754    call 07203h                               ; e8 31 fc
    1074010755    mov bl, al                                ; 88 c3
    1074110756    test al, al                               ; 84 c0
    10742     je short 0755fh                           ; 74 f1
     10757    je short 075c9h                           ; 74 f1
    1074310758    cmp AL, strict byte 030h                  ; 3c 30
    10744     je short 075c0h                           ; 74 4e
     10759    je short 0762ah                           ; 74 4e
    1074510760    cmp bl, 002h                              ; 80 fb 02
    10746     jc short 07599h                           ; 72 22
     10761    jc short 07603h                           ; 72 22
    1074710762    cmp bl, 009h                              ; 80 fb 09
    10748     jnbe short 07599h                         ; 77 1d
     10763    jnbe short 07603h                         ; 77 1d
    1074910764    movzx ax, bl                              ; 0f b6 c3
    10750     call 073a5h                               ; e8 23 fe
     10765    call 0740fh                               ; e8 23 fe
    1075110766    cmp AL, strict byte 0ffh                  ; 3c ff
    10752     jne short 07588h                          ; 75 02
    10753     jmp short 0755fh                          ; eb d7
     10767    jne short 075f2h                          ; 75 02
     10768    jmp short 075c9h                          ; eb d7
    1075410769    movzx bx, al                              ; 0f b6 d8
    1075510770    mov dx, 00338h                            ; ba 38 03
    1075610771    mov ax, si                                ; 89 f0
    10757     call 0165eh                               ; e8 cb a0
     10772    call 0165eh                               ; e8 61 a0
    1075810773    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    10759     jmp short 075c0h                          ; eb 27
     10774    jmp short 0762ah                          ; eb 27
    1076010775    cmp bl, 02eh                              ; 80 fb 2e
    10761     je short 075aeh                           ; 74 10
     10776    je short 07618h                           ; 74 10
    1076210777    cmp bl, 026h                              ; 80 fb 26
    10763     je short 075b4h                           ; 74 11
     10778    je short 0761eh                           ; 74 11
    1076410779    cmp bl, 021h                              ; 80 fb 21
    10765     jne short 075bah                          ; 75 12
     10780    jne short 07624h                          ; 75 12
    1076610781    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    10767     jmp short 075c0h                          ; eb 12
     10782    jmp short 0762ah                          ; eb 12
    1076810783    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    10769     jmp short 075c0h                          ; eb 0c
     10784    jmp short 0762ah                          ; eb 0c
    1077010785    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    10771     jmp short 075c0h                          ; eb 06
     10786    jmp short 0762ah                          ; eb 06
    1077210787    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    10773     je short 0755fh                           ; 74 9f
     10788    je short 075c9h                           ; 74 9f
    1077410789    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1077510790    mov dx, 00339h                            ; ba 39 03
    1077610791    mov ax, si                                ; 89 f0
    10777     call 0165eh                               ; e8 92 a0
     10792    call 0165eh                               ; e8 28 a0
    1077810793    mov AL, strict byte 003h                  ; b0 03
    1077910794    mov AH, strict byte 000h                  ; b4 00
     
    1078810803    push DS                                   ; 1e
    1078910804    mov ds, ax                                ; 8e d8
    10790     call 0edbfh                               ; e8 db 77
     10805    call 0edbfh                               ; e8 71 77
    1079110806    pop DS                                    ; 1f
    1079210807    popad                                     ; 66 61
     
    1079910814    pop bp                                    ; 5d
    1080010815    retn                                      ; c3
    10801 delay_boot_:                                 ; 0xf75f1 LB 0x67
     10816delay_boot_:                                 ; 0xf765b LB 0x67
    1080210817    push bp                                   ; 55
    1080310818    mov bp, sp                                ; 89 e5
     
    1080610821    mov dx, ax                                ; 89 c2
    1080710822    test ax, ax                               ; 85 c0
    10808     je short 07651h                           ; 74 55
     10823    je short 076bbh                           ; 74 55
    1080910824    mov AL, strict byte 034h                  ; b0 34
    1081010825    out strict byte 043h, AL                  ; e6 43
     
    1081410829    out strict byte 040h, AL                  ; e6 40
    1081510830    push dx                                   ; 52
    10816     push 00aech                               ; 68 ec 0a
     10831    push 00b03h                               ; 68 03 0b
    1081710832    push strict byte 00002h                   ; 6a 02
    10818     call 01972h                               ; e8 61 a3
     10833    call 01972h                               ; e8 f7 a2
    1081910834    add sp, strict byte 00006h                ; 83 c4 06
    1082010835    mov bx, dx                                ; 89 d3
    1082110836    test bx, bx                               ; 85 db
    10822     jbe short 07631h                          ; 76 17
     10837    jbe short 0769bh                          ; 76 17
    1082310838    push bx                                   ; 53
    10824     push 00b0ah                               ; 68 0a 0b
     10839    push 00b21h                               ; 68 21 0b
    1082510840    push strict byte 00002h                   ; 6a 02
    10826     call 01972h                               ; e8 4f a3
     10841    call 01972h                               ; e8 e5 a2
    1082710842    add sp, strict byte 00006h                ; 83 c4 06
    1082810843    xor dx, dx                                ; 31 d2
    1082910844    mov ax, strict word 00040h                ; b8 40 00
    10830     call 07199h                               ; e8 6b fb
     10845    call 07203h                               ; e8 6b fb
    1083110846    dec bx                                    ; 4b
    10832     jmp short 07616h                          ; eb e5
    10833     push 00a3ah                               ; 68 3a 0a
     10847    jmp short 07680h                          ; eb e5
     10848    push 00a51h                               ; 68 51 0a
    1083410849    push strict byte 00002h                   ; 6a 02
    10835     call 01972h                               ; e8 39 a3
     10850    call 01972h                               ; e8 cf a2
    1083610851    add sp, strict byte 00004h                ; 83 c4 04
    1083710852    mov AL, strict byte 034h                  ; b0 34
     
    1084410859    push DS                                   ; 1e
    1084510860    mov ds, ax                                ; 8e d8
    10846     call 0edbfh                               ; e8 71 77
     10861    call 0edbfh                               ; e8 07 77
    1084710862    pop DS                                    ; 1f
    1084810863    popad                                     ; 66 61
     
    1085210867    pop bp                                    ; 5d
    1085310868    retn                                      ; c3
    10854 scsi_cmd_data_in_:                           ; 0xf7658 LB 0xb2
     10869scsi_cmd_data_in_:                           ; 0xf76c2 LB 0xb2
    1085510870    push bp                                   ; 55
    1085610871    mov bp, sp                                ; 89 e5
     
    1086810883    ; sub ah, ah                                ; 2a e4
    1086910884    test AL, strict byte 001h                 ; a8 01
    10870     jne short 0766eh                          ; 75 f7
     10885    jne short 076d8h                          ; 75 f7
    1087110886    mov ax, bx                                ; 89 d8
    1087210887    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1087410889    shr dx, 1                                 ; d1 ea
    1087510890    rcr ax, 1                                 ; d1 d8
    10876     loop 0767fh                               ; e2 fa
     10891    loop 076e9h                               ; e2 fa
    1087710892    and ax, 000f0h                            ; 25 f0 00
    1087810893    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1089210907    shr dx, 1                                 ; d1 ea
    1089310908    rcr ax, 1                                 ; d1 d8
    10894     loop 076a5h                               ; e2 fa
     10909    loop 0770fh                               ; e2 fa
    1089510910    mov dx, si                                ; 89 f2
    1089610911    out DX, AL                                ; ee
     
    1089810913    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1089910914    cmp cx, ax                                ; 39 c1
    10900     jnc short 076c6h                          ; 73 0e
     10915    jnc short 07730h                          ; 73 0e
    1090110916    les di, [bp-00ah]                         ; c4 7e f6
    1090210917    add di, cx                                ; 01 cf
     
    1090510920    out DX, AL                                ; ee
    1090610921    inc cx                                    ; 41
    10907     jmp short 076b0h                          ; eb ea
     10922    jmp short 0771ah                          ; eb ea
    1090810923    mov dx, si                                ; 89 f2
    1090910924    in AL, DX                                 ; ec
     
    1091110926    ; sub ah, ah                                ; 2a e4
    1091210927    test AL, strict byte 001h                 ; a8 01
    10913     jne short 076c6h                          ; 75 f7
     10928    jne short 07730h                          ; 75 f7
    1091410929    lea dx, [si+001h]                         ; 8d 54 01
    1091510930    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10916     jne short 076deh                          ; 75 06
     10931    jne short 07748h                          ; 75 06
    1091710932    cmp bx, 08000h                            ; 81 fb 00 80
    10918     jbe short 076f8h                          ; 76 1a
     10933    jbe short 07762h                          ; 76 1a
    1091910934    mov cx, 08000h                            ; b9 00 80
    1092010935    les di, [bp+006h]                         ; c4 7e 06
     
    1092510940    add ax, 00800h                            ; 05 00 08
    1092610941    mov word [bp+008h], ax                    ; 89 46 08
    10927     jmp short 076cfh                          ; eb d7
     10942    jmp short 07739h                          ; eb d7
    1092810943    mov cx, bx                                ; 89 d9
    1092910944    les di, [bp+006h]                         ; c4 7e 06
     
    1093510950    pop bp                                    ; 5d
    1093610951    retn 0000ah                               ; c2 0a 00
    10937 scsi_cmd_data_out_:                          ; 0xf770a LB 0xb4
     10952scsi_cmd_data_out_:                          ; 0xf7774 LB 0xb4
    1093810953    push bp                                   ; 55
    1093910954    mov bp, sp                                ; 89 e5
     
    1095110966    ; sub ah, ah                                ; 2a e4
    1095210967    test AL, strict byte 001h                 ; a8 01
    10953     jne short 07720h                          ; 75 f7
     10968    jne short 0778ah                          ; 75 f7
    1095410969    mov ax, bx                                ; 89 d8
    1095510970    mov dx, word [bp+00ch]                    ; 8b 56 0c
     
    1095710972    shr dx, 1                                 ; d1 ea
    1095810973    rcr ax, 1                                 ; d1 d8
    10959     loop 07731h                               ; e2 fa
     10974    loop 0779bh                               ; e2 fa
    1096010975    and ax, 000f0h                            ; 25 f0 00
    1096110976    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
     
    1097510990    shr dx, 1                                 ; d1 ea
    1097610991    rcr ax, 1                                 ; d1 d8
    10977     loop 07757h                               ; e2 fa
     10992    loop 077c1h                               ; e2 fa
    1097810993    mov dx, di                                ; 89 fa
    1097910994    out DX, AL                                ; ee
     
    1098110996    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1098210997    cmp cx, ax                                ; 39 c1
    10983     jnc short 07778h                          ; 73 0e
     10998    jnc short 077e2h                          ; 73 0e
    1098410999    les si, [bp-00ah]                         ; c4 76 f6
    1098511000    add si, cx                                ; 01 ce
     
    1098811003    out DX, AL                                ; ee
    1098911004    inc cx                                    ; 41
    10990     jmp short 07762h                          ; eb ea
     11005    jmp short 077cch                          ; eb ea
    1099111006    lea dx, [di+001h]                         ; 8d 55 01
    1099211007    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    10993     jne short 07787h                          ; 75 06
     11008    jne short 077f1h                          ; 75 06
    1099411009    cmp bx, 08000h                            ; 81 fb 00 80
    10995     jbe short 077a2h                          ; 76 1b
     11010    jbe short 0780ch                          ; 76 1b
    1099611011    mov cx, 08000h                            ; b9 00 80
    1099711012    les si, [bp+006h]                         ; c4 76 06
     
    1100311018    add ax, 00800h                            ; 05 00 08
    1100411019    mov word [bp+008h], ax                    ; 89 46 08
    11005     jmp short 07778h                          ; eb d6
     11020    jmp short 077e2h                          ; eb d6
    1100611021    mov cx, bx                                ; 89 d9
    1100711022    les si, [bp+006h]                         ; c4 76 06
     
    1101311028    ; sub ah, ah                                ; 2a e4
    1101411029    test AL, strict byte 001h                 ; a8 01
    11015     jne short 077aah                          ; 75 f7
     11030    jne short 07814h                          ; 75 f7
    1101611031    xor ax, ax                                ; 31 c0
    1101711032    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1102011035    pop bp                                    ; 5d
    1102111036    retn 0000ah                               ; c2 0a 00
    11022 @scsi_read_sectors:                          ; 0xf77be LB 0xb9
     11037@scsi_read_sectors:                          ; 0xf7828 LB 0xb9
    1102311038    push bp                                   ; 55
    1102411039    mov bp, sp                                ; 89 e5
     
    1103111046    sub bl, 008h                              ; 80 eb 08
    1103211047    cmp bl, 004h                              ; 80 fb 04
    11033     jbe short 077eah                          ; 76 12
     11048    jbe short 07854h                          ; 76 12
    1103411049    movzx ax, bl                              ; 0f b6 c3
    1103511050    push ax                                   ; 50
    11036     push 00b0eh                               ; 68 0e 0b
    11037     push 00b20h                               ; 68 20 0b
     11051    push 00b26h                               ; 68 26 0b
     11052    push 00b38h                               ; 68 38 0b
    1103811053    push strict byte 00007h                   ; 6a 07
    11039     call 01972h                               ; e8 8b a1
     11054    call 01972h                               ; e8 21 a1
    1104011055    add sp, strict byte 00008h                ; 83 c4 08
    1104111056    mov es, [bp+006h]                         ; 8e 46 06
     
    1106411079    sal word [bp-008h], 1                     ; d1 66 f8
    1106511080    rcl word [bp-006h], 1                     ; d1 56 fa
    11066     loop 07833h                               ; e2 f8
     11081    loop 0789dh                               ; e2 f8
    1106711082    push dword [bp-008h]                      ; 66 ff 76 f8
    1106811083    db  066h, 026h, 0ffh, 074h, 004h
     
    1107211087    mov cx, ss                                ; 8c d1
    1107311088    lea bx, [bp-012h]                         ; 8d 5e ee
    11074     call 07658h                               ; e8 08 fe
     11089    call 076c2h                               ; e8 08 fe
    1107511090    mov ah, al                                ; 88 c4
    1107611091    test al, al                               ; 84 c0
    11077     jne short 0786bh                          ; 75 15
     11092    jne short 078d5h                          ; 75 15
    1107811093    mov es, [bp+006h]                         ; 8e 46 06
    1107911094    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1108811103    pop bp                                    ; 5d
    1108911104    retn 00004h                               ; c2 04 00
    11090 @scsi_write_sectors:                         ; 0xf7877 LB 0xb9
     11105@scsi_write_sectors:                         ; 0xf78e1 LB 0xb9
    1109111106    push bp                                   ; 55
    1109211107    mov bp, sp                                ; 89 e5
     
    1109911114    sub bl, 008h                              ; 80 eb 08
    1110011115    cmp bl, 004h                              ; 80 fb 04
    11101     jbe short 078a3h                          ; 76 12
     11116    jbe short 0790dh                          ; 76 12
    1110211117    movzx ax, bl                              ; 0f b6 c3
    1110311118    push ax                                   ; 50
    11104     push 00b3fh                               ; 68 3f 0b
    11105     push 00b20h                               ; 68 20 0b
     11119    push 00b57h                               ; 68 57 0b
     11120    push 00b38h                               ; 68 38 0b
    1110611121    push strict byte 00007h                   ; 6a 07
    11107     call 01972h                               ; e8 d2 a0
     11122    call 01972h                               ; e8 68 a0
    1110811123    add sp, strict byte 00008h                ; 83 c4 08
    1110911124    mov es, [bp+006h]                         ; 8e 46 06
     
    1113211147    sal word [bp-008h], 1                     ; d1 66 f8
    1113311148    rcl word [bp-006h], 1                     ; d1 56 fa
    11134     loop 078ech                               ; e2 f8
     11149    loop 07956h                               ; e2 f8
    1113511150    push dword [bp-008h]                      ; 66 ff 76 f8
    1113611151    db  066h, 026h, 0ffh, 074h, 004h
     
    1114011155    mov cx, ss                                ; 8c d1
    1114111156    lea bx, [bp-012h]                         ; 8d 5e ee
    11142     call 0770ah                               ; e8 01 fe
     11157    call 07774h                               ; e8 01 fe
    1114311158    mov ah, al                                ; 88 c4
    1114411159    test al, al                               ; 84 c0
    11145     jne short 07924h                          ; 75 15
     11160    jne short 0798eh                          ; 75 15
    1114611161    mov es, [bp+006h]                         ; 8e 46 06
    1114711162    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1115611171    pop bp                                    ; 5d
    1115711172    retn 00004h                               ; c2 04 00
    11158 scsi_cmd_packet_:                            ; 0xf7930 LB 0x166
     11173scsi_cmd_packet_:                            ; 0xf799a LB 0x166
    1115911174    push bp                                   ; 55
    1116011175    mov bp, sp                                ; 89 e5
     
    1116811183    mov dx, strict word 0000eh                ; ba 0e 00
    1116911184    mov ax, strict word 00040h                ; b8 40 00
    11170     call 0166ch                               ; e8 20 9d
     11185    call 0166ch                               ; e8 b6 9c
    1117111186    mov si, 00122h                            ; be 22 01
    1117211187    mov word [bp-00eh], ax                    ; 89 46 f2
    1117311188    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11174     jne short 07977h                          ; 75 1f
    11175     mov bx, 00d8ah                            ; bb 8a 0d
     11189    jne short 079e1h                          ; 75 1f
     11190    mov bx, 00da2h                            ; bb a2 0d
    1117611191    mov cx, ds                                ; 8c d9
    1117711192    mov ax, strict word 00004h                ; b8 04 00
    11178     call 01931h                               ; e8 ce 9f
    11179     push 00b52h                               ; 68 52 0b
    11180     push 00b62h                               ; 68 62 0b
     11193    call 01931h                               ; e8 64 9f
     11194    push 00b6ah                               ; 68 6a 0b
     11195    push 00b7ah                               ; 68 7a 0b
    1118111196    push strict byte 00004h                   ; 6a 04
    11182     call 01972h                               ; e8 04 a0
     11197    call 01972h                               ; e8 9a 9f
    1118311198    add sp, strict byte 00006h                ; 83 c4 06
    1118411199    mov dx, strict word 00001h                ; ba 01 00
    11185     jmp near 07a8bh                           ; e9 14 01
     11200    jmp near 07af5h                           ; e9 14 01
    1118611201    sub di, strict byte 00008h                ; 83 ef 08
    1118711202    sal di, 002h                              ; c1 e7 02
     
    1119711212    ; sub ah, ah                                ; 2a e4
    1119811213    test AL, strict byte 001h                 ; a8 01
    11199     jne short 07993h                          ; 75 f7
     11214    jne short 079fdh                          ; 75 f7
    1120011215    xor ax, ax                                ; 31 c0
    1120111216    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1121311228    shr dx, 1                                 ; d1 ea
    1121411229    rcr ax, 1                                 ; d1 d8
    11215     loop 079beh                               ; e2 fa
     11230    loop 07a28h                               ; e2 fa
    1121611231    and ax, 000f0h                            ; 25 f0 00
    1121711232    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1123111246    shr dx, 1                                 ; d1 ea
    1123211247    rcr ax, 1                                 ; d1 d8
    11233     loop 079e5h                               ; e2 fa
     11248    loop 07a4fh                               ; e2 fa
    1123411249    mov dx, bx                                ; 89 da
    1123511250    out DX, AL                                ; ee
     
    1123711252    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1123811253    cmp cx, ax                                ; 39 c1
    11239     jnc short 07a06h                          ; 73 0e
     11254    jnc short 07a70h                          ; 73 0e
    1124011255    les di, [bp-00ch]                         ; c4 7e f4
    1124111256    add di, cx                                ; 01 cf
     
    1124411259    out DX, AL                                ; ee
    1124511260    inc cx                                    ; 41
    11246     jmp short 079f0h                          ; eb ea
     11261    jmp short 07a5ah                          ; eb ea
    1124711262    mov dx, bx                                ; 89 da
    1124811263    in AL, DX                                 ; ec
     
    1125011265    ; sub ah, ah                                ; 2a e4
    1125111266    test AL, strict byte 001h                 ; a8 01
    11252     jne short 07a06h                          ; 75 f7
     11267    jne short 07a70h                          ; 75 f7
    1125311268    test AL, strict byte 002h                 ; a8 02
    11254     je short 07a21h                           ; 74 0e
     11269    je short 07a8bh                           ; 74 0e
    1125511270    lea dx, [bx+003h]                         ; 8d 57 03
    1125611271    xor al, al                                ; 30 c0
     
    1126011275    ; sub ah, ah                                ; 2a e4
    1126111276    mov dx, strict word 00003h                ; ba 03 00
    11262     jmp short 07a8bh                          ; eb 6a
     11277    jmp short 07af5h                          ; eb 6a
    1126311278    mov ax, word [bp+004h]                    ; 8b 46 04
    1126411279    test ax, ax                               ; 85 c0
    11265     je short 07a30h                           ; 74 08
     11280    je short 07a9ah                           ; 74 08
    1126611281    lea dx, [bx+001h]                         ; 8d 57 01
    1126711282    mov cx, ax                                ; 89 c1
    1126811283    in AL, DX                                 ; ec
    11269     loop 07a2dh                               ; e2 fd
     11284    loop 07a97h                               ; e2 fd
    1127011285    mov ax, word [bp+006h]                    ; 8b 46 06
    1127111286    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1127511290    lea ax, [bx+001h]                         ; 8d 47 01
    1127611291    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    11277     jne short 07a51h                          ; 75 07
     11292    jne short 07abbh                          ; 75 07
    1127811293    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    11279     jbe short 07a6eh                          ; 76 1d
     11294    jbe short 07ad8h                          ; 76 1d
    1128011295    mov dx, ax                                ; 89 c2
    1128111296    mov cx, 08000h                            ; b9 00 80
     
    1128711302    add ax, 00800h                            ; 05 00 08
    1128811303    mov word [bp+00eh], ax                    ; 89 46 0e
    11289     jmp short 07a41h                          ; eb d3
     11304    jmp short 07aabh                          ; eb d3
    1129011305    mov dx, ax                                ; 89 c2
    1129111306    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1129411309    mov es, [bp-00eh]                         ; 8e 46 f2
    1129511310    cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00
    11296     je short 07a89h                           ; 74 07
     11311    je short 07af3h                           ; 74 07
    1129711312    mov cx, word [es:si+01ch]                 ; 26 8b 4c 1c
    1129811313    in AL, DX                                 ; ec
    11299     loop 07a86h                               ; e2 fd
     11314    loop 07af0h                               ; e2 fd
    1130011315    xor dx, dx                                ; 31 d2
    1130111316    mov ax, dx                                ; 89 d0
     
    1130511320    pop bp                                    ; 5d
    1130611321    retn 0000ch                               ; c2 0c 00
    11307 scsi_enumerate_attached_devices_:            ; 0xf7a96 LB 0x3e5
     11322scsi_enumerate_attached_devices_:            ; 0xf7b00 LB 0x3e5
    1130811323    push bp                                   ; 55
    1130911324    mov bp, sp                                ; 89 e5
     
    1131711332    mov dx, strict word 0000eh                ; ba 0e 00
    1131811333    mov ax, strict word 00040h                ; b8 40 00
    11319     call 0166ch                               ; e8 c0 9b
     11334    call 0166ch                               ; e8 56 9b
    1132011335    mov si, 00122h                            ; be 22 01
    1132111336    mov word [bp-01ah], ax                    ; 89 46 e6
    1132211337    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    11323     jmp near 07e09h                           ; e9 4f 03
     11338    jmp near 07e73h                           ; e9 4f 03
    1132411339    mov es, [bp-01ah]                         ; 8e 46 e6
    1132511340    cmp byte [es:si+001e8h], 004h             ; 26 80 bc e8 01 04
    11326     jnc near 07e71h                           ; 0f 83 aa 03
     11341    jnc near 07edbh                           ; 0f 83 aa 03
    1132711342    mov cx, strict word 0000ah                ; b9 0a 00
    1132811343    xor bx, bx                                ; 31 db
    1132911344    mov dx, ss                                ; 8c d2
    1133011345    lea ax, [bp-026h]                         ; 8d 46 da
    11331     call 094dah                               ; e8 06 1a
     11346    call 0954ah                               ; e8 0c 1a
    1133211347    mov byte [bp-026h], 025h                  ; c6 46 da 25
    1133311348    push dword 000000008h                     ; 66 6a 08
     
    1134011355    lea bx, [bp-026h]                         ; 8d 5e da
    1134111356    mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
    11342     call 07658h                               ; e8 65 fb
     11357    call 076c2h                               ; e8 65 fb
    1134311358    test al, al                               ; 84 c0
    11344     je short 07b05h                           ; 74 0e
    11345     push 00b82h                               ; 68 82 0b
    11346     push 00bbbh                               ; 68 bb 0b
     11359    je short 07b6fh                           ; 74 0e
     11360    push 00b9ah                               ; 68 9a 0b
     11361    push 00bd3h                               ; 68 d3 0b
    1134711362    push strict byte 00007h                   ; 6a 07
    11348     call 01972h                               ; e8 70 9e
     11363    call 01972h                               ; e8 06 9e
    1134911364    add sp, strict byte 00006h                ; 83 c4 06
    1135011365    movzx ax, byte [bp-00225h]                ; 0f b6 86 db fd
     
    1135811373    sal ax, 1                                 ; d1 e0
    1135911374    rcl dx, 1                                 ; d1 d2
    11360     loop 07b20h                               ; e2 fa
     11375    loop 07b8ah                               ; e2 fa
    1136111376    or bx, ax                                 ; 09 c3
    1136211377    or dx, di                                 ; 09 fa
     
    1137511390    sal ax, 1                                 ; d1 e0
    1137611391    rcl dx, 1                                 ; d1 d2
    11377     loop 07b52h                               ; e2 fa
     11392    loop 07bbch                               ; e2 fa
    1137811393    or ax, bx                                 ; 09 d8
    1137911394    or dx, di                                 ; 09 fa
     
    1138211397    mov word [bp-016h], ax                    ; 89 46 ea
    1138311398    test dx, dx                               ; 85 d2
    11384     jne short 07b6fh                          ; 75 05
     11399    jne short 07bd9h                          ; 75 05
    1138511400    cmp ax, 00200h                            ; 3d 00 02
    11386     je short 07b8fh                           ; 74 20
    11387     mov bx, 00d8ah                            ; bb 8a 0d
     11401    je short 07bf9h                           ; 74 20
     11402    mov bx, 00da2h                            ; bb a2 0d
    1138811403    mov cx, ds                                ; 8c d9
    1138911404    mov ax, strict word 00004h                ; b8 04 00
    11390     call 01931h                               ; e8 b7 9d
     11405    call 01931h                               ; e8 4d 9d
    1139111406    push dx                                   ; 52
    1139211407    push word [bp-016h]                       ; ff 76 ea
    1139311408    push word [bp-010h]                       ; ff 76 f0
    11394     push 00bdah                               ; 68 da 0b
     11409    push 00bf2h                               ; 68 f2 0b
    1139511410    push strict byte 00004h                   ; 6a 04
    11396     call 01972h                               ; e8 e9 9d
     11411    call 01972h                               ; e8 7f 9d
    1139711412    add sp, strict byte 0000ah                ; 83 c4 0a
    11398     jmp near 07e00h                           ; e9 71 02
     11413    jmp near 07e6ah                           ; e9 71 02
    1139911414    mov es, [bp-01ah]                         ; 8e 46 e6
    1140011415    mov al, byte [es:si+001e8h]               ; 26 8a 84 e8 01
    1140111416    mov byte [bp-00ch], al                    ; 88 46 f4
    1140211417    cmp AL, strict byte 001h                  ; 3c 01
    11403     jc short 07baah                           ; 72 0c
    11404     jbe short 07bb2h                          ; 76 12
     11418    jc short 07c14h                           ; 72 0c
     11419    jbe short 07c1ch                          ; 76 12
    1140511420    cmp AL, strict byte 003h                  ; 3c 03
    11406     je short 07bbah                           ; 74 16
     11421    je short 07c24h                           ; 74 16
    1140711422    cmp AL, strict byte 002h                  ; 3c 02
    11408     je short 07bb6h                           ; 74 0e
    11409     jmp short 07c06h                          ; eb 5c
     11423    je short 07c20h                           ; 74 0e
     11424    jmp short 07c70h                          ; eb 5c
    1141011425    test al, al                               ; 84 c0
    11411     jne short 07c06h                          ; 75 58
     11426    jne short 07c70h                          ; 75 58
    1141211427    mov BL, strict byte 090h                  ; b3 90
    11413     jmp short 07bbch                          ; eb 0a
     11428    jmp short 07c26h                          ; eb 0a
    1141411429    mov BL, strict byte 098h                  ; b3 98
    11415     jmp short 07bbch                          ; eb 06
     11430    jmp short 07c26h                          ; eb 06
    1141611431    mov BL, strict byte 0a0h                  ; b3 a0
    11417     jmp short 07bbch                          ; eb 02
     11432    jmp short 07c26h                          ; eb 02
    1141811433    mov BL, strict byte 0a8h                  ; b3 a8
    1141911434    mov al, bl                                ; 88 d8
     
    1142111436    movzx cx, al                              ; 0f b6 c8
    1142211437    mov ax, cx                                ; 89 c8
    11423     call 016ach                               ; e8 e4 9a
     11438    call 016ach                               ; e8 7a 9a
    1142411439    test al, al                               ; 84 c0
    11425     je short 07c06h                           ; 74 3a
     11440    je short 07c70h                           ; 74 3a
    1142611441    mov al, bl                                ; 88 d8
    1142711442    db  0feh, 0c0h
    1142811443    ; inc al                                    ; fe c0
    1142911444    xor ah, ah                                ; 30 e4
    11430     call 016ach                               ; e8 d7 9a
     11445    call 016ach                               ; e8 6d 9a
    1143111446    xor ah, ah                                ; 30 e4
    1143211447    mov dx, ax                                ; 89 c2
    1143311448    sal dx, 008h                              ; c1 e2 08
    1143411449    movzx ax, bl                              ; 0f b6 c3
    11435     call 016ach                               ; e8 ca 9a
     11450    call 016ach                               ; e8 60 9a
    1143611451    xor ah, ah                                ; 30 e4
    1143711452    add ax, dx                                ; 01 d0
     
    1144211457    add AL, strict byte 002h                  ; 04 02
    1144311458    xor ah, ah                                ; 30 e4
    11444     call 016ach                               ; e8 b7 9a
     11459    call 016ach                               ; e8 4d 9a
    1144511460    xor ah, ah                                ; 30 e4
    1144611461    mov word [bp-014h], ax                    ; 89 46 ec
    1144711462    mov ax, cx                                ; 89 c8
    11448     call 016ach                               ; e8 ad 9a
     11463    call 016ach                               ; e8 43 9a
    1144911464    xor ah, ah                                ; 30 e4
    1145011465    mov word [bp-01ch], ax                    ; 89 46 e4
    11451     jmp short 07c4bh                          ; eb 45
     11466    jmp short 07cb5h                          ; eb 45
    1145211467    mov ax, word [bp-018h]                    ; 8b 46 e8
    1145311468    cmp ax, strict word 00040h                ; 3d 40 00
    11454     jnbe short 07c10h                         ; 77 02
    11455     jne short 07c1ch                          ; 75 0c
     11469    jnbe short 07c7ah                         ; 77 02
     11470    jne short 07c86h                          ; 75 0c
    1145611471    mov word [bp-014h], 000ffh                ; c7 46 ec ff 00
    1145711472    mov word [bp-01ch], strict word 0003fh    ; c7 46 e4 3f 00
    11458     jmp short 07c34h                          ; eb 18
     11473    jmp short 07c9eh                          ; eb 18
    1145911474    cmp ax, strict word 00020h                ; 3d 20 00
    11460     jnbe short 07c23h                         ; 77 02
    11461     jne short 07c2ah                          ; 75 07
     11475    jnbe short 07c8dh                         ; 77 02
     11476    jne short 07c94h                          ; 75 07
    1146211477    mov word [bp-014h], 00080h                ; c7 46 ec 80 00
    11463     jmp short 07c2fh                          ; eb 05
     11478    jmp short 07c99h                          ; eb 05
    1146411479    mov word [bp-014h], strict word 00040h    ; c7 46 ec 40 00
    1146511480    mov word [bp-01ch], strict word 00020h    ; c7 46 e4 20 00
     
    1146911484    mov dx, word [bp-018h]                    ; 8b 56 e8
    1147011485    xor cx, cx                                ; 31 c9
    11471     call 09470h                               ; e8 2a 18
     11486    call 094e0h                               ; e8 30 18
    1147211487    mov di, ax                                ; 89 c7
    1147311488    mov word [bp-012h], dx                    ; 89 56 ee
     
    1149611511    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
    1149711512    cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
    11498     jne short 07ca7h                          ; 75 06
     11513    jne short 07d11h                          ; 75 06
    1149911514    cmp di, 00400h                            ; 81 ff 00 04
    11500     jbe short 07cafh                          ; 76 08
     11515    jbe short 07d19h                          ; 76 08
    1150111516    mov word [es:bx+028h], 00400h             ; 26 c7 47 28 00 04
    11502     jmp short 07cb3h                          ; eb 04
     11517    jmp short 07d1dh                          ; eb 04
    1150311518    mov word [es:bx+028h], di                 ; 26 89 7f 28
    11504     mov bx, 00d8ah                            ; bb 8a 0d
     11519    mov bx, 00da2h                            ; bb a2 0d
    1150511520    mov cx, ds                                ; 8c d9
    1150611521    mov ax, strict word 00004h                ; b8 04 00
    11507     call 01931h                               ; e8 73 9c
     11522    call 01931h                               ; e8 09 9c
    1150811523    push word [bp-018h]                       ; ff 76 e8
    1150911524    push word [bp-00eh]                       ; ff 76 f2
     
    1151411529    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1151511530    push ax                                   ; 50
    11516     push 00c08h                               ; 68 08 0c
     11531    push 00c20h                               ; 68 20 0c
    1151711532    push strict byte 00004h                   ; 6a 04
    11518     call 01972h                               ; e8 97 9c
     11533    call 01972h                               ; e8 2d 9c
    1151911534    add sp, strict byte 00012h                ; 83 c4 12
    1152011535    movzx ax, dl                              ; 0f b6 c2
     
    1152811543    mov word [es:bx+030h], ax                 ; 26 89 47 30
    1152911544    cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
    11530     jne short 07d05h                          ; 75 06
     11545    jne short 07d6fh                          ; 75 06
    1153111546    cmp di, 00400h                            ; 81 ff 00 04
    11532     jbe short 07d0dh                          ; 76 08
     11547    jbe short 07d77h                          ; 76 08
    1153311548    mov word [es:bx+02eh], 00400h             ; 26 c7 47 2e 00 04
    11534     jmp short 07d11h                          ; eb 04
     11549    jmp short 07d7bh                          ; eb 04
    1153511550    mov word [es:bx+02eh], di                 ; 26 89 7f 2e
    1153611551    movzx ax, dl                              ; 0f b6 c2
     
    1155411569    mov dx, strict word 00075h                ; ba 75 00
    1155511570    mov ax, strict word 00040h                ; b8 40 00
    11556     call 01650h                               ; e8 ff 98
     11571    call 01650h                               ; e8 95 98
    1155711572    db  0feh, 0c0h
    1155811573    ; inc al                                    ; fe c0
     
    1156011575    mov dx, strict word 00075h                ; ba 75 00
    1156111576    mov ax, strict word 00040h                ; b8 40 00
    11562     call 0165eh                               ; e8 ff 98
     11577    call 0165eh                               ; e8 95 98
    1156311578    inc byte [bp-00ch]                        ; fe 46 f4
    1156411579    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1156511580    mov es, [bp-01ah]                         ; 8e 46 e6
    1156611581    mov byte [es:si+001e8h], al               ; 26 88 84 e8 01
    11567     jmp near 07e00h                           ; e9 90 00
    11568     mov bx, 00d8ah                            ; bb 8a 0d
     11582    jmp near 07e6ah                           ; e9 90 00
     11583    mov bx, 00da2h                            ; bb a2 0d
    1156911584    mov cx, ds                                ; 8c d9
    1157011585    mov ax, strict word 00004h                ; b8 04 00
    11571     call 01931h                               ; e8 b6 9b
     11586    call 01931h                               ; e8 4c 9b
    1157211587    push word [bp-010h]                       ; ff 76 f0
    1157311588    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    1157411589    push ax                                   ; 50
    11575     push 00c32h                               ; 68 32 0c
     11590    push 00c4ah                               ; 68 4a 0c
    1157611591    push strict byte 00004h                   ; 6a 04
    11577     call 01972h                               ; e8 e7 9b
     11592    call 01972h                               ; e8 7d 9b
    1157811593    add sp, strict byte 00008h                ; 83 c4 08
    1157911594    mov dl, byte [bp-00ch]                    ; 8a 56 f4
     
    1161411629    inc word [bp-010h]                        ; ff 46 f0
    1161511630    cmp word [bp-010h], strict byte 00010h    ; 83 7e f0 10
    11616     jnl short 07e71h                          ; 7d 68
     11631    jnl short 07edbh                          ; 7d 68
    1161711632    mov byte [bp-026h], 012h                  ; c6 46 da 12
    1161811633    xor al, al                                ; 30 c0
     
    1163111646    lea bx, [bp-026h]                         ; 8d 5e da
    1163211647    mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
    11633     call 07658h                               ; e8 1e f8
     11648    call 076c2h                               ; e8 1e f8
    1163411649    test al, al                               ; 84 c0
    11635     je short 07e4ch                           ; 74 0e
    11636     push 00b82h                               ; 68 82 0b
    11637     push 00ba2h                               ; 68 a2 0b
     11650    je short 07eb6h                           ; 74 0e
     11651    push 00b9ah                               ; 68 9a 0b
     11652    push 00bbah                               ; 68 ba 0b
    1163811653    push strict byte 00007h                   ; 6a 07
    11639     call 01972h                               ; e8 29 9b
     11654    call 01972h                               ; e8 bf 9a
    1164011655    add sp, strict byte 00006h                ; 83 c4 06
    1164111656    test byte [bp-00226h], 0e0h               ; f6 86 da fd e0
    11642     jne short 07e5ch                          ; 75 09
     11657    jne short 07ec6h                          ; 75 09
    1164311658    test byte [bp-00226h], 01fh               ; f6 86 da fd 1f
    11644     je near 07abah                            ; 0f 84 5e fc
     11659    je near 07b24h                            ; 0f 84 5e fc
    1164511660    test byte [bp-00226h], 0e0h               ; f6 86 da fd e0
    11646     jne short 07e00h                          ; 75 9d
     11661    jne short 07e6ah                          ; 75 9d
    1164711662    mov al, byte [bp-00226h]                  ; 8a 86 da fd
    1164811663    and AL, strict byte 01fh                  ; 24 1f
    1164911664    cmp AL, strict byte 005h                  ; 3c 05
    11650     je near 07d70h                            ; 0f 84 01 ff
    11651     jmp short 07e00h                          ; eb 8f
     11665    je near 07ddah                            ; 0f 84 01 ff
     11666    jmp short 07e6ah                          ; eb 8f
    1165211667    lea sp, [bp-00ah]                         ; 8d 66 f6
    1165311668    pop di                                    ; 5f
     
    1165811673    pop bp                                    ; 5d
    1165911674    retn                                      ; c3
    11660 _scsi_init:                                  ; 0xf7e7b LB 0x66
     11675_scsi_init:                                  ; 0xf7ee5 LB 0x66
    1166111676    push bp                                   ; 55
    1166211677    mov bp, sp                                ; 89 e5
    1166311678    mov dx, strict word 0000eh                ; ba 0e 00
    1166411679    mov ax, strict word 00040h                ; b8 40 00
    11665     call 0166ch                               ; e8 e5 97
     11680    call 0166ch                               ; e8 7b 97
    1166611681    mov bx, 00122h                            ; bb 22 01
    1166711682    mov es, ax                                ; 8e c0
     
    1167411689    ; sub ah, ah                                ; 2a e4
    1167511690    cmp AL, strict byte 055h                  ; 3c 55
    11676     jne short 07eabh                          ; 75 0c
     11691    jne short 07f15h                          ; 75 0c
    1167711692    xor al, al                                ; 30 c0
    1167811693    mov dx, 00433h                            ; ba 33 04
    1167911694    out DX, AL                                ; ee
    1168011695    mov ax, 00430h                            ; b8 30 04
    11681     call 07a96h                               ; e8 eb fb
     11696    call 07b00h                               ; e8 eb fb
    1168211697    mov AL, strict byte 055h                  ; b0 55
    1168311698    mov dx, 00436h                            ; ba 36 04
     
    1168711702    ; sub ah, ah                                ; 2a e4
    1168811703    cmp AL, strict byte 055h                  ; 3c 55
    11689     jne short 07ec4h                          ; 75 0c
     11704    jne short 07f2eh                          ; 75 0c
    1169011705    xor al, al                                ; 30 c0
    1169111706    mov dx, 00437h                            ; ba 37 04
    1169211707    out DX, AL                                ; ee
    1169311708    mov ax, 00434h                            ; b8 34 04
    11694     call 07a96h                               ; e8 d2 fb
     11709    call 07b00h                               ; e8 d2 fb
    1169511710    mov AL, strict byte 055h                  ; b0 55
    1169611711    mov dx, 0043ah                            ; ba 3a 04
     
    1170011715    ; sub ah, ah                                ; 2a e4
    1170111716    cmp AL, strict byte 055h                  ; 3c 55
    11702     jne short 07eddh                          ; 75 0c
     11717    jne short 07f47h                          ; 75 0c
    1170311718    xor al, al                                ; 30 c0
    1170411719    mov dx, 0043bh                            ; ba 3b 04
    1170511720    out DX, AL                                ; ee
    1170611721    mov ax, 00438h                            ; b8 38 04
    11707     call 07a96h                               ; e8 b9 fb
     11722    call 07b00h                               ; e8 b9 fb
    1170811723    mov sp, bp                                ; 89 ec
    1170911724    pop bp                                    ; 5d
    1171011725    retn                                      ; c3
    11711 high_bits_save_:                             ; 0xf7ee1 LB 0x17
     11726high_bits_save_:                             ; 0xf7f4b LB 0x17
    1171211727    push bp                                   ; 55
    1171311728    mov bp, sp                                ; 89 e5
     
    1172111736    pop bp                                    ; 5d
    1172211737    retn                                      ; c3
    11723 high_bits_restore_:                          ; 0xf7ef8 LB 0x17
     11738high_bits_restore_:                          ; 0xf7f62 LB 0x17
    1172411739    push bp                                   ; 55
    1172511740    mov bp, sp                                ; 89 e5
     
    1173311748    pop bp                                    ; 5d
    1173411749    retn                                      ; c3
    11735 ahci_ctrl_set_bits_:                         ; 0xf7f0f LB 0x43
     11750ahci_ctrl_set_bits_:                         ; 0xf7f79 LB 0x43
    1173611751    push bp                                   ; 55
    1173711752    mov bp, sp                                ; 89 e5
     
    1177111786    pop bp                                    ; 5d
    1177211787    retn                                      ; c3
    11773 ahci_ctrl_clear_bits_:                       ; 0xf7f52 LB 0x47
     11788ahci_ctrl_clear_bits_:                       ; 0xf7fbc LB 0x47
    1177411789    push bp                                   ; 55
    1177511790    mov bp, sp                                ; 89 e5
     
    1181111826    pop bp                                    ; 5d
    1181211827    retn                                      ; c3
    11813 ahci_ctrl_is_bit_set_:                       ; 0xf7f99 LB 0x39
     11828ahci_ctrl_is_bit_set_:                       ; 0xf8003 LB 0x39
    1181411829    push bp                                   ; 55
    1181511830    mov bp, sp                                ; 89 e5
     
    1183311848    xchg dx, ax                               ; 92
    1183411849    test dx, di                               ; 85 fa
    11835     jne short 07fc5h                          ; 75 04
     11850    jne short 0802fh                          ; 75 04
    1183611851    test ax, bx                               ; 85 d8
    11837     je short 07fc9h                           ; 74 04
     11852    je short 08033h                           ; 74 04
    1183811853    mov AL, strict byte 001h                  ; b0 01
    11839     jmp short 07fcbh                          ; eb 02
     11854    jmp short 08035h                          ; eb 02
    1184011855    xor al, al                                ; 30 c0
    1184111856    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1184411859    pop bp                                    ; 5d
    1184511860    retn                                      ; c3
    11846 ahci_ctrl_extract_bits_:                     ; 0xf7fd2 LB 0x1b
     11861ahci_ctrl_extract_bits_:                     ; 0xf803c LB 0x1b
    1184711862    push si                                   ; 56
    1184811863    push bp                                   ; 55
     
    1185211867    and dx, cx                                ; 21 ca
    1185311868    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    11854     jcxz 07fe8h                               ; e3 06
     11869    jcxz 08052h                               ; e3 06
    1185511870    shr dx, 1                                 ; d1 ea
    1185611871    rcr ax, 1                                 ; d1 d8
    11857     loop 07fe2h                               ; e2 fa
     11872    loop 0804ch                               ; e2 fa
    1185811873    pop bp                                    ; 5d
    1185911874    pop si                                    ; 5e
    1186011875    retn 00002h                               ; c2 02 00
    11861 ahci_addr_to_phys_:                          ; 0xf7fed LB 0x1e
     11876ahci_addr_to_phys_:                          ; 0xf8057 LB 0x1e
    1186211877    push bx                                   ; 53
    1186311878    push cx                                   ; 51
     
    1187011885    sal ax, 1                                 ; d1 e0
    1187111886    rcl dx, 1                                 ; d1 d2
    11872     loop 07ffbh                               ; e2 fa
     11887    loop 08065h                               ; e2 fa
    1187311888    xor cx, cx                                ; 31 c9
    1187411889    add ax, bx                                ; 01 d8
     
    1187811893    pop bx                                    ; 5b
    1187911894    retn                                      ; c3
    11880 ahci_port_cmd_sync_:                         ; 0xf800b LB 0xd5
     11895ahci_port_cmd_sync_:                         ; 0xf8075 LB 0xd5
    1188111896    push bp                                   ; 55
    1188211897    mov bp, sp                                ; 89 e5
     
    1189211907    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
    1189311908    cmp AL, strict byte 0ffh                  ; 3c ff
    11894     je near 080d8h                            ; 0f 84 aa 00
     11909    je near 08142h                            ; 0f 84 aa 00
    1189511910    movzx cx, byte [es:si+00263h]             ; 26 0f b6 8c 63 02
    1189611911    xor dx, dx                                ; 31 d2
     
    1190411919    lea ax, [si+00080h]                       ; 8d 84 80 00
    1190511920    mov dx, es                                ; 8c c2
    11906     call 07fedh                               ; e8 96 ff
     11921    call 08057h                               ; e8 96 ff
    1190711922    mov es, [bp-00ah]                         ; 8e 46 f6
    1190811923    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1191411929    xor cx, cx                                ; 31 c9
    1191511930    mov ax, di                                ; 89 f8
    11916     call 07f0fh                               ; e8 98 fe
     11931    call 07f79h                               ; e8 98 fe
    1191711932    lea ax, [si+00138h]                       ; 8d 84 38 01
    1191811933    cwd                                       ; 99
     
    1194111956    mov dx, si                                ; 89 f2
    1194211957    mov ax, di                                ; 89 f8
    11943     call 07f99h                               ; e8 e2 fe
     11958    call 08003h                               ; e8 e2 fe
    1194411959    test al, al                               ; 84 c0
    11945     je short 0809ah                           ; 74 df
     11960    je short 08104h                           ; 74 df
    1194611961    mov bx, strict word 00001h                ; bb 01 00
    1194711962    xor cx, cx                                ; 31 c9
    1194811963    mov dx, si                                ; 89 f2
    1194911964    mov ax, di                                ; 89 f8
    11950     call 07f0fh                               ; e8 48 fe
     11965    call 07f79h                               ; e8 48 fe
    1195111966    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1195211967    add dx, 00118h                            ; 81 c2 18 01
     
    1195411969    xor cx, cx                                ; 31 c9
    1195511970    mov ax, di                                ; 89 f8
    11956     call 07f52h                               ; e8 7a fe
     11971    call 07fbch                               ; e8 7a fe
    1195711972    lea sp, [bp-006h]                         ; 8d 66 fa
    1195811973    pop di                                    ; 5f
     
    1196111976    pop bp                                    ; 5d
    1196211977    retn                                      ; c3
    11963 ahci_cmd_data_:                              ; 0xf80e0 LB 0x1ca
     11978ahci_cmd_data_:                              ; 0xf814a LB 0x1ca
    1196411979    push bp                                   ; 55
    1196511980    mov bp, sp                                ; 89 e5
     
    1198512000    mov ax, 00080h                            ; b8 80 00
    1198612001    mov dx, word [bp-00ah]                    ; 8b 56 f6
    11987     call 094dah                               ; e8 bb 13
     12002    call 0954ah                               ; e8 c1 13
    1198812003    mov es, [bp-00ah]                         ; 8e 46 f6
    1198912004    mov word [es:si+00080h], 08027h           ; 26 c7 84 80 00 27 80
     
    1200112016    shr bx, 1                                 ; d1 eb
    1200212017    rcr ax, 1                                 ; d1 d8
    12003     loop 08152h                               ; e2 fa
     12018    loop 081bch                               ; e2 fa
    1200412019    mov es, [bp-00ah]                         ; 8e 46 f6
    1200512020    mov byte [es:si+00085h], al               ; 26 88 84 85 00
     
    1202612041    mov bx, word [bp-016h]                    ; 8b 5e ea
    1202712042    xor cx, cx                                ; 31 c9
    12028     call 094a9h                               ; e8 ee 12
     12043    call 09519h                               ; e8 f4 12
    1202912044    push dx                                   ; 52
    1203012045    push ax                                   ; 50
     
    1203412049    mov ax, 0026ah                            ; b8 6a 02
    1203512050    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12036     call 093c5h                               ; e8 f4 11
     12051    call 0942fh                               ; e8 f4 11
    1203712052    mov es, [bp-00ah]                         ; 8e 46 f6
    1203812053    movzx ax, byte [es:si+00263h]             ; 26 0f b6 84 63 02
     
    1205412069    mov es, [bp-012h]                         ; 8e 46 ee
    1205512070    cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00
    12056     je short 0824ah                           ; 74 2c
     12071    je short 082b4h                           ; 74 2c
    1205712072    mov dx, word [es:di+01ch]                 ; 26 8b 55 1c
    1205812073    dec dx                                    ; 4a
     
    1207312088    movzx dx, byte [es:bx+00263h]             ; 26 0f b6 97 63 02
    1207412089    cmp ax, dx                                ; 39 d0
    12075     jnc short 08264h                          ; 73 03
     12090    jnc short 082ceh                          ; 73 03
    1207612091    inc ax                                    ; 40
    12077     jmp short 08254h                          ; eb f0
     12092    jmp short 082beh                          ; eb f0
    1207812093    mov al, byte [bp-008h]                    ; 8a 46 f8
    1207912094    cmp AL, strict byte 035h                  ; 3c 35
    12080     jne short 08271h                          ; 75 06
     12095    jne short 082dbh                          ; 75 06
    1208112096    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12082     jmp short 08285h                          ; eb 14
     12097    jmp short 082efh                          ; eb 14
    1208312098    cmp AL, strict byte 0a0h                  ; 3c a0
    12084     jne short 08281h                          ; 75 0c
     12099    jne short 082ebh                          ; 75 0c
    1208512100    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1208612101    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12087     jmp short 08285h                          ; eb 04
     12102    jmp short 082efh                          ; eb 04
    1208812103    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1208912104    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1209112106    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1209212107    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12093     call 0800bh                               ; e8 75 fd
     12108    call 08075h                               ; e8 75 fd
    1209412109    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1209512110    add ax, 0026ah                            ; 05 6a 02
    1209612111    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12097     call 0943eh                               ; e8 9c 11
     12112    call 094a8h                               ; e8 9c 11
    1209812113    lea sp, [bp-006h]                         ; 8d 66 fa
    1209912114    pop di                                    ; 5f
     
    1210212117    pop bp                                    ; 5d
    1210312118    retn                                      ; c3
    12104 ahci_port_deinit_current_:                   ; 0xf82aa LB 0x144
     12119ahci_port_deinit_current_:                   ; 0xf8314 LB 0x144
    1210512120    push bp                                   ; 55
    1210612121    mov bp, sp                                ; 89 e5
     
    1211712132    mov byte [bp-00ah], al                    ; 88 46 f6
    1211812133    cmp AL, strict byte 0ffh                  ; 3c ff
    12119     je near 083e5h                            ; 0f 84 17 01
     12134    je near 0844fh                            ; 0f 84 17 01
    1212012135    movzx dx, al                              ; 0f b6 d0
    1212112136    sal dx, 007h                              ; c1 e2 07
     
    1212412139    xor cx, cx                                ; 31 c9
    1212512140    mov ax, si                                ; 89 f0
    12126     call 07f52h                               ; e8 70 fc
     12141    call 07fbch                               ; e8 70 fc
    1212712142    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1212812143    sal ax, 007h                              ; c1 e0 07
     
    1213312148    xor cx, cx                                ; 31 c9
    1213412149    mov ax, si                                ; 89 f0
    12135     call 07f99h                               ; e8 9d fc
     12150    call 08003h                               ; e8 9d fc
    1213612151    cmp AL, strict byte 001h                  ; 3c 01
    12137     je short 082e2h                           ; 74 e2
     12152    je short 0834ch                           ; 74 e2
    1213812153    mov cx, strict word 00020h                ; b9 20 00
    1213912154    xor bx, bx                                ; 31 db
    1214012155    mov ax, di                                ; 89 f8
    1214112156    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12142     call 094dah                               ; e8 cd 11
     12157    call 0954ah                               ; e8 d3 11
    1214312158    lea ax, [di+00080h]                       ; 8d 85 80 00
    1214412159    mov cx, strict word 00040h                ; b9 40 00
    1214512160    xor bx, bx                                ; 31 db
    1214612161    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12147     call 094dah                               ; e8 be 11
     12162    call 0954ah                               ; e8 c4 11
    1214812163    lea ax, [di+00200h]                       ; 8d 85 00 02
    1214912164    mov cx, strict word 00060h                ; b9 60 00
    1215012165    xor bx, bx                                ; 31 db
    1215112166    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12152     call 094dah                               ; e8 af 11
     12167    call 0954ah                               ; e8 b5 11
    1215312168    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1215412169    add ax, 00108h                            ; 05 08 01
     
    1225212267    pop bp                                    ; 5d
    1225312268    retn                                      ; c3
    12254 ahci_port_init_:                             ; 0xf83ee LB 0x206
     12269ahci_port_init_:                             ; 0xf8458 LB 0x206
    1225512270    push bp                                   ; 55
    1225612271    mov bp, sp                                ; 89 e5
     
    1226212277    mov word [bp-00ah], dx                    ; 89 56 f6
    1226312278    mov byte [bp-008h], bl                    ; 88 5e f8
    12264     call 082aah                               ; e8 a8 fe
     12279    call 08314h                               ; e8 a8 fe
    1226512280    movzx dx, bl                              ; 0f b6 d3
    1226612281    sal dx, 007h                              ; c1 e2 07
     
    1227012285    mov bx, strict word 00011h                ; bb 11 00
    1227112286    xor cx, cx                                ; 31 c9
    12272     call 07f52h                               ; e8 36 fb
     12287    call 07fbch                               ; e8 36 fb
    1227312288    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1227412289    sal di, 007h                              ; c1 e7 07
     
    1227812293    mov bx, 0c011h                            ; bb 11 c0
    1227912294    xor cx, cx                                ; 31 c9
    12280     call 07f99h                               ; e8 62 fb
     12295    call 08003h                               ; e8 62 fb
    1228112296    cmp AL, strict byte 001h                  ; 3c 01
    12282     je short 0841ch                           ; 74 e1
     12297    je short 08486h                           ; 74 e1
    1228312298    mov cx, strict word 00020h                ; b9 20 00
    1228412299    xor bx, bx                                ; 31 db
    1228512300    mov ax, si                                ; 89 f0
    1228612301    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12287     call 094dah                               ; e8 92 10
     12302    call 0954ah                               ; e8 98 10
    1228812303    lea ax, [si+00080h]                       ; 8d 84 80 00
    1228912304    mov cx, strict word 00040h                ; b9 40 00
    1229012305    xor bx, bx                                ; 31 db
    1229112306    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12292     call 094dah                               ; e8 83 10
     12307    call 0954ah                               ; e8 89 10
    1229312308    mov ax, si                                ; 89 f0
    1229412309    add ah, 002h                              ; 80 c4 02
     
    1229712312    xor bx, bx                                ; 31 db
    1229812313    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12299     call 094dah                               ; e8 70 10
     12314    call 0954ah                               ; e8 76 10
    1230012315    lea ax, [di+00108h]                       ; 8d 85 08 01
    1230112316    cwd                                       ; 99
     
    1231112326    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1231212327    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12313     call 07fedh                               ; e8 60 fb
     12328    call 08057h                               ; e8 60 fb
    1231412329    mov es, [bp-00ah]                         ; 8e 46 f6
    1231512330    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1235612371    mov ax, si                                ; 89 f0
    1235712372    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12358     call 07fedh                               ; e8 f4 fa
     12373    call 08057h                               ; e8 f4 fa
    1235912374    mov es, [bp-00ah]                         ; 8e 46 f6
    1236012375    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     
    1246112476    pop bp                                    ; 5d
    1246212477    retn                                      ; c3
    12463 @ahci_read_sectors:                          ; 0xf85f4 LB 0x94
     12478@ahci_read_sectors:                          ; 0xf865e LB 0x94
    1246412479    push bp                                   ; 55
    1246512480    mov bp, sp                                ; 89 e5
     
    1247012485    sub di, strict byte 0000ch                ; 83 ef 0c
    1247112486    cmp di, strict byte 00004h                ; 83 ff 04
    12472     jbe short 08618h                          ; 76 0f
     12487    jbe short 08682h                          ; 76 0f
    1247312488    push di                                   ; 57
    12474     push 00c4eh                               ; 68 4e 0c
    12475     push 00c60h                               ; 68 60 0c
     12489    push 00c66h                               ; 68 66 0c
     12490    push 00c78h                               ; 68 78 0c
    1247612491    push strict byte 00007h                   ; 6a 07
    12477     call 01972h                               ; e8 5d 93
     12492    call 01972h                               ; e8 f3 92
    1247812493    add sp, strict byte 00008h                ; 83 c4 08
    1247912494    les bx, [bp+004h]                         ; c4 5e 04
    1248012495    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1248112496    xor ax, ax                                ; 31 c0
    12482     call 07ee1h                               ; e8 bc f8
     12497    call 07f4bh                               ; e8 bc f8
    1248312498    mov es, [bp+006h]                         ; 8e 46 06
    1248412499    add di, bx                                ; 01 df
     
    1248712502    mov dx, word [es:di+001eeh]               ; 26 8b 95 ee 01
    1248812503    xor ax, ax                                ; 31 c0
    12489     call 083eeh                               ; e8 b1 fd
     12504    call 08458h                               ; e8 b1 fd
    1249012505    mov bx, strict word 00025h                ; bb 25 00
    1249112506    mov ax, di                                ; 89 f8
    1249212507    mov dx, word [bp+006h]                    ; 8b 56 06
    12493     call 080e0h                               ; e8 98 fa
     12508    call 0814ah                               ; e8 98 fa
    1249412509    mov es, [bp+006h]                         ; 8e 46 06
    1249512510    mov bx, di                                ; 89 fb
     
    1251112526    mov dx, word [es:bx+001eeh]               ; 26 8b 97 ee 01
    1251212527    xor ax, ax                                ; 31 c0
    12513     call 07ef8h                               ; e8 7b f8
     12528    call 07f62h                               ; e8 7b f8
    1251412529    xor ax, ax                                ; 31 c0
    1251512530    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1251812533    pop bp                                    ; 5d
    1251912534    retn 00004h                               ; c2 04 00
    12520 @ahci_write_sectors:                         ; 0xf8688 LB 0x70
     12535@ahci_write_sectors:                         ; 0xf86f2 LB 0x70
    1252112536    push bp                                   ; 55
    1252212537    mov bp, sp                                ; 89 e5
     
    1252812543    sub bx, strict byte 0000ch                ; 83 eb 0c
    1252912544    cmp bx, strict byte 00004h                ; 83 fb 04
    12530     jbe short 086b0h                          ; 76 0f
     12545    jbe short 0871ah                          ; 76 0f
    1253112546    push bx                                   ; 53
    12532     push 00c7fh                               ; 68 7f 0c
    12533     push 00c60h                               ; 68 60 0c
     12547    push 00c97h                               ; 68 97 0c
     12548    push 00c78h                               ; 68 78 0c
    1253412549    push strict byte 00007h                   ; 6a 07
    12535     call 01972h                               ; e8 c5 92
     12550    call 01972h                               ; e8 5b 92
    1253612551    add sp, strict byte 00008h                ; 83 c4 08
    1253712552    mov es, cx                                ; 8e c1
    1253812553    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1253912554    xor ax, ax                                ; 31 c0
    12540     call 07ee1h                               ; e8 25 f8
     12555    call 07f4bh                               ; e8 25 f8
    1254112556    mov es, cx                                ; 8e c1
    1254212557    add bx, si                                ; 01 f3
     
    1254412559    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1254512560    xor ax, ax                                ; 31 c0
    12546     call 083eeh                               ; e8 1e fd
     12561    call 08458h                               ; e8 1e fd
    1254712562    mov bx, strict word 00035h                ; bb 35 00
    1254812563    mov ax, si                                ; 89 f0
    1254912564    mov dx, cx                                ; 89 ca
    12550     call 080e0h                               ; e8 06 fa
     12565    call 0814ah                               ; e8 06 fa
    1255112566    mov es, cx                                ; 8e c1
    1255212567    mov dx, word [es:si+00ah]                 ; 26 8b 54 0a
     
    1255412569    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1255512570    xor ax, ax                                ; 31 c0
    12556     call 07ef8h                               ; e8 0a f8
     12571    call 07f62h                               ; e8 0a f8
    1255712572    xor ax, ax                                ; 31 c0
    1255812573    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1256012575    pop bp                                    ; 5d
    1256112576    retn 00004h                               ; c2 04 00
    12562 ahci_cmd_packet_:                            ; 0xf86f8 LB 0x173
     12577ahci_cmd_packet_:                            ; 0xf8762 LB 0x173
    1256312578    push bp                                   ; 55
    1256412579    mov bp, sp                                ; 89 e5
     
    1257212587    mov dx, strict word 0000eh                ; ba 0e 00
    1257312588    mov ax, strict word 00040h                ; b8 40 00
    12574     call 0166ch                               ; e8 59 8f
     12589    call 0166ch                               ; e8 ef 8e
    1257512590    mov si, 00122h                            ; be 22 01
    1257612591    mov word [bp-008h], ax                    ; 89 46 f8
    1257712592    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12578     jne short 0873eh                          ; 75 1f
    12579     mov bx, 00d8ah                            ; bb 8a 0d
     12593    jne short 087a8h                          ; 75 1f
     12594    mov bx, 00da2h                            ; bb a2 0d
    1258012595    mov cx, ds                                ; 8c d9
    1258112596    mov ax, strict word 00004h                ; b8 04 00
    12582     call 01931h                               ; e8 07 92
    12583     push 00c92h                               ; 68 92 0c
    12584     push 00ca2h                               ; 68 a2 0c
     12597    call 01931h                               ; e8 9d 91
     12598    push 00caah                               ; 68 aa 0c
     12599    push 00cbah                               ; 68 ba 0c
    1258512600    push strict byte 00004h                   ; 6a 04
    12586     call 01972h                               ; e8 3d 92
     12601    call 01972h                               ; e8 d3 91
    1258712602    add sp, strict byte 00006h                ; 83 c4 06
    1258812603    mov ax, strict word 00001h                ; b8 01 00
    12589     jmp near 08862h                           ; e9 24 01
     12604    jmp near 088cch                           ; e9 24 01
    1259012605    test byte [bp+004h], 001h                 ; f6 46 04 01
    12591     jne short 08738h                          ; 75 f4
     12606    jne short 087a2h                          ; 75 f4
    1259212607    mov ax, word [bp+006h]                    ; 8b 46 06
    1259312608    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1259512610    sal ax, 1                                 ; d1 e0
    1259612611    rcl dx, 1                                 ; d1 d2
    12597     loop 0874dh                               ; e2 fa
     12612    loop 087b7h                               ; e2 fa
    1259812613    mov es, [bp-008h]                         ; 8e 46 f8
    1259912614    mov word [es:si], ax                      ; 26 89 04
     
    1260712622    mov dx, word [bp+008h]                    ; 8b 56 08
    1260812623    xor cx, cx                                ; 31 c9
    12609     call 09470h                               ; e8 f6 0c
     12624    call 094e0h                               ; e8 fc 0c
    1261012625    mov word [es:si+00ah], ax                 ; 26 89 44 0a
    1261112626    xor di, di                                ; 31 ff
     
    1261712632    xor ax, ax                                ; 31 c0
    1261812633    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12619     call 07ee1h                               ; e8 47 f7
     12634    call 07f4bh                               ; e8 47 f7
    1262012635    mov es, [bp-008h]                         ; 8e 46 f8
    1262112636    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    1262412639    mov dx, word [es:si+001eeh]               ; 26 8b 94 ee 01
    1262512640    xor ax, ax                                ; 31 c0
    12626     call 083eeh                               ; e8 3c fc
     12641    call 08458h                               ; e8 3c fc
    1262712642    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1262812643    push ax                                   ; 50
     
    1263112646    mov ax, 000c0h                            ; b8 c0 00
    1263212647    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12633     call 094e7h                               ; e8 21 0d
     12648    call 09557h                               ; e8 27 0d
    1263412649    mov es, [bp-008h]                         ; 8e 46 f8
    1263512650    mov word [es:si+014h], di                 ; 26 89 7c 14
     
    1263812653    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
    1263912654    test ax, ax                               ; 85 c0
    12640     je short 08804h                           ; 74 27
     12655    je short 0886eh                           ; 74 27
    1264112656    dec ax                                    ; 48
    1264212657    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1265112666    mov ax, si                                ; 89 f0
    1265212667    mov dx, word [bp-008h]                    ; 8b 56 f8
    12653     call 080e0h                               ; e8 d1 f8
     12668    call 0814ah                               ; e8 d1 f8
    1265412669    les bx, [bp-00eh]                         ; c4 5e f2
    1265512670    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1267412689    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1267512690    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12676     call 07ef8h                               ; e8 aa f6
     12691    call 07f62h                               ; e8 aa f6
    1267712692    les bx, [bp-00eh]                         ; c4 5e f2
    1267812693    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1267912694    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    12680     jne short 08860h                          ; 75 05
     12695    jne short 088cah                          ; 75 05
    1268112696    mov ax, strict word 00004h                ; b8 04 00
    12682     jmp short 08862h                          ; eb 02
     12697    jmp short 088cch                          ; eb 02
    1268312698    xor ax, ax                                ; 31 c0
    1268412699    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1268712702    pop bp                                    ; 5d
    1268812703    retn 0000ch                               ; c2 0c 00
    12689 ahci_port_detect_device_:                    ; 0xf886b LB 0x401
     12704ahci_port_detect_device_:                    ; 0xf88d5 LB 0x401
    1269012705    push bp                                   ; 55
    1269112706    mov bp, sp                                ; 89 e5
     
    1269912714    movzx cx, bl                              ; 0f b6 cb
    1270012715    mov bx, cx                                ; 89 cb
    12701     call 083eeh                               ; e8 69 fb
     12716    call 08458h                               ; e8 69 fb
    1270212717    mov dx, strict word 0000eh                ; ba 0e 00
    1270312718    mov ax, strict word 00040h                ; b8 40 00
    12704     call 0166ch                               ; e8 de 8d
     12719    call 0166ch                               ; e8 74 8d
    1270512720    mov word [bp-020h], ax                    ; 89 46 e0
    1270612721    mov si, 00122h                            ; be 22 01
     
    1277512790    mov bx, strict word 0000fh                ; bb 0f 00
    1277612791    xor cx, cx                                ; 31 c9
    12777     call 07fd2h                               ; e8 90 f6
     12792    call 0803ch                               ; e8 90 f6
    1277812793    cmp ax, strict word 00003h                ; 3d 03 00
    12779     jne near 08c64h                           ; 0f 85 1b 03
     12794    jne near 08cceh                           ; 0f 85 1b 03
    1278012795    mov ax, word [bp-016h]                    ; 8b 46 ea
    1278112796    add ax, 00130h                            ; 05 30 01
     
    1280412819    mov byte [bp-008h], al                    ; 88 46 f8
    1280512820    cmp AL, strict byte 004h                  ; 3c 04
    12806     jnc near 08c64h                           ; 0f 83 d5 02
     12821    jnc near 08cceh                           ; 0f 83 d5 02
    1280712822    mov dx, word [bp-016h]                    ; 8b 56 ea
    1280812823    add dx, 00118h                            ; 81 c2 18 01
     
    1281112826    mov bx, strict word 00010h                ; bb 10 00
    1281212827    xor cx, cx                                ; 31 c9
    12813     call 07f0fh                               ; e8 69 f5
     12828    call 07f79h                               ; e8 69 f5
    1281412829    mov ax, word [bp-016h]                    ; 8b 46 ea
    1281512830    add ax, 00124h                            ; 05 24 01
     
    1283512850    add cl, 00ch                              ; 80 c1 0c
    1283612851    test dx, dx                               ; 85 d2
    12837     jne near 08bb6h                           ; 0f 85 d4 01
     12852    jne near 08c20h                           ; 0f 85 d4 01
    1283812853    cmp ax, 00101h                            ; 3d 01 01
    12839     jne near 08bb6h                           ; 0f 85 cd 01
     12854    jne near 08c20h                           ; 0f 85 cd 01
    1284012855    mov es, [bp-00eh]                         ; 8e 46 f2
    1284112856    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1284912864    mov ax, si                                ; 89 f0
    1285012865    mov dx, word [bp-020h]                    ; 8b 56 e0
    12851     call 080e0h                               ; e8 cc f6
     12866    call 0814ah                               ; e8 cc f6
    1285212867    mov byte [bp-00ah], cl                    ; 88 4e f6
    1285312868    test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
     
    1286512880    mov word [bp-014h], dx                    ; 89 56 ec
    1286612881    cmp dx, 00fffh                            ; 81 fa ff 0f
    12867     jne short 08a57h                          ; 75 10
     12882    jne short 08ac1h                          ; 75 10
    1286812883    cmp di, strict byte 0ffffh                ; 83 ff ff
    12869     jne short 08a57h                          ; 75 0b
     12884    jne short 08ac1h                          ; 75 0b
    1287012885    mov di, word [bp-00160h]                  ; 8b be a0 fe
    1287112886    mov dx, word [bp-0015eh]                  ; 8b 96 a2 fe
     
    1289612911    mov al, byte [bp-008h]                    ; 8a 46 f8
    1289712912    cmp AL, strict byte 001h                  ; 3c 01
    12898     jc short 08ac2h                           ; 72 0c
    12899     jbe short 08acah                          ; 76 12
     12913    jc short 08b2ch                           ; 72 0c
     12914    jbe short 08b34h                          ; 76 12
    1290012915    cmp AL, strict byte 003h                  ; 3c 03
    12901     je short 08ad2h                           ; 74 16
     12916    je short 08b3ch                           ; 74 16
    1290212917    cmp AL, strict byte 002h                  ; 3c 02
    12903     je short 08aceh                           ; 74 0e
    12904     jmp short 08b1bh                          ; eb 59
     12918    je short 08b38h                           ; 74 0e
     12919    jmp short 08b85h                          ; eb 59
    1290512920    test al, al                               ; 84 c0
    12906     jne short 08b1bh                          ; 75 55
     12921    jne short 08b85h                          ; 75 55
    1290712922    mov DL, strict byte 040h                  ; b2 40
    12908     jmp short 08ad4h                          ; eb 0a
     12923    jmp short 08b3eh                          ; eb 0a
    1290912924    mov DL, strict byte 048h                  ; b2 48
    12910     jmp short 08ad4h                          ; eb 06
     12925    jmp short 08b3eh                          ; eb 06
    1291112926    mov DL, strict byte 050h                  ; b2 50
    12912     jmp short 08ad4h                          ; eb 02
     12927    jmp short 08b3eh                          ; eb 02
    1291312928    mov DL, strict byte 058h                  ; b2 58
    1291412929    mov al, dl                                ; 88 d0
     
    1291612931    movzx bx, al                              ; 0f b6 d8
    1291712932    mov ax, bx                                ; 89 d8
    12918     call 016ach                               ; e8 cc 8b
     12933    call 016ach                               ; e8 62 8b
    1291912934    test al, al                               ; 84 c0
    12920     je short 08b1bh                           ; 74 37
     12935    je short 08b85h                           ; 74 37
    1292112936    mov al, dl                                ; 88 d0
    1292212937    db  0feh, 0c0h
    1292312938    ; inc al                                    ; fe c0
    1292412939    xor ah, ah                                ; 30 e4
    12925     call 016ach                               ; e8 bf 8b
     12940    call 016ach                               ; e8 55 8b
    1292612941    xor ah, ah                                ; 30 e4
    1292712942    mov cx, ax                                ; 89 c1
    1292812943    sal cx, 008h                              ; c1 e1 08
    1292912944    movzx ax, dl                              ; 0f b6 c2
    12930     call 016ach                               ; e8 b2 8b
     12945    call 016ach                               ; e8 48 8b
    1293112946    xor ah, ah                                ; 30 e4
    1293212947    add ax, cx                                ; 01 c8
     
    1293512950    add AL, strict byte 002h                  ; 04 02
    1293612951    xor ah, ah                                ; 30 e4
    12937     call 016ach                               ; e8 a2 8b
     12952    call 016ach                               ; e8 38 8b
    1293812953    xor ah, ah                                ; 30 e4
    1293912954    mov word [bp-028h], ax                    ; 89 46 d8
    1294012955    mov ax, bx                                ; 89 d8
    12941     call 016ach                               ; e8 98 8b
     12956    call 016ach                               ; e8 2e 8b
    1294212957    xor ah, ah                                ; 30 e4
    1294312958    mov word [bp-024h], ax                    ; 89 46 dc
    12944     jmp short 08b28h                          ; eb 0d
     12959    jmp short 08b92h                          ; eb 0d
    1294512960    mov bx, di                                ; 89 fb
    1294612961    mov cx, word [bp-014h]                    ; 8b 4e ec
    1294712962    mov dx, ss                                ; 8c d2
    1294812963    lea ax, [bp-028h]                         ; 8d 46 d8
    12949     call 05389h                               ; e8 61 c8
    12950     mov bx, 00d8ah                            ; bb 8a 0d
     12964    call 053f3h                               ; e8 61 c8
     12965    mov bx, 00da2h                            ; bb a2 0d
    1295112966    mov cx, ds                                ; 8c d9
    1295212967    mov ax, strict word 00004h                ; b8 04 00
    12953     call 01931h                               ; e8 fe 8d
     12968    call 01931h                               ; e8 94 8d
    1295412969    push word [bp-014h]                       ; ff 76 ec
    1295512970    push di                                   ; 57
     
    1296612981    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1296712982    push ax                                   ; 50
    12968     push 00cc2h                               ; 68 c2 0c
     12983    push 00cdah                               ; 68 da 0c
    1296912984    push strict byte 00004h                   ; 6a 04
    12970     call 01972h                               ; e8 16 8e
     12985    call 01972h                               ; e8 ac 8d
    1297112986    add sp, strict byte 00018h                ; 83 c4 18
    1297212987    movzx di, byte [bp-00ah]                  ; 0f b6 7e f6
     
    1299613011    mov dx, strict word 00075h                ; ba 75 00
    1299713012    mov ax, strict word 00040h                ; b8 40 00
    12998     call 01650h                               ; e8 ab 8a
     13013    call 01650h                               ; e8 41 8a
    1299913014    db  0feh, 0c0h
    1300013015    ; inc al                                    ; fe c0
     
    1300213017    mov dx, strict word 00075h                ; ba 75 00
    1300313018    mov ax, strict word 00040h                ; b8 40 00
    13004     call 0165eh                               ; e8 ab 8a
    13005     jmp near 08c53h                           ; e9 9d 00
     13019    call 0165eh                               ; e8 41 8a
     13020    jmp near 08cbdh                           ; e9 9d 00
    1300613021    cmp dx, 0eb14h                            ; 81 fa 14 eb
    13007     jne near 08c53h                           ; 0f 85 95 00
     13022    jne near 08cbdh                           ; 0f 85 95 00
    1300813023    cmp ax, 00101h                            ; 3d 01 01
    13009     jne near 08c53h                           ; 0f 85 8e 00
     13024    jne near 08cbdh                           ; 0f 85 8e 00
    1301013025    mov es, [bp-00eh]                         ; 8e 46 f2
    1301113026    db  066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h
     
    1301913034    mov ax, si                                ; 89 f0
    1302013035    mov dx, word [bp-020h]                    ; 8b 56 e0
    13021     call 080e0h                               ; e8 f0 f4
     13036    call 0814ah                               ; e8 f0 f4
    1302213037    test byte [bp-00228h], 080h               ; f6 86 d8 fd 80
    1302313038    db  00fh, 095h, 0c0h
     
    1306013075    pop bp                                    ; 5d
    1306113076    retn                                      ; c3
    13062 ahci_mem_alloc_:                             ; 0xf8c6c LB 0x43
     13077ahci_mem_alloc_:                             ; 0xf8cd6 LB 0x43
    1306313078    push bp                                   ; 55
    1306413079    mov bp, sp                                ; 89 e5
     
    1307013085    mov dx, 00413h                            ; ba 13 04
    1307113086    xor ax, ax                                ; 31 c0
    13072     call 0166ch                               ; e8 f0 89
     13087    call 0166ch                               ; e8 86 89
    1307313088    test ax, ax                               ; 85 c0
    13074     je short 08ca5h                           ; 74 25
     13089    je short 08d0fh                           ; 74 25
    1307513090    dec ax                                    ; 48
    1307613091    mov bx, ax                                ; 89 c3
     
    1307913094    sal ax, 1                                 ; d1 e0
    1308013095    rcl dx, 1                                 ; d1 d2
    13081     loop 08c88h                               ; e2 fa
     13096    loop 08cf2h                               ; e2 fa
    1308213097    mov si, ax                                ; 89 c6
    1308313098    mov di, dx                                ; 89 d7
     
    1308513100    shr di, 1                                 ; d1 ef
    1308613101    rcr si, 1                                 ; d1 de
    13087     loop 08c95h                               ; e2 fa
     13102    loop 08cffh                               ; e2 fa
    1308813103    mov dx, 00413h                            ; ba 13 04
    1308913104    xor ax, ax                                ; 31 c0
    13090     call 0167ah                               ; e8 d7 89
     13105    call 0167ah                               ; e8 6d 89
    1309113106    mov ax, si                                ; 89 f0
    1309213107    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1309813113    pop bp                                    ; 5d
    1309913114    retn                                      ; c3
    13100 ahci_hba_init_:                              ; 0xf8caf LB 0x125
     13115ahci_hba_init_:                              ; 0xf8d19 LB 0x125
    1310113116    push bp                                   ; 55
    1310213117    mov bp, sp                                ; 89 e5
     
    1311013125    mov dx, strict word 0000eh                ; ba 0e 00
    1311113126    mov ax, strict word 00040h                ; b8 40 00
    13112     call 0166ch                               ; e8 a7 89
     13127    call 0166ch                               ; e8 3d 89
    1311313128    mov bx, 00122h                            ; bb 22 01
    1311413129    mov word [bp-010h], ax                    ; 89 46 f0
     
    1312713142    shr eax, 010h                             ; 66 c1 e8 10
    1312813143    xchg dx, ax                               ; 92
    13129     call 08c6ch                               ; e8 82 ff
     13144    call 08cd6h                               ; e8 82 ff
    1313013145    mov di, ax                                ; 89 c7
    1313113146    test ax, ax                               ; 85 c0
    13132     je near 08db3h                            ; 0f 84 c1 00
     13147    je near 08e1dh                            ; 0f 84 c1 00
    1313313148    mov es, [bp-010h]                         ; 8e 46 f0
    1313413149    mov word [es:bx+001eeh], di               ; 26 89 bf ee 01
     
    1314413159    mov dx, strict word 00004h                ; ba 04 00
    1314513160    mov ax, si                                ; 89 f0
    13146     call 07f0fh                               ; e8 e9 f1
     13161    call 07f79h                               ; e8 e9 f1
    1314713162    mov ax, strict word 00004h                ; b8 04 00
    1314813163    xor cx, cx                                ; 31 c9
     
    1316113176    xchg dx, ax                               ; 92
    1316213177    test AL, strict byte 001h                 ; a8 01
    13163     jne short 08d26h                          ; 75 de
     13178    jne short 08d90h                          ; 75 de
    1316413179    xor ax, ax                                ; 31 c0
    1316513180    xor cx, cx                                ; 31 c9
     
    1317913194    mov bx, strict word 0001fh                ; bb 1f 00
    1318013195    xor cx, cx                                ; 31 c9
    13181     call 07fd2h                               ; e8 66 f2
     13196    call 0803ch                               ; e8 66 f2
    1318213197    db  0feh, 0c0h
    1318313198    ; inc al                                    ; fe c0
    1318413199    mov byte [bp-00eh], al                    ; 88 46 f2
    1318513200    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    13186     jmp short 08d80h                          ; eb 09
     13201    jmp short 08deah                          ; eb 09
    1318713202    inc byte [bp-00ch]                        ; fe 46 f4
    1318813203    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    13189     jnc short 08db1h                          ; 73 31
     13204    jnc short 08e1bh                          ; 73 31
    1319013205    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1319113206    mov ax, strict word 00001h                ; b8 01 00
    1319213207    xor dx, dx                                ; 31 d2
    13193     jcxz 08d91h                               ; e3 06
     13208    jcxz 08dfbh                               ; e3 06
    1319413209    sal ax, 1                                 ; d1 e0
    1319513210    rcl dx, 1                                 ; d1 d2
    13196     loop 08d8bh                               ; e2 fa
     13211    loop 08df5h                               ; e2 fa
    1319713212    mov bx, ax                                ; 89 c3
    1319813213    mov cx, dx                                ; 89 d1
    1319913214    mov dx, strict word 0000ch                ; ba 0c 00
    1320013215    mov ax, si                                ; 89 f0
    13201     call 07f99h                               ; e8 fc f1
     13216    call 08003h                               ; e8 fc f1
    1320213217    test al, al                               ; 84 c0
    13203     je short 08d77h                           ; 74 d6
     13218    je short 08de1h                           ; 74 d6
    1320413219    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1320513220    xor ax, ax                                ; 31 c0
    1320613221    mov dx, di                                ; 89 fa
    13207     call 0886bh                               ; e8 bf fa
     13222    call 088d5h                               ; e8 bf fa
    1320813223    dec byte [bp-00eh]                        ; fe 4e f2
    13209     jne short 08d77h                          ; 75 c6
     13224    jne short 08de1h                          ; 75 c6
    1321013225    xor ax, ax                                ; 31 c0
    1321113226    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1321713232    pop bp                                    ; 5d
    1321813233    retn                                      ; c3
    13219     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0a3h, 08eh, 081h, 08eh, 087h, 08eh, 08dh, 08eh, 093h
    13220     db  08eh, 099h, 08eh, 09fh, 08eh, 0a3h, 08eh
    13221 _ahci_init:                                  ; 0xf8dd4 LB 0xfe
     13234    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 00dh, 08fh, 0ebh, 08eh, 0f1h, 08eh, 0f7h, 08eh, 0fdh
     13235    db  08eh, 003h, 08fh, 009h, 08fh, 00dh, 08fh
     13236_ahci_init:                                  ; 0xf8e3e LB 0xfe
    1322213237    push bp                                   ; 55
    1322313238    mov bp, sp                                ; 89 e5
     
    1322713242    mov ax, 00601h                            ; b8 01 06
    1322813243    mov dx, strict word 00001h                ; ba 01 00
    13229     call 092f2h                               ; e8 0d 05
     13244    call 0935ch                               ; e8 0d 05
    1323013245    mov dx, ax                                ; 89 c2
    1323113246    cmp ax, strict word 0ffffh                ; 3d ff ff
    13232     je near 08ecbh                            ; 0f 84 dd 00
     13247    je near 08f35h                            ; 0f 84 dd 00
    1323313248    xor al, al                                ; 30 c0
    1323413249    shr ax, 008h                              ; c1 e8 08
     
    1323813253    xor ah, ah                                ; 30 e4
    1323913254    mov bx, strict word 00034h                ; bb 34 00
    13240     call 0931dh                               ; e8 1a 05
     13255    call 09387h                               ; e8 1a 05
    1324113256    mov cl, al                                ; 88 c1
    1324213257    test cl, cl                               ; 84 c9
    13243     je short 08e2ch                           ; 74 23
     13258    je short 08e96h                           ; 74 23
    1324413259    movzx bx, cl                              ; 0f b6 d9
    1324513260    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1324713262    mov dx, di                                ; 89 fa
    1324813263    mov ax, si                                ; 89 f0
    13249     call 0931dh                               ; e8 02 05
     13264    call 09387h                               ; e8 02 05
    1325013265    cmp AL, strict byte 012h                  ; 3c 12
    13251     je short 08e2ch                           ; 74 0d
     13266    je short 08e96h                           ; 74 0d
    1325213267    mov al, cl                                ; 88 c8
    1325313268    db  0feh, 0c0h
     
    1325613271    mov dx, di                                ; 89 fa
    1325713272    mov ax, si                                ; 89 f0
    13258     jmp short 08e00h                          ; eb d4
     13273    jmp short 08e6ah                          ; eb d4
    1325913274    test cl, cl                               ; 84 c9
    13260     je near 08ecbh                            ; 0f 84 99 00
     13275    je near 08f35h                            ; 0f 84 99 00
    1326113276    add cl, 002h                              ; 80 c1 02
    1326213277    movzx bx, cl                              ; 0f b6 d9
     
    1326513280    mov dx, di                                ; 89 fa
    1326613281    mov ax, si                                ; 89 f0
    13267     call 0931dh                               ; e8 d6 04
     13282    call 09387h                               ; e8 d6 04
    1326813283    cmp AL, strict byte 010h                  ; 3c 10
    13269     jne near 08ecbh                           ; 0f 85 7e 00
     13284    jne near 08f35h                           ; 0f 85 7e 00
    1327013285    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1327113286    mov al, cl                                ; 88 c8
     
    1327413289    mov dx, di                                ; 89 fa
    1327513290    mov ax, si                                ; 89 f0
    13276     call 09341h                               ; e8 e2 04
     13291    call 093abh                               ; e8 e2 04
    1327713292    mov dx, ax                                ; 89 c2
    1327813293    and ax, strict word 0000fh                ; 25 0f 00
    1327913294    sub ax, strict word 00004h                ; 2d 04 00
    1328013295    cmp ax, strict word 0000bh                ; 3d 0b 00
    13281     jnbe short 08ea3h                         ; 77 37
     13296    jnbe short 08f0dh                         ; 77 37
    1328213297    push CS                                   ; 0e
    1328313298    pop ES                                    ; 07
    1328413299    mov cx, strict word 00008h                ; b9 08 00
    13285     mov di, 08dbdh                            ; bf bd 8d
     13300    mov di, 08e27h                            ; bf 27 8e
    1328613301    repne scasb                               ; f2 ae
    1328713302    sal cx, 1                                 ; d1 e1
    1328813303    mov di, cx                                ; 89 cf
    13289     mov ax, word [cs:di-0723ch]               ; 2e 8b 85 c4 8d
     13304    mov ax, word [cs:di-071d2h]               ; 2e 8b 85 2e 8e
    1329013305    jmp ax                                    ; ff e0
    1329113306    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    13292     jmp short 08ea3h                          ; eb 1c
     13307    jmp short 08f0dh                          ; eb 1c
    1329313308    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    13294     jmp short 08ea3h                          ; eb 16
     13309    jmp short 08f0dh                          ; eb 16
    1329513310    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    13296     jmp short 08ea3h                          ; eb 10
     13311    jmp short 08f0dh                          ; eb 10
    1329713312    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    13298     jmp short 08ea3h                          ; eb 0a
     13313    jmp short 08f0dh                          ; eb 0a
    1329913314    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    13300     jmp short 08ea3h                          ; eb 04
     13315    jmp short 08f0dh                          ; eb 04
    1330113316    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1330213317    mov si, dx                                ; 89 d6
     
    1330513320    mov al, byte [bp-006h]                    ; 8a 46 fa
    1330613321    test al, al                               ; 84 c0
    13307     je short 08ecbh                           ; 74 19
     13322    je short 08f35h                           ; 74 19
    1330813323    movzx bx, al                              ; 0f b6 d8
    1330913324    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1331013325    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    13311     call 09363h                               ; e8 a3 04
     13326    call 093cdh                               ; e8 a3 04
    1331213327    test AL, strict byte 001h                 ; a8 01
    13313     je short 08ecbh                           ; 74 07
     13328    je short 08f35h                           ; 74 07
    1331413329    and AL, strict byte 0f0h                  ; 24 f0
    1331513330    add ax, si                                ; 01 f0
    13316     call 08cafh                               ; e8 e4 fd
     13331    call 08d19h                               ; e8 e4 fd
    1331713332    lea sp, [bp-004h]                         ; 8d 66 fc
    1331813333    pop di                                    ; 5f
     
    1332013335    pop bp                                    ; 5d
    1332113336    retn                                      ; c3
    13322 apm_out_str_:                                ; 0xf8ed2 LB 0x39
     13337apm_out_str_:                                ; 0xf8f3c LB 0x39
    1332313338    push bp                                   ; 55
    1332413339    mov bp, sp                                ; 89 e5
     
    1332613341    mov bx, ax                                ; 89 c3
    1332713342    cmp byte [bx], 000h                       ; 80 3f 00
    13328     je short 08ee7h                           ; 74 0a
     13343    je short 08f51h                           ; 74 0a
    1332913344    mov al, byte [bx]                         ; 8a 07
    1333013345    out DX, AL                                ; ee
     
    1333313348    db  00ah, 0c0h
    1333413349    ; or al, al                                 ; 0a c0
    13335     jne short 08edfh                          ; 75 f8
     13350    jne short 08f49h                          ; 75 f8
    1333613351    lea sp, [bp-002h]                         ; 8d 66 fe
    1333713352    pop bx                                    ; 5b
    1333813353    pop bp                                    ; 5d
    1333913354    retn                                      ; c3
    13340     db  02eh, 08fh, 0fah
    13341     ; cs pop dx                                 ; 2e 8f fa
    13342     pop word [bx+si-071h]                     ; 8f 40 8f
    13343     pop bx                                    ; 5b
    13344     db  08fh, 0fah
    13345     ; pop dx                                    ; 8f fa
    13346     pop word [bp-00571h]                      ; 8f 86 8f fa
    13347     db  08fh, 08bh, 08fh, 0cfh
    13348     ; pop word [bp+di-03071h]                   ; 8f 8b 8f cf
    13349     db  08fh, 0cfh
    13350     ; pop di                                    ; 8f cf
    13351     db  08fh, 0cfh
    13352     ; pop di                                    ; 8f cf
    13353     db  08fh, 0cah
    13354     ; pop dx                                    ; 8f ca
    13355     db  08fh, 0cfh
    13356     ; pop di                                    ; 8f cf
    13357     db  08fh, 0cfh
    13358     ; pop di                                    ; 8f cf
    13359     db  08fh, 0c3h
    13360     ; pop bx                                    ; 8f c3
    13361     db  08fh
    13362 _apm_function:                               ; 0xf8f0b LB 0xf5
     13355    cbw                                       ; 98
     13356    db  08fh, 064h, 090h
     13357    ; pop word [si-070h]                        ; 8f 64 90
     13358    stosb                                     ; aa
     13359    db  08fh, 0c5h
     13360    ; pop bp                                    ; 8f c5
     13361    db  08fh, 064h, 090h
     13362    ; pop word [si-070h]                        ; 8f 64 90
     13363    db  0f0h, 08fh, 064h, 090h
     13364    ; Illegal opcode                            ; f0 8f 64 90
     13365    cmc                                       ; f5
     13366    db  08fh, 039h
     13367    ; pop word [bx+di]                          ; 8f 39
     13368    nop                                       ; 90
     13369    cmp word [bx+si-06fc7h], dx               ; 39 90 39 90
     13370    xor AL, strict byte 090h                  ; 34 90
     13371    cmp word [bx+si-06fc7h], dx               ; 39 90 39 90
     13372    db  02dh
     13373    nop                                       ; 90
     13374_apm_function:                               ; 0xf8f75 LB 0xf5
    1336313375    push bp                                   ; 55
    1336413376    mov bp, sp                                ; 89 e5
     
    1336813380    xor ah, ah                                ; 30 e4
    1336913381    cmp ax, strict word 0000eh                ; 3d 0e 00
    13370     jnbe near 08fcfh                          ; 0f 87 b0 00
     13382    jnbe near 09039h                          ; 0f 87 b0 00
    1337113383    mov bx, ax                                ; 89 c3
    1337213384    add bx, ax                                ; 01 c3
    1337313385    mov dx, word [bp+018h]                    ; 8b 56 18
    1337413386    or dl, 001h                               ; 80 ca 01
    13375     jmp word [cs:bx-07113h]                   ; 2e ff a7 ed 8e
     13387    jmp word [cs:bx-070a9h]                   ; 2e ff a7 57 8f
    1337613388    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1337713389    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1337813390    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    13379     jmp near 08ffah                           ; e9 ba 00
     13391    jmp near 09064h                           ; e9 ba 00
    1338013392    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    13381     mov word [bp+00ch], 09554h                ; c7 46 0c 54 95
     13393    mov word [bp+00ch], 095c4h                ; c7 46 0c c4 95
    1338213394    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1338313395    mov ax, strict word 0fff0h                ; b8 f0 ff
    1338413396    mov word [bp+006h], ax                    ; 89 46 06
    1338513397    mov word [bp+004h], ax                    ; 89 46 04
    13386     jmp near 08ffah                           ; e9 9f 00
     13398    jmp near 09064h                           ; e9 9f 00
    1338713399    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1338813400    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1339713409    mov si, ax                                ; 89 c6
    1339813410    sal esi, 010h                             ; 66 c1 e6 10
    13399     jmp near 08ffah                           ; e9 74 00
     13411    jmp near 09064h                           ; e9 74 00
    1340013412    sti                                       ; fb
    1340113413    hlt                                       ; f4
    13402     jmp near 08ffah                           ; e9 6f 00
     13414    jmp near 09064h                           ; e9 6f 00
    1340313415    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    13404     je short 08fb0h                           ; 74 1f
     13416    je short 0901ah                           ; 74 1f
    1340513417    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    13406     je short 08fa8h                           ; 74 11
     13418    je short 09012h                           ; 74 11
    1340713419    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    13408     jne short 08fb8h                          ; 75 1b
     13420    jne short 09022h                          ; 75 1b
    1340913421    mov dx, 08900h                            ; ba 00 89
    13410     mov ax, 00cfah                            ; b8 fa 0c
    13411     call 08ed2h                               ; e8 2c ff
    13412     jmp short 08ffah                          ; eb 52
     13422    mov ax, 00d12h                            ; b8 12 0d
     13423    call 08f3ch                               ; e8 2c ff
     13424    jmp short 09064h                          ; eb 52
    1341313425    mov dx, 08900h                            ; ba 00 89
    13414     mov ax, 00d02h                            ; b8 02 0d
    13415     jmp short 08fa3h                          ; eb f3
     13426    mov ax, 00d1ah                            ; b8 1a 0d
     13427    jmp short 0900dh                          ; eb f3
    1341613428    mov dx, 08900h                            ; ba 00 89
    13417     mov ax, 00d0ah                            ; b8 0a 0d
    13418     jmp short 08fa3h                          ; eb eb
     13429    mov ax, 00d22h                            ; b8 22 0d
     13430    jmp short 0900dh                          ; eb eb
    1341913431    or ah, 00ah                               ; 80 cc 0a
    1342013432    mov word [bp+012h], ax                    ; 89 46 12
    1342113433    mov word [bp+018h], dx                    ; 89 56 18
    13422     jmp short 08ffah                          ; eb 37
     13434    jmp short 09064h                          ; eb 37
    1342313435    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    13424     jmp short 08ffah                          ; eb 30
     13436    jmp short 09064h                          ; eb 30
    1342513437    or ah, 080h                               ; 80 cc 80
    13426     jmp short 08fbbh                          ; eb ec
    13427     mov bx, 00d8ah                            ; bb 8a 0d
     13438    jmp short 09025h                          ; eb ec
     13439    mov bx, 00da2h                            ; bb a2 0d
    1342813440    mov cx, ds                                ; 8c d9
    1342913441    mov ax, strict word 00004h                ; b8 04 00
    13430     call 01931h                               ; e8 57 89
     13442    call 01931h                               ; e8 ed 88
    1343113443    push word [bp+00ch]                       ; ff 76 0c
    1343213444    push word [bp+012h]                       ; ff 76 12
    13433     push 00d13h                               ; 68 13 0d
     13445    push 00d2bh                               ; 68 2b 0d
    1343413446    push strict byte 00004h                   ; 6a 04
    13435     call 01972h                               ; e8 8a 89
     13447    call 01972h                               ; e8 20 89
    1343613448    add sp, strict byte 00008h                ; 83 c4 08
    1343713449    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1344413456    pop bp                                    ; 5d
    1344513457    retn                                      ; c3
    13446 pci16_select_reg_:                           ; 0xf9000 LB 0x24
     13458pci16_select_reg_:                           ; 0xf906a LB 0x24
    1344713459    push bp                                   ; 55
    1344813460    mov bp, sp                                ; 89 e5
     
    1346113473    pop bp                                    ; 5d
    1346213474    retn                                      ; c3
    13463 pci16_find_device_:                          ; 0xf9024 LB 0xf7
     13475pci16_find_device_:                          ; 0xf908e LB 0xf7
    1346413476    push bp                                   ; 55
    1346513477    mov bp, sp                                ; 89 e5
     
    1347513487    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1347613488    test bl, 007h                             ; f6 c3 07
    13477     jne short 0906ch                          ; 75 2d
     13489    jne short 090d6h                          ; 75 2d
    1347813490    mov dx, strict word 0000eh                ; ba 0e 00
    1347913491    mov ax, bx                                ; 89 d8
    13480     call 09000h                               ; e8 b9 ff
     13492    call 0906ah                               ; e8 b9 ff
    1348113493    mov dx, 00cfeh                            ; ba fe 0c
    1348213494    in AL, DX                                 ; ec
     
    1348513497    mov byte [bp-006h], al                    ; 88 46 fa
    1348613498    cmp AL, strict byte 0ffh                  ; 3c ff
    13487     jne short 0905ah                          ; 75 06
     13499    jne short 090c4h                          ; 75 06
    1348813500    add bx, strict byte 00008h                ; 83 c3 08
    13489     jmp near 090edh                           ; e9 93 00
     13501    jmp near 09157h                           ; e9 93 00
    1349013502    test byte [bp-006h], 080h                 ; f6 46 fa 80
    13491     je short 09067h                           ; 74 07
     13503    je short 090d1h                           ; 74 07
    1349213504    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    13493     jmp short 0906ch                          ; eb 05
     13505    jmp short 090d6h                          ; eb 05
    1349413506    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1349513507    mov al, byte [bp-006h]                    ; 8a 46 fa
    1349613508    and AL, strict byte 007h                  ; 24 07
    1349713509    cmp AL, strict byte 001h                  ; 3c 01
    13498     jne short 09094h                          ; 75 1f
     13510    jne short 090feh                          ; 75 1f
    1349913511    mov ax, bx                                ; 89 d8
    1350013512    shr ax, 008h                              ; c1 e8 08
    1350113513    test ax, ax                               ; 85 c0
    13502     jne short 09094h                          ; 75 16
     13514    jne short 090feh                          ; 75 16
    1350313515    mov dx, strict word 0001ah                ; ba 1a 00
    1350413516    mov ax, bx                                ; 89 d8
    13505     call 09000h                               ; e8 7a ff
     13517    call 0906ah                               ; e8 7a ff
    1350613518    mov dx, 00cfeh                            ; ba fe 0c
    1350713519    in AL, DX                                 ; ec
     
    1350913521    ; sub ah, ah                                ; 2a e4
    1351013522    cmp al, byte [bp-008h]                    ; 3a 46 f8
    13511     jbe short 09094h                          ; 76 03
     13523    jbe short 090feh                          ; 76 03
    1351213524    mov byte [bp-008h], al                    ; 88 46 f8
    1351313525    test di, di                               ; 85 ff
    13514     je short 0909dh                           ; 74 05
     13526    je short 09107h                           ; 74 05
    1351513527    mov dx, strict word 00008h                ; ba 08 00
    13516     jmp short 0909fh                          ; eb 02
     13528    jmp short 09109h                          ; eb 02
    1351713529    xor dx, dx                                ; 31 d2
    1351813530    mov ax, bx                                ; 89 d8
    13519     call 09000h                               ; e8 5c ff
     13531    call 0906ah                               ; e8 5c ff
    1352013532    mov dx, 00cfch                            ; ba fc 0c
    1352113533    in eax, DX                                ; 66 ed
     
    1352813540    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1352913541    test di, di                               ; 85 ff
    13530     je short 090ceh                           ; 74 0f
     13542    je short 09138h                           ; 74 0f
    1353113543    mov cx, strict word 00008h                ; b9 08 00
    1353213544    shr dx, 1                                 ; d1 ea
    1353313545    rcr ax, 1                                 ; d1 d8
    13534     loop 090c2h                               ; e2 fa
     13546    loop 0912ch                               ; e2 fa
    1353513547    mov word [bp-00eh], ax                    ; 89 46 f2
    1353613548    mov word [bp-00ch], dx                    ; 89 56 f4
    1353713549    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1353813550    cmp ax, word [bp-014h]                    ; 3b 46 ec
    13539     jne short 090deh                          ; 75 08
     13551    jne short 09148h                          ; 75 08
    1354013552    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1354113553    cmp ax, word [bp-012h]                    ; 3b 46 ee
    13542     je short 090e4h                           ; 74 06
     13554    je short 0914eh                           ; 74 06
    1354313555    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    13544     je short 090eah                           ; 74 06
     13556    je short 09154h                           ; 74 06
    1354513557    dec si                                    ; 4e
    1354613558    cmp si, strict byte 0ffffh                ; 83 fe ff
    13547     je short 090fch                           ; 74 12
     13559    je short 09166h                           ; 74 12
    1354813560    add bx, word [bp-00ah]                    ; 03 5e f6
    1354913561    mov dx, bx                                ; 89 da
     
    1355113563    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1355213564    cmp dx, ax                                ; 39 c2
    13553     jbe near 0903ah                           ; 0f 86 3e ff
     13565    jbe near 090a4h                           ; 0f 86 3e ff
    1355413566    cmp si, strict byte 0ffffh                ; 83 fe ff
    13555     jne short 09105h                          ; 75 04
     13567    jne short 0916fh                          ; 75 04
    1355613568    mov ax, bx                                ; 89 d8
    13557     jmp short 09108h                          ; eb 03
     13569    jmp short 09172h                          ; eb 03
    1355813570    mov ax, strict word 0ffffh                ; b8 ff ff
    1355913571    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1356213574    pop bp                                    ; 5d
    1356313575    retn                                      ; c3
    13564     std                                       ; fd
    13565     xchg cx, ax                               ; 91
    13566     pop SS                                    ; 17
    13567     xchg dx, ax                               ; 92
    13568     sub dl, byte [bp+si-06dc1h]               ; 2a 92 3f 92
    13569     push dx                                   ; 52
    13570     xchg dx, ax                               ; 92
    13571     db  065h, 092h
    13572     ; gs xchg dx, ax                            ; 65 92
    13573 _pci16_function:                             ; 0xf911b LB 0x1d7
     13576    db  067h, 092h, 081h, 092h, 094h, 092h, 0a9h, 092h, 0bch, 092h, 0cfh, 092h
     13577_pci16_function:                             ; 0xf9185 LB 0x1d7
    1357413578    push bp                                   ; 55
    1357513579    mov bp, sp                                ; 89 e5
     
    1358513589    xor ah, ah                                ; 30 e4
    1358613590    cmp bx, strict byte 00003h                ; 83 fb 03
    13587     jc short 09154h                           ; 72 1a
    13588     jbe short 091ach                          ; 76 70
     13591    jc short 091beh                           ; 72 1a
     13592    jbe short 09216h                          ; 76 70
    1358913593    cmp bx, strict byte 0000eh                ; 83 fb 0e
    13590     je near 09279h                            ; 0f 84 36 01
     13594    je near 092e3h                            ; 0f 84 36 01
    1359113595    cmp bx, strict byte 00008h                ; 83 fb 08
    13592     jc near 092beh                            ; 0f 82 74 01
     13596    jc near 09328h                            ; 0f 82 74 01
    1359313597    cmp bx, strict byte 0000dh                ; 83 fb 0d
    13594     jbe near 091d1h                           ; 0f 86 80 00
    13595     jmp near 092beh                           ; e9 6a 01
     13598    jbe near 0923bh                           ; 0f 86 80 00
     13599    jmp near 09328h                           ; e9 6a 01
    1359613600    cmp bx, strict byte 00002h                ; 83 fb 02
    13597     je short 0917ch                           ; 74 23
     13601    je short 091e6h                           ; 74 23
    1359813602    cmp bx, strict byte 00001h                ; 83 fb 01
    13599     jne near 092beh                           ; 0f 85 5e 01
     13603    jne near 09328h                           ; 0f 85 5e 01
    1360013604    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1360113605    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1360313607    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1360413608    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    13605     jmp near 092ebh                           ; e9 6f 01
     13609    jmp near 09355h                           ; e9 6f 01
    1360613610    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    13607     jne short 09188h                          ; 75 06
     13611    jne short 091f2h                          ; 75 06
    1360813612    or ah, 083h                               ; 80 cc 83
    13609     jmp near 092e4h                           ; e9 5c 01
     13613    jmp near 0934eh                           ; e9 5c 01
    1361013614    mov bx, word [bp+008h]                    ; 8b 5e 08
    1361113615    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1361213616    mov ax, word [bp+018h]                    ; 8b 46 18
    1361313617    xor cx, cx                                ; 31 c9
    13614     call 09024h                               ; e8 8e fe
     13618    call 0908eh                               ; e8 8e fe
    1361513619    cmp ax, strict word 0ffffh                ; 3d ff ff
    13616     jne short 091a6h                          ; 75 0b
     13620    jne short 09210h                          ; 75 0b
    1361713621    mov ax, word [bp+020h]                    ; 8b 46 20
    1361813622    xor ah, ah                                ; 30 e4
    1361913623    or ah, 086h                               ; 80 cc 86
    13620     jmp near 092e4h                           ; e9 3e 01
     13624    jmp near 0934eh                           ; e9 3e 01
    1362113625    mov word [bp+014h], ax                    ; 89 46 14
    13622     jmp near 092ebh                           ; e9 3f 01
     13626    jmp near 09355h                           ; e9 3f 01
    1362313627    mov bx, word [bp+008h]                    ; 8b 5e 08
    1362413628    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1362513629    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1362613630    mov cx, strict word 00001h                ; b9 01 00
    13627     call 09024h                               ; e8 69 fe
     13631    call 0908eh                               ; e8 69 fe
    1362813632    cmp ax, strict word 0ffffh                ; 3d ff ff
    13629     jne short 091cbh                          ; 75 0b
     13633    jne short 09235h                          ; 75 0b
    1363013634    mov ax, word [bp+020h]                    ; 8b 46 20
    1363113635    xor ah, ah                                ; 30 e4
    1363213636    or ah, 086h                               ; 80 cc 86
    13633     jmp near 092e4h                           ; e9 19 01
     13637    jmp near 0934eh                           ; e9 19 01
    1363413638    mov word [bp+014h], ax                    ; 89 46 14
    13635     jmp near 092ebh                           ; e9 1a 01
     13639    jmp near 09355h                           ; e9 1a 01
    1363613640    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    13637     jc short 091deh                           ; 72 06
     13641    jc short 09248h                           ; 72 06
    1363813642    or ah, 087h                               ; 80 cc 87
    13639     jmp near 092e4h                           ; e9 06 01
     13643    jmp near 0934eh                           ; e9 06 01
    1364013644    mov dx, word [bp+004h]                    ; 8b 56 04
    1364113645    mov ax, word [bp+014h]                    ; 8b 46 14
    13642     call 09000h                               ; e8 19 fe
     13646    call 0906ah                               ; e8 19 fe
    1364313647    mov bx, word [bp+020h]                    ; 8b 5e 20
    1364413648    xor bh, bh                                ; 30 ff
    1364513649    sub bx, strict byte 00008h                ; 83 eb 08
    1364613650    cmp bx, strict byte 00005h                ; 83 fb 05
    13647     jnbe near 092ebh                          ; 0f 87 f5 00
     13651    jnbe near 09355h                          ; 0f 87 f5 00
    1364813652    add bx, bx                                ; 01 db
    13649     jmp word [cs:bx-06ef1h]                   ; 2e ff a7 0f 91
     13653    jmp word [cs:bx-06e87h]                   ; 2e ff a7 79 91
    1365013654    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1365113655    xor bl, bl                                ; 30 db
     
    1365813662    or bx, ax                                 ; 09 c3
    1365913663    mov word [bp+01ch], bx                    ; 89 5e 1c
    13660     jmp near 092ebh                           ; e9 d4 00
     13664    jmp near 09355h                           ; e9 d4 00
    1366113665    mov dx, word [bp+004h]                    ; 8b 56 04
    1366213666    xor dh, dh                                ; 30 f6
     
    1366513669    in ax, DX                                 ; ed
    1366613670    mov word [bp+01ch], ax                    ; 89 46 1c
    13667     jmp near 092ebh                           ; e9 c1 00
     13671    jmp near 09355h                           ; e9 c1 00
    1366813672    mov dx, 00cfch                            ; ba fc 0c
    1366913673    in eax, DX                                ; 66 ed
     
    1367413678    mov word [bp+01ch], ax                    ; 89 46 1c
    1367513679    mov word [bp+01eh], dx                    ; 89 56 1e
    13676     jmp near 092ebh                           ; e9 ac 00
     13680    jmp near 09355h                           ; e9 ac 00
    1367713681    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1367813682    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1368113685    add dx, 00cfch                            ; 81 c2 fc 0c
    1368213686    out DX, AL                                ; ee
    13683     jmp near 092ebh                           ; e9 99 00
     13687    jmp near 09355h                           ; e9 99 00
    1368413688    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1368513689    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1368813692    add dx, 00cfch                            ; 81 c2 fc 0c
    1368913693    out DX, ax                                ; ef
    13690     jmp near 092ebh                           ; e9 86 00
     13694    jmp near 09355h                           ; e9 86 00
    1369113695    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1369213696    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1369713701    ; mov ax, cx                                ; 8b c1
    1369813702    out DX, eax                               ; 66 ef
    13699     jmp short 092ebh                          ; eb 72
     13703    jmp short 09355h                          ; eb 72
    1370013704    mov bx, word [bp+004h]                    ; 8b 5e 04
    1370113705    mov es, [bp+026h]                         ; 8e 46 26
     
    1370413708    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1370513709    cmp cx, word [es:bx]                      ; 26 3b 0f
    13706     jbe short 0929fh                          ; 76 11
     13710    jbe short 09309h                          ; 76 11
    1370713711    mov ax, word [bp+020h]                    ; 8b 46 20
    1370813712    xor ah, ah                                ; 30 e4
     
    1371013714    mov word [bp+020h], ax                    ; 89 46 20
    1371113715    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    13712     jmp short 092b3h                          ; eb 14
     13716    jmp short 0931dh                          ; eb 14
    1371313717    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1371413718    mov si, 0f2c0h                            ; be c0 f2
     
    1372213726    les bx, [bp-008h]                         ; c4 5e f8
    1372313727    mov word [es:bx], ax                      ; 26 89 07
    13724     jmp short 092ebh                          ; eb 2d
    13725     mov bx, 00d8ah                            ; bb 8a 0d
     13728    jmp short 09355h                          ; eb 2d
     13729    mov bx, 00da2h                            ; bb a2 0d
    1372613730    mov cx, ds                                ; 8c d9
    1372713731    mov ax, strict word 00004h                ; b8 04 00
    13728     call 01931h                               ; e8 68 86
     13732    call 01931h                               ; e8 fe 85
    1372913733    mov ax, word [bp+014h]                    ; 8b 46 14
    1373013734    push ax                                   ; 50
    1373113735    mov ax, word [bp+020h]                    ; 8b 46 20
    1373213736    push ax                                   ; 50
    13733     push 00d46h                               ; 68 46 0d
     13737    push 00d5eh                               ; 68 5e 0d
    1373413738    push strict byte 00004h                   ; 6a 04
    13735     call 01972h                               ; e8 99 86
     13739    call 01972h                               ; e8 2f 86
    1373613740    add sp, strict byte 00008h                ; 83 c4 08
    1373713741    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1374513749    pop bp                                    ; 5d
    1374613750    retn                                      ; c3
    13747 pci_find_classcode_:                         ; 0xf92f2 LB 0x2b
     13751pci_find_classcode_:                         ; 0xf935c LB 0x2b
    1374813752    push bp                                   ; 55
    1374913753    mov bp, sp                                ; 89 e5
     
    1376013764    int 01ah                                  ; cd 1a
    1376113765    cmp ah, 000h                              ; 80 fc 00
    13762     je near 09313h                            ; 0f 84 03 00
     13766    je near 0937dh                            ; 0f 84 03 00
    1376313767    mov bx, strict word 0ffffh                ; bb ff ff
    1376413768    mov ax, bx                                ; 89 d8
     
    1376913773    pop bp                                    ; 5d
    1377013774    retn                                      ; c3
    13771 pci_read_config_byte_:                       ; 0xf931d LB 0x24
     13775pci_read_config_byte_:                       ; 0xf9387 LB 0x24
    1377213776    push bp                                   ; 55
    1377313777    mov bp, sp                                ; 89 e5
     
    1378813792    pop bp                                    ; 5d
    1378913793    retn                                      ; c3
    13790 pci_read_config_word_:                       ; 0xf9341 LB 0x22
     13794pci_read_config_word_:                       ; 0xf93ab LB 0x22
    1379113795    push bp                                   ; 55
    1379213796    mov bp, sp                                ; 89 e5
     
    1380713811    pop bp                                    ; 5d
    1380813812    retn                                      ; c3
    13809 pci_read_config_dword_:                      ; 0xf9363 LB 0x27
     13813pci_read_config_dword_:                      ; 0xf93cd LB 0x27
    1381013814    push bp                                   ; 55
    1381113815    mov bp, sp                                ; 89 e5
     
    1382813832    pop bp                                    ; 5d
    1382913833    retn                                      ; c3
    13830 vds_is_present_:                             ; 0xf938a LB 0x1d
     13834vds_is_present_:                             ; 0xf93f4 LB 0x1d
    1383113835    push bx                                   ; 53
    1383213836    push bp                                   ; 55
     
    1383613840    mov es, ax                                ; 8e c0
    1383713841    test byte [es:bx], 020h                   ; 26 f6 07 20
    13838     je short 093a2h                           ; 74 06
     13842    je short 0940ch                           ; 74 06
    1383913843    mov ax, strict word 00001h                ; b8 01 00
    1384013844    pop bp                                    ; 5d
     
    1384513849    pop bx                                    ; 5b
    1384613850    retn                                      ; c3
    13847 vds_real_to_lin_:                            ; 0xf93a7 LB 0x1e
     13851vds_real_to_lin_:                            ; 0xf9411 LB 0x1e
    1384813852    push bx                                   ; 53
    1384913853    push cx                                   ; 51
     
    1385613860    sal ax, 1                                 ; d1 e0
    1385713861    rcl dx, 1                                 ; d1 d2
    13858     loop 093b5h                               ; e2 fa
     13862    loop 0941fh                               ; e2 fa
    1385913863    xor cx, cx                                ; 31 c9
    1386013864    add ax, bx                                ; 01 d8
     
    1386413868    pop bx                                    ; 5b
    1386513869    retn                                      ; c3
    13866 vds_build_sg_list_:                          ; 0xf93c5 LB 0x79
     13870vds_build_sg_list_:                          ; 0xf942f LB 0x79
    1386713871    push bp                                   ; 55
    1386813872    mov bp, sp                                ; 89 e5
     
    1387813882    mov bx, word [bp+006h]                    ; 8b 5e 06
    1387913883    mov word [es:di+002h], bx                 ; 26 89 5d 02
    13880     call 093a7h                               ; e8 c3 ff
     13884    call 09411h                               ; e8 c3 ff
    1388113885    mov es, si                                ; 8e c6
    1388213886    mov word [es:di+004h], ax                 ; 26 89 45 04
    1388313887    mov word [es:di+006h], dx                 ; 26 89 55 06
    1388413888    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    13885     call 0938ah                               ; e8 93 ff
     13889    call 093f4h                               ; e8 93 ff
    1388613890    test ax, ax                               ; 85 c0
    13887     je short 0940eh                           ; 74 13
     13891    je short 09478h                           ; 74 13
    1388813892    mov es, si                                ; 8e c6
    1388913893    mov ax, 08105h                            ; b8 05 81
    1389013894    mov dx, strict word 00000h                ; ba 00 00
    1389113895    int 04bh                                  ; cd 4b
    13892     jc near 0940bh                            ; 0f 82 02 00
     13896    jc near 09475h                            ; 0f 82 02 00
    1389313897    db  032h, 0c0h
    1389413898    ; xor al, al                                ; 32 c0
    1389513899    cbw                                       ; 98
    13896     jmp short 09435h                          ; eb 27
     13900    jmp short 0949fh                          ; eb 27
    1389713901    mov es, si                                ; 8e c6
    1389813902    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1391113915    pop bp                                    ; 5d
    1391213916    retn 00004h                               ; c2 04 00
    13913 vds_free_sg_list_:                           ; 0xf943e LB 0x32
     13917vds_free_sg_list_:                           ; 0xf94a8 LB 0x38
    1391413918    push bp                                   ; 55
    1391513919    mov bp, sp                                ; 89 e5
     
    1391713921    push di                                   ; 57
    1391813922    mov bx, ax                                ; 89 c3
    13919     call 0938ah                               ; e8 42 ff
     13923    call 093f4h                               ; e8 42 ff
    1392013924    test ax, ax                               ; 85 c0
    13921     je short 0945fh                           ; 74 13
     13925    je short 094c9h                           ; 74 13
    1392213926    mov di, bx                                ; 89 df
    1392313927    mov es, dx                                ; 8e c2
     
    1392513929    mov dx, strict word 00000h                ; ba 00 00
    1392613930    int 04bh                                  ; cd 4b
    13927     jc near 0945eh                            ; 0f 82 02 00
     13931    jc near 094c8h                            ; 0f 82 02 00
    1392813932    db  032h, 0c0h
    1392913933    ; xor al, al                                ; 32 c0
     
    1393613940    pop bp                                    ; 5d
    1393713941    retn                                      ; c3
    13938     times 0x2 db 0
    13939 __U4D:                                       ; 0xf9470 LB 0x39
     13942    times 0x8 db 0
     13943__U4D:                                       ; 0xf94e0 LB 0x39
    1394013944    pushfw                                    ; 9c
    1394113945    push eax                                  ; 66 50
     
    1396713971    popfw                                     ; 9d
    1396813972    retn                                      ; c3
    13969 __U4M:                                       ; 0xf94a9 LB 0x31
     13973__U4M:                                       ; 0xf9519 LB 0x31
    1397013974    pushfw                                    ; 9c
    1397113975    push eax                                  ; 66 50
     
    1399213996    popfw                                     ; 9d
    1399313997    retn                                      ; c3
    13994 _fmemset_:                                   ; 0xf94da LB 0xd
     13998_fmemset_:                                   ; 0xf954a LB 0xd
    1399513999    push di                                   ; 57
    1399614000    mov es, dx                                ; 8e c2
     
    1400214006    pop di                                    ; 5f
    1400314007    retn                                      ; c3
    14004 _fmemcpy_:                                   ; 0xf94e7 LB 0x33
     14008_fmemcpy_:                                   ; 0xf9557 LB 0x33
    1400514009    push bp                                   ; 55
    1400614010    db  08bh, 0ech
     
    1402214026    leave                                     ; c9
    1402314027    retn                                      ; c3
    14024     add byte [bx+si], dh                      ; 00 30
     14028    add byte [bx+si-05d6bh], ah               ; 00 a0 95 a2
    1402514029    xchg bp, ax                               ; 95
    14026     xor dl, byte [di-06acah]                  ; 32 95 36 95
    14027     db  036h, 095h
    14028     ; ss xchg bp, ax                            ; 36 95
    14029     db  036h, 095h
    14030     ; ss xchg bp, ax                            ; 36 95
    14031     cmp byte [di-06ac8h], dl                  ; 38 95 38 95
    14032     cmp dl, byte [di-06ac2h]                  ; 3a 95 3e 95
    14033     db  03eh, 095h
    14034     ; ds xchg bp, ax                            ; 3e 95
    14035     inc ax                                    ; 40
     14030    cmpsb                                     ; a6
    1403614031    xchg bp, ax                               ; 95
    14037     inc bp                                    ; 45
     14032    cmpsb                                     ; a6
    1403814033    xchg bp, ax                               ; 95
    14039     inc di                                    ; 47
     14034    cmpsb                                     ; a6
    1404014035    xchg bp, ax                               ; 95
    14041 apm_worker:                                  ; 0xf951a LB 0x3a
     14036    test AL, strict byte 095h                 ; a8 95
     14037    test AL, strict byte 095h                 ; a8 95
     14038    stosb                                     ; aa
     14039    xchg bp, ax                               ; 95
     14040    scasb                                     ; ae
     14041    xchg bp, ax                               ; 95
     14042    scasb                                     ; ae
     14043    xchg bp, ax                               ; 95
     14044    mov AL, strict byte 095h                  ; b0 95
     14045    mov CH, strict byte 095h                  ; b5 95
     14046    mov BH, strict byte 095h                  ; b7 95
     14047apm_worker:                                  ; 0xf958a LB 0x3a
    1404214048    sti                                       ; fb
    1404314049    push ax                                   ; 50
     
    1405114057    pop ax                                    ; 58
    1405214058    mov AH, strict byte 053h                  ; b4 53
    14053     jnc short 09550h                          ; 73 25
    14054     jmp word [cs:bp-06b00h]                   ; 2e ff a6 00 95
    14055     jmp short 0954eh                          ; eb 1c
     14059    jnc short 095c0h                          ; 73 25
     14060    jmp word [cs:bp-06a90h]                   ; 2e ff a6 70 95
     14061    jmp short 095beh                          ; eb 1c
    1405614062    sti                                       ; fb
    1405714063    hlt                                       ; f4
    14058     jmp short 0954eh                          ; eb 18
    14059     jmp short 0954eh                          ; eb 16
    14060     jmp short 09550h                          ; eb 16
     14064    jmp short 095beh                          ; eb 18
     14065    jmp short 095beh                          ; eb 16
     14066    jmp short 095c0h                          ; eb 16
    1406114067    mov AH, strict byte 080h                  ; b4 80
    14062     jmp short 09552h                          ; eb 14
    14063     jmp short 09550h                          ; eb 10
     14068    jmp short 095c2h                          ; eb 14
     14069    jmp short 095c0h                          ; eb 10
    1406414070    mov ax, 00102h                            ; b8 02 01
    14065     jmp short 0954eh                          ; eb 09
    14066     jmp short 0954eh                          ; eb 07
     14071    jmp short 095beh                          ; eb 09
     14072    jmp short 095beh                          ; eb 07
    1406714073    mov BL, strict byte 000h                  ; b3 00
    1406814074    mov cx, strict word 00000h                ; b9 00 00
    14069     jmp short 0954eh                          ; eb 00
     14075    jmp short 095beh                          ; eb 00
    1407014076    clc                                       ; f8
    1407114077    retn                                      ; c3
     
    1407314079    stc                                       ; f9
    1407414080    retn                                      ; c3
    14075 apm_pm16_entry:                              ; 0xf9554 LB 0x11
     14081apm_pm16_entry:                              ; 0xf95c4 LB 0x11
    1407614082    mov AH, strict byte 002h                  ; b4 02
    1407714083    push DS                                   ; 1e
     
    1408114087    add bp, strict byte 00008h                ; 83 c5 08
    1408214088    mov ds, bp                                ; 8e dd
    14083     call 0951ah                               ; e8 b8 ff
     14089    call 0958ah                               ; e8 b8 ff
    1408414090    pop bp                                    ; 5d
    1408514091    pop DS                                    ; 1f
    1408614092    retf                                      ; cb
    1408714093
    14088   ; Padding 0x449b bytes at 0xf9565
    14089   times 17563 db 0
     14094  ; Padding 0x442b bytes at 0xf95d5
     14095  times 17451 db 0
    1409014096
    1409114097section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1413414140    add bp, strict byte 00008h                ; 83 c5 08
    1413514141    push ebp                                  ; 66 55
    14136     mov bp, 09556h                            ; bd 56 95
     14142    mov bp, 095c6h                            ; bd c6 95
    1413714143    add byte [bx+si], al                      ; 00 00
    1413814144    push ebp                                  ; 66 55
     
    1452514531    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
    1452614532    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
    14527 eoi_jmp_post:                                ; 0xfe030 LB 0xb
    14528     call 0e03bh                               ; e8 08 00
     14533eoi_both_pics:                               ; 0xfe030 LB 0x4
     14534    mov AL, strict byte 020h                  ; b0 20
     14535    out strict byte 0a0h, AL                  ; e6 a0
     14536eoi_master_pic:                              ; 0xfe034 LB 0x5
     14537    mov AL, strict byte 020h                  ; b0 20
     14538    out strict byte 020h, AL                  ; e6 20
     14539    retn                                      ; c3
     14540set_int_vects:                               ; 0xfe039 LB 0xb
     14541    mov word [bx], ax                         ; 89 07
     14542    mov word [bx+002h], dx                    ; 89 57 02
     14543    add bx, strict byte 00004h                ; 83 c3 04
     14544    loop 0e039h                               ; e2 f6
     14545    retn                                      ; c3
     14546eoi_jmp_post:                                ; 0xfe044 LB 0x17
     14547    call 0e030h                               ; e8 e9 ff
    1452914548    db  033h, 0c0h
    1453014549    ; xor ax, ax                                ; 33 c0
    1453114550    mov ds, ax                                ; 8e d8
    1453214551    jmp far [00467h]                          ; ff 2e 67 04
    14533 eoi_both_pics:                               ; 0xfe03b LB 0x4
    14534     mov AL, strict byte 020h                  ; b0 20
    14535     out strict byte 0a0h, AL                  ; e6 a0
    14536 eoi_master_pic:                              ; 0xfe03f LB 0x5
    14537     mov AL, strict byte 020h                  ; b0 20
    14538     out strict byte 020h, AL                  ; e6 20
    14539     retn                                      ; c3
    14540 set_int_vects:                               ; 0xfe044 LB 0x17
    14541     mov word [bx], ax                         ; 89 07
    14542     mov word [bx+002h], dx                    ; 89 57 02
    14543     add bx, strict byte 00004h                ; 83 c3 04
    14544     loop 0e044h                               ; e2 f6
    14545     retn                                      ; c3
    1454614552    times 0xa db 0
    1454714553    db  'XM'
    14548 post:                                        ; 0xfe05b LB 0x4c
     14554post:                                        ; 0xfe05b LB 0x65
    1454914555    cli                                       ; fa
    1455014556    smsw ax                                   ; 0f 01 e0
    1455114557    test ax, strict word 00001h               ; a9 01 00
    14552     je short 0e068h                           ; 74 04
     14558    je short 0e06ah                           ; 74 06
     14559    mov AL, strict byte 001h                  ; b0 01
    1455314560    out strict byte 092h, AL                  ; e6 92
    14554     jmp short 0e066h                          ; eb fe
     14561    jmp short 0e068h                          ; eb fe
    1455514562    mov AL, strict byte 00fh                  ; b0 0f
    1455614563    out strict byte 070h, AL                  ; e6 70
    1455714564    in AL, strict byte 071h                   ; e4 71
    1455814565    xchg ah, al                               ; 86 c4
     14566    in AL, strict byte 064h                   ; e4 64
     14567    test AL, strict byte 004h                 ; a8 04
     14568    je short 0e089h                           ; 74 11
     14569    db  08ah, 0c4h
     14570    ; mov al, ah                                ; 8a c4
     14571    db  00ah, 0c0h
     14572    ; or al, al                                 ; 0a c0
     14573    jne short 0e089h                          ; 75 0b
     14574    push strict byte 00040h                   ; 6a 40
     14575    pop DS                                    ; 1f
     14576    cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
     14577    jne short 0e064h                          ; 75 db
    1455914578    mov AL, strict byte 00fh                  ; b0 0f
    1456014579    out strict byte 070h, AL                  ; e6 70
     
    1456414583    ; mov al, ah                                ; 8a c4
    1456514584    cmp AL, strict byte 009h                  ; 3c 09
    14566     je short 0e090h                           ; 74 12
     14585    je short 0e0a9h                           ; 74 12
    1456714586    cmp AL, strict byte 00ah                  ; 3c 0a
    14568     je short 0e090h                           ; 74 0e
     14587    je short 0e0a9h                           ; 74 0e
    1456914588    db  032h, 0c0h
    1457014589    ; xor al, al                                ; 32 c0
     
    1457814597    ; mov al, ah                                ; 8a c4
    1457914598    cmp AL, strict byte 000h                  ; 3c 00
    14580     je short 0e0a7h                           ; 74 11
     14599    je short 0e0c0h                           ; 74 11
    1458114600    cmp AL, strict byte 00dh                  ; 3c 0d
    14582     jnc short 0e0a7h                          ; 73 0d
     14601    jnc short 0e0c0h                          ; 73 0d
    1458314602    cmp AL, strict byte 009h                  ; 3c 09
    14584     jne short 0e0a1h                          ; 75 03
    14585     jmp near 0e34bh                           ; e9 aa 02
     14603    jne short 0e0bah                          ; 75 03
     14604    jmp near 0e366h                           ; e9 ac 02
    1458614605    cmp AL, strict byte 005h                  ; 3c 05
    14587     je short 0e030h                           ; 74 8b
    14588     jmp short 0e0a7h                          ; eb 00
    14589 normal_post:                                 ; 0xfe0a7 LB 0x21c
     14606    je short 0e044h                           ; 74 86
     14607    jmp short 0e0c0h                          ; eb 00
     14608normal_post:                                 ; 0xfe0c0 LB 0x203
    1459014609    mov ax, 07800h                            ; b8 00 78
    1459114610    db  08bh, 0e0h
     
    1460914628    add bx, 01000h                            ; 81 c3 00 10
    1461014629    cmp bx, 09000h                            ; 81 fb 00 90
    14611     jnc short 0e0dah                          ; 73 0b
     14630    jnc short 0e0f3h                          ; 73 0b
    1461214631    mov es, bx                                ; 8e c3
    1461314632    db  033h, 0ffh
     
    1461514634    mov cx, 08000h                            ; b9 00 80
    1461614635    rep stosw                                 ; f3 ab
    14617     jmp short 0e0c5h                          ; eb eb
     14636    jmp short 0e0deh                          ; eb eb
    1461814637    mov es, bx                                ; 8e c3
    1461914638    db  033h, 0ffh
     
    1462614645    pop DS                                    ; 1f
    1462714646    cld                                       ; fc
    14628     call 01777h                               ; e8 8c 36
    14629     call 0e8e0h                               ; e8 f2 07
     14647    call 01777h                               ; e8 73 36
     14648    call 0e8e0h                               ; e8 d9 07
    1463014649    db  033h, 0dbh
    1463114650    ; xor bx, bx                                ; 33 db
     
    1463414653    mov ax, 0ff53h                            ; b8 53 ff
    1463514654    mov dx, 0f000h                            ; ba 00 f0
    14636     call 0e044h                               ; e8 46 ff
     14655    call 0e039h                               ; e8 22 ff
    1463714656    mov bx, 001a0h                            ; bb a0 01
    1463814657    mov cx, strict word 00010h                ; b9 10 00
    14639     call 0e044h                               ; e8 3d ff
     14658    call 0e039h                               ; e8 19 ff
    1464014659    mov ax, 0027fh                            ; b8 7f 02
    1464114660    mov word [00413h], ax                     ; a3 13 04
     
    1467214691    mov ax, 0f000h                            ; b8 00 f0
    1467314692    mov word [00072h], ax                     ; a3 72 00
    14674     call 0e778h                               ; e8 08 06
    14675     call 0f13ch                               ; e8 c9 0f
    14676     call 0f1c1h                               ; e8 4b 10
     14693    call 0e778h                               ; e8 ef 05
     14694    call 0f13ch                               ; e8 b0 0f
     14695    call 0f1c1h                               ; e8 32 10
     14696    mov ax, 0fe6eh                            ; b8 6e fe
     14697    mov word [00068h], ax                     ; a3 68 00
     14698    mov ax, 0f000h                            ; b8 00 f0
     14699    mov word [0006ah], ax                     ; a3 6a 00
    1467714700    mov ax, 0fea5h                            ; b8 a5 fe
    1467814701    mov word [00020h], ax                     ; a3 20 00
     
    1471214735    mov bx, strict word 0003eh                ; bb 3e 00
    1471314736    mov word [00482h], bx                     ; 89 1e 82 04
     14737    mov AL, strict byte 014h                  ; b0 14
     14738    out strict byte 070h, AL                  ; e6 70
     14739    in AL, strict byte 071h                   ; e4 71
     14740    mov byte [00410h], AL                     ; a2 10 04
    1471414741    push DS                                   ; 1e
    1471514742    push CS                                   ; 0e
     
    1471814745    mov ax, 0c000h                            ; b8 00 c0
    1471914746    mov dx, 0c800h                            ; ba 00 c8
    14720     call 01600h                               ; e8 15 34
    14721     call 049b4h                               ; e8 c6 67
     14747    call 01600h                               ; e8 e7 33
     14748    call 049b4h                               ; e8 98 67
    1472214749    pop DS                                    ; 1f
    14723     mov AL, strict byte 014h                  ; b0 14
    14724     out strict byte 070h, AL                  ; e6 70
    14725     in AL, strict byte 071h                   ; e4 71
    14726     mov byte [00410h], AL                     ; a2 10 04
    1472714750    mov ax, 0ff53h                            ; b8 53 ff
    1472814751    mov word [0003ch], ax                     ; a3 3c 00
     
    1473614759    mov CL, strict byte 014h                  ; b1 14
    1473714760    mov dx, 00378h                            ; ba 78 03
    14738     call 0ecedh                               ; e8 db 0a
     14761    call 0ecedh                               ; e8 b6 0a
    1473914762    mov dx, 00278h                            ; ba 78 02
    14740     call 0ecedh                               ; e8 d5 0a
     14763    call 0ecedh                               ; e8 b0 0a
    1474114764    sal bx, 00eh                              ; c1 e3 0e
    1474214765    mov ax, word [00410h]                     ; a1 10 04
     
    1476114784    mov CL, strict byte 00ah                  ; b1 0a
    1476214785    mov dx, 003f8h                            ; ba f8 03
    14763     call 0ed0bh                               ; e8 b7 0a
     14786    call 0ed0bh                               ; e8 92 0a
    1476414787    mov dx, 002f8h                            ; ba f8 02
    14765     call 0ed0bh                               ; e8 b1 0a
     14788    call 0ed0bh                               ; e8 8c 0a
    1476614789    mov dx, 003e8h                            ; ba e8 03
    14767     call 0ed0bh                               ; e8 ab 0a
     14790    call 0ed0bh                               ; e8 86 0a
    1476814791    mov dx, 002e8h                            ; ba e8 02
    14769     call 0ed0bh                               ; e8 a5 0a
     14792    call 0ed0bh                               ; e8 80 0a
    1477014793    sal bx, 009h                              ; c1 e3 09
    1477114794    mov ax, word [00410h]                     ; a1 10 04
     
    1477414797    ; or ax, bx                                 ; 0b c3
    1477514798    mov word [00410h], ax                     ; a3 10 04
    14776     mov ax, 0fe6eh                            ; b8 6e fe
    14777     mov word [00068h], ax                     ; a3 68 00
    14778     mov ax, 0f000h                            ; b8 00 f0
    14779     mov word [0006ah], ax                     ; a3 6a 00
    1478014799    mov ax, 0ff53h                            ; b8 53 ff
    1478114800    mov word [00128h], ax                     ; a3 28 01
     
    1478614805    mov ax, 0f000h                            ; b8 00 f0
    1478714806    mov word [001c2h], ax                     ; a3 c2 01
    14788     call 0edbfh                               ; e8 24 0b
    14789     mov ax, 0f8a9h                            ; b8 a9 f8
    14790     mov word [001d0h], ax                     ; a3 d0 01
    14791     mov ax, 0f000h                            ; b8 00 f0
    14792     mov word [001d2h], ax                     ; a3 d2 01
    14793     mov ax, 0e2cah                            ; b8 ca e2
    14794     mov word [001d4h], ax                     ; a3 d4 01
    14795     mov ax, 0f000h                            ; b8 00 f0
    14796     mov word [001d6h], ax                     ; a3 d6 01
    14797     call 0e753h                               ; e8 9d 04
    14798     jmp short 0e31bh                          ; eb 63
    14799     times 0x9 db 0
     14807    call 0edbfh                               ; e8 0b 0b
     14808    jmp short 0e31bh                          ; eb 65
     14809    times 0xb db 0
    1480014810    db  'XM'
    1480114811nmi:                                         ; 0xfe2c3 LB 0x7
     
    1480714817int75_handler:                               ; 0xfe2ca LB 0x8
    1480814818    out strict byte 0f0h, AL                  ; e6 f0
    14809     call 0e03bh                               ; e8 6c fd
     14819    call 0e030h                               ; e8 61 fd
    1481014820    int 002h                                  ; cd 02
    1481114821    iret                                      ; cf
     
    1483814848    mov word [0011ah], ax                     ; a3 1a 01
    1483914849    retn                                      ; c3
     14850    mov ax, 0f8a9h                            ; b8 a9 f8
     14851    mov word [001d0h], ax                     ; a3 d0 01
     14852    mov ax, 0f000h                            ; b8 00 f0
     14853    mov word [001d2h], ax                     ; a3 d2 01
     14854    mov ax, 0e2cah                            ; b8 ca e2
     14855    mov word [001d4h], ax                     ; a3 d4 01
     14856    mov ax, 0f000h                            ; b8 00 f0
     14857    mov word [001d6h], ax                     ; a3 d6 01
     14858    call 0e753h                               ; e8 1d 04
    1484014859    push CS                                   ; 0e
    1484114860    pop DS                                    ; 1f
    1484214861    cld                                       ; fc
    14843     call 01badh                               ; e8 8c 38
    14844     call 01fa7h                               ; e8 83 3c
    14845     call 08dd4h                               ; e8 ad aa
    14846     call 07e7bh                               ; e8 51 9b
    14847     call 0ed2fh                               ; e8 02 0a
    14848     call 0e2d2h                               ; e8 a2 ff
     14862    call 01badh                               ; e8 71 38
     14863    call 01fa7h                               ; e8 68 3c
     14864    call 08e3eh                               ; e8 fc aa
     14865    call 07ee5h                               ; e8 a0 9b
     14866    call 0ed2fh                               ; e8 e7 09
     14867    call 0e2d2h                               ; e8 87 ff
    1484914868    push CS                                   ; 0e
    1485014869    pop DS                                    ; 1f
    1485114870    cld                                       ; fc
    14852     call 01797h                               ; e8 61 34
     14871    call 01797h                               ; e8 46 34
    1485314872    mov ax, 0c800h                            ; b8 00 c8
    1485414873    mov dx, 0f000h                            ; ba 00 f0
    14855     call 01600h                               ; e8 c1 32
    14856     call 03698h                               ; e8 56 53
     14874    call 01600h                               ; e8 a6 32
     14875    call 03698h                               ; e8 3b 53
    1485714876    sti                                       ; fb
    1485814877    int 019h                                  ; cd 19
    1485914878    sti                                       ; fb
    1486014879    hlt                                       ; f4
    14861     jmp short 0e346h                          ; eb fd
     14880    jmp short 0e361h                          ; eb fd
    1486214881    cli                                       ; fa
    1486314882    hlt                                       ; f4
     
    1488114900    sti                                       ; fb
    1488214901    retf 00002h                               ; ca 02 00
    14883     times 0x88 db 0
     14902    times 0x6d db 0
    1488414903    db  'XM'
    1488514904int13_handler:                               ; 0xfe3fe LB 0x3
     
    1495214971    pop DS                                    ; 1f
    1495314972    cld                                       ; fc
    14954     call 05d34h                               ; e8 f2 75
     14973    call 05d9eh                               ; e8 5c 76
    1495514974    popaw                                     ; 61
    1495614975    pop ES                                    ; 07
     
    1502715046    pop DS                                    ; 1f
    1502815047    cld                                       ; fc
    15029     call 050a2h                               ; e8 60 68
     15048    call 0510ch                               ; e8 ca 68
    1503015049    popaw                                     ; 61
    1503115050    pop DS                                    ; 1f
     
    1504415063    pop DS                                    ; 1f
    1504515064    cld                                       ; fc
    15046     call 050a2h                               ; e8 42 68
     15065    call 0510ch                               ; e8 ac 68
    1504715066    popaw                                     ; 61
    1504815067    pop DS                                    ; 1f
     
    1514815167    pop DS                                    ; 1f
    1514915168    cli                                       ; fa
    15150     call 0e03fh                               ; e8 69 f6
     15169    call 0e034h                               ; e8 5e f6
    1515115170    mov AL, strict byte 0aeh                  ; b0 ae
    1515215171    out strict byte 064h, AL                  ; e6 64
     
    1515915178    pop DS                                    ; 1f
    1516015179    cld                                       ; fc
    15161     call 0678ch                               ; e8 a7 7d
     15180    call 067f6h                               ; e8 11 7e
    1516215181    pop DS                                    ; 1f
    1516315182    pop ES                                    ; 07
     
    1526015279    cmp ah, 040h                              ; 80 fc 40
    1526115280    jnbe short 0ece6h                         ; 77 05
    15262     call 05427h                               ; e8 43 67
     15281    call 05491h                               ; e8 ad 67
    1526315282    jmp short 0ece9h                          ; eb 03
    15264     call 05868h                               ; e8 7f 6b
     15283    call 058d2h                               ; e8 e9 6b
    1526515284int13_out:                                   ; 0xfece9 LB 0x4
    1526615285    pop DS                                    ; 1f
     
    1545015469    ; xor ax, ax                                ; 33 c0
    1545115470    mov ds, ax                                ; 8e d8
    15452     call 0e03fh                               ; e8 b6 f0
     15471    call 0e034h                               ; e8 ab f0
    1545315472    or byte [0043eh], 080h                    ; 80 0e 3e 04 80
    1545415473    pop DS                                    ; 1f
     
    1547515494    pop DS                                    ; 1f
    1547615495    cld                                       ; fc
    15477     call 070e6h                               ; e8 09 81
     15496    call 07150h                               ; e8 73 81
    1547815497    popaw                                     ; 61
    1547915498    pop ES                                    ; 07
     
    1583515854    cmp ah, 0c2h                              ; 80 fc c2
    1583615855    je short 0f887h                           ; 74 0e
    15837     call 05f41h                               ; e8 c5 66
     15856    call 05fabh                               ; e8 2f 67
    1583815857    popaw                                     ; 61
    1583915858    pop ES                                    ; 07
     
    1584115860    popfw                                     ; 9d
    1584215861    jmp short 0f895h                          ; eb 13
    15843     call 08f0bh                               ; e8 86 96
     15862    call 08f75h                               ; e8 f0 96
    1584415863    jmp short 0f87ch                          ; eb f5
    1584515864int15_handler_mouse:                         ; 0xff887 LB 0x5
    15846     call 06d5bh                               ; e8 d1 74
     15865    call 06dc5h                               ; e8 3b 75
    1584715866    jmp short 0f87ch                          ; eb f0
    1584815867int15_handler32:                             ; 0xff88c LB 0x9
    1584915868    pushad                                    ; 66 60
    15850     call 0640eh                               ; e8 7d 6b
     15869    call 06478h                               ; e8 e7 6b
    1585115870    popad                                     ; 66 61
    1585215871    jmp short 0f87dh                          ; eb e8
     
    1587815897    pop DS                                    ; 1f
    1587915898    cld                                       ; fc
    15880     call 06c91h                               ; e8 d4 73
     15899    call 06cfbh                               ; e8 3e 74
    1588115900    pop cx                                    ; 59
    1588215901    jcxz 0f8cch                               ; e3 0c
     
    1588715906    call far [word 00022h]                    ; ff 1e 22 00
    1588815907    cli                                       ; fa
    15889     call 0e03bh                               ; e8 6b e7
     15908    call 0e030h                               ; e8 60 e7
    1589015909    add sp, strict byte 00008h                ; 83 c4 08
    1589115910    pop DS                                    ; 1f
     
    1589915918    mov ds, ax                                ; 8e d8
    1590015919    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    15901     call 0e03bh                               ; e8 55 e7
     15920    call 0e030h                               ; e8 4a e7
    1590215921    pop DS                                    ; 1f
    1590315922    pop ax                                    ; 58
     
    1597015989    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
    1597115990    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
    15972     db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 09eh, 092h, 066h
    15973     db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 09dh, 06bh, 061h, 01fh, 007h
     15991    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 008h, 093h, 066h
     15992    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 007h, 06ch, 061h, 01fh, 007h
    1597415993    db  0cfh
    1597515994int70_handler:                               ; 0xffe8f LB 0x16
     
    1598015999    pop DS                                    ; 1f
    1598116000    cld                                       ; fc
    15982     call 0696ah                               ; e8 d2 6a
     16001    call 069d4h                               ; e8 3c 6b
    1598316002    popaw                                     ; 61
    1598416003    pop DS                                    ; 1f
     
    1601816037    int 01ch                                  ; cd 1c
    1601916038    cli                                       ; fa
    16020     call 0e03fh                               ; e8 5c e1
     16039    call 0e034h                               ; e8 51 e1
    1602116040    pop dx                                    ; 5a
    1602216041    pop DS                                    ; 1f
     
    1607916098cpu_reset:                                   ; 0xffff0 LB 0x10
    1608016099    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    16081     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0c9h
     16100    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0e8h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum

    r50317 r51062  
    1 26a4ec280665e87f6347bb19c8733953 *VBoxPcBios.rom
     16a940bcf6a5d4747e33d98d6028b3cec *VBoxPcBios.rom
Note: See TracChangeset for help on using the changeset viewer.

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