VirtualBox

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


Ignore:
Timestamp:
Jul 21, 2016 3:34:39 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
108956
Message:

5.1.2 (and convert two LogRel() statements back to Log() in VBoxSeamless.cpp)

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

Legend:

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

    r62178 r62406  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e6h, 080h, 04ch, 090h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 03ah, 081h, 0a0h, 090h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992     db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 0c8h, 03ah, 0c8h, 03ah
     992    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 01ch, 03bh, 01ch, 03bh
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
    995     db  026h, 07fh, 006h, 080h, 01eh, 08fh, 0c6h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  07ah, 07fh, 05ah, 080h, 072h, 08fh, 01ah, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11161116section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
    11171117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
    1118     db  'VirtualBox 5.1.0', 000h, 000h
     1118    db  'VirtualBox 5.1.2', 000h, 000h
    11191119_bios_prefix_string:                         ; 0xf0da0 LB 0x8
    11201120    db  'BIOS: ', 000h, 000h
     
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8cb8 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d08 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x50
    11941194    push bp                                   ; 55
     
    14401440    int 010h                                  ; cd 10
    14411441    jmp short 017b7h                          ; eb 03
    1442     call 07aebh                               ; e8 34 63
     1442    call 07b3fh                               ; e8 88 63
    14431443    mov sp, bp                                ; 89 ec
    14441444    pop bp                                    ; 5d
     
    15851585    mov bx, strict word 0000ah                ; bb 0a 00
    15861586    xor cx, cx                                ; 31 c9
    1587     call 09f50h                               ; e8 83 86
     1587    call 09fa0h                               ; e8 d3 86
    15881588    mov word [bp-008h], ax                    ; 89 46 f8
    15891589    mov cx, dx                                ; 89 d1
     
    18151815    mov dx, word [bp-026h]                    ; 8b 56 da
    18161816    mov si, word [bp-01eh]                    ; 8b 76 e2
    1817     call 09f80h                               ; e8 83 84
     1817    call 09fd0h                               ; e8 d3 84
    18181818    mov ax, dx                                ; 89 d0
    18191819    xor ah, dh                                ; 30 f4
     
    22542254    mov dx, word [es:si]                      ; 26 8b 14
    22552255    mov si, strict word 00018h                ; be 18 00
    2256     call 09f80h                               ; e8 30 80
     2256    call 09fd0h                               ; e8 80 80
    22572257    xor dh, dh                                ; 30 f6
    22582258    mov word [bp-014h], dx                    ; 89 56 ec
     
    22642264    mov dx, word [es:si]                      ; 26 8b 14
    22652265    mov si, strict word 00020h                ; be 20 00
    2266     call 09f80h                               ; e8 10 80
     2266    call 09fd0h                               ; e8 60 80
    22672267    mov bx, dx                                ; 89 d3
    22682268    mov ax, word [bp-01ch]                    ; 8b 46 e4
     
    22952295    mov dx, word [es:si]                      ; 26 8b 14
    22962296    mov si, strict word 00008h                ; be 08 00
    2297     call 09f80h                               ; e8 bf 7f
     2297    call 09fd0h                               ; e8 0f 80
    22982298    mov word [bp-012h], dx                    ; 89 56 ee
    22992299    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00018h                ; be 18 00
    2306     call 09f80h                               ; e8 a1 7f
     2306    call 09fd0h                               ; e8 f1 7f
    23072307    mov ah, dl                                ; 88 d4
    23082308    and ah, 00fh                              ; 80 e4 0f
     
    26942694    mov dx, ss                                ; 8c d2
    26952695    lea ax, [bp-03ah]                         ; 8d 46 c6
    2696     call 05977h                               ; e8 cd 35
     2696    call 059cbh                               ; e8 21 36
    26972697    mov bx, 00da0h                            ; bb a0 0d
    26982698    mov cx, ds                                ; 8c d9
     
    28612861    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    28622862    mov si, strict word 0000bh                ; be 0b 00
    2863     call 09f80h                               ; e8 f9 79
     2863    call 09fd0h                               ; e8 49 7a
    28642864    mov word [bp-024h], dx                    ; 89 56 dc
    28652865    mov word [bp-032h], cx                    ; 89 4e ce
     
    31373137    mov dx, word [bp-024h]                    ; 8b 56 dc
    31383138    mov si, strict word 00018h                ; be 18 00
    3139     call 09f80h                               ; e8 37 77
     3139    call 09fd0h                               ; e8 87 77
    31403140    xor dh, dh                                ; 30 f6
    31413141    mov word [bp-014h], dx                    ; 89 56 ec
     
    31453145    mov dx, word [bp-024h]                    ; 8b 56 dc
    31463146    mov si, strict word 00020h                ; be 20 00
    3147     call 09f80h                               ; e8 20 77
     3147    call 09fd0h                               ; e8 70 77
    31483148    mov bx, dx                                ; 89 d3
    31493149    mov ax, word [bp-022h]                    ; 8b 46 de
     
    31793179    mov dx, word [bp-024h]                    ; 8b 56 dc
    31803180    mov si, strict word 00008h                ; be 08 00
    3181     call 09f80h                               ; e8 cc 76
     3181    call 09fd0h                               ; e8 1c 77
    31823182    mov word [bp-00ch], ax                    ; 89 46 f4
    31833183    mov word [bp-00eh], bx                    ; 89 5e f2
     
    31863186    mov word [bp-018h], dx                    ; 89 56 e8
    31873187    mov si, strict word 00010h                ; be 10 00
    3188     call 09f80h                               ; e8 b7 76
     3188    call 09fd0h                               ; e8 07 77
    31893189    mov word [bp-024h], dx                    ; 89 56 dc
    31903190    mov ax, dx                                ; 89 d0
     
    38483848    pop bp                                    ; 5d
    38493849    retn                                      ; c3
    3850 floppy_reset_controller_:                    ; 0xf2eba LB 0x28
     3850floppy_reset_controller_:                    ; 0xf2eba LB 0x46
    38513851    push bp                                   ; 55
    38523852    mov bp, sp                                ; 89 e5
    38533853    push bx                                   ; 53
     3854    push cx                                   ; 51
    38543855    push dx                                   ; 52
     3856    mov bx, ax                                ; 89 c3
    38553857    mov dx, 003f2h                            ; ba f2 03
    38563858    in AL, DX                                 ; ec
    38573859    db  02ah, 0e4h
    38583860    ; sub ah, ah                                ; 2a e4
    3859     mov bx, ax                                ; 89 c3
     3861    mov cx, ax                                ; 89 c1
    38603862    and AL, strict byte 0fbh                  ; 24 fb
    38613863    out DX, AL                                ; ee
    3862     mov al, bl                                ; 88 d8
     3864    mov al, cl                                ; 88 c8
    38633865    or AL, strict byte 004h                   ; 0c 04
    38643866    out DX, AL                                ; ee
     
    38693871    and AL, strict byte 0c0h                  ; 24 c0
    38703872    cmp AL, strict byte 080h                  ; 3c 80
    3871     jne short 02ecfh                          ; 75 f4
    3872     lea sp, [bp-004h]                         ; 8d 66 fc
     3873    jne short 02ed2h                          ; 75 f4
     3874    lea cx, [bx+00090h]                       ; 8d 8f 90 00
     3875    mov dx, cx                                ; 89 ca
     3876    mov ax, strict word 00040h                ; b8 40 00
     3877    call 01650h                               ; e8 66 e7
     3878    and AL, strict byte 0efh                  ; 24 ef
     3879    xor ah, ah                                ; 30 e4
     3880    mov bx, ax                                ; 89 c3
     3881    mov dx, cx                                ; 89 ca
     3882    mov ax, strict word 00040h                ; b8 40 00
     3883    call 0165eh                               ; e8 66 e7
     3884    lea sp, [bp-006h]                         ; 8d 66 fa
    38733885    pop dx                                    ; 5a
     3886    pop cx                                    ; 59
    38743887    pop bx                                    ; 5b
    38753888    pop bp                                    ; 5d
    38763889    retn                                      ; c3
    3877 floppy_prepare_controller_:                  ; 0xf2ee2 LB 0x83
     3890floppy_prepare_controller_:                  ; 0xf2f00 LB 0x83
    38783891    push bp                                   ; 55
    38793892    mov bp, sp                                ; 89 e5
     
    38853898    mov dx, strict word 0003eh                ; ba 3e 00
    38863899    mov ax, strict word 00040h                ; b8 40 00
    3887     call 01650h                               ; e8 5c e7
     3900    call 01650h                               ; e8 3e e7
    38883901    and AL, strict byte 07fh                  ; 24 7f
    38893902    xor ah, ah                                ; 30 e4
     
    38913904    mov dx, strict word 0003eh                ; ba 3e 00
    38923905    mov ax, strict word 00040h                ; b8 40 00
    3893     call 0165eh                               ; e8 5b e7
     3906    call 0165eh                               ; e8 3d e7
    38943907    mov dx, 003f2h                            ; ba f2 03
    38953908    in AL, DX                                 ; ec
     
    38993912    mov byte [bp-008h], al                    ; 88 46 f8
    39003913    test cx, cx                               ; 85 c9
    3901     je short 02f16h                           ; 74 04
     3914    je short 02f34h                           ; 74 04
    39023915    mov AL, strict byte 020h                  ; b0 20
    3903     jmp short 02f18h                          ; eb 02
     3916    jmp short 02f36h                          ; eb 02
    39043917    mov AL, strict byte 010h                  ; b0 10
    39053918    or AL, strict byte 00ch                   ; 0c 0c
     
    39103923    mov dx, strict word 00040h                ; ba 40 00
    39113924    mov ax, dx                                ; 89 d0
    3912     call 0165eh                               ; e8 33 e7
     3925    call 0165eh                               ; e8 15 e7
    39133926    mov dx, 0008bh                            ; ba 8b 00
    39143927    mov ax, strict word 00040h                ; b8 40 00
    3915     call 01650h                               ; e8 1c e7
     3928    call 01650h                               ; e8 fe e6
    39163929    shr al, 006h                              ; c0 e8 06
    39173930    mov dx, 003f7h                            ; ba f7 03
     
    39233936    and AL, strict byte 0c0h                  ; 24 c0
    39243937    cmp AL, strict byte 080h                  ; 3c 80
    3925     jne short 02f3bh                          ; 75 f4
     3938    jne short 02f59h                          ; 75 f4
    39263939    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3927     jne short 02f5dh                          ; 75 10
    3928     call 02e52h                               ; e8 02 ff
     3940    jne short 02f7bh                          ; 75 10
     3941    call 02e52h                               ; e8 e4 fe
    39293942    mov bl, al                                ; 88 c3
    39303943    xor bh, bh                                ; 30 ff
    39313944    mov dx, strict word 0003eh                ; ba 3e 00
    39323945    mov ax, strict word 00040h                ; b8 40 00
    3933     call 0165eh                               ; e8 01 e7
     3946    call 0165eh                               ; e8 e3 e6
    39343947    lea sp, [bp-006h]                         ; 8d 66 fa
    39353948    pop dx                                    ; 5a
     
    39383951    pop bp                                    ; 5d
    39393952    retn                                      ; c3
    3940 floppy_media_known_:                         ; 0xf2f65 LB 0x43
     3953floppy_media_known_:                         ; 0xf2f83 LB 0x43
    39413954    push bp                                   ; 55
    39423955    mov bp, sp                                ; 89 e5
     
    39463959    mov dx, strict word 0003eh                ; ba 3e 00
    39473960    mov ax, strict word 00040h                ; b8 40 00
    3948     call 01650h                               ; e8 db e6
     3961    call 01650h                               ; e8 bd e6
    39493962    mov ah, al                                ; 88 c4
    39503963    test bx, bx                               ; 85 db
    3951     je short 02f7dh                           ; 74 02
     3964    je short 02f9bh                           ; 74 02
    39523965    shr al, 1                                 ; d0 e8
    39533966    and AL, strict byte 001h                  ; 24 01
    3954     jne short 02f85h                          ; 75 04
    3955     xor ah, ah                                ; 30 e4
    3956     jmp short 02fa1h                          ; eb 1c
     3967    jne short 02fa3h                          ; 75 04
     3968    xor ah, ah                                ; 30 e4
     3969    jmp short 02fbfh                          ; eb 1c
    39573970    mov dx, 00090h                            ; ba 90 00
    39583971    test bx, bx                               ; 85 db
    3959     je short 02f8fh                           ; 74 03
     3972    je short 02fadh                           ; 74 03
    39603973    mov dx, 00091h                            ; ba 91 00
    39613974    mov ax, strict word 00040h                ; b8 40 00
    3962     call 01650h                               ; e8 bb e6
     3975    call 01650h                               ; e8 9d e6
    39633976    xor ah, ah                                ; 30 e4
    39643977    sar ax, 004h                              ; c1 f8 04
    39653978    and AL, strict byte 001h                  ; 24 01
    3966     je short 02f81h                           ; 74 e3
     3979    je short 02f9fh                           ; 74 e3
    39673980    mov ax, strict word 00001h                ; b8 01 00
    39683981    lea sp, [bp-004h]                         ; 8d 66 fc
     
    39713984    pop bp                                    ; 5d
    39723985    retn                                      ; c3
    3973 floppy_read_id_:                             ; 0xf2fa8 LB 0x44
     3986floppy_read_id_:                             ; 0xf2fc6 LB 0x44
    39743987    push bp                                   ; 55
    39753988    mov bp, sp                                ; 89 e5
     
    39793992    sub sp, strict byte 00008h                ; 83 ec 08
    39803993    mov bx, ax                                ; 89 c3
    3981     call 02ee2h                               ; e8 2c ff
     3994    call 02f00h                               ; e8 2c ff
    39823995    mov AL, strict byte 04ah                  ; b0 4a
    39833996    mov dx, 003f5h                            ; ba f5 03
     
    39853998    mov al, bl                                ; 88 d8
    39863999    out DX, AL                                ; ee
    3987     call 02e52h                               ; e8 90 fe
     4000    call 02e52h                               ; e8 72 fe
    39884001    xor si, si                                ; 31 f6
    3989     jmp short 02fcbh                          ; eb 05
     4002    jmp short 02fe9h                          ; eb 05
    39904003    cmp si, strict byte 00007h                ; 83 fe 07
    3991     jnl short 02fd7h                          ; 7d 0c
     4004    jnl short 02ff5h                          ; 7d 0c
    39924005    mov dx, 003f5h                            ; ba f5 03
    39934006    in AL, DX                                 ; ec
     
    39964009    mov byte [bp+si-00eh], al                 ; 88 42 f2
    39974010    inc si                                    ; 46
    3998     jmp short 02fc6h                          ; eb ef
     4011    jmp short 02fe4h                          ; eb ef
    39994012    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    4000     je short 02fe1h                           ; 74 04
     4013    je short 02fffh                           ; 74 04
    40014014    xor ax, ax                                ; 31 c0
    4002     jmp short 02fe4h                          ; eb 03
     4015    jmp short 03002h                          ; eb 03
    40034016    mov ax, strict word 00001h                ; b8 01 00
    40044017    lea sp, [bp-006h]                         ; 8d 66 fa
     
    40084021    pop bp                                    ; 5d
    40094022    retn                                      ; c3
    4010 floppy_drive_recal_:                         ; 0xf2fec LB 0x4d
     4023floppy_drive_recal_:                         ; 0xf300a LB 0x4d
    40114024    push bp                                   ; 55
    40124025    mov bp, sp                                ; 89 e5
     
    40154028    push dx                                   ; 52
    40164029    mov bx, ax                                ; 89 c3
    4017     call 02ee2h                               ; e8 eb fe
     4030    call 02f00h                               ; e8 eb fe
    40184031    mov AL, strict byte 007h                  ; b0 07
    40194032    mov dx, 003f5h                            ; ba f5 03
     
    40214034    mov al, bl                                ; 88 d8
    40224035    out DX, AL                                ; ee
    4023     call 02e52h                               ; e8 4f fe
     4036    call 02e52h                               ; e8 31 fe
    40244037    test bx, bx                               ; 85 db
    4025     je short 03011h                           ; 74 0a
     4038    je short 0302fh                           ; 74 0a
    40264039    mov bl, al                                ; 88 c3
    40274040    or bl, 002h                               ; 80 cb 02
    40284041    mov cx, 00095h                            ; b9 95 00
    4029     jmp short 03019h                          ; eb 08
     4042    jmp short 03037h                          ; eb 08
    40304043    mov bl, al                                ; 88 c3
    40314044    or bl, 001h                               ; 80 cb 01
     
    40344047    mov dx, strict word 0003eh                ; ba 3e 00
    40354048    mov ax, strict word 00040h                ; b8 40 00
    4036     call 0165eh                               ; e8 3a e6
     4049    call 0165eh                               ; e8 1c e6
    40374050    xor bx, bx                                ; 31 db
    40384051    mov dx, cx                                ; 89 ca
    40394052    mov ax, strict word 00040h                ; b8 40 00
    4040     call 0165eh                               ; e8 30 e6
     4053    call 0165eh                               ; e8 12 e6
    40414054    mov ax, strict word 00001h                ; b8 01 00
    40424055    lea sp, [bp-006h]                         ; 8d 66 fa
     
    40464059    pop bp                                    ; 5d
    40474060    retn                                      ; c3
    4048 floppy_media_sense_:                         ; 0xf3039 LB 0xf9
     4061floppy_media_sense_:                         ; 0xf3057 LB 0xf9
    40494062    push bp                                   ; 55
    40504063    mov bp, sp                                ; 89 e5
     
    40554068    push di                                   ; 57
    40564069    mov di, ax                                ; 89 c7
    4057     call 02fech                               ; e8 a6 ff
     4070    call 0300ah                               ; e8 a6 ff
    40584071    test ax, ax                               ; 85 c0
    4059     jne short 0304fh                          ; 75 05
     4072    jne short 0306dh                          ; 75 05
    40604073    xor cx, cx                                ; 31 c9
    4061     jmp near 03126h                           ; e9 d7 00
     4074    jmp near 03144h                           ; e9 d7 00
    40624075    mov ax, strict word 00010h                ; b8 10 00
    4063     call 016ach                               ; e8 57 e6
     4076    call 016ach                               ; e8 39 e6
    40644077    test di, di                               ; 85 ff
    4065     jne short 03060h                          ; 75 07
     4078    jne short 0307eh                          ; 75 07
    40664079    mov cl, al                                ; 88 c1
    40674080    shr cl, 004h                              ; c0 e9 04
    4068     jmp short 03065h                          ; eb 05
     4081    jmp short 03083h                          ; eb 05
    40694082    mov cl, al                                ; 88 c1
    40704083    and cl, 00fh                              ; 80 e1 0f
    40714084    cmp cl, 001h                              ; 80 f9 01
    4072     jne short 03073h                          ; 75 09
     4085    jne short 03091h                          ; 75 09
    40734086    xor cl, cl                                ; 30 c9
    40744087    mov CH, strict byte 015h                  ; b5 15
    40754088    mov si, strict word 00001h                ; be 01 00
    4076     jmp short 030b1h                          ; eb 3e
     4089    jmp short 030cfh                          ; eb 3e
    40774090    cmp cl, 002h                              ; 80 f9 02
    4078     jne short 0307eh                          ; 75 06
     4091    jne short 0309ch                          ; 75 06
    40794092    xor cl, cl                                ; 30 c9
    40804093    mov CH, strict byte 035h                  ; b5 35
    4081     jmp short 0306eh                          ; eb f0
     4094    jmp short 0308ch                          ; eb f0
    40824095    cmp cl, 003h                              ; 80 f9 03
    4083     jne short 03089h                          ; 75 06
     4096    jne short 030a7h                          ; 75 06
    40844097    xor cl, cl                                ; 30 c9
    40854098    mov CH, strict byte 017h                  ; b5 17
    4086     jmp short 0306eh                          ; eb e5
     4099    jmp short 0308ch                          ; eb e5
    40874100    cmp cl, 004h                              ; 80 f9 04
    4088     jne short 03094h                          ; 75 06
     4101    jne short 030b2h                          ; 75 06
    40894102    xor cl, cl                                ; 30 c9
    40904103    mov CH, strict byte 017h                  ; b5 17
    4091     jmp short 0306eh                          ; eb da
     4104    jmp short 0308ch                          ; eb da
    40924105    cmp cl, 005h                              ; 80 f9 05
    4093     jne short 0309fh                          ; 75 06
     4106    jne short 030bdh                          ; 75 06
    40944107    mov CL, strict byte 0cch                  ; b1 cc
    40954108    mov CH, strict byte 0d7h                  ; b5 d7
    4096     jmp short 0306eh                          ; eb cf
     4109    jmp short 0308ch                          ; eb cf
    40974110    cmp cl, 00eh                              ; 80 f9 0e
    4098     je short 030a9h                           ; 74 05
     4111    je short 030c7h                           ; 74 05
    40994112    cmp cl, 00fh                              ; 80 f9 0f
    4100     jne short 030abh                          ; 75 02
    4101     jmp short 03099h                          ; eb ee
     4113    jne short 030c9h                          ; 75 02
     4114    jmp short 030b7h                          ; eb ee
    41024115    xor cl, cl                                ; 30 c9
    41034116    xor ch, ch                                ; 30 ed
     
    41084121    mov dx, 0008bh                            ; ba 8b 00
    41094122    mov ax, strict word 00040h                ; b8 40 00
    4110     call 0165eh                               ; e8 9e e5
     4123    call 0165eh                               ; e8 80 e5
    41114124    mov ax, di                                ; 89 f8
    4112     call 02fa8h                               ; e8 e3 fe
     4125    call 02fc6h                               ; e8 e3 fe
    41134126    test ax, ax                               ; 85 c0
    4114     jne short 030fbh                          ; 75 32
     4127    jne short 03119h                          ; 75 32
    41154128    mov al, cl                                ; 88 c8
    41164129    and AL, strict byte 0c0h                  ; 24 c0
    41174130    cmp AL, strict byte 080h                  ; 3c 80
    4118     je short 030fbh                           ; 74 2a
     4131    je short 03119h                           ; 74 2a
    41194132    mov al, cl                                ; 88 c8
    41204133    and AL, strict byte 0c0h                  ; 24 c0
    41214134    cmp AL, strict byte 0c0h                  ; 3c c0
    4122     je short 030e8h                           ; 74 0f
     4135    je short 03106h                           ; 74 0f
    41234136    mov ah, cl                                ; 88 cc
    41244137    and ah, 03fh                              ; 80 e4 3f
    41254138    cmp AL, strict byte 040h                  ; 3c 40
    4126     je short 030f4h                           ; 74 12
     4139    je short 03112h                           ; 74 12
    41274140    test al, al                               ; 84 c0
    4128     je short 030edh                           ; 74 07
    4129     jmp short 030b1h                          ; eb c9
     4141    je short 0310bh                           ; 74 07
     4142    jmp short 030cfh                          ; eb c9
    41304143    and cl, 03fh                              ; 80 e1 3f
    4131     jmp short 030b1h                          ; eb c4
     4144    jmp short 030cfh                          ; eb c4
    41324145    mov cl, ah                                ; 88 e1
    41334146    or cl, 040h                               ; 80 c9 40
    4134     jmp short 030b1h                          ; eb bd
     4147    jmp short 030cfh                          ; eb bd
    41354148    mov cl, ah                                ; 88 e1
    41364149    or cl, 080h                               ; 80 c9 80
    4137     jmp short 030b1h                          ; eb b6
     4150    jmp short 030cfh                          ; eb b6
    41384151    test di, di                               ; 85 ff
    4139     jne short 03104h                          ; 75 05
     4152    jne short 03122h                          ; 75 05
    41404153    mov di, 00090h                            ; bf 90 00
    4141     jmp short 03107h                          ; eb 03
     4154    jmp short 03125h                          ; eb 03
    41424155    mov di, 00091h                            ; bf 91 00
    41434156    mov al, cl                                ; 88 c8
     
    41464159    mov dx, 0008bh                            ; ba 8b 00
    41474160    mov ax, strict word 00040h                ; b8 40 00
    4148     call 0165eh                               ; e8 48 e5
     4161    call 0165eh                               ; e8 2a e5
    41494162    mov al, ch                                ; 88 e8
    41504163    xor ah, ah                                ; 30 e4
     
    41524165    mov dx, di                                ; 89 fa
    41534166    mov ax, strict word 00040h                ; b8 40 00
    4154     call 0165eh                               ; e8 3a e5
     4167    call 0165eh                               ; e8 1c e5
    41554168    mov cx, si                                ; 89 f1
    41564169    mov ax, cx                                ; 89 c8
     
    41634176    pop bp                                    ; 5d
    41644177    retn                                      ; c3
    4165 floppy_drive_exists_:                        ; 0xf3132 LB 0x28
     4178floppy_drive_exists_:                        ; 0xf3150 LB 0x28
    41664179    push bp                                   ; 55
    41674180    mov bp, sp                                ; 89 e5
     
    41694182    mov dx, ax                                ; 89 c2
    41704183    mov ax, strict word 00010h                ; b8 10 00
    4171     call 016ach                               ; e8 6e e5
     4184    call 016ach                               ; e8 50 e5
    41724185    test dx, dx                               ; 85 d2
    4173     jne short 03147h                          ; 75 05
     4186    jne short 03165h                          ; 75 05
    41744187    shr al, 004h                              ; c0 e8 04
    4175     jmp short 03149h                          ; eb 02
     4188    jmp short 03167h                          ; eb 02
    41764189    and AL, strict byte 00fh                  ; 24 0f
    41774190    test al, al                               ; 84 c0
    4178     je short 03152h                           ; 74 05
     4191    je short 03170h                           ; 74 05
    41794192    mov ax, strict word 00001h                ; b8 01 00
    4180     jmp short 03154h                          ; eb 02
     4193    jmp short 03172h                          ; eb 02
    41814194    xor ah, ah                                ; 30 e4
    41824195    lea sp, [bp-002h]                         ; 8d 66 fe
     
    41844197    pop bp                                    ; 5d
    41854198    retn                                      ; c3
    4186 _int13_diskette_function:                    ; 0xf315a LB 0x93e
     4199_int13_diskette_function:                    ; 0xf3178 LB 0x974
    41874200    push bp                                   ; 55
    41884201    mov bp, sp                                ; 89 e5
    41894202    push si                                   ; 56
    41904203    push di                                   ; 57
    4191     sub sp, strict byte 00016h                ; 83 ec 16
     4204    sub sp, strict byte 00018h                ; 83 ec 18
    41924205    mov bx, word [bp+016h]                    ; 8b 5e 16
    41934206    shr bx, 008h                              ; c1 eb 08
     
    42004213    mov dx, word [bp+014h]                    ; 8b 56 14
    42014214    shr dx, 008h                              ; c1 ea 08
    4202     mov word [bp-010h], dx                    ; 89 56 f0
     4215    mov word [bp-014h], dx                    ; 89 56 ec
    42034216    cmp bl, 008h                              ; 80 fb 08
    4204     jc short 031b7h                           ; 72 2e
     4217    jc short 031d5h                           ; 72 2e
    42054218    mov dx, word [bp+01ch]                    ; 8b 56 1c
    42064219    or dl, 001h                               ; 80 ca 01
    42074220    cmp bl, 008h                              ; 80 fb 08
    4208     jbe short 031edh                          ; 76 59
     4221    jbe short 0320bh                          ; 76 59
    42094222    cmp bl, 016h                              ; 80 fb 16
    4210     jc short 031afh                           ; 72 16
     4223    jc short 031cdh                           ; 72 16
    42114224    or si, 00100h                             ; 81 ce 00 01
    42124225    cmp bl, 016h                              ; 80 fb 16
    4213     jbe short 031f0h                          ; 76 4e
     4226    jbe short 0320eh                          ; 76 4e
    42144227    cmp bl, 018h                              ; 80 fb 18
    4215     je short 031f3h                           ; 74 4c
     4228    je short 03211h                           ; 74 4c
    42164229    cmp bl, 017h                              ; 80 fb 17
    4217     je short 03209h                           ; 74 5d
    4218     jmp near 03a75h                           ; e9 c6 08
     4230    je short 03227h                           ; 74 5d
     4231    jmp near 03ac9h                           ; e9 fc 08
    42194232    cmp bl, 015h                              ; 80 fb 15
    4220     je short 0320ch                           ; 74 58
    4221     jmp near 03a75h                           ; e9 be 08
     4233    je short 0322ah                           ; 74 58
     4234    jmp near 03ac9h                           ; e9 f4 08
    42224235    cmp bl, 001h                              ; 80 fb 01
    4223     jc short 031cbh                           ; 72 0f
    4224     jbe short 0320fh                          ; 76 51
     4236    jc short 031e9h                           ; 72 0f
     4237    jbe short 0322dh                          ; 76 51
    42254238    cmp bl, 005h                              ; 80 fb 05
    4226     je short 0322ah                           ; 74 67
     4239    je short 03248h                           ; 74 67
    42274240    cmp bl, 004h                              ; 80 fb 04
    4228     jbe short 0322dh                          ; 76 65
    4229     jmp near 03a75h                           ; e9 aa 08
     4241    jbe short 0324bh                          ; 76 65
     4242    jmp near 03ac9h                           ; e9 e0 08
    42304243    test bl, bl                               ; 84 db
    4231     jne short 0322fh                          ; 75 60
     4244    jne short 0324dh                          ; 75 60
    42324245    mov al, byte [bp+00eh]                    ; 8a 46 0e
    42334246    mov byte [bp-006h], al                    ; 88 46 fa
    42344247    cmp AL, strict byte 001h                  ; 3c 01
    4235     jbe short 031f6h                          ; 76 1d
     4248    jbe short 03214h                          ; 76 1d
    42364249    mov ax, word [bp+016h]                    ; 8b 46 16
    42374250    xor ah, ah                                ; 30 e4
     
    42394252    mov word [bp+016h], ax                    ; 89 46 16
    42404253    mov ax, strict word 00001h                ; b8 01 00
    4241     call 02e09h                               ; e8 1f fc
    4242     jmp near 03599h                           ; e9 ac 03
    4243     jmp near 03757h                           ; e9 67 05
    4244     jmp near 0388bh                           ; e9 98 06
    4245     jmp near 03924h                           ; e9 2e 07
     4254    call 02e09h                               ; e8 01 fc
     4255    jmp near 035d0h                           ; e9 c5 03
     4256    jmp near 037abh                           ; e9 9d 05
     4257    jmp near 038dfh                           ; e9 ce 06
     4258    jmp near 03978h                           ; e9 64 07
    42464259    mov ax, strict word 00010h                ; b8 10 00
    4247     call 016ach                               ; e8 b0 e4
     4260    call 016ach                               ; e8 92 e4
    42484261    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4249     jne short 03211h                          ; 75 0f
     4262    jne short 0322fh                          ; 75 0f
    42504263    mov cl, al                                ; 88 c1
    42514264    shr cl, 004h                              ; c0 e9 04
    4252     jmp short 03216h                          ; eb 0d
    4253     jmp near 038afh                           ; e9 a3 06
    4254     jmp near 03847h                           ; e9 38 06
    4255     jmp short 03258h                          ; eb 47
     4265    jmp short 03234h                          ; eb 0d
     4266    jmp near 03903h                           ; e9 d9 06
     4267    jmp near 0389bh                           ; e9 6e 06
     4268    jmp short 03276h                          ; eb 47
    42564269    mov cl, al                                ; 88 c1
    42574270    and cl, 00fh                              ; 80 e1 0f
    42584271    test cl, cl                               ; 84 c9
    4259     jne short 03232h                          ; 75 18
     4272    jne short 03250h                          ; 75 18
    42604273    mov ax, word [bp+016h]                    ; 8b 46 16
    42614274    xor ah, ah                                ; 30 e4
     
    42634276    mov word [bp+016h], ax                    ; 89 46 16
    42644277    mov ax, 00080h                            ; b8 80 00
    4265     jmp short 031e7h                          ; eb bd
    4266     jmp near 035c3h                           ; e9 96 03
    4267     jmp short 03277h                          ; eb 48
    4268     jmp near 03a75h                           ; e9 43 08
     4278    jmp short 03205h                          ; eb bd
     4279    jmp near 035fah                           ; e9 af 03
     4280    jmp short 03295h                          ; eb 48
     4281    jmp near 03ac9h                           ; e9 79 08
    42694282    xor bx, bx                                ; 31 db
    42704283    mov dx, strict word 0003eh                ; ba 3e 00
    42714284    mov ax, strict word 00040h                ; b8 40 00
    4272     call 0165eh                               ; e8 21 e4
     4285    call 0165eh                               ; e8 03 e4
    42734286    xor al, al                                ; 30 c0
    42744287    mov byte [bp+017h], al                    ; 88 46 17
    42754288    xor ah, ah                                ; 30 e4
    4276     call 02e09h                               ; e8 c2 fb
     4289    call 02e09h                               ; e8 a4 fb
    42774290    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    42784291    mov al, byte [bp-006h]                    ; 8a 46 fa
    42794292    xor ah, ah                                ; 30 e4
    42804293    xor dx, dx                                ; 31 d2
    4281     call 02e22h                               ; e8 cd fb
    4282     jmp near 035bch                           ; e9 64 03
     4294    call 02e22h                               ; e8 af fb
     4295    jmp near 035f3h                           ; e9 7d 03
    42834296    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    42844297    mov dx, 00441h                            ; ba 41 04
    42854298    xor ax, ax                                ; 31 c0
    4286     call 01650h                               ; e8 ec e3
     4299    call 01650h                               ; e8 ce e3
    42874300    mov dl, al                                ; 88 c2
    42884301    xor dh, dh                                ; 30 f6
     
    42914304    mov word [bp+016h], si                    ; 89 76 16
    42924305    test al, al                               ; 84 c0
    4293     je short 032cah                           ; 74 56
    4294     jmp near 03599h                           ; e9 22 03
     4306    je short 032e8h                           ; 74 56
     4307    jmp near 035d0h                           ; e9 3b 03
    42954308    mov ch, cl                                ; 88 cd
    4296     mov dl, byte [bp-010h]                    ; 8a 56 f0
     4309    mov dl, byte [bp-014h]                    ; 8a 56 ec
    42974310    mov byte [bp-008h], dl                    ; 88 56 f8
    42984311    mov byte [bp-00ch], ah                    ; 88 66 f4
     
    43024315    mov byte [bp-006h], al                    ; 88 46 fa
    43034316    cmp AL, strict byte 001h                  ; 3c 01
    4304     jnbe short 032a0h                         ; 77 0e
     4317    jnbe short 032beh                         ; 77 0e
    43054318    cmp dl, 001h                              ; 80 fa 01
    4306     jnbe short 032a0h                         ; 77 09
     4319    jnbe short 032beh                         ; 77 09
    43074320    test cl, cl                               ; 84 c9
    4308     je short 032a0h                           ; 74 05
     4321    je short 032beh                           ; 74 05
    43094322    cmp cl, 048h                              ; 80 f9 48
    4310     jbe short 032cdh                          ; 76 2d
     4323    jbe short 032ebh                          ; 76 2d
    43114324    mov bx, 00da0h                            ; bb a0 0d
    43124325    mov cx, ds                                ; 8c d9
    43134326    mov ax, strict word 00004h                ; b8 04 00
    4314     call 01923h                               ; e8 78 e6
     4327    call 01923h                               ; e8 5a e6
    43154328    push 00275h                               ; 68 75 02
    43164329    push 0028dh                               ; 68 8d 02
    43174330    push strict byte 00004h                   ; 6a 04
    4318     call 01966h                               ; e8 b0 e6
     4331    call 01966h                               ; e8 92 e6
    43194332    add sp, strict byte 00006h                ; 83 c4 06
    43204333    mov ax, word [bp+016h]                    ; 8b 46 16
     
    43234336    mov word [bp+016h], ax                    ; 89 46 16
    43244337    mov ax, strict word 00001h                ; b8 01 00
    4325     jmp near 0334eh                           ; e9 84 00
    4326     jmp near 035bch                           ; e9 ef 02
     4338    jmp near 03373h                           ; e9 8b 00
     4339    jmp near 035f3h                           ; e9 08 03
    43274340    mov al, byte [bp-006h]                    ; 8a 46 fa
    43284341    xor ah, ah                                ; 30 e4
    4329     call 03132h                               ; e8 5d fe
     4342    call 03150h                               ; e8 5d fe
    43304343    test ax, ax                               ; 85 c0
    4331     je short 03307h                           ; 74 2e
    4332     mov dl, byte [bp-006h]                    ; 8a 56 fa
    4333     xor dh, dh                                ; 30 f6
    4334     mov ax, dx                                ; 89 d0
    4335     call 02f65h                               ; e8 82 fc
     4344    jne short 03307h                          ; 75 10
     4345    mov ax, word [bp+016h]                    ; 8b 46 16
     4346    xor ah, ah                                ; 30 e4
     4347    or ah, 080h                               ; 80 cc 80
     4348    mov word [bp+016h], ax                    ; 89 46 16
     4349    mov ax, 00080h                            ; b8 80 00
     4350    jmp short 03373h                          ; eb 6c
     4351    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4352    xor bh, bh                                ; 30 ff
     4353    mov ax, bx                                ; 89 d8
     4354    call 02f83h                               ; e8 72 fc
    43364355    test ax, ax                               ; 85 c0
    4337     jne short 0330ah                          ; 75 23
    4338     mov ax, dx                                ; 89 d0
    4339     call 03039h                               ; e8 4d fd
     4356    jne short 0332fh                          ; 75 1a
     4357    mov ax, bx                                ; 89 d8
     4358    call 03057h                               ; e8 3d fd
    43404359    test ax, ax                               ; 85 c0
    4341     jne short 0330ah                          ; 75 1a
     4360    jne short 0332fh                          ; 75 11
    43424361    mov ax, word [bp+016h]                    ; 8b 46 16
    43434362    xor ah, ah                                ; 30 e4
     
    43454364    mov word [bp+016h], ax                    ; 89 46 16
    43464365    mov ax, strict word 0000ch                ; b8 0c 00
    4347     call 02e09h                               ; e8 08 fb
    4348     mov byte [bp+016h], dh                    ; 88 76 16
    4349     jmp near 03599h                           ; e9 92 02
    4350     jmp near 033e9h                           ; e9 df 00
     4366    jmp near 0341fh                           ; e9 f0 00
    43514367    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    4352     jne short 03358h                          ; 75 48
     4368    jne short 0337dh                          ; 75 48
     4369    mov dx, word [bp+006h]                    ; 8b 56 06
     4370    shr dx, 00ch                              ; c1 ea 0c
     4371    mov cl, dl                                ; 88 d1
    43534372    mov ax, word [bp+006h]                    ; 8b 46 06
    4354     shr ax, 00ch                              ; c1 e8 0c
    4355     mov cl, al                                ; 88 c1
    4356     mov dx, word [bp+006h]                    ; 8b 56 06
    4357     sal dx, 004h                              ; c1 e2 04
     4373    sal ax, 004h                              ; c1 e0 04
    43584374    mov bx, word [bp+010h]                    ; 8b 5e 10
    4359     add bx, dx                                ; 01 d3
     4375    add bx, ax                                ; 01 c3
    43604376    mov word [bp-012h], bx                    ; 89 5e ee
    4361     cmp dx, bx                                ; 39 da
    4362     jbe short 0332ch                          ; 76 02
     4377    cmp ax, bx                                ; 39 d8
     4378    jbe short 03351h                          ; 76 02
    43634379    db  0feh, 0c1h
    43644380    ; inc cl                                    ; fe c1
     
    43714387    add ax, bx                                ; 01 d8
    43724388    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4373     jnc short 0335bh                          ; 73 1b
     4389    jnc short 03380h                          ; 73 1b
    43744390    mov ax, word [bp+016h]                    ; 8b 46 16
    43754391    xor ah, ah                                ; 30 e4
     
    43774393    mov word [bp+016h], ax                    ; 89 46 16
    43784394    mov ax, strict word 00009h                ; b8 09 00
    4379     call 02e09h                               ; e8 b8 fa
     4395    call 02e09h                               ; e8 93 fa
    43804396    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4381     jmp near 03599h                           ; e9 41 02
    4382     jmp near 0347fh                           ; e9 24 01
     4397    jmp near 035d0h                           ; e9 53 02
     4398    jmp near 034b5h                           ; e9 35 01
    43834399    mov AL, strict byte 006h                  ; b0 06
    43844400    mov dx, strict word 0000ah                ; ba 0a 00
     
    44114427    mov dx, strict word 0000ah                ; ba 0a 00
    44124428    out DX, AL                                ; ee
    4413     mov al, byte [bp-006h]                    ; 8a 46 fa
    4414     xor ah, ah                                ; 30 e4
    4415     call 02ee2h                               ; e8 41 fb
     4429    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4430    xor bh, bh                                ; 30 ff
     4431    mov ax, bx                                ; 89 d8
     4432    call 02f00h                               ; e8 38 fb
    44164433    mov AL, strict byte 0e6h                  ; b0 e6
    44174434    mov dx, 003f5h                            ; ba f5 03
     
    44214438    mov dx, ax                                ; 89 c2
    44224439    sal dx, 002h                              ; c1 e2 02
    4423     mov al, byte [bp-006h]                    ; 8a 46 fa
     4440    mov al, bl                                ; 88 d8
    44244441    or ax, dx                                 ; 09 d0
    44254442    mov dx, 003f5h                            ; ba f5 03
     
    44454462    mov AL, strict byte 0ffh                  ; b0 ff
    44464463    out DX, AL                                ; ee
    4447     call 02e73h                               ; e8 91 fa
     4464    call 02e73h                               ; e8 6b fa
    44484465    test al, al                               ; 84 c0
    4449     jne short 033fah                          ; 75 14
    4450     call 02ebah                               ; e8 d1 fa
     4466    jne short 03428h                          ; 75 1c
     4467    mov ax, bx                                ; 89 d8
     4468    call 02ebah                               ; e8 a9 fa
    44514469    mov ax, word [bp+016h]                    ; 8b 46 16
    44524470    xor ah, ah                                ; 30 e4
     
    44544472    mov word [bp+016h], ax                    ; 89 46 16
    44554473    mov ax, 00080h                            ; b8 80 00
    4456     jmp near 0334eh                           ; e9 54 ff
     4474    call 02e09h                               ; e8 e7 f9
     4475    mov byte [bp+016h], bh                    ; 88 7e 16
     4476    jmp near 035d0h                           ; e9 a8 01
    44574477    mov dx, 003f4h                            ; ba f4 03
    44584478    in AL, DX                                 ; ec
     
    44614481    and AL, strict byte 0c0h                  ; 24 c0
    44624482    cmp AL, strict byte 0c0h                  ; 3c c0
    4463     je short 03414h                           ; 74 0e
     4483    je short 03442h                           ; 74 0e
    44644484    push 00275h                               ; 68 75 02
    44654485    push 002a8h                               ; 68 a8 02
    44664486    push strict byte 00007h                   ; 6a 07
    4467     call 01966h                               ; e8 55 e5
     4487    call 01966h                               ; e8 27 e5
    44684488    add sp, strict byte 00006h                ; 83 c4 06
    44694489    xor si, si                                ; 31 f6
    4470     jmp short 0341dh                          ; eb 05
     4490    jmp short 0344bh                          ; eb 05
    44714491    cmp si, strict byte 00007h                ; 83 fe 07
    4472     jnl short 03436h                          ; 7d 19
     4492    jnl short 03464h                          ; 7d 19
    44734493    mov dx, 003f5h                            ; ba f5 03
    44744494    in AL, DX                                 ; ec
    44754495    db  02ah, 0e4h
    44764496    ; sub ah, ah                                ; 2a e4
    4477     mov byte [bp+si-01ah], al                 ; 88 42 e6
     4497    mov byte [bp+si-01ch], al                 ; 88 42 e4
    44784498    mov bl, al                                ; 88 c3
    44794499    xor bh, bh                                ; 30 ff
    44804500    lea dx, [si+042h]                         ; 8d 54 42
    44814501    mov ax, strict word 00040h                ; b8 40 00
    4482     call 0165eh                               ; e8 2b e2
     4502    call 0165eh                               ; e8 fd e1
    44834503    inc si                                    ; 46
    4484     jmp short 03418h                          ; eb e2
    4485     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4486     je short 0344dh                           ; 74 11
     4504    jmp short 03446h                          ; eb e2
     4505    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
     4506    je short 03483h                           ; 74 19
     4507    mov al, byte [bp-006h]                    ; 8a 46 fa
     4508    xor ah, ah                                ; 30 e4
     4509    call 02ebah                               ; e8 48 fa
    44874510    mov ax, word [bp+016h]                    ; 8b 46 16
    44884511    xor ah, ah                                ; 30 e4
     
    44904513    mov word [bp+016h], ax                    ; 89 46 16
    44914514    mov ax, strict word 00020h                ; b8 20 00
    4492     jmp near 0334eh                           ; e9 01 ff
     4515    jmp near 03373h                           ; e9 f0 fe
    44934516    mov al, ch                                ; 88 e8
    44944517    xor ah, ah                                ; 30 e4
     
    45114534    mov al, byte [bp-006h]                    ; 8a 46 fa
    45124535    xor ah, ah                                ; 30 e4
    4513     call 02e22h                               ; e8 aa f9
     4536    call 02e22h                               ; e8 74 f9
    45144537    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4515     jmp near 0391dh                           ; e9 9e 04
     4538    jmp near 03971h                           ; e9 bc 04
    45164539    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
    4517     je short 03488h                           ; 74 03
    4518     jmp near 035a7h                           ; e9 1f 01
     4540    je short 034beh                           ; 74 03
     4541    jmp near 035deh                           ; e9 20 01
    45194542    mov dx, word [bp+006h]                    ; 8b 56 06
    45204543    shr dx, 00ch                              ; c1 ea 0c
     
    45264549    mov word [bp-012h], bx                    ; 89 5e ee
    45274550    cmp ax, bx                                ; 39 d8
    4528     jbe short 034a4h                          ; 76 02
     4551    jbe short 034dah                          ; 76 02
    45294552    db  0feh, 0c1h
    45304553    ; inc cl                                    ; fe c1
     
    45374560    add ax, bx                                ; 01 d8
    45384561    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4539     jnc short 034bbh                          ; 73 03
    4540     jmp near 03340h                           ; e9 85 fe
     4562    jnc short 034f1h                          ; 73 03
     4563    jmp near 03365h                           ; e9 74 fe
    45414564    mov AL, strict byte 006h                  ; b0 06
    45424565    mov dx, strict word 0000ah                ; ba 0a 00
     
    45694592    mov dx, strict word 0000ah                ; ba 0a 00
    45704593    out DX, AL                                ; ee
    4571     mov al, byte [bp-006h]                    ; 8a 46 fa
    4572     xor ah, ah                                ; 30 e4
    4573     call 02ee2h                               ; e8 e1 f9
     4594    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4595    xor bh, bh                                ; 30 ff
     4596    mov ax, bx                                ; 89 d8
     4597    call 02f00h                               ; e8 c7 f9
    45744598    mov AL, strict byte 0c5h                  ; b0 c5
    45754599    mov dx, 003f5h                            ; ba f5 03
     
    45794603    mov dx, ax                                ; 89 c2
    45804604    sal dx, 002h                              ; c1 e2 02
    4581     mov al, byte [bp-006h]                    ; 8a 46 fa
     4605    mov al, bl                                ; 88 d8
    45824606    or ax, dx                                 ; 09 d0
    45834607    mov dx, 003f5h                            ; ba f5 03
     
    45914615    mov AL, strict byte 002h                  ; b0 02
    45924616    out DX, AL                                ; ee
    4593     mov dl, byte [bp-00ch]                    ; 8a 56 f4
     4617    mov al, byte [bp-00ch]                    ; 8a 46 f4
     4618    xor ah, ah                                ; 30 e4
     4619    mov dl, ch                                ; 88 ea
    45944620    xor dh, dh                                ; 30 f6
    4595     mov al, ch                                ; 88 e8
    4596     xor ah, ah                                ; 30 e4
    45974621    add ax, dx                                ; 01 d0
    45984622    dec ax                                    ; 48
     
    46034627    mov AL, strict byte 0ffh                  ; b0 ff
    46044628    out DX, AL                                ; ee
    4605     call 02e73h                               ; e8 31 f9
     4629    call 02e73h                               ; e8 fa f8
    46064630    test al, al                               ; 84 c0
    4607     jne short 03549h                          ; 75 03
    4608     jmp near 033e6h                           ; e9 9d fe
     4631    jne short 03580h                          ; 75 03
     4632    jmp near 0340ch                           ; e9 8c fe
    46094633    mov dx, 003f4h                            ; ba f4 03
    46104634    in AL, DX                                 ; ec
     
    46134637    and AL, strict byte 0c0h                  ; 24 c0
    46144638    cmp AL, strict byte 0c0h                  ; 3c c0
    4615     je short 03563h                           ; 74 0e
     4639    je short 0359ah                           ; 74 0e
    46164640    push 00275h                               ; 68 75 02
    46174641    push 002a8h                               ; 68 a8 02
    46184642    push strict byte 00007h                   ; 6a 07
    4619     call 01966h                               ; e8 06 e4
     4643    call 01966h                               ; e8 cf e3
    46204644    add sp, strict byte 00006h                ; 83 c4 06
    46214645    xor si, si                                ; 31 f6
    4622     jmp short 0356ch                          ; eb 05
     4646    jmp short 035a3h                          ; eb 05
    46234647    cmp si, strict byte 00007h                ; 83 fe 07
    4624     jnl short 03585h                          ; 7d 19
     4648    jnl short 035bch                          ; 7d 19
    46254649    mov dx, 003f5h                            ; ba f5 03
    46264650    in AL, DX                                 ; ec
    46274651    db  02ah, 0e4h
    46284652    ; sub ah, ah                                ; 2a e4
    4629     mov byte [bp+si-01ah], al                 ; 88 42 e6
     4653    mov byte [bp+si-01ch], al                 ; 88 42 e4
    46304654    mov bl, al                                ; 88 c3
    46314655    xor bh, bh                                ; 30 ff
    46324656    lea dx, [si+042h]                         ; 8d 54 42
    46334657    mov ax, strict word 00040h                ; b8 40 00
    4634     call 0165eh                               ; e8 dc e0
     4658    call 0165eh                               ; e8 a5 e0
    46354659    inc si                                    ; 46
    4636     jmp short 03567h                          ; eb e2
    4637     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4638     jne short 0358eh                          ; 75 03
    4639     jmp near 0346bh                           ; e9 dd fe
    4640     test byte [bp-019h], 002h                 ; f6 46 e7 02
    4641     je short 035a0h                           ; 74 0c
     4660    jmp short 0359eh                          ; eb e2
     4661    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
     4662    jne short 035c5h                          ; 75 03
     4663    jmp near 034a1h                           ; e9 dc fe
     4664    test byte [bp-01bh], 002h                 ; f6 46 e5 02
     4665    je short 035d7h                           ; 74 0c
    46424666    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    46434667    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4644     jmp near 035bch                           ; e9 1c 00
     4668    jmp near 035f3h                           ; e9 1c 00
    46454669    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4646     jmp short 03599h                          ; eb f2
     4670    jmp short 035d0h                          ; eb f2
    46474671    mov dl, byte [bp-008h]                    ; 8a 56 f8
    46484672    xor dh, dh                                ; 30 f6
    46494673    mov al, byte [bp-006h]                    ; 8a 46 fa
    46504674    xor ah, ah                                ; 30 e4
    4651     call 02e22h                               ; e8 6e f8
     4675    call 02e22h                               ; e8 37 f8
    46524676    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    46534677    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    46674691    mov byte [bp-006h], bl                    ; 88 5e fa
    46684692    cmp bl, 001h                              ; 80 fb 01
    4669     jnbe short 035f5h                         ; 77 12
     4693    jnbe short 0362ch                         ; 77 12
    46704694    cmp dl, 001h                              ; 80 fa 01
    4671     jnbe short 035f5h                         ; 77 0d
     4695    jnbe short 0362ch                         ; 77 0d
    46724696    cmp AL, strict byte 04fh                  ; 3c 4f
    4673     jnbe short 035f5h                         ; 77 09
     4697    jnbe short 0362ch                         ; 77 09
    46744698    test ch, ch                               ; 84 ed
    4675     je short 035f5h                           ; 74 05
     4699    je short 0362ch                           ; 74 05
    46764700    cmp ch, 012h                              ; 80 fd 12
    4677     jbe short 0360ah                          ; 76 15
     4701    jbe short 03641h                          ; 76 15
    46784702    mov ax, word [bp+016h]                    ; 8b 46 16
    46794703    xor ah, ah                                ; 30 e4
     
    46814705    mov word [bp+016h], ax                    ; 89 46 16
    46824706    mov ax, strict word 00001h                ; b8 01 00
    4683     call 02e09h                               ; e8 03 f8
     4707    call 02e09h                               ; e8 cc f7
    46844708    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    46854709    mov al, byte [bp-006h]                    ; 8a 46 fa
    46864710    xor ah, ah                                ; 30 e4
    4687     call 03132h                               ; e8 20 fb
     4711    call 03150h                               ; e8 07 fb
    46884712    test ax, ax                               ; 85 c0
    4689     jne short 03619h                          ; 75 03
    4690     jmp near 0321ah                           ; e9 01 fc
     4713    jne short 03650h                          ; 75 03
     4714    jmp near 03238h                           ; e9 e8 fb
    46914715    mov dl, byte [bp-006h]                    ; 8a 56 fa
    46924716    xor dh, dh                                ; 30 f6
    46934717    mov ax, dx                                ; 89 d0
    4694     call 02f65h                               ; e8 42 f9
     4718    call 02f83h                               ; e8 29 f9
    46954719    test ax, ax                               ; 85 c0
    4696     jne short 03633h                          ; 75 0c
     4720    jne short 0367eh                          ; 75 20
    46974721    mov ax, dx                                ; 89 d0
    4698     call 03039h                               ; e8 0d fa
     4722    call 03057h                               ; e8 f4 f9
    46994723    test ax, ax                               ; 85 c0
    4700     jne short 03633h                          ; 75 03
    4701     jmp near 032f0h                           ; e9 bd fc
     4724    jne short 0367eh                          ; 75 17
     4725    mov ax, word [bp+016h]                    ; 8b 46 16
     4726    xor ah, ah                                ; 30 e4
     4727    or ah, 00ch                               ; 80 cc 0c
     4728    mov word [bp+016h], ax                    ; 89 46 16
     4729    mov ax, strict word 0000ch                ; b8 0c 00
     4730    call 02e09h                               ; e8 91 f7
     4731    mov byte [bp+016h], dh                    ; 88 76 16
     4732    jmp near 035d0h                           ; e9 52 ff
    47024733    mov dx, word [bp+006h]                    ; 8b 56 06
    47034734    shr dx, 00ch                              ; c1 ea 0c
     
    47094740    mov word [bp-012h], bx                    ; 89 5e ee
    47104741    cmp ax, bx                                ; 39 d8
    4711     jbe short 0364fh                          ; 76 02
     4742    jbe short 0369ah                          ; 76 02
    47124743    db  0feh, 0c1h
    47134744    ; inc cl                                    ; fe c1
     
    47204751    add ax, bx                                ; 01 d8
    47214752    cmp ax, word [bp-012h]                    ; 3b 46 ee
    4722     jnc short 03666h                          ; 73 03
    4723     jmp near 03340h                           ; e9 da fc
     4753    jnc short 036b1h                          ; 73 03
     4754    jmp near 03365h                           ; e9 b4 fc
    47244755    mov AL, strict byte 006h                  ; b0 06
    47254756    mov dx, strict word 0000ah                ; ba 0a 00
     
    47524783    mov dx, strict word 0000ah                ; ba 0a 00
    47534784    out DX, AL                                ; ee
    4754     mov al, byte [bp-006h]                    ; 8a 46 fa
    4755     xor ah, ah                                ; 30 e4
    4756     call 02ee2h                               ; e8 36 f8
     4785    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4786    xor bh, bh                                ; 30 ff
     4787    mov ax, bx                                ; 89 d8
     4788    call 02f00h                               ; e8 07 f8
    47574789    mov AL, strict byte 00fh                  ; b0 0f
    47584790    mov dx, 003f5h                            ; ba f5 03
     
    47604792    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47614793    xor ah, ah                                ; 30 e4
    4762     sal ax, 002h                              ; c1 e0 02
    4763     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4764     xor bh, bh                                ; 30 ff
    4765     or bx, ax                                 ; 09 c3
    4766     mov al, bl                                ; 88 d8
     4794    mov dx, ax                                ; 89 c2
     4795    sal dx, 002h                              ; c1 e2 02
     4796    or dx, bx                                 ; 09 da
     4797    mov word [bp-010h], dx                    ; 89 56 f0
     4798    mov al, byte [bp-010h]                    ; 8a 46 f0
     4799    mov dx, 003f5h                            ; ba f5 03
    47674800    out DX, AL                                ; ee
    47684801    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    47704803    mov AL, strict byte 04dh                  ; b0 4d
    47714804    out DX, AL                                ; ee
    4772     mov al, bl                                ; 88 d8
     4805    mov al, byte [bp-010h]                    ; 8a 46 f0
    47734806    out DX, AL                                ; ee
    47744807    mov AL, strict byte 002h                  ; b0 02
     
    47804813    mov AL, strict byte 0f6h                  ; b0 f6
    47814814    out DX, AL                                ; ee
    4782     call 02e73h                               ; e8 96 f7
     4815    call 02e73h                               ; e8 44 f7
    47834816    test al, al                               ; 84 c0
    4784     jne short 036e7h                          ; 75 06
    4785     call 02ebah                               ; e8 d6 f7
    4786     jmp near 0321ah                           ; e9 33 fb
     4817    jne short 0373bh                          ; 75 08
     4818    mov ax, bx                                ; 89 d8
     4819    call 02ebah                               ; e8 82 f7
     4820    jmp near 03238h                           ; e9 fd fa
    47874821    mov dx, 003f4h                            ; ba f4 03
    47884822    in AL, DX                                 ; ec
     
    47914825    and AL, strict byte 0c0h                  ; 24 c0
    47924826    cmp AL, strict byte 0c0h                  ; 3c c0
    4793     je short 03701h                           ; 74 0e
     4827    je short 03755h                           ; 74 0e
    47944828    push 00275h                               ; 68 75 02
    47954829    push 002a8h                               ; 68 a8 02
    47964830    push strict byte 00007h                   ; 6a 07
    4797     call 01966h                               ; e8 68 e2
     4831    call 01966h                               ; e8 14 e2
    47984832    add sp, strict byte 00006h                ; 83 c4 06
    47994833    xor si, si                                ; 31 f6
    4800     jmp short 0370ah                          ; eb 05
     4834    jmp short 0375eh                          ; eb 05
    48014835    cmp si, strict byte 00007h                ; 83 fe 07
    4802     jnl short 03723h                          ; 7d 19
     4836    jnl short 03777h                          ; 7d 19
    48034837    mov dx, 003f5h                            ; ba f5 03
    48044838    in AL, DX                                 ; ec
    48054839    db  02ah, 0e4h
    48064840    ; sub ah, ah                                ; 2a e4
    4807     mov byte [bp+si-01ah], al                 ; 88 42 e6
     4841    mov byte [bp+si-01ch], al                 ; 88 42 e4
    48084842    mov bl, al                                ; 88 c3
    48094843    xor bh, bh                                ; 30 ff
    48104844    lea dx, [si+042h]                         ; 8d 54 42
    48114845    mov ax, strict word 00040h                ; b8 40 00
    4812     call 0165eh                               ; e8 3e df
     4846    call 0165eh                               ; e8 ea de
    48134847    inc si                                    ; 46
    4814     jmp short 03705h                          ; eb e2
    4815     test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4816     je short 03740h                           ; 74 17
    4817     test byte [bp-019h], 002h                 ; f6 46 e7 02
    4818     je short 03732h                           ; 74 03
    4819     jmp near 03594h                           ; e9 62 fe
     4848    jmp short 03759h                          ; eb e2
     4849    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
     4850    je short 03794h                           ; 74 17
     4851    test byte [bp-01bh], 002h                 ; f6 46 e5 02
     4852    je short 03786h                           ; 74 03
     4853    jmp near 035cbh                           ; e9 45 fe
    48204854    push 00275h                               ; 68 75 02
    48214855    push 002bch                               ; 68 bc 02
    48224856    push strict byte 00007h                   ; 6a 07
    4823     call 01966h                               ; e8 29 e2
     4857    call 01966h                               ; e8 d5 e1
    48244858    add sp, strict byte 00006h                ; 83 c4 06
    48254859    xor al, al                                ; 30 c0
    48264860    mov byte [bp+017h], al                    ; 88 46 17
    48274861    xor ah, ah                                ; 30 e4
    4828     call 02e09h                               ; e8 bf f6
     4862    call 02e09h                               ; e8 6b f6
    48294863    mov al, byte [bp-006h]                    ; 8a 46 fa
    48304864    xor ah, ah                                ; 30 e4
    48314865    xor dx, dx                                ; 31 d2
    4832     call 02e22h                               ; e8 ce f6
    4833     jmp near 0391dh                           ; e9 c6 01
     4866    call 02e22h                               ; e8 7a f6
     4867    jmp near 03971h                           ; e9 c6 01
    48344868    mov byte [bp-006h], al                    ; 88 46 fa
    48354869    cmp AL, strict byte 001h                  ; 3c 01
    4836     jbe short 0377ch                          ; 76 1e
     4870    jbe short 037d0h                          ; 76 1e
    48374871    xor ax, ax                                ; 31 c0
    48384872    mov word [bp+016h], ax                    ; 89 46 16
     
    48454879    xor ah, ah                                ; 30 e4
    48464880    mov word [bp+012h], ax                    ; 89 46 12
    4847     jmp near 03898h                           ; e9 1c 01
     4881    jmp near 038ech                           ; e9 1c 01
    48484882    mov ax, strict word 00010h                ; b8 10 00
    4849     call 016ach                               ; e8 2a df
     4883    call 016ach                               ; e8 d6 de
    48504884    mov cl, al                                ; 88 c1
    48514885    xor ch, ch                                ; 30 ed
    48524886    test AL, strict byte 0f0h                 ; a8 f0
    4853     je short 0378ch                           ; 74 02
     4887    je short 037e0h                           ; 74 02
    48544888    mov CH, strict byte 001h                  ; b5 01
    48554889    test cl, 00fh                             ; f6 c1 0f
    4856     je short 03793h                           ; 74 02
     4890    je short 037e7h                           ; 74 02
    48574891    db  0feh, 0c5h
    48584892    ; inc ch                                    ; fe c5
    48594893    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4860     jne short 0379eh                          ; 75 05
     4894    jne short 037f2h                          ; 75 05
    48614895    shr cl, 004h                              ; c0 e9 04
    4862     jmp short 037a1h                          ; eb 03
     4896    jmp short 037f5h                          ; eb 03
    48634897    and cl, 00fh                              ; 80 e1 0f
    48644898    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    48764910    mov word [bp+012h], ax                    ; 89 46 12
    48774911    cmp cl, 003h                              ; 80 f9 03
    4878     jc short 037ddh                           ; 72 15
    4879     jbe short 03804h                          ; 76 3a
     4912    jc short 03831h                           ; 72 15
     4913    jbe short 03858h                          ; 76 3a
    48804914    cmp cl, 005h                              ; 80 f9 05
    4881     jc short 0380bh                           ; 72 3c
    4882     jbe short 03812h                          ; 76 41
     4915    jc short 0385fh                           ; 72 3c
     4916    jbe short 03866h                          ; 76 41
    48834917    cmp cl, 00fh                              ; 80 f9 0f
    4884     je short 03820h                           ; 74 4a
     4918    je short 03874h                           ; 74 4a
    48854919    cmp cl, 00eh                              ; 80 f9 0e
    4886     je short 03819h                           ; 74 3e
    4887     jmp short 03827h                          ; eb 4a
     4920    je short 0386dh                           ; 74 3e
     4921    jmp short 0387bh                          ; eb 4a
    48884922    cmp cl, 002h                              ; 80 f9 02
    4889     je short 037fdh                           ; 74 1b
     4923    je short 03851h                           ; 74 1b
    48904924    cmp cl, 001h                              ; 80 f9 01
    4891     je short 037f6h                           ; 74 0f
     4925    je short 0384ah                           ; 74 0f
    48924926    test cl, cl                               ; 84 c9
    4893     jne short 03827h                          ; 75 3c
     4927    jne short 0387bh                          ; 75 3c
    48944928    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    48954929    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4896     jmp short 03835h                          ; eb 3f
     4930    jmp short 03889h                          ; eb 3f
    48974931    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4898     jmp short 03835h                          ; eb 38
     4932    jmp short 03889h                          ; eb 38
    48994933    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4900     jmp short 03835h                          ; eb 31
     4934    jmp short 03889h                          ; eb 31
    49014935    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4902     jmp short 03835h                          ; eb 2a
     4936    jmp short 03889h                          ; eb 2a
    49034937    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4904     jmp short 03835h                          ; eb 23
     4938    jmp short 03889h                          ; eb 23
    49054939    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4906     jmp short 03835h                          ; eb 1c
     4940    jmp short 03889h                          ; eb 1c
    49074941    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4908     jmp short 03835h                          ; eb 15
     4942    jmp short 03889h                          ; eb 15
    49094943    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4910     jmp short 03835h                          ; eb 0e
     4944    jmp short 03889h                          ; eb 0e
    49114945    push 00275h                               ; 68 75 02
    49124946    push 002cdh                               ; 68 cd 02
    49134947    push strict byte 00007h                   ; 6a 07
    4914     call 01966h                               ; e8 34 e1
     4948    call 01966h                               ; e8 e0 e0
    49154949    add sp, strict byte 00006h                ; 83 c4 06
    49164950    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    49174951    mov al, cl                                ; 88 c8
    49184952    xor ah, ah                                ; 30 e4
    4919     call 03a98h                               ; e8 57 02
     4953    call 03aech                               ; e8 57 02
    49204954    mov word [bp+008h], ax                    ; 89 46 08
    4921     jmp near 0391dh                           ; e9 d6 00
     4955    jmp near 03971h                           ; e9 d6 00
    49224956    mov byte [bp-006h], al                    ; 88 46 fa
    49234957    cmp AL, strict byte 001h                  ; 3c 01
    4924     jbe short 03853h                          ; 76 05
     4958    jbe short 038a7h                          ; 76 05
    49254959    mov word [bp+016h], si                    ; 89 76 16
    4926     jmp short 03898h                          ; eb 45
     4960    jmp short 038ech                          ; eb 45
    49274961    mov ax, strict word 00010h                ; b8 10 00
    4928     call 016ach                               ; e8 53 de
     4962    call 016ach                               ; e8 ff dd
    49294963    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4930     jne short 03866h                          ; 75 07
     4964    jne short 038bah                          ; 75 07
    49314965    mov cl, al                                ; 88 c1
    49324966    shr cl, 004h                              ; c0 e9 04
    4933     jmp short 0386bh                          ; eb 05
     4967    jmp short 038bfh                          ; eb 05
    49344968    mov cl, al                                ; 88 c1
    49354969    and cl, 00fh                              ; 80 e1 0f
     
    49384972    xor ah, ah                                ; 30 e4
    49394973    test cl, cl                               ; 84 c9
    4940     je short 03885h                           ; 74 0d
     4974    je short 038d9h                           ; 74 0d
    49414975    cmp cl, 001h                              ; 80 f9 01
    4942     jbe short 03882h                          ; 76 05
     4976    jbe short 038d6h                          ; 76 05
    49434977    or ah, 002h                               ; 80 cc 02
    4944     jmp short 03885h                          ; eb 03
     4978    jmp short 038d9h                          ; eb 03
    49454979    or ah, 001h                               ; 80 cc 01
    49464980    mov word [bp+016h], ax                    ; 89 46 16
    4947     jmp near 035bch                           ; e9 31 fd
     4981    jmp near 035f3h                           ; e9 14 fd
    49484982    cmp AL, strict byte 001h                  ; 3c 01
    4949     jbe short 0389eh                          ; 76 0f
     4983    jbe short 038f2h                          ; 76 0f
    49504984    mov word [bp+016h], si                    ; 89 76 16
    49514985    mov ax, strict word 00001h                ; b8 01 00
    4952     call 02e09h                               ; e8 71 f5
     4986    call 02e09h                               ; e8 1d f5
    49534987    mov word [bp+01ch], dx                    ; 89 56 1c
    4954     jmp near 035bch                           ; e9 1e fd
     4988    jmp near 035f3h                           ; e9 01 fd
    49554989    mov ax, word [bp+016h]                    ; 8b 46 16
    49564990    xor ah, ah                                ; 30 e4
     
    49584992    mov word [bp+016h], ax                    ; 89 46 16
    49594993    mov ax, strict word 00006h                ; b8 06 00
    4960     jmp near 031e7h                           ; e9 38 f9
     4994    jmp near 03205h                           ; e9 02 f9
    49614995    mov byte [bp-006h], al                    ; 88 46 fa
    49624996    mov bl, cl                                ; 88 cb
    49634997    cmp AL, strict byte 001h                  ; 3c 01
    4964     jnbe short 0388fh                         ; 77 d7
     4998    jnbe short 038e3h                         ; 77 d7
    49654999    mov al, byte [bp-006h]                    ; 8a 46 fa
    49665000    xor ah, ah                                ; 30 e4
    4967     call 03132h                               ; e8 72 f8
     5001    call 03150h                               ; e8 3c f8
    49685002    test ax, ax                               ; 85 c0
    4969     jne short 038c7h                          ; 75 03
    4970     jmp near 0321ah                           ; e9 53 f9
     5003    jne short 0391bh                          ; 75 03
     5004    jmp near 03238h                           ; e9 1d f9
    49715005    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4972     je short 038d2h                           ; 74 05
     5006    je short 03926h                           ; 74 05
    49735007    mov dx, 00091h                            ; ba 91 00
    4974     jmp short 038d5h                          ; eb 03
     5008    jmp short 03929h                          ; eb 03
    49755009    mov dx, 00090h                            ; ba 90 00
    49765010    mov word [bp-012h], dx                    ; 89 56 ee
    49775011    mov ax, strict word 00040h                ; b8 40 00
    4978     call 01650h                               ; e8 72 dd
     5012    call 01650h                               ; e8 1e dd
    49795013    and AL, strict byte 00fh                  ; 24 0f
    49805014    cmp bl, 002h                              ; 80 fb 02
    4981     jc short 038f4h                           ; 72 0f
    4982     jbe short 03900h                          ; 76 19
     5015    jc short 03948h                           ; 72 0f
     5016    jbe short 03954h                          ; 76 19
    49835017    cmp bl, 004h                              ; 80 fb 04
    4984     je short 038fch                           ; 74 10
     5018    je short 03950h                           ; 74 10
    49855019    cmp bl, 003h                              ; 80 fb 03
    4986     je short 03904h                           ; 74 13
    4987     jmp near 031d9h                           ; e9 e5 f8
     5020    je short 03958h                           ; 74 13
     5021    jmp near 031f7h                           ; e9 af f8
    49885022    cmp bl, 001h                              ; 80 fb 01
    4989     je short 038fch                           ; 74 03
    4990     jmp near 031d9h                           ; e9 dd f8
     5023    je short 03950h                           ; 74 03
     5024    jmp near 031f7h                           ; e9 a7 f8
    49915025    or AL, strict byte 090h                   ; 0c 90
    4992     jmp short 03906h                          ; eb 06
     5026    jmp short 0395ah                          ; eb 06
    49935027    or AL, strict byte 070h                   ; 0c 70
    4994     jmp short 03906h                          ; eb 02
     5028    jmp short 0395ah                          ; eb 02
    49955029    or AL, strict byte 010h                   ; 0c 10
    49965030    mov bl, al                                ; 88 c3
     
    49985032    mov dx, word [bp-012h]                    ; 8b 56 ee
    49995033    mov ax, strict word 00040h                ; b8 40 00
    5000     call 0165eh                               ; e8 4b dd
     5034    call 0165eh                               ; e8 f7 dc
    50015035    xor al, al                                ; 30 c0
    50025036    mov byte [bp+017h], al                    ; 88 46 17
    50035037    xor ah, ah                                ; 30 e4
    5004     call 02e09h                               ; e8 ec f4
     5038    call 02e09h                               ; e8 98 f4
    50055039    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    5006     jmp near 035bch                           ; e9 98 fc
     5040    jmp near 035f3h                           ; e9 7b fc
    50075041    mov byte [bp-006h], al                    ; 88 46 fa
    50085042    mov ch, ah                                ; 88 e5
     
    50125046    sar bx, 006h                              ; c1 fb 06
    50135047    sal bx, 008h                              ; c1 e3 08
    5014     add bx, word [bp-010h]                    ; 03 5e f0
     5048    add bx, word [bp-014h]                    ; 03 5e ec
    50155049    mov byte [bp-008h], bl                    ; 88 5e f8
    50165050    cmp AL, strict byte 001h                  ; 3c 01
    5017     jbe short 03943h                          ; 76 03
    5018     jmp near 0388fh                           ; e9 4c ff
     5051    jbe short 03997h                          ; 76 03
     5052    jmp near 038e3h                           ; e9 4c ff
    50195053    mov al, byte [bp-006h]                    ; 8a 46 fa
    50205054    xor ah, ah                                ; 30 e4
    5021     call 03132h                               ; e8 e7 f7
     5055    call 03150h                               ; e8 b1 f7
    50225056    test ax, ax                               ; 85 c0
    5023     jne short 03952h                          ; 75 03
    5024     jmp near 0321ah                           ; e9 c8 f8
    5025     mov dl, byte [bp-006h]                    ; 8a 56 fa
    5026     xor dh, dh                                ; 30 f6
    5027     mov ax, dx                                ; 89 d0
    5028     call 02f65h                               ; e8 09 f6
     5057    jne short 039a6h                          ; 75 03
     5058    jmp near 03238h                           ; e9 92 f8
     5059    mov bl, byte [bp-006h]                    ; 8a 5e fa
     5060    xor bh, bh                                ; 30 ff
     5061    mov ax, bx                                ; 89 d8
     5062    call 02f83h                               ; e8 d3 f5
    50295063    test ax, ax                               ; 85 c0
    5030     jne short 0397ah                          ; 75 1a
    5031     mov ax, dx                                ; 89 d0
    5032     call 03039h                               ; e8 d4 f6
     5064    jne short 039ceh                          ; 75 1a
     5065    mov ax, bx                                ; 89 d8
     5066    call 03057h                               ; e8 9e f6
    50335067    test ax, ax                               ; 85 c0
    5034     jne short 0397ah                          ; 75 11
     5068    jne short 039ceh                          ; 75 11
    50355069    mov ax, word [bp+016h]                    ; 8b 46 16
    50365070    xor ah, ah                                ; 30 e4
     
    50385072    mov word [bp+016h], ax                    ; 89 46 16
    50395073    mov ax, strict word 0000ch                ; b8 0c 00
    5040     jmp near 031e7h                           ; e9 6d f8
     5074    jmp near 03205h                           ; e9 37 f8
    50415075    mov ax, strict word 00010h                ; b8 10 00
    5042     call 016ach                               ; e8 2c dd
     5076    call 016ach                               ; e8 d8 dc
    50435077    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5044     jne short 0398dh                          ; 75 07
     5078    jne short 039e1h                          ; 75 07
    50455079    mov cl, al                                ; 88 c1
    50465080    shr cl, 004h                              ; c0 e9 04
    5047     jmp short 03992h                          ; eb 05
     5081    jmp short 039e6h                          ; eb 05
    50485082    mov cl, al                                ; 88 c1
    50495083    and cl, 00fh                              ; 80 e1 0f
    50505084    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5051     je short 0399dh                           ; 74 05
     5085    je short 039f1h                           ; 74 05
    50525086    mov dx, 00091h                            ; ba 91 00
    5053     jmp short 039a0h                          ; eb 03
     5087    jmp short 039f4h                          ; eb 03
    50545088    mov dx, 00090h                            ; ba 90 00
    50555089    mov word [bp-012h], dx                    ; 89 56 ee
    50565090    mov ax, strict word 00040h                ; b8 40 00
    5057     call 01650h                               ; e8 a7 dc
     5091    call 01650h                               ; e8 53 dc
    50585092    and AL, strict byte 00fh                  ; 24 0f
    50595093    cmp cl, 003h                              ; 80 f9 03
    5060     jc short 039cch                           ; 72 1c
     5094    jc short 03a20h                           ; 72 1c
    50615095    mov ah, al                                ; 88 c4
    50625096    or ah, 090h                               ; 80 cc 90
    50635097    cmp cl, 003h                              ; 80 f9 03
    5064     jbe short 03a03h                          ; 76 49
     5098    jbe short 03a57h                          ; 76 49
    50655099    mov dl, al                                ; 88 c2
    50665100    or dl, 010h                               ; 80 ca 10
    50675101    cmp cl, 005h                              ; 80 f9 05
    5068     je short 03a10h                           ; 74 4c
     5102    je short 03a64h                           ; 74 4c
    50695103    cmp cl, 004h                              ; 80 f9 04
    5070     je short 03a16h                           ; 74 4d
    5071     jmp near 03a47h                           ; e9 7b 00
     5104    je short 03a6ah                           ; 74 4d
     5105    jmp near 03a9bh                           ; e9 7b 00
    50725106    cmp cl, 002h                              ; 80 f9 02
    5073     je short 039e5h                           ; 74 14
     5107    je short 03a39h                           ; 74 14
    50745108    cmp cl, 001h                              ; 80 f9 01
    5075     jne short 03a14h                          ; 75 3e
     5109    jne short 03a68h                          ; 75 3e
    50765110    cmp byte [bp-008h], 027h                  ; 80 7e f8 27
    5077     jne short 03a14h                          ; 75 38
     5111    jne short 03a68h                          ; 75 38
    50785112    cmp ch, 009h                              ; 80 fd 09
    5079     jne short 03a2ah                          ; 75 49
     5113    jne short 03a7eh                          ; 75 49
    50805114    or AL, strict byte 090h                   ; 0c 90
    5081     jmp short 03a2ah                          ; eb 45
     5115    jmp short 03a7eh                          ; eb 45
    50825116    cmp byte [bp-008h], 027h                  ; 80 7e f8 27
    5083     jne short 039f4h                          ; 75 09
     5117    jne short 03a48h                          ; 75 09
    50845118    cmp ch, 009h                              ; 80 fd 09
    5085     jne short 039f4h                          ; 75 04
     5119    jne short 03a48h                          ; 75 04
    50865120    or AL, strict byte 070h                   ; 0c 70
    5087     jmp short 03a2ah                          ; eb 36
     5121    jmp short 03a7eh                          ; eb 36
    50885122    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5089     jne short 03a47h                          ; 75 4d
     5123    jne short 03a9bh                          ; 75 4d
    50905124    cmp ch, 00fh                              ; 80 fd 0f
    5091     jne short 03a47h                          ; 75 48
     5125    jne short 03a9bh                          ; 75 48
    50925126    or AL, strict byte 010h                   ; 0c 10
    5093     jmp short 03a47h                          ; eb 44
     5127    jmp short 03a9bh                          ; eb 44
    50945128    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5095     jne short 03a47h                          ; 75 3e
     5129    jne short 03a9bh                          ; 75 3e
    50965130    cmp ch, 009h                              ; 80 fd 09
    5097     je short 03a12h                           ; 74 04
    5098     jmp short 03a47h                          ; eb 37
    5099     jmp short 03a2ch                          ; eb 1a
     5131    je short 03a66h                           ; 74 04
     5132    jmp short 03a9bh                          ; eb 37
     5133    jmp short 03a80h                          ; eb 1a
    51005134    mov al, ah                                ; 88 e0
    5101     jmp short 03a47h                          ; eb 31
     5135    jmp short 03a9bh                          ; eb 31
    51025136    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5103     jne short 03a47h                          ; 75 2b
     5137    jne short 03a9bh                          ; 75 2b
    51045138    cmp ch, 009h                              ; 80 fd 09
    5105     jne short 03a23h                          ; 75 02
    5106     jmp short 03a12h                          ; eb ef
     5139    jne short 03a77h                          ; 75 02
     5140    jmp short 03a66h                          ; eb ef
    51075141    cmp ch, 012h                              ; 80 fd 12
    5108     jne short 03a47h                          ; 75 1f
     5142    jne short 03a9bh                          ; 75 1f
    51095143    mov al, dl                                ; 88 d0
    5110     jmp short 03a47h                          ; eb 1b
     5144    jmp short 03a9bh                          ; eb 1b
    51115145    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
    5112     jne short 03a47h                          ; 75 15
     5146    jne short 03a9bh                          ; 75 15
    51135147    cmp ch, 009h                              ; 80 fd 09
    5114     jne short 03a39h                          ; 75 02
    5115     jmp short 03a12h                          ; eb d9
     5148    jne short 03a8dh                          ; 75 02
     5149    jmp short 03a66h                          ; eb d9
    51165150    cmp ch, 012h                              ; 80 fd 12
    5117     jne short 03a40h                          ; 75 02
    5118     jmp short 03a28h                          ; eb e8
     5151    jne short 03a94h                          ; 75 02
     5152    jmp short 03a7ch                          ; eb e8
    51195153    cmp ch, 024h                              ; 80 fd 24
    5120     jne short 03a47h                          ; 75 02
     5154    jne short 03a9bh                          ; 75 02
    51215155    or AL, strict byte 0d0h                   ; 0c d0
    51225156    mov dl, al                                ; 88 c2
     
    51245158    sar dx, 004h                              ; c1 fa 04
    51255159    test dl, 001h                             ; f6 c2 01
    5126     jne short 03a56h                          ; 75 03
    5127     jmp near 03969h                           ; e9 13 ff
     5160    jne short 03aaah                          ; 75 03
     5161    jmp near 039bdh                           ; e9 13 ff
    51285162    mov bl, al                                ; 88 c3
    51295163    xor bh, bh                                ; 30 ff
    51305164    mov dx, word [bp-012h]                    ; 8b 56 ee
    51315165    mov ax, strict word 00040h                ; b8 40 00
    5132     call 0165eh                               ; e8 fb db
     5166    call 0165eh                               ; e8 a7 db
    51335167    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    51345168    mov al, cl                                ; 88 c8
    51355169    xor ah, ah                                ; 30 e4
    5136     call 03a98h                               ; e8 29 00
     5170    call 03aech                               ; e8 29 00
    51375171    mov word [bp+008h], ax                    ; 89 46 08
    5138     jmp near 03913h                           ; e9 9e fe
     5172    jmp near 03967h                           ; e9 9e fe
    51395173    mov bx, 00da0h                            ; bb a0 0d
    51405174    mov cx, ds                                ; 8c d9
    51415175    mov ax, strict word 00004h                ; b8 04 00
    5142     call 01923h                               ; e8 a3 de
     5176    call 01923h                               ; e8 4f de
    51435177    mov ax, word [bp+016h]                    ; 8b 46 16
    51445178    shr ax, 008h                              ; c1 e8 08
     
    51475181    push 002e2h                               ; 68 e2 02
    51485182    push strict byte 00004h                   ; 6a 04
    5149     call 01966h                               ; e8 d4 de
     5183    call 01966h                               ; e8 80 de
    51505184    add sp, strict byte 00008h                ; 83 c4 08
    5151     jmp near 031d9h                           ; e9 41 f7
    5152 get_floppy_dpt_:                             ; 0xf3a98 LB 0x30
     5185    jmp near 031f7h                           ; e9 0b f7
     5186get_floppy_dpt_:                             ; 0xf3aec LB 0x30
    51535187    push bx                                   ; 53
    51545188    push dx                                   ; 52
     
    51575191    mov dl, al                                ; 88 c2
    51585192    xor ax, ax                                ; 31 c0
    5159     jmp short 03aa9h                          ; eb 06
     5193    jmp short 03afdh                          ; eb 06
    51605194    inc ax                                    ; 40
    51615195    cmp ax, strict word 00007h                ; 3d 07 00
    5162     jnc short 03ac1h                          ; 73 18
     5196    jnc short 03b15h                          ; 73 18
    51635197    mov bx, ax                                ; 89 c3
    51645198    add bx, ax                                ; 01 c3
    51655199    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5166     jne short 03aa3h                          ; 75 f0
     5200    jne short 03af7h                          ; 75 f0
    51675201    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    51685202    xor ah, ah                                ; 30 e4
    51695203    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    51705204    add ax, strict word 00000h                ; 05 00 00
    5171     jmp short 03ac4h                          ; eb 03
     5205    jmp short 03b18h                          ; eb 03
    51725206    mov ax, strict word 00041h                ; b8 41 00
    51735207    pop bp                                    ; 5d
     
    51755209    pop bx                                    ; 5b
    51765210    retn                                      ; c3
    5177 dummy_soft_reset_:                           ; 0xf3ac8 LB 0x7
     5211dummy_soft_reset_:                           ; 0xf3b1c LB 0x7
    51785212    push bp                                   ; 55
    51795213    mov bp, sp                                ; 89 e5
     
    51815215    pop bp                                    ; 5d
    51825216    retn                                      ; c3
    5183 _cdemu_init:                                 ; 0xf3acf LB 0x18
     5217_cdemu_init:                                 ; 0xf3b23 LB 0x18
    51845218    push bp                                   ; 55
    51855219    mov bp, sp                                ; 89 e5
    51865220    mov dx, strict word 0000eh                ; ba 0e 00
    51875221    mov ax, strict word 00040h                ; b8 40 00
    5188     call 0166ch                               ; e8 91 db
     5222    call 0166ch                               ; e8 3d db
    51895223    xor bx, bx                                ; 31 db
    51905224    mov dx, 00366h                            ; ba 66 03
    5191     call 0165eh                               ; e8 7b db
     5225    call 0165eh                               ; e8 27 db
    51925226    mov sp, bp                                ; 89 ec
    51935227    pop bp                                    ; 5d
    51945228    retn                                      ; c3
    5195 _cdemu_isactive:                             ; 0xf3ae7 LB 0x16
     5229_cdemu_isactive:                             ; 0xf3b3b LB 0x16
    51965230    push bp                                   ; 55
    51975231    mov bp, sp                                ; 89 e5
    51985232    mov dx, strict word 0000eh                ; ba 0e 00
    51995233    mov ax, strict word 00040h                ; b8 40 00
    5200     call 0166ch                               ; e8 79 db
     5234    call 0166ch                               ; e8 25 db
    52015235    mov dx, 00366h                            ; ba 66 03
    5202     call 01650h                               ; e8 57 db
     5236    call 01650h                               ; e8 03 db
    52035237    mov sp, bp                                ; 89 ec
    52045238    pop bp                                    ; 5d
    52055239    retn                                      ; c3
    5206 _cdemu_emulated_drive:                       ; 0xf3afd LB 0x16
     5240_cdemu_emulated_drive:                       ; 0xf3b51 LB 0x16
    52075241    push bp                                   ; 55
    52085242    mov bp, sp                                ; 89 e5
    52095243    mov dx, strict word 0000eh                ; ba 0e 00
    52105244    mov ax, strict word 00040h                ; b8 40 00
    5211     call 0166ch                               ; e8 63 db
     5245    call 0166ch                               ; e8 0f db
    52125246    mov dx, 00368h                            ; ba 68 03
    5213     call 01650h                               ; e8 41 db
     5247    call 01650h                               ; e8 ed da
    52145248    mov sp, bp                                ; 89 ec
    52155249    pop bp                                    ; 5d
    52165250    retn                                      ; c3
    5217 _int13_eltorito:                             ; 0xf3b13 LB 0x190
     5251_int13_eltorito:                             ; 0xf3b67 LB 0x190
    52185252    push bp                                   ; 55
    52195253    mov bp, sp                                ; 89 e5
     
    52225256    mov dx, strict word 0000eh                ; ba 0e 00
    52235257    mov ax, strict word 00040h                ; b8 40 00
    5224     call 0166ch                               ; e8 4b db
     5258    call 0166ch                               ; e8 f7 da
    52255259    mov si, 00366h                            ; be 66 03
    52265260    mov di, ax                                ; 89 c7
     
    52285262    shr ax, 008h                              ; c1 e8 08
    52295263    cmp ax, strict word 0004bh                ; 3d 4b 00
    5230     jc short 03b3bh                           ; 72 0a
    5231     jbe short 03b62h                          ; 76 2f
     5264    jc short 03b8fh                           ; 72 0a
     5265    jbe short 03bb6h                          ; 76 2f
    52325266    cmp ax, strict word 0004dh                ; 3d 4d 00
    5233     jbe short 03b40h                          ; 76 08
    5234     jmp near 03c67h                           ; e9 2c 01
     5267    jbe short 03b94h                          ; 76 08
     5268    jmp near 03cbbh                           ; e9 2c 01
    52355269    cmp ax, strict word 0004ah                ; 3d 4a 00
    5236     jne short 03b5fh                          ; 75 1f
     5270    jne short 03bb3h                          ; 75 1f
    52375271    mov bx, 00da0h                            ; bb a0 0d
    52385272    mov cx, ds                                ; 8c d9
    52395273    mov ax, strict word 00004h                ; b8 04 00
    5240     call 01923h                               ; e8 d8 dd
     5274    call 01923h                               ; e8 84 dd
    52415275    push word [bp+016h]                       ; ff 76 16
    52425276    push 002fch                               ; 68 fc 02
    52435277    push 0030bh                               ; 68 0b 03
    52445278    push strict byte 00004h                   ; 6a 04
    5245     call 01966h                               ; e8 0d de
     5279    call 01966h                               ; e8 b9 dd
    52465280    add sp, strict byte 00008h                ; 83 c4 08
    5247     jmp near 03c82h                           ; e9 23 01
    5248     jmp near 03c67h                           ; e9 05 01
     5281    jmp near 03cd6h                           ; e9 23 01
     5282    jmp near 03cbbh                           ; e9 05 01
    52495283    mov dx, word [bp+00ah]                    ; 8b 56 0a
    52505284    mov ax, word [bp+004h]                    ; 8b 46 04
    52515285    mov bx, strict word 00013h                ; bb 13 00
    5252     call 0165eh                               ; e8 f0 da
     5286    call 0165eh                               ; e8 9c da
    52535287    mov es, di                                ; 8e c7
    52545288    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    52575291    inc dx                                    ; 42
    52585292    mov ax, word [bp+004h]                    ; 8b 46 04
    5259     call 0165eh                               ; e8 de da
     5293    call 0165eh                               ; e8 8a da
    52605294    mov es, di                                ; 8e c7
    52615295    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    52655299    inc dx                                    ; 42
    52665300    mov ax, word [bp+004h]                    ; 8b 46 04
    5267     call 0165eh                               ; e8 cb da
     5301    call 0165eh                               ; e8 77 da
    52685302    mov es, di                                ; 8e c7
    52695303    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    52725306    add dx, strict byte 00003h                ; 83 c2 03
    52735307    mov ax, word [bp+004h]                    ; 8b 46 04
    5274     call 0165eh                               ; e8 b7 da
     5308    call 0165eh                               ; e8 63 da
    52755309    mov es, di                                ; 8e c7
    52765310    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    52795313    add dx, strict byte 00004h                ; 83 c2 04
    52805314    mov ax, word [bp+004h]                    ; 8b 46 04
    5281     call 0169ah                               ; e8 dd da
     5315    call 0169ah                               ; e8 89 da
    52825316    mov es, di                                ; 8e c7
    52835317    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    52855319    add dx, strict byte 00008h                ; 83 c2 08
    52865320    mov ax, word [bp+004h]                    ; 8b 46 04
    5287     call 0167ah                               ; e8 ab da
     5321    call 0167ah                               ; e8 57 da
    52885322    mov es, di                                ; 8e c7
    52895323    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    52915325    add dx, strict byte 0000ah                ; 83 c2 0a
    52925326    mov ax, word [bp+004h]                    ; 8b 46 04
    5293     call 0167ah                               ; e8 99 da
     5327    call 0167ah                               ; e8 45 da
    52945328    mov es, di                                ; 8e c7
    52955329    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    52975331    add dx, strict byte 0000ch                ; 83 c2 0c
    52985332    mov ax, word [bp+004h]                    ; 8b 46 04
    5299     call 0167ah                               ; e8 87 da
     5333    call 0167ah                               ; e8 33 da
    53005334    mov es, di                                ; 8e c7
    53015335    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    53035337    add dx, strict byte 0000eh                ; 83 c2 0e
    53045338    mov ax, word [bp+004h]                    ; 8b 46 04
    5305     call 0167ah                               ; e8 75 da
     5339    call 0167ah                               ; e8 21 da
    53065340    mov es, di                                ; 8e c7
    53075341    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    53105344    add dx, strict byte 00010h                ; 83 c2 10
    53115345    mov ax, word [bp+004h]                    ; 8b 46 04
    5312     call 0165eh                               ; e8 45 da
     5346    call 0165eh                               ; e8 f1 d9
    53135347    mov es, di                                ; 8e c7
    53145348    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    53175351    add dx, strict byte 00011h                ; 83 c2 11
    53185352    mov ax, word [bp+004h]                    ; 8b 46 04
    5319     call 0165eh                               ; e8 31 da
     5353    call 0165eh                               ; e8 dd d9
    53205354    mov es, di                                ; 8e c7
    53215355    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    53245358    add dx, strict byte 00012h                ; 83 c2 12
    53255359    mov ax, word [bp+004h]                    ; 8b 46 04
    5326     call 0165eh                               ; e8 1d da
     5360    call 0165eh                               ; e8 c9 d9
    53275361    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5328     jne short 03c4dh                          ; 75 06
     5362    jne short 03ca1h                          ; 75 06
    53295363    mov es, di                                ; 8e c7
    53305364    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    53335367    mov dx, strict word 00074h                ; ba 74 00
    53345368    mov ax, strict word 00040h                ; b8 40 00
    5335     call 0165eh                               ; e8 02 da
     5369    call 0165eh                               ; e8 ae d9
    53365370    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    53375371    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53435377    mov cx, ds                                ; 8c d9
    53445378    mov ax, strict word 00004h                ; b8 04 00
    5345     call 01923h                               ; e8 b1 dc
     5379    call 01923h                               ; e8 5d dc
    53465380    mov ax, word [bp+016h]                    ; 8b 46 16
    53475381    shr ax, 008h                              ; c1 e8 08
     
    53495383    push 002fch                               ; 68 fc 02
    53505384    push 00333h                               ; 68 33 03
    5351     jmp near 03b54h                           ; e9 d2 fe
     5385    jmp near 03ba8h                           ; e9 d2 fe
    53525386    mov ax, word [bp+016h]                    ; 8b 46 16
    53535387    xor ah, ah                                ; 30 e4
     
    53595393    mov dx, strict word 00074h                ; ba 74 00
    53605394    mov ax, strict word 00040h                ; b8 40 00
    5361     call 0165eh                               ; e8 c1 d9
     5395    call 0165eh                               ; e8 6d d9
    53625396    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5363     jmp short 03c60h                          ; eb bd
    5364 device_is_cdrom_:                            ; 0xf3ca3 LB 0x35
     5397    jmp short 03cb4h                          ; eb bd
     5398device_is_cdrom_:                            ; 0xf3cf7 LB 0x35
    53655399    push bp                                   ; 55
    53665400    mov bp, sp                                ; 89 e5
     
    53705404    mov dx, strict word 0000eh                ; ba 0e 00
    53715405    mov ax, strict word 00040h                ; b8 40 00
    5372     call 0166ch                               ; e8 b9 d9
     5406    call 0166ch                               ; e8 65 d9
    53735407    cmp bl, 010h                              ; 80 fb 10
    5374     jc short 03cbch                           ; 72 04
     5408    jc short 03d10h                           ; 72 04
    53755409    xor ax, ax                                ; 31 c0
    5376     jmp short 03cd1h                          ; eb 15
     5410    jmp short 03d25h                          ; eb 15
    53775411    xor bh, bh                                ; 30 ff
    53785412    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    53805414    add bx, 00122h                            ; 81 c3 22 01
    53815415    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5382     jne short 03cb8h                          ; 75 ea
     5416    jne short 03d0ch                          ; 75 ea
    53835417    mov ax, strict word 00001h                ; b8 01 00
    53845418    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53875421    pop bp                                    ; 5d
    53885422    retn                                      ; c3
    5389 cdrom_boot_:                                 ; 0xf3cd8 LB 0x434
     5423cdrom_boot_:                                 ; 0xf3d2c LB 0x434
    53905424    push bp                                   ; 55
    53915425    mov bp, sp                                ; 89 e5
     
    53985432    mov dx, strict word 0000eh                ; ba 0e 00
    53995433    mov ax, strict word 00040h                ; b8 40 00
    5400     call 0166ch                               ; e8 7f d9
     5434    call 0166ch                               ; e8 2b d9
    54015435    mov word [bp-01ah], ax                    ; 89 46 e6
    54025436    mov si, 00366h                            ; be 66 03
     
    54055439    mov word [bp-012h], ax                    ; 89 46 ee
    54065440    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5407     jmp short 03d0dh                          ; eb 09
     5441    jmp short 03d61h                          ; eb 09
    54085442    inc byte [bp-00ch]                        ; fe 46 f4
    54095443    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5410     jnc short 03d19h                          ; 73 0c
     5444    jnc short 03d6dh                          ; 73 0c
    54115445    mov al, byte [bp-00ch]                    ; 8a 46 f4
    54125446    xor ah, ah                                ; 30 e4
    5413     call 03ca3h                               ; e8 8e ff
     5447    call 03cf7h                               ; e8 8e ff
    54145448    test ax, ax                               ; 85 c0
    5415     je short 03d04h                           ; 74 eb
     5449    je short 03d58h                           ; 74 eb
    54165450    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5417     jc short 03d25h                           ; 72 06
     5451    jc short 03d79h                           ; 72 06
    54185452    mov ax, strict word 00002h                ; b8 02 00
    5419     jmp near 040a9h                           ; e9 84 03
     5453    jmp near 040fdh                           ; e9 84 03
    54205454    mov cx, strict word 0000ch                ; b9 0c 00
    54215455    xor bx, bx                                ; 31 db
    54225456    mov dx, ss                                ; 8c d2
    54235457    lea ax, [bp-026h]                         ; 8d 46 da
    5424     call 09fa0h                               ; e8 6e 62
     5458    call 09ff0h                               ; e8 6a 62
    54255459    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    54265460    mov ax, strict word 00011h                ; b8 11 00
     
    54395473    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    54405474    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5441     jmp short 03d70h                          ; eb 09
     5475    jmp short 03dc4h                          ; eb 09
    54425476    inc byte [bp-00eh]                        ; fe 46 f2
    54435477    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5444     jnbe short 03dach                         ; 77 3c
     5478    jnbe short 03e00h                         ; 77 3c
    54455479    mov al, byte [bp-00ch]                    ; 8a 46 f4
    54465480    xor ah, ah                                ; 30 e4
     
    54665500    call word [word di+0006ah]                ; ff 95 6a 00
    54675501    test ax, ax                               ; 85 c0
    5468     jne short 03d67h                          ; 75 bb
     5502    jne short 03dbbh                          ; 75 bb
    54695503    test ax, ax                               ; 85 c0
    5470     je short 03db6h                           ; 74 06
     5504    je short 03e0ah                           ; 74 06
    54715505    mov ax, strict word 00003h                ; b8 03 00
    5472     jmp near 040a9h                           ; e9 f3 02
     5506    jmp near 040fdh                           ; e9 f3 02
    54735507    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5474     je short 03dc3h                           ; 74 06
     5508    je short 03e17h                           ; 74 06
    54755509    mov ax, strict word 00004h                ; b8 04 00
    5476     jmp near 040a9h                           ; e9 e6 02
     5510    jmp near 040fdh                           ; e9 e6 02
    54775511    xor di, di                                ; 31 ff
    5478     jmp short 03dcdh                          ; eb 06
     5512    jmp short 03e21h                          ; eb 06
    54795513    inc di                                    ; 47
    54805514    cmp di, strict byte 00005h                ; 83 ff 05
    5481     jnc short 03dddh                          ; 73 10
     5515    jnc short 03e31h                          ; 73 10
    54825516    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    54835517    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5484     je short 03dc7h                           ; 74 f0
     5518    je short 03e1bh                           ; 74 f0
    54855519    mov ax, strict word 00005h                ; b8 05 00
    5486     jmp near 040a9h                           ; e9 cc 02
     5520    jmp near 040fdh                           ; e9 cc 02
    54875521    xor di, di                                ; 31 ff
    5488     jmp short 03de7h                          ; eb 06
     5522    jmp short 03e3bh                          ; eb 06
    54895523    inc di                                    ; 47
    54905524    cmp di, strict byte 00017h                ; 83 ff 17
    5491     jnc short 03df7h                          ; 73 10
     5525    jnc short 03e4bh                          ; 73 10
    54925526    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    54935527    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5494     je short 03de1h                           ; 74 f0
     5528    je short 03e35h                           ; 74 f0
    54955529    mov ax, strict word 00006h                ; b8 06 00
    5496     jmp near 040a9h                           ; e9 b2 02
     5530    jmp near 040fdh                           ; e9 b2 02
    54975531    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    54985532    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    55295563    call word [word di+0006ah]                ; ff 95 6a 00
    55305564    test ax, ax                               ; 85 c0
    5531     je short 03e59h                           ; 74 06
     5565    je short 03eadh                           ; 74 06
    55325566    mov ax, strict word 00007h                ; b8 07 00
    5533     jmp near 040a9h                           ; e9 50 02
     5567    jmp near 040fdh                           ; e9 50 02
    55345568    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5535     je short 03e66h                           ; 74 06
     5569    je short 03ebah                           ; 74 06
    55365570    mov ax, strict word 00008h                ; b8 08 00
    5537     jmp near 040a9h                           ; e9 43 02
     5571    jmp near 040fdh                           ; e9 43 02
    55385572    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5539     je short 03e73h                           ; 74 06
     5573    je short 03ec7h                           ; 74 06
    55405574    mov ax, strict word 00009h                ; b8 09 00
    5541     jmp near 040a9h                           ; e9 36 02
     5575    jmp near 040fdh                           ; e9 36 02
    55425576    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5543     je short 03e80h                           ; 74 06
     5577    je short 03ed4h                           ; 74 06
    55445578    mov ax, strict word 0000ah                ; b8 0a 00
    5545     jmp near 040a9h                           ; e9 29 02
     5579    jmp near 040fdh                           ; e9 29 02
    55465580    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5547     jne short 03e7ah                          ; 75 f3
     5581    jne short 03eceh                          ; 75 f3
    55485582    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5549     je short 03e94h                           ; 74 06
     5583    je short 03ee8h                           ; 74 06
    55505584    mov ax, strict word 0000bh                ; b8 0b 00
    5551     jmp near 040a9h                           ; e9 15 02
     5585    jmp near 040fdh                           ; e9 15 02
    55525586    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    55535587    mov es, [bp-016h]                         ; 8e 46 ea
    55545588    mov byte [es:si+001h], al                 ; 26 88 44 01
    55555589    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5556     jne short 03eadh                          ; 75 07
     5590    jne short 03f01h                          ; 75 07
    55575591    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5558     jmp short 03ec0h                          ; eb 13
     5592    jmp short 03f14h                          ; eb 13
    55595593    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5560     jnc short 03ebbh                          ; 73 07
     5594    jnc short 03f0fh                          ; 73 07
    55615595    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5562     jmp short 03ec0h                          ; eb 05
     5596    jmp short 03f14h                          ; eb 05
    55635597    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    55645598    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    55795613    mov word [bp-010h], ax                    ; 89 46 f0
    55805614    test ax, ax                               ; 85 c0
    5581     jne short 03eefh                          ; 75 05
     5615    jne short 03f43h                          ; 75 05
    55825616    mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
    55835617    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    55885622    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    55895623    test di, di                               ; 85 ff
    5590     je short 03f11h                           ; 74 06
     5624    je short 03f65h                           ; 74 06
    55915625    cmp di, 00400h                            ; 81 ff 00 04
    5592     jbe short 03f17h                          ; 76 06
     5626    jbe short 03f6bh                          ; 76 06
    55935627    mov ax, strict word 0000ch                ; b8 0c 00
    5594     jmp near 040a9h                           ; e9 92 01
     5628    jmp near 040fdh                           ; e9 92 01
    55955629    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    55965630    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    56365670    sal ax, 1                                 ; d1 e0
    56375671    rcl di, 1                                 ; d1 d7
    5638     loop 03f8bh                               ; e2 fa
     5672    loop 03fdfh                               ; e2 fa
    56395673    push di                                   ; 57
    56405674    push ax                                   ; 50
     
    56515685    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    56525686    test ax, ax                               ; 85 c0
    5653     je short 03fbfh                           ; 74 06
     5687    je short 04013h                           ; 74 06
    56545688    mov ax, strict word 0000dh                ; b8 0d 00
    5655     jmp near 040a9h                           ; e9 ea 00
     5689    jmp near 040fdh                           ; e9 ea 00
    56565690    mov es, [bp-016h]                         ; 8e 46 ea
    56575691    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    56585692    cmp AL, strict byte 002h                  ; 3c 02
    5659     jc short 03fd7h                           ; 72 0d
    5660     jbe short 03ff2h                          ; 76 26
     5693    jc short 0402bh                           ; 72 0d
     5694    jbe short 04046h                          ; 76 26
    56615695    cmp AL, strict byte 004h                  ; 3c 04
    5662     je short 04002h                           ; 74 32
     5696    je short 04056h                           ; 74 32
    56635697    cmp AL, strict byte 003h                  ; 3c 03
    5664     je short 03ffah                           ; 74 26
    5665     jmp near 0404eh                           ; e9 77 00
     5698    je short 0404eh                           ; 74 26
     5699    jmp near 040a2h                           ; e9 77 00
    56665700    cmp AL, strict byte 001h                  ; 3c 01
    5667     jne short 0404eh                          ; 75 73
     5701    jne short 040a2h                          ; 75 73
    56685702    mov es, [bp-016h]                         ; 8e 46 ea
    56695703    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    56705704    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    56715705    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5672     jmp short 0404eh                          ; eb 5c
     5706    jmp short 040a2h                          ; eb 5c
    56735707    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5674     jmp short 03fe4h                          ; eb ea
     5708    jmp short 04038h                          ; eb ea
    56755709    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5676     jmp short 03fe4h                          ; eb e2
     5710    jmp short 04038h                          ; eb e2
    56775711    mov dx, 001c4h                            ; ba c4 01
    56785712    mov ax, word [bp-010h]                    ; 8b 46 f0
    5679     call 01650h                               ; e8 45 d6
     5713    call 01650h                               ; e8 f1 d5
    56805714    and AL, strict byte 03fh                  ; 24 3f
    56815715    xor ah, ah                                ; 30 e4
     
    56845718    mov dx, 001c4h                            ; ba c4 01
    56855719    mov ax, word [bp-010h]                    ; 8b 46 f0
    5686     call 01650h                               ; e8 31 d6
     5720    call 01650h                               ; e8 dd d5
    56875721    xor ah, ah                                ; 30 e4
    56885722    mov bx, ax                                ; 89 c3
     
    56905724    mov dx, 001c5h                            ; ba c5 01
    56915725    mov ax, word [bp-010h]                    ; 8b 46 f0
    5692     call 01650h                               ; e8 21 d6
     5726    call 01650h                               ; e8 cd d5
    56935727    xor ah, ah                                ; 30 e4
    56945728    add ax, bx                                ; 01 d8
     
    56985732    mov dx, 001c3h                            ; ba c3 01
    56995733    mov ax, word [bp-010h]                    ; 8b 46 f0
    5700     call 01650h                               ; e8 0c d6
     5734    call 01650h                               ; e8 b8 d5
    57015735    xor ah, ah                                ; 30 e4
    57025736    inc ax                                    ; 40
     
    57055739    mov es, [bp-016h]                         ; 8e 46 ea
    57065740    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5707     je short 0408fh                           ; 74 37
     5741    je short 040e3h                           ; 74 37
    57085742    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5709     jne short 04077h                          ; 75 18
     5743    jne short 040cbh                          ; 75 18
    57105744    mov dx, strict word 00010h                ; ba 10 00
    57115745    mov ax, strict word 00040h                ; b8 40 00
    5712     call 01650h                               ; e8 e8 d5
     5746    call 01650h                               ; e8 94 d5
    57135747    mov bl, al                                ; 88 c3
    57145748    or bl, 041h                               ; 80 cb 41
     
    57165750    mov dx, strict word 00010h                ; ba 10 00
    57175751    mov ax, strict word 00040h                ; b8 40 00
    5718     jmp short 0408ch                          ; eb 15
     5752    jmp short 040e0h                          ; eb 15
    57195753    mov dx, 00304h                            ; ba 04 03
    57205754    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5721     call 01650h                               ; e8 d0 d5
     5755    call 01650h                               ; e8 7c d5
    57225756    mov bl, al                                ; 88 c3
    57235757    db  0feh, 0c3h
     
    57265760    mov dx, 00304h                            ; ba 04 03
    57275761    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5728     call 0165eh                               ; e8 cf d5
     5762    call 0165eh                               ; e8 7b d5
    57295763    mov es, [bp-016h]                         ; 8e 46 ea
    57305764    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5731     je short 0409dh                           ; 74 04
     5765    je short 040f1h                           ; 74 04
    57325766    mov byte [es:si], 001h                    ; 26 c6 04 01
    57335767    mov es, [bp-016h]                         ; 8e 46 ea
     
    57445778    retn                                      ; c3
    57455779    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5746     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0b2h, 044h, 0b1h
    5747     db  041h, 0e4h, 041h, 00eh, 042h, 0d9h, 041h, 00eh, 042h, 0d9h, 041h, 000h, 044h, 0e6h, 043h, 0b2h
    5748     db  044h, 0b2h, 044h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0e6h, 043h, 0a9h, 044h, 0e6h
    5749     db  043h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h
    5750     db  044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h, 0b2h, 044h
    5751 _int13_cdemu:                                ; 0xf410c LB 0x442
     5780    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 006h, 045h, 005h
     5781    db  042h, 038h, 042h, 062h, 042h, 02dh, 042h, 062h, 042h, 02dh, 042h, 054h, 044h, 03ah, 044h, 006h
     5782    db  045h, 006h, 045h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 0fdh, 044h, 03ah
     5783    db  044h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h
     5784    db  045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h
     5785_int13_cdemu:                                ; 0xf4160 LB 0x442
    57525786    push bp                                   ; 55
    57535787    mov bp, sp                                ; 89 e5
     
    57575791    mov dx, strict word 0000eh                ; ba 0e 00
    57585792    mov ax, strict word 00040h                ; b8 40 00
    5759     call 0166ch                               ; e8 4f d5
     5793    call 0166ch                               ; e8 fb d4
    57605794    mov di, 00366h                            ; bf 66 03
    57615795    mov cx, ax                                ; 89 c1
     
    57735807    mov dx, strict word 00074h                ; ba 74 00
    57745808    mov ax, strict word 00040h                ; b8 40 00
    5775     call 0165eh                               ; e8 12 d5
     5809    call 0165eh                               ; e8 be d4
    57765810    mov es, cx                                ; 8e c1
    57775811    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5778     je short 04163h                           ; 74 0f
     5812    je short 041b7h                           ; 74 0f
    57795813    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    57805814    xor ah, ah                                ; 30 e4
     
    57825816    xor dh, dh                                ; 30 f6
    57835817    cmp ax, dx                                ; 39 d0
    5784     je short 0418ch                           ; 74 29
     5818    je short 041e0h                           ; 74 29
    57855819    mov bx, 00da0h                            ; bb a0 0d
    57865820    mov cx, ds                                ; 8c d9
    57875821    mov ax, strict word 00004h                ; b8 04 00
    5788     call 01923h                               ; e8 b5 d7
     5822    call 01923h                               ; e8 61 d7
    57895823    mov ax, word [bp+012h]                    ; 8b 46 12
    57905824    xor ah, ah                                ; 30 e4
     
    57965830    push 00358h                               ; 68 58 03
    57975831    push strict byte 00004h                   ; 6a 04
    5798     call 01966h                               ; e8 e0 d7
     5832    call 01966h                               ; e8 8c d7
    57995833    add sp, strict byte 0000ah                ; 83 c4 0a
    5800     jmp near 044d2h                           ; e9 46 03
     5834    jmp near 04526h                           ; e9 46 03
    58015835    mov ax, word [bp+016h]                    ; 8b 46 16
    58025836    shr ax, 008h                              ; c1 e8 08
    58035837    cmp ax, strict word 00050h                ; 3d 50 00
    5804     jnbe short 0420bh                         ; 77 74
     5838    jnbe short 0425fh                         ; 77 74
    58055839    push CS                                   ; 0e
    58065840    pop ES                                    ; 07
    58075841    mov cx, strict word 0001eh                ; b9 1e 00
    5808     mov di, 040b3h                            ; bf b3 40
     5842    mov di, 04107h                            ; bf 07 41
    58095843    repne scasb                               ; f2 ae
    58105844    sal cx, 1                                 ; d1 e1
    58115845    mov di, cx                                ; 89 cf
    5812     mov ax, word [cs:di+040d0h]               ; 2e 8b 85 d0 40
     5846    mov ax, word [cs:di+04124h]               ; 2e 8b 85 24 41
    58135847    mov bx, word [bp+016h]                    ; 8b 5e 16
    58145848    xor bh, bh                                ; 30 ff
     
    58235857    add bx, bx                                ; 01 db
    58245858    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5825     je short 041d6h                           ; 74 09
     5859    je short 0422ah                           ; 74 09
    58265860    mov al, byte [bp-006h]                    ; 8a 46 fa
    58275861    xor ah, ah                                ; 30 e4
    58285862    call word [word bx+00076h]                ; ff 97 76 00
    5829     jmp near 043e6h                           ; e9 0d 02
     5863    jmp near 0443ah                           ; e9 0d 02
    58305864    mov ax, word [bp+016h]                    ; 8b 46 16
    58315865    xor ah, ah                                ; 30 e4
    58325866    or ah, 003h                               ; 80 cc 03
    5833     jmp near 044dah                           ; e9 f6 02
     5867    jmp near 0452eh                           ; e9 f6 02
    58345868    mov dx, strict word 00074h                ; ba 74 00
    58355869    mov ax, strict word 00040h                ; b8 40 00
    5836     call 01650h                               ; e8 63 d4
     5870    call 01650h                               ; e8 0f d4
    58375871    mov cl, al                                ; 88 c1
    58385872    xor ah, ah                                ; 30 e4
     
    58435877    mov dx, strict word 00074h                ; ba 74 00
    58445878    mov ax, strict word 00040h                ; b8 40 00
    5845     call 0165eh                               ; e8 5a d4
     5879    call 0165eh                               ; e8 06 d4
    58465880    test cl, cl                               ; 84 c9
    5847     je short 04268h                           ; 74 60
    5848     jmp near 044eeh                           ; e9 e3 02
    5849     jmp near 044b2h                           ; e9 a4 02
     5881    je short 042bch                           ; 74 60
     5882    jmp near 04542h                           ; e9 e3 02
     5883    jmp near 04506h                           ; e9 a4 02
    58505884    mov es, [bp-008h]                         ; 8e 46 f8
    58515885    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    58715905    mov word [bp-00ah], cx                    ; 89 4e f6
    58725906    test cx, cx                               ; 85 c9
    5873     je short 04276h                           ; 74 1e
     5907    je short 042cah                           ; 74 1e
    58745908    cmp di, word [bp-010h]                    ; 3b 7e f0
    5875     jc short 04265h                           ; 72 08
     5909    jc short 042b9h                           ; 72 08
    58765910    cmp ax, dx                                ; 39 d0
    5877     jnc short 04265h                          ; 73 04
     5911    jnc short 042b9h                          ; 73 04
    58785912    cmp si, bx                                ; 39 de
    5879     jc short 0426bh                           ; 72 06
    5880     jmp near 044d2h                           ; e9 6a 02
    5881     jmp near 043eah                           ; e9 7f 01
     5913    jc short 042bfh                           ; 72 06
     5914    jmp near 04526h                           ; e9 6a 02
     5915    jmp near 0443eh                           ; e9 7f 01
    58825916    mov dx, word [bp+016h]                    ; 8b 56 16
    58835917    shr dx, 008h                              ; c1 ea 08
    58845918    cmp dx, strict byte 00004h                ; 83 fa 04
    5885     jne short 04279h                          ; 75 03
    5886     jmp near 043e6h                           ; e9 6d 01
     5919    jne short 042cdh                          ; 75 03
     5920    jmp near 0443ah                           ; e9 6d 01
    58875921    mov dx, word [bp+010h]                    ; 8b 56 10
    58885922    shr dx, 004h                              ; c1 ea 04
     
    58955929    xor dl, dl                                ; 30 d2
    58965930    xor cx, cx                                ; 31 c9
    5897     call 09f30h                               ; e8 99 5c
     5931    call 09f80h                               ; e8 95 5c
    58985932    xor bx, bx                                ; 31 db
    58995933    add ax, si                                ; 01 f0
     
    59015935    mov bx, di                                ; 89 fb
    59025936    xor cx, cx                                ; 31 c9
    5903     call 09f30h                               ; e8 8c 5c
     5937    call 09f80h                               ; e8 88 5c
    59045938    mov bx, ax                                ; 89 c3
    59055939    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    59365970    mov dx, ss                                ; 8c d2
    59375971    lea ax, [bp-02eh]                         ; 8d 46 d2
    5938     call 09fa0h                               ; e8 a5 5c
     5972    call 09ff0h                               ; e8 a1 5c
    59395973    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    59405974    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    59866020    sal si, 1                                 ; d1 e6
    59876021    rcl di, 1                                 ; d1 d7
    5988     loop 0437dh                               ; e2 fa
     6022    loop 043d1h                               ; e2 fa
    59896023    push di                                   ; 57
    59906024    push si                                   ; 56
     
    60026036    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    60036037    test al, al                               ; 84 c0
    6004     je short 043e6h                           ; 74 37
     6038    je short 0443ah                           ; 74 37
    60056039    mov bx, 00da0h                            ; bb a0 0d
    60066040    mov cx, ds                                ; 8c d9
    60076041    mov ax, strict word 00004h                ; b8 04 00
    6008     call 01923h                               ; e8 69 d5
     6042    call 01923h                               ; e8 15 d5
    60096043    mov al, dl                                ; 88 d0
    60106044    xor ah, ah                                ; 30 e4
     
    60166050    push 0038eh                               ; 68 8e 03
    60176051    push strict byte 00004h                   ; 6a 04
    6018     call 01966h                               ; e8 95 d5
     6052    call 01966h                               ; e8 41 d5
    60196053    add sp, strict byte 0000ah                ; 83 c4 0a
    60206054    mov ax, word [bp+016h]                    ; 8b 46 16
     
    60236057    mov word [bp+016h], ax                    ; 89 46 16
    60246058    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6025     jmp near 044ddh                           ; e9 f7 00
     6059    jmp near 04531h                           ; e9 f7 00
    60266060    mov byte [bp+017h], 000h                  ; c6 46 17 00
    60276061    xor bx, bx                                ; 31 db
    60286062    mov dx, strict word 00074h                ; ba 74 00
    60296063    mov ax, strict word 00040h                ; b8 40 00
    6030     call 0165eh                               ; e8 69 d2
     6064    call 0165eh                               ; e8 15 d2
    60316065    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    60326066    lea sp, [bp-004h]                         ; 8d 66 fc
     
    60766110    mov word [bp+010h], ax                    ; 89 46 10
    60776111    cmp dl, 003h                              ; 80 fa 03
    6078     je short 0448ch                           ; 74 1a
     6112    je short 044e0h                           ; 74 1a
    60796113    cmp dl, 002h                              ; 80 fa 02
    6080     je short 04488h                           ; 74 11
     6114    je short 044dch                           ; 74 11
    60816115    cmp dl, 001h                              ; 80 fa 01
    6082     jne short 04490h                          ; 75 14
     6116    jne short 044e4h                          ; 75 14
    60836117    mov ax, word [bp+010h]                    ; 8b 46 10
    60846118    xor al, al                                ; 30 c0
    60856119    or AL, strict byte 002h                   ; 0c 02
    60866120    mov word [bp+010h], ax                    ; 89 46 10
    6087     jmp short 04490h                          ; eb 08
     6121    jmp short 044e4h                          ; eb 08
    60886122    or AL, strict byte 004h                   ; 0c 04
    6089     jmp short 04483h                          ; eb f7
     6123    jmp short 044d7h                          ; eb f7
    60906124    or AL, strict byte 005h                   ; 0c 05
    6091     jmp short 04483h                          ; eb f3
     6125    jmp short 044d7h                          ; eb f3
    60926126    mov es, [bp-008h]                         ; 8e 46 f8
    60936127    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6094     jc short 0449dh                           ; 72 03
    6095     jmp near 043e6h                           ; e9 49 ff
     6128    jc short 044f1h                           ; 72 03
     6129    jmp near 0443ah                           ; e9 49 ff
    60966130    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    60976131    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6098     jmp short 0449ah                          ; eb f1
     6132    jmp short 044eeh                          ; eb f1
    60996133    or bh, 003h                               ; 80 cf 03
    61006134    mov word [bp+016h], bx                    ; 89 5e 16
    6101     jmp near 043eah                           ; e9 38 ff
     6135    jmp near 0443eh                           ; e9 38 ff
    61026136    mov bx, 00da0h                            ; bb a0 0d
    61036137    mov cx, ds                                ; 8c d9
    61046138    mov ax, strict word 00004h                ; b8 04 00
    6105     call 01923h                               ; e8 66 d4
     6139    call 01923h                               ; e8 12 d4
    61066140    mov ax, word [bp+016h]                    ; 8b 46 16
    61076141    shr ax, 008h                              ; c1 e8 08
     
    61106144    push 003afh                               ; 68 af 03
    61116145    push strict byte 00004h                   ; 6a 04
    6112     call 01966h                               ; e8 97 d4
     6146    call 01966h                               ; e8 43 d4
    61136147    add sp, strict byte 00008h                ; 83 c4 08
    61146148    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61216155    mov dx, strict word 00074h                ; ba 74 00
    61226156    mov ax, strict word 00040h                ; b8 40 00
    6123     call 0165eh                               ; e8 70 d1
     6157    call 0165eh                               ; e8 1c d1
    61246158    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6125     jmp near 043f9h                           ; e9 04 ff
     6159    jmp near 0444dh                           ; e9 04 ff
    61266160    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6127     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 03ch, 046h, 071h
    6128     db  04ah, 0f9h, 045h, 03ch, 046h, 0eeh, 045h, 03ch, 046h, 0eeh, 045h, 03ch, 046h, 071h, 04ah, 03ch
    6129     db  046h, 03ch, 046h, 071h, 04ah, 071h, 04ah, 071h, 04ah, 071h, 04ah, 071h, 04ah, 020h, 046h, 071h
    6130     db  04ah, 03ch, 046h, 029h, 046h, 058h, 046h, 0eeh, 045h, 058h, 046h, 09ah, 047h, 035h, 048h, 058h
    6131     db  046h, 05dh, 048h, 08bh, 04ah, 093h, 04ah, 03ch, 046h
    6132 _int13_cdrom:                                ; 0xf454e LB 0x57d
     6161    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 090h, 046h, 0c5h
     6162    db  04ah, 04dh, 046h, 090h, 046h, 042h, 046h, 090h, 046h, 042h, 046h, 090h, 046h, 0c5h, 04ah, 090h
     6163    db  046h, 090h, 046h, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 074h, 046h, 0c5h
     6164    db  04ah, 090h, 046h, 07dh, 046h, 0ach, 046h, 042h, 046h, 0ach, 046h, 0eeh, 047h, 089h, 048h, 0ach
     6165    db  046h, 0b1h, 048h, 0dfh, 04ah, 0e7h, 04ah, 090h, 046h
     6166_int13_cdrom:                                ; 0xf45a2 LB 0x57d
    61336167    push bp                                   ; 55
    61346168    mov bp, sp                                ; 89 e5
     
    61386172    mov dx, strict word 0000eh                ; ba 0e 00
    61396173    mov ax, strict word 00040h                ; b8 40 00
    6140     call 0166ch                               ; e8 0d d1
     6174    call 0166ch                               ; e8 b9 d0
    61416175    mov word [bp-016h], ax                    ; 89 46 ea
    61426176    mov si, 00122h                            ; be 22 01
     
    61456179    mov dx, strict word 00074h                ; ba 74 00
    61466180    mov ax, strict word 00040h                ; b8 40 00
    6147     call 0165eh                               ; e8 eb d0
     6181    call 0165eh                               ; e8 97 d0
    61486182    mov ax, word [bp+010h]                    ; 8b 46 10
    61496183    xor ah, ah                                ; 30 e4
    61506184    cmp ax, 000e0h                            ; 3d e0 00
    6151     jc short 04582h                           ; 72 05
     6185    jc short 045d6h                           ; 72 05
    61526186    cmp ax, 000f0h                            ; 3d f0 00
    6153     jc short 045a0h                           ; 72 1e
     6187    jc short 045f4h                           ; 72 1e
    61546188    mov ax, word [bp+010h]                    ; 8b 46 10
    61556189    xor ah, ah                                ; 30 e4
     
    61616195    push 003ebh                               ; 68 eb 03
    61626196    push strict byte 00004h                   ; 6a 04
    6163     call 01966h                               ; e8 cc d3
     6197    call 01966h                               ; e8 78 d3
    61646198    add sp, strict byte 0000ah                ; 83 c4 0a
    6165     jmp near 04aa9h                           ; e9 09 05
     6199    jmp near 04afdh                           ; e9 09 05
    61666200    mov ax, word [bp+010h]                    ; 8b 46 10
    61676201    xor ah, ah                                ; 30 e4
     
    61726206    mov byte [bp-006h], dl                    ; 88 56 fa
    61736207    cmp dl, 010h                              ; 80 fa 10
    6174     jc short 045c9h                           ; 72 10
     6208    jc short 0461dh                           ; 72 10
    61756209    push ax                                   ; 50
    61766210    mov ax, word [bp+018h]                    ; 8b 46 18
     
    61796213    push 003dfh                               ; 68 df 03
    61806214    push 00416h                               ; 68 16 04
    6181     jmp short 04595h                          ; eb cc
     6215    jmp short 045e9h                          ; eb cc
    61826216    mov ax, word [bp+018h]                    ; 8b 46 18
    61836217    shr ax, 008h                              ; c1 e8 08
    61846218    cmp ax, strict word 00050h                ; 3d 50 00
    6185     jnbe short 0463ch                         ; 77 68
     6219    jnbe short 04690h                         ; 77 68
    61866220    push CS                                   ; 0e
    61876221    pop ES                                    ; 07
    61886222    mov cx, strict word 0001eh                ; b9 1e 00
    6189     mov di, 044f5h                            ; bf f5 44
     6223    mov di, 04549h                            ; bf 49 45
    61906224    repne scasb                               ; f2 ae
    61916225    sal cx, 1                                 ; d1 e1
    61926226    mov di, cx                                ; 89 cf
    6193     mov ax, word [cs:di+04512h]               ; 2e 8b 85 12 45
     6227    mov ax, word [cs:di+04566h]               ; 2e 8b 85 66 45
    61946228    mov bx, word [bp+018h]                    ; 8b 5e 18
    61956229    xor bh, bh                                ; 30 ff
     
    61986232    xor ah, ah                                ; 30 e4
    61996233    or ah, 003h                               ; 80 cc 03
    6200     jmp near 04ab1h                           ; e9 b8 04
     6234    jmp near 04b05h                           ; e9 b8 04
    62016235    mov dx, strict word 00074h                ; ba 74 00
    62026236    mov ax, strict word 00040h                ; b8 40 00
    6203     call 01650h                               ; e8 4e d0
     6237    call 01650h                               ; e8 fa cf
    62046238    mov cl, al                                ; 88 c1
    62056239    xor ah, ah                                ; 30 e4
     
    62106244    mov dx, strict word 00074h                ; ba 74 00
    62116245    mov ax, strict word 00040h                ; b8 40 00
    6212     call 0165eh                               ; e8 45 d0
     6246    call 0165eh                               ; e8 f1 cf
    62136247    test cl, cl                               ; 84 c9
    6214     je short 04639h                           ; 74 1c
    6215     jmp near 04ac5h                           ; e9 a5 04
     6248    je short 0468dh                           ; 74 1c
     6249    jmp near 04b19h                           ; e9 a5 04
    62166250    or bh, 002h                               ; 80 cf 02
    62176251    mov word [bp+018h], bx                    ; 89 5e 18
    6218     jmp near 04ab4h                           ; e9 8b 04
     6252    jmp near 04b08h                           ; e9 8b 04
    62196253    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    62206254    or bh, 030h                               ; 80 cf 30
    62216255    mov word [bp+018h], bx                    ; 89 5e 18
    62226256    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6223     jmp near 04a75h                           ; e9 39 04
     6257    jmp near 04ac9h                           ; e9 39 04
    62246258    mov bx, 00da0h                            ; bb a0 0d
    62256259    mov cx, ds                                ; 8c d9
    62266260    mov ax, strict word 00004h                ; b8 04 00
    6227     call 01923h                               ; e8 dc d2
     6261    call 01923h                               ; e8 88 d2
    62286262    mov ax, word [bp+018h]                    ; 8b 46 18
    62296263    shr ax, 008h                              ; c1 e8 08
     
    62326266    push 00333h                               ; 68 33 03
    62336267    push strict byte 00004h                   ; 6a 04
    6234     jmp short 04698h                          ; eb 40
     6268    jmp short 046ech                          ; eb 40
    62356269    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    62366270    mov es, [bp+006h]                         ; 8e 46 06
     
    62476281    mov word [bp-022h], ax                    ; 89 46 de
    62486282    or ax, word [bp-00eh]                     ; 0b 46 f2
    6249     je short 046a1h                           ; 74 18
     6283    je short 046f5h                           ; 74 18
    62506284    mov ax, word [bp+018h]                    ; 8b 46 18
    62516285    shr ax, 008h                              ; c1 e8 08
     
    62546288    push 00448h                               ; 68 48 04
    62556289    push strict byte 00007h                   ; 6a 07
    6256     call 01966h                               ; e8 cb d2
     6290    call 01966h                               ; e8 77 d2
    62576291    add sp, strict byte 00008h                ; 83 c4 08
    6258     jmp near 04aa9h                           ; e9 08 04
     6292    jmp near 04afdh                           ; e9 08 04
    62596293    mov es, [bp-010h]                         ; 8e 46 f0
    62606294    mov bx, word [bp-014h]                    ; 8b 5e ec
     
    62676301    mov word [bp-012h], ax                    ; 89 46 ee
    62686302    cmp ax, strict word 00044h                ; 3d 44 00
    6269     je short 046c8h                           ; 74 05
     6303    je short 0471ch                           ; 74 05
    62706304    cmp ax, strict word 00047h                ; 3d 47 00
    6271     jne short 046cbh                          ; 75 03
    6272     jmp near 04a71h                           ; e9 a6 03
     6305    jne short 0471fh                          ; 75 03
     6306    jmp near 04ac5h                           ; e9 a6 03
    62736307    mov cx, strict word 0000ch                ; b9 0c 00
    62746308    xor bx, bx                                ; 31 db
    62756309    mov dx, ss                                ; 8c d2
    62766310    lea ax, [bp-030h]                         ; 8d 46 d0
    6277     call 09fa0h                               ; e8 c8 58
     6311    call 09ff0h                               ; e8 c4 58
    62786312    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    62796313    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    63076341    sal ax, 1                                 ; d1 e0
    63086342    rcl dx, 1                                 ; d1 d2
    6309     loop 04728h                               ; e2 fa
     6343    loop 0477ch                               ; e2 fa
    63106344    push dx                                   ; 52
    63116345    push ax                                   ; 50
     
    63256359    shr dx, 1                                 ; d1 ea
    63266360    rcr ax, 1                                 ; d1 d8
    6327     loop 04757h                               ; e2 fa
     6361    loop 047abh                               ; e2 fa
    63286362    mov es, [bp-010h]                         ; 8e 46 f0
    63296363    mov bx, word [bp-014h]                    ; 8b 5e ec
    63306364    mov word [es:bx+002h], ax                 ; 26 89 47 02
    63316365    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
    6332     je short 047c0h                           ; 74 53
     6366    je short 04814h                           ; 74 53
    63336367    mov bx, 00da0h                            ; bb a0 0d
    63346368    mov cx, ds                                ; 8c d9
    63356369    mov ax, strict word 00004h                ; b8 04 00
    6336     call 01923h                               ; e8 ab d1
     6370    call 01923h                               ; e8 57 d1
    63376371    mov al, byte [bp-018h]                    ; 8a 46 e8
    63386372    xor ah, ah                                ; 30 e4
     
    63426376    push 00471h                               ; 68 71 04
    63436377    push strict byte 00004h                   ; 6a 04
    6344     call 01966h                               ; e8 da d1
     6378    call 01966h                               ; e8 86 d1
    63456379    add sp, strict byte 0000ah                ; 83 c4 0a
    63466380    mov ax, word [bp+018h]                    ; 8b 46 18
    63476381    xor ah, ah                                ; 30 e4
    63486382    or ah, 00ch                               ; 80 cc 0c
    6349     jmp near 04ab1h                           ; e9 17 03
     6383    jmp near 04b05h                           ; e9 17 03
    63506384    cmp bx, strict byte 00002h                ; 83 fb 02
    6351     jnbe short 04808h                         ; 77 69
     6385    jnbe short 0485ch                         ; 77 69
    63526386    mov al, byte [bp-006h]                    ; 8a 46 fa
    63536387    xor ah, ah                                ; 30 e4
     
    63586392    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    63596393    cmp bx, strict byte 00002h                ; 83 fb 02
    6360     je short 0481eh                           ; 74 67
     6394    je short 04872h                           ; 74 67
    63616395    cmp bx, strict byte 00001h                ; 83 fb 01
    6362     je short 047f8h                           ; 74 3c
     6396    je short 0484ch                           ; 74 3c
    63636397    test bx, bx                               ; 85 db
    6364     je short 047c3h                           ; 74 03
    6365     jmp near 04a71h                           ; e9 ae 02
     6398    je short 04817h                           ; 74 03
     6399    jmp near 04ac5h                           ; e9 ae 02
    63666400    cmp AL, strict byte 0ffh                  ; 3c ff
    6367     jne short 047d9h                          ; 75 12
     6401    jne short 0482dh                          ; 75 12
    63686402    mov ax, word [bp+018h]                    ; 8b 46 18
    63696403    xor ah, ah                                ; 30 e4
     
    63726406    xor al, al                                ; 30 c0
    63736407    or AL, strict byte 001h                   ; 0c 01
    6374     jmp near 04ab1h                           ; e9 d8 02
     6408    jmp near 04b05h                           ; e9 d8 02
    63756409    mov dl, byte [bp-006h]                    ; 8a 56 fa
    63766410    xor dh, dh                                ; 30 f6
     
    63856419    or AL, strict byte 001h                   ; 0c 01
    63866420    mov word [bp+018h], ax                    ; 89 46 18
    6387     jmp short 047c0h                          ; eb c8
     6421    jmp short 04814h                          ; eb c8
    63886422    test al, al                               ; 84 c0
    6389     jne short 0480bh                          ; 75 0f
     6423    jne short 0485fh                          ; 75 0f
    63906424    or bh, 0b0h                               ; 80 cf b0
    63916425    mov word [bp+018h], bx                    ; 89 5e 18
    63926426    mov byte [bp+018h], al                    ; 88 46 18
    6393     jmp near 04ab4h                           ; e9 ac 02
    6394     jmp near 04aa9h                           ; e9 9e 02
     6427    jmp near 04b08h                           ; e9 ac 02
     6428    jmp near 04afdh                           ; e9 9e 02
    63956429    mov dl, byte [bp-006h]                    ; 8a 56 fa
    63966430    xor dh, dh                                ; 30 f6
     
    64026436    mov byte [es:si+025h], al                 ; 26 88 44 25
    64036437    test al, al                               ; 84 c0
    6404     jne short 04830h                          ; 75 0e
     6438    jne short 04884h                          ; 75 0e
    64056439    xor ah, ah                                ; 30 e4
    64066440    mov dx, word [bp+018h]                    ; 8b 56 18
     
    64086442    or dx, ax                                 ; 09 c2
    64096443    mov word [bp+018h], dx                    ; 89 56 18
    6410     jmp short 047c0h                          ; eb 90
     6444    jmp short 04814h                          ; eb 90
    64116445    mov ax, strict word 00001h                ; b8 01 00
    6412     jmp short 04824h                          ; eb ef
     6446    jmp short 04878h                          ; eb ef
    64136447    mov al, byte [bp-006h]                    ; 8a 46 fa
    64146448    xor ah, ah                                ; 30 e4
     
    64186452    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    64196453    test al, al                               ; 84 c0
    6420     je short 04850h                           ; 74 06
     6454    je short 048a4h                           ; 74 06
    64216455    or bh, 0b1h                               ; 80 cf b1
    6422     jmp near 04623h                           ; e9 d3 fd
    6423     je short 04879h                           ; 74 27
     6456    jmp near 04677h                           ; e9 d3 fd
     6457    je short 048cdh                           ; 74 27
    64246458    mov ax, word [bp+018h]                    ; 8b 46 18
    64256459    xor ah, ah                                ; 30 e4
    64266460    or ah, 0b1h                               ; 80 cc b1
    6427     jmp near 04ab1h                           ; e9 54 02
     6461    jmp near 04b05h                           ; e9 54 02
    64286462    mov dx, word [bp+00ch]                    ; 8b 56 0c
    64296463    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    64356469    mov word [bp-00ch], ax                    ; 89 46 f4
    64366470    cmp ax, strict word 0001ah                ; 3d 1a 00
    6437     jnc short 0487ch                          ; 73 05
    6438     jmp short 04808h                          ; eb 8f
    6439     jmp near 04a71h                           ; e9 f5 01
    6440     jc short 048e0h                           ; 72 62
     6471    jnc short 048d0h                          ; 73 05
     6472    jmp short 0485ch                          ; eb 8f
     6473    jmp near 04ac5h                           ; e9 f5 01
     6474    jc short 04934h                           ; 72 62
    64416475    mov al, byte [bp-006h]                    ; 8a 46 fa
    64426476    xor ah, ah                                ; 30 e4
     
    64626496    mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff
    64636497    cmp word [bp-00ch], strict byte 0001eh    ; 83 7e f4 1e
    6464     jnc short 048e9h                          ; 73 03
    6465     jmp near 049a5h                           ; e9 bc 00
     6498    jnc short 0493dh                          ; 73 03
     6499    jmp near 049f9h                           ; e9 bc 00
    64666500    mov es, [bp-00ah]                         ; 8e 46 f6
    64676501    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    65066540    xor cl, cl                                ; 30 c9
    65076541    xor ch, ch                                ; 30 ed
    6508     jmp short 04985h                          ; eb 05
     6542    jmp short 049d9h                          ; eb 05
    65096543    cmp ch, 00fh                              ; 80 fd 0f
    6510     jnc short 0499bh                          ; 73 16
     6544    jnc short 049efh                          ; 73 16
    65116545    mov al, ch                                ; 88 e8
    65126546    xor ah, ah                                ; 30 e4
     
    65146548    add dx, 00356h                            ; 81 c2 56 03
    65156549    mov ax, word [bp-016h]                    ; 8b 46 ea
    6516     call 01650h                               ; e8 bb cc
     6550    call 01650h                               ; e8 67 cc
    65176551    add cl, al                                ; 00 c1
    65186552    db  0feh, 0c5h
    65196553    ; inc ch                                    ; fe c5
    6520     jmp short 04980h                          ; eb e5
     6554    jmp short 049d4h                          ; eb e5
    65216555    neg cl                                    ; f6 d9
    65226556    mov es, [bp-01eh]                         ; 8e 46 e2
    65236557    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    65246558    cmp word [bp-00ch], strict byte 00042h    ; 83 7e f4 42
    6525     jnc short 049aeh                          ; 73 03
    6526     jmp near 04a71h                           ; e9 c3 00
     6559    jnc short 04a02h                          ; 73 03
     6560    jmp near 04ac5h                           ; e9 c3 00
    65276561    mov al, byte [bp-006h]                    ; 8a 46 fa
    65286562    xor ah, ah                                ; 30 e4
     
    65436577    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    65446578    test al, al                               ; 84 c0
    6545     jne short 049f6h                          ; 75 0c
     6579    jne short 04a4ah                          ; 75 0c
    65466580    mov word [es:bx+024h], 05349h             ; 26 c7 47 24 49 53
    65476581    mov word [es:bx+026h], 02041h             ; 26 c7 47 26 41 20
     
    65526586    mov word [es:bx+02eh], 02020h             ; 26 c7 47 2e 20 20
    65536587    test al, al                               ; 84 c0
    6554     jne short 04a2bh                          ; 75 16
     6588    jne short 04a7fh                          ; 75 16
    65556589    mov word [es:bx+030h], dx                 ; 26 89 57 30
    65566590    mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
     
    65676601    xor al, al                                ; 30 c0
    65686602    mov AH, strict byte 01eh                  ; b4 1e
    6569     jmp short 04a56h                          ; eb 05
     6603    jmp short 04aaah                          ; eb 05
    65706604    cmp ah, 040h                              ; 80 fc 40
    6571     jnc short 04a68h                          ; 73 12
     6605    jnc short 04abch                          ; 73 12
    65726606    mov dl, ah                                ; 88 e2
    65736607    xor dh, dh                                ; 30 f6
     
    65786612    db  0feh, 0c4h
    65796613    ; inc ah                                    ; fe c4
    6580     jmp short 04a51h                          ; eb e9
     6614    jmp short 04aa5h                          ; eb e9
    65816615    neg al                                    ; f6 d8
    65826616    mov es, [bp-00ah]                         ; 8e 46 f6
     
    65866620    mov dx, strict word 00074h                ; ba 74 00
    65876621    mov ax, strict word 00040h                ; b8 40 00
    6588     call 0165eh                               ; e8 de cb
     6622    call 0165eh                               ; e8 8a cb
    65896623    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    65906624    lea sp, [bp-004h]                         ; 8d 66 fc
     
    65956629    or bh, 006h                               ; 80 cf 06
    65966630    mov word [bp+018h], bx                    ; 89 5e 18
    6597     jmp short 04ac5h                          ; eb 32
     6631    jmp short 04b19h                          ; eb 32
    65986632    cmp bx, strict byte 00006h                ; 83 fb 06
    6599     je short 04a71h                           ; 74 d9
     6633    je short 04ac5h                           ; 74 d9
    66006634    cmp bx, strict byte 00001h                ; 83 fb 01
    6601     jc short 04aa9h                           ; 72 0c
    6602     jbe short 04a71h                          ; 76 d2
     6635    jc short 04afdh                           ; 72 0c
     6636    jbe short 04ac5h                          ; 76 d2
    66036637    cmp bx, strict byte 00003h                ; 83 fb 03
    6604     jc short 04aa9h                           ; 72 05
     6638    jc short 04afdh                           ; 72 05
    66056639    cmp bx, strict byte 00004h                ; 83 fb 04
    6606     jbe short 04a71h                          ; 76 c8
     6640    jbe short 04ac5h                          ; 76 c8
    66076641    mov ax, word [bp+018h]                    ; 8b 46 18
    66086642    xor ah, ah                                ; 30 e4
     
    66146648    mov dx, strict word 00074h                ; ba 74 00
    66156649    mov ax, strict word 00040h                ; b8 40 00
    6616     call 0165eh                               ; e8 99 cb
     6650    call 0165eh                               ; e8 45 cb
    66176651    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6618     jmp short 04a84h                          ; eb b9
    6619 print_boot_device_:                          ; 0xf4acb LB 0x4b
     6652    jmp short 04ad8h                          ; eb b9
     6653print_boot_device_:                          ; 0xf4b1f LB 0x4b
    66206654    push bp                                   ; 55
    66216655    mov bp, sp                                ; 89 e5
    66226656    push cx                                   ; 51
    66236657    test al, al                               ; 84 c0
    6624     je short 04ad8h                           ; 74 05
     6658    je short 04b2ch                           ; 74 05
    66256659    mov dx, strict word 00002h                ; ba 02 00
    6626     jmp short 04af2h                          ; eb 1a
     6660    jmp short 04b46h                          ; eb 1a
    66276661    test dl, dl                               ; 84 d2
    6628     je short 04ae1h                           ; 74 05
     6662    je short 04b35h                           ; 74 05
    66296663    mov dx, strict word 00003h                ; ba 03 00
    6630     jmp short 04af2h                          ; eb 11
     6664    jmp short 04b46h                          ; eb 11
    66316665    test bl, 080h                             ; f6 c3 80
    6632     jne short 04aeah                          ; 75 04
     6666    jne short 04b3eh                          ; 75 04
    66336667    xor dh, dh                                ; 30 f6
    6634     jmp short 04af2h                          ; eb 08
     6668    jmp short 04b46h                          ; eb 08
    66356669    test bl, 080h                             ; f6 c3 80
    6636     je short 04b10h                           ; 74 21
     6670    je short 04b64h                           ; 74 21
    66376671    mov dx, strict word 00001h                ; ba 01 00
    66386672    mov bx, 00da0h                            ; bb a0 0d
    66396673    mov cx, ds                                ; 8c d9
    66406674    mov ax, strict word 00004h                ; b8 04 00
    6641     call 01923h                               ; e8 26 ce
     6675    call 01923h                               ; e8 d2 cd
    66426676    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    66436677    add dx, 00dc6h                            ; 81 c2 c6 0d
     
    66456679    push 00494h                               ; 68 94 04
    66466680    push strict byte 00004h                   ; 6a 04
    6647     call 01966h                               ; e8 59 ce
     6681    call 01966h                               ; e8 05 ce
    66486682    add sp, strict byte 00006h                ; 83 c4 06
    66496683    lea sp, [bp-002h]                         ; 8d 66 fe
     
    66516685    pop bp                                    ; 5d
    66526686    retn                                      ; c3
    6653 print_boot_failure_:                         ; 0xf4b16 LB 0x96
     6687print_boot_failure_:                         ; 0xf4b6a LB 0x96
    66546688    push bp                                   ; 55
    66556689    mov bp, sp                                ; 89 e5
     
    66626696    mov si, cx                                ; 89 ce
    66636697    test al, al                               ; 84 c0
    6664     je short 04b46h                           ; 74 1b
     6698    je short 04b9ah                           ; 74 1b
    66656699    mov bx, 00da0h                            ; bb a0 0d
    66666700    mov cx, ds                                ; 8c d9
    66676701    mov ax, strict word 00004h                ; b8 04 00
    6668     call 01923h                               ; e8 ed cd
     6702    call 01923h                               ; e8 99 cd
    66696703    push 00ddah                               ; 68 da 0d
    66706704    push 004a8h                               ; 68 a8 04
    66716705    push strict byte 00004h                   ; 6a 04
    6672     call 01966h                               ; e8 25 ce
     6706    call 01966h                               ; e8 d1 cd
    66736707    add sp, strict byte 00006h                ; 83 c4 06
    6674     jmp short 04b8ah                          ; eb 44
     6708    jmp short 04bdeh                          ; eb 44
    66756709    test ah, ah                               ; 84 e4
    6676     je short 04b5ah                           ; 74 10
     6710    je short 04baeh                           ; 74 10
    66776711    mov bx, 00da0h                            ; bb a0 0d
    66786712    mov cx, ds                                ; 8c d9
    66796713    mov ax, strict word 00004h                ; b8 04 00
    6680     call 01923h                               ; e8 ce cd
     6714    call 01923h                               ; e8 7a cd
    66816715    push 00de4h                               ; 68 e4 0d
    6682     jmp short 04b39h                          ; eb df
     6716    jmp short 04b8dh                          ; eb df
    66836717    test bl, 080h                             ; f6 c3 80
    6684     je short 04b70h                           ; 74 11
     6718    je short 04bc4h                           ; 74 11
    66856719    mov bx, 00da0h                            ; bb a0 0d
    66866720    mov cx, ds                                ; 8c d9
    66876721    mov ax, strict word 00004h                ; b8 04 00
    6688     call 01923h                               ; e8 b9 cd
     6722    call 01923h                               ; e8 65 cd
    66896723    push si                                   ; 56
    66906724    push 00dd0h                               ; 68 d0 0d
    6691     jmp short 04b7fh                          ; eb 0f
     6725    jmp short 04bd3h                          ; eb 0f
    66926726    mov bx, 00da0h                            ; bb a0 0d
    66936727    mov cx, ds                                ; 8c d9
    66946728    mov ax, strict word 00004h                ; b8 04 00
    6695     call 01923h                               ; e8 a8 cd
     6729    call 01923h                               ; e8 54 cd
    66966730    push si                                   ; 56
    66976731    push 00dc6h                               ; 68 c6 0d
    66986732    push 004bdh                               ; 68 bd 04
    66996733    push strict byte 00004h                   ; 6a 04
    6700     call 01966h                               ; e8 df cd
     6734    call 01966h                               ; e8 8b cd
    67016735    add sp, strict byte 00008h                ; 83 c4 08
    67026736    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6703     jne short 04ba4h                          ; 75 14
     6737    jne short 04bf8h                          ; 75 14
    67046738    test dl, dl                               ; 84 d2
    6705     jne short 04b99h                          ; 75 05
     6739    jne short 04bedh                          ; 75 05
    67066740    push 004d5h                               ; 68 d5 04
    6707     jmp short 04b9ch                          ; eb 03
     6741    jmp short 04bf0h                          ; eb 03
    67086742    push 004ffh                               ; 68 ff 04
    67096743    push strict byte 00007h                   ; 6a 07
    6710     call 01966h                               ; e8 c5 cd
     6744    call 01966h                               ; e8 71 cd
    67116745    add sp, strict byte 00004h                ; 83 c4 04
    67126746    lea sp, [bp-002h]                         ; 8d 66 fe
     
    67146748    pop bp                                    ; 5d
    67156749    retn 00002h                               ; c2 02 00
    6716 print_cdromboot_failure_:                    ; 0xf4bac LB 0x27
     6750print_cdromboot_failure_:                    ; 0xf4c00 LB 0x27
    67176751    push bp                                   ; 55
    67186752    mov bp, sp                                ; 89 e5
     
    67246758    mov cx, ds                                ; 8c d9
    67256759    mov ax, strict word 00004h                ; b8 04 00
    6726     call 01923h                               ; e8 64 cd
     6760    call 01923h                               ; e8 10 cd
    67276761    push dx                                   ; 52
    67286762    push 00534h                               ; 68 34 05
    67296763    push strict byte 00004h                   ; 6a 04
    6730     call 01966h                               ; e8 9e cd
     6764    call 01966h                               ; e8 4a cd
    67316765    add sp, strict byte 00006h                ; 83 c4 06
    67326766    lea sp, [bp-006h]                         ; 8d 66 fa
     
    67366770    pop bp                                    ; 5d
    67376771    retn                                      ; c3
    6738 _int19_function:                             ; 0xf4bd3 LB 0x271
     6772_int19_function:                             ; 0xf4c27 LB 0x271
    67396773    push bp                                   ; 55
    67406774    mov bp, sp                                ; 89 e5
     
    67446778    mov dx, strict word 0000eh                ; ba 0e 00
    67456779    mov ax, strict word 00040h                ; b8 40 00
    6746     call 0166ch                               ; e8 88 ca
     6780    call 0166ch                               ; e8 34 ca
    67476781    mov bx, ax                                ; 89 c3
    67486782    mov word [bp-00eh], ax                    ; 89 46 f2
    67496783    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    67506784    mov ax, strict word 0003dh                ; b8 3d 00
    6751     call 016ach                               ; e8 b9 ca
     6785    call 016ach                               ; e8 65 ca
    67526786    mov dl, al                                ; 88 c2
    67536787    xor dh, dh                                ; 30 f6
    67546788    mov ax, strict word 00038h                ; b8 38 00
    6755     call 016ach                               ; e8 af ca
     6789    call 016ach                               ; e8 5b ca
    67566790    and AL, strict byte 0f0h                  ; 24 f0
    67576791    xor ah, ah                                ; 30 e4
     
    67606794    or si, ax                                 ; 09 c6
    67616795    mov ax, strict word 0003ch                ; b8 3c 00
    6762     call 016ach                               ; e8 9e ca
     6796    call 016ach                               ; e8 4a ca
    67636797    and AL, strict byte 00fh                  ; 24 0f
    67646798    xor ah, ah                                ; 30 e4
     
    67676801    mov dx, 0037dh                            ; ba 7d 03
    67686802    mov ax, bx                                ; 89 d8
    6769     call 01650h                               ; e8 31 ca
     6803    call 01650h                               ; e8 dd c9
    67706804    test al, al                               ; 84 c0
    6771     je short 04c2fh                           ; 74 0c
     6805    je short 04c83h                           ; 74 0c
    67726806    mov dx, 0037dh                            ; ba 7d 03
    67736807    mov ax, bx                                ; 89 d8
    6774     call 01650h                               ; e8 25 ca
     6808    call 01650h                               ; e8 d1 c9
    67756809    xor ah, ah                                ; 30 e4
    67766810    mov si, ax                                ; 89 c6
    67776811    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6778     jne short 04c45h                          ; 75 10
     6812    jne short 04c99h                          ; 75 10
    67796813    mov ax, strict word 0003ch                ; b8 3c 00
    6780     call 016ach                               ; e8 71 ca
     6814    call 016ach                               ; e8 1d ca
    67816815    and AL, strict byte 0f0h                  ; 24 f0
    67826816    xor ah, ah                                ; 30 e4
    67836817    sar ax, 004h                              ; c1 f8 04
    6784     call 07d11h                               ; e8 cc 30
     6818    call 07d65h                               ; e8 cc 30
    67856819    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6786     jne short 04c4eh                          ; 75 03
     6820    jne short 04ca2h                          ; 75 03
    67876821    shr si, 004h                              ; c1 ee 04
    67886822    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6789     jne short 04c57h                          ; 75 03
     6823    jne short 04cabh                          ; 75 03
    67906824    shr si, 008h                              ; c1 ee 08
    67916825    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6792     jne short 04c60h                          ; 75 03
     6826    jne short 04cb4h                          ; 75 03
    67936827    shr si, 00ch                              ; c1 ee 0c
    67946828    cmp si, strict byte 00010h                ; 83 fe 10
    6795     jnc short 04c69h                          ; 73 04
     6829    jnc short 04cbdh                          ; 73 04
    67966830    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    67976831    xor al, al                                ; 30 c0
     
    68026836    mov cx, ds                                ; 8c d9
    68036837    mov ax, strict word 00004h                ; b8 04 00
    6804     call 01923h                               ; e8 a4 cc
     6838    call 01923h                               ; e8 50 cc
    68056839    push si                                   ; 56
    68066840    mov al, byte [bp+004h]                    ; 8a 46 04
     
    68096843    push 00554h                               ; 68 54 05
    68106844    push strict byte 00004h                   ; 6a 04
    6811     call 01966h                               ; e8 d8 cc
     6845    call 01966h                               ; e8 84 cc
    68126846    add sp, strict byte 00008h                ; 83 c4 08
    68136847    and si, strict byte 0000fh                ; 83 e6 0f
    68146848    cmp si, strict byte 00002h                ; 83 fe 02
    6815     jc short 04ca7h                           ; 72 0e
    6816     jbe short 04cb6h                          ; 76 1b
     6849    jc short 04cfbh                           ; 72 0e
     6850    jbe short 04d0ah                          ; 76 1b
    68176851    cmp si, strict byte 00004h                ; 83 fe 04
    6818     je short 04cd4h                           ; 74 34
     6852    je short 04d28h                           ; 74 34
    68196853    cmp si, strict byte 00003h                ; 83 fe 03
    6820     je short 04ccah                           ; 74 25
    6821     jmp short 04d03h                          ; eb 5c
     6854    je short 04d1eh                           ; 74 25
     6855    jmp short 04d57h                          ; eb 5c
    68226856    cmp si, strict byte 00001h                ; 83 fe 01
    6823     jne short 04d03h                          ; 75 57
     6857    jne short 04d57h                          ; 75 57
    68246858    xor al, al                                ; 30 c0
    68256859    mov byte [bp-006h], al                    ; 88 46 fa
    68266860    mov byte [bp-008h], al                    ; 88 46 f8
    6827     jmp short 04d1bh                          ; eb 65
     6861    jmp short 04d6fh                          ; eb 65
    68286862    mov dx, 0037ch                            ; ba 7c 03
    68296863    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6830     call 01650h                               ; e8 91 c9
     6864    call 01650h                               ; e8 3d c9
    68316865    add AL, strict byte 080h                  ; 04 80
    68326866    mov byte [bp-006h], al                    ; 88 46 fa
    68336867    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    6834     jmp short 04d1bh                          ; eb 51
     6868    jmp short 04d6fh                          ; eb 51
    68356869    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    68366870    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    6837     jmp short 04cdeh                          ; eb 0a
     6871    jmp short 04d32h                          ; eb 0a
    68386872    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    68396873    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6840     je short 04d1bh                           ; 74 3d
    6841     call 03cd8h                               ; e8 f7 ef
     6874    je short 04d6fh                           ; 74 3d
     6875    call 03d2ch                               ; e8 f7 ef
    68426876    mov bx, ax                                ; 89 c3
    68436877    test AL, strict byte 0ffh                 ; a8 ff
    6844     je short 04d0ah                           ; 74 23
    6845     call 04bach                               ; e8 c2 fe
     6878    je short 04d5eh                           ; 74 23
     6879    call 04c00h                               ; e8 c2 fe
    68466880    mov al, byte [bp-00ch]                    ; 8a 46 f4
    68476881    xor ah, ah                                ; 30 e4
     
    68536887    mov al, byte [bp-008h]                    ; 8a 46 f8
    68546888    mov cx, strict word 00001h                ; b9 01 00
    6855     call 04b16h                               ; e8 13 fe
     6889    call 04b6ah                               ; e8 13 fe
    68566890    xor ax, ax                                ; 31 c0
    68576891    xor dx, dx                                ; 31 d2
    6858     jmp near 04e3dh                           ; e9 33 01
     6892    jmp near 04e91h                           ; e9 33 01
    68596893    mov dx, 00372h                            ; ba 72 03
    68606894    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6861     call 0166ch                               ; e8 59 c9
     6895    call 0166ch                               ; e8 05 c9
    68626896    mov di, ax                                ; 89 c7
    68636897    shr bx, 008h                              ; c1 eb 08
    68646898    mov byte [bp-006h], bl                    ; 88 5e fa
    68656899    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    6866     jne short 04d76h                          ; 75 55
     6900    jne short 04dcah                          ; 75 55
    68676901    xor si, si                                ; 31 f6
    68686902    mov ax, 0e200h                            ; b8 00 e2
    68696903    mov es, ax                                ; 8e c0
    68706904    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6871     jne short 04ceah                          ; 75 bb
     6905    jne short 04d3eh                          ; 75 bb
    68726906    mov cx, ax                                ; 89 c1
    68736907    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    68746908    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6875     jne short 04ceah                          ; 75 ad
     6909    jne short 04d3eh                          ; 75 ad
    68766910    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6877     jne short 04ceah                          ; 75 a6
     6911    jne short 04d3eh                          ; 75 a6
    68786912    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    68796913    mov dx, word [es:di]                      ; 26 8b 15
    68806914    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    68816915    cmp ax, 06568h                            ; 3d 68 65
    6882     jne short 04d78h                          ; 75 24
     6916    jne short 04dcch                          ; 75 24
    68836917    cmp dx, 07445h                            ; 81 fa 45 74
    6884     jne short 04d78h                          ; 75 1e
     6918    jne short 04dcch                          ; 75 1e
    68856919    mov bl, byte [bp-006h]                    ; 8a 5e fa
    68866920    xor bh, bh                                ; 30 ff
     
    68896923    mov al, byte [bp-008h]                    ; 8a 46 f8
    68906924    xor ah, ah                                ; 30 e4
    6891     call 04acbh                               ; e8 5f fd
     6925    call 04b1fh                               ; e8 5f fd
    68926926    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    68936927    mov word [bp-010h], cx                    ; 89 4e f0
    6894     jmp short 04d97h                          ; eb 21
    6895     jmp short 04d9dh                          ; eb 25
     6928    jmp short 04debh                          ; eb 21
     6929    jmp short 04df1h                          ; eb 25
    68966930    mov bl, byte [bp-006h]                    ; 8a 5e fa
    68976931    xor bh, bh                                ; 30 ff
     
    69006934    mov al, byte [bp-008h]                    ; 8a 46 f8
    69016935    xor ah, ah                                ; 30 e4
    6902     call 04acbh                               ; e8 41 fd
     6936    call 04b1fh                               ; e8 41 fd
    69036937    sti                                       ; fb
    69046938    mov word [bp-010h], cx                    ; 89 4e f0
     
    69076941    mov word [bp-012h], ax                    ; 89 46 ee
    69086942    call far [bp-012h]                        ; ff 5e ee
    6909     jmp near 04ceah                           ; e9 4d ff
     6943    jmp near 04d3eh                           ; e9 4d ff
    69106944    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6911     jne short 04dcah                          ; 75 27
     6945    jne short 04e1eh                          ; 75 27
    69126946    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6913     jne short 04dcah                          ; 75 21
     6947    jne short 04e1eh                          ; 75 21
    69146948    mov di, 007c0h                            ; bf c0 07
    69156949    mov es, di                                ; 8e c7
     
    69246958    sbb ax, strict byte 00000h                ; 83 d8 00
    69256959    test ax, ax                               ; 85 c0
    6926     je short 04dcah                           ; 74 03
    6927     jmp near 04ceah                           ; e9 20 ff
     6960    je short 04e1eh                           ; 74 03
     6961    jmp near 04d3eh                           ; e9 20 ff
    69286962    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    6929     je short 04dd4h                           ; 74 04
     6963    je short 04e28h                           ; 74 04
    69306964    xor bl, bl                                ; 30 db
    6931     jmp short 04dd6h                          ; eb 02
     6965    jmp short 04e2ah                          ; eb 02
    69326966    mov BL, strict byte 001h                  ; b3 01
    69336967    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    6934     je short 04ddeh                           ; 74 02
     6968    je short 04e32h                           ; 74 02
    69356969    mov BL, strict byte 001h                  ; b3 01
    69366970    xor dx, dx                                ; 31 d2
    69376971    mov ax, di                                ; 89 f8
    6938     call 0166ch                               ; e8 87 c8
     6972    call 0166ch                               ; e8 33 c8
    69396973    mov si, ax                                ; 89 c6
    69406974    mov dx, strict word 00002h                ; ba 02 00
    69416975    mov ax, di                                ; 89 f8
    6942     call 0166ch                               ; e8 7d c8
     6976    call 0166ch                               ; e8 29 c8
    69436977    cmp si, ax                                ; 39 c6
    6944     je short 04e04h                           ; 74 11
     6978    je short 04e58h                           ; 74 11
    69456979    test bl, bl                               ; 84 db
    6946     jne short 04e1ch                          ; 75 25
     6980    jne short 04e70h                          ; 75 25
    69476981    mov dx, 001feh                            ; ba fe 01
    69486982    mov ax, di                                ; 89 f8
    6949     call 0166ch                               ; e8 6d c8
     6983    call 0166ch                               ; e8 19 c8
    69506984    cmp ax, 0aa55h                            ; 3d 55 aa
    6951     je short 04e1ch                           ; 74 18
     6985    je short 04e70h                           ; 74 18
    69526986    mov al, byte [bp-00ch]                    ; 8a 46 f4
    69536987    xor ah, ah                                ; 30 e4
     
    69596993    mov al, byte [bp-008h]                    ; 8a 46 f8
    69606994    xor cx, cx                                ; 31 c9
    6961     jmp near 04d00h                           ; e9 e4 fe
     6995    jmp near 04d54h                           ; e9 e4 fe
    69626996    mov bl, byte [bp-006h]                    ; 8a 5e fa
    69636997    xor bh, bh                                ; 30 ff
     
    69667000    mov al, byte [bp-008h]                    ; 8a 46 f8
    69677001    xor ah, ah                                ; 30 e4
    6968     call 04acbh                               ; e8 9d fc
     7002    call 04b1fh                               ; e8 9d fc
    69697003    mov al, byte [bp-006h]                    ; 8a 46 fa
    69707004    xor ah, ah                                ; 30 e4
     
    69797013    pop bp                                    ; 5d
    69807014    retn                                      ; c3
    6981 keyboard_panic_:                             ; 0xf4e44 LB 0x13
     7015keyboard_panic_:                             ; 0xf4e98 LB 0x13
    69827016    push bp                                   ; 55
    69837017    mov bp, sp                                ; 89 e5
     
    69857019    push 00574h                               ; 68 74 05
    69867020    push strict byte 00007h                   ; 6a 07
    6987     call 01966h                               ; e8 16 cb
     7021    call 01966h                               ; e8 c2 ca
    69887022    add sp, strict byte 00006h                ; 83 c4 06
    69897023    mov sp, bp                                ; 89 ec
    69907024    pop bp                                    ; 5d
    69917025    retn                                      ; c3
    6992 _keyboard_init:                              ; 0xf4e57 LB 0x26a
     7026_keyboard_init:                              ; 0xf4eab LB 0x26a
    69937027    push bp                                   ; 55
    69947028    mov bp, sp                                ; 89 e5
     
    70027036    ; sub ah, ah                                ; 2a e4
    70037037    test AL, strict byte 002h                 ; a8 02
    7004     je short 04e7ah                           ; 74 0d
     7038    je short 04eceh                           ; 74 0d
    70057039    dec bx                                    ; 4b
    70067040    test bx, bx                               ; 85 db
    7007     jbe short 04e7ah                          ; 76 08
     7041    jbe short 04eceh                          ; 76 08
    70087042    xor al, al                                ; 30 c0
    70097043    mov dx, 00080h                            ; ba 80 00
    70107044    out DX, AL                                ; ee
    7011     jmp short 04e63h                          ; eb e9
     7045    jmp short 04eb7h                          ; eb e9
    70127046    test bx, bx                               ; 85 db
    7013     jne short 04e83h                          ; 75 05
     7047    jne short 04ed7h                          ; 75 05
    70147048    xor ax, ax                                ; 31 c0
    7015     call 04e44h                               ; e8 c1 ff
     7049    call 04e98h                               ; e8 c1 ff
    70167050    mov bx, strict word 0ffffh                ; bb ff ff
    70177051    mov dx, strict word 00064h                ; ba 64 00
     
    70207054    ; sub ah, ah                                ; 2a e4
    70217055    test AL, strict byte 001h                 ; a8 01
    7022     jne short 04e9dh                          ; 75 0d
     7056    jne short 04ef1h                          ; 75 0d
    70237057    dec bx                                    ; 4b
    70247058    test bx, bx                               ; 85 db
    7025     jbe short 04e9dh                          ; 76 08
     7059    jbe short 04ef1h                          ; 76 08
    70267060    mov AL, strict byte 001h                  ; b0 01
    70277061    mov dx, 00080h                            ; ba 80 00
    70287062    out DX, AL                                ; ee
    7029     jmp short 04e86h                          ; eb e9
     7063    jmp short 04edah                          ; eb e9
    70307064    test bx, bx                               ; 85 db
    7031     jne short 04ea7h                          ; 75 06
     7065    jne short 04efbh                          ; 75 06
    70327066    mov ax, strict word 00001h                ; b8 01 00
    7033     call 04e44h                               ; e8 9d ff
     7067    call 04e98h                               ; e8 9d ff
    70347068    mov dx, strict word 00060h                ; ba 60 00
    70357069    in AL, DX                                 ; ec
     
    70377071    ; sub ah, ah                                ; 2a e4
    70387072    cmp ax, strict word 00055h                ; 3d 55 00
    7039     je short 04eb8h                           ; 74 06
     7073    je short 04f0ch                           ; 74 06
    70407074    mov ax, 003dfh                            ; b8 df 03
    7041     call 04e44h                               ; e8 8c ff
     7075    call 04e98h                               ; e8 8c ff
    70427076    mov AL, strict byte 0abh                  ; b0 ab
    70437077    mov dx, strict word 00064h                ; ba 64 00
     
    70497083    ; sub ah, ah                                ; 2a e4
    70507084    test AL, strict byte 002h                 ; a8 02
    7051     je short 04ed8h                           ; 74 0d
     7085    je short 04f2ch                           ; 74 0d
    70527086    dec bx                                    ; 4b
    70537087    test bx, bx                               ; 85 db
    7054     jbe short 04ed8h                          ; 76 08
     7088    jbe short 04f2ch                          ; 76 08
    70557089    mov AL, strict byte 010h                  ; b0 10
    70567090    mov dx, 00080h                            ; ba 80 00
    70577091    out DX, AL                                ; ee
    7058     jmp short 04ec1h                          ; eb e9
     7092    jmp short 04f15h                          ; eb e9
    70597093    test bx, bx                               ; 85 db
    7060     jne short 04ee2h                          ; 75 06
     7094    jne short 04f36h                          ; 75 06
    70617095    mov ax, strict word 0000ah                ; b8 0a 00
    7062     call 04e44h                               ; e8 62 ff
     7096    call 04e98h                               ; e8 62 ff
    70637097    mov bx, strict word 0ffffh                ; bb ff ff
    70647098    mov dx, strict word 00064h                ; ba 64 00
     
    70677101    ; sub ah, ah                                ; 2a e4
    70687102    test AL, strict byte 001h                 ; a8 01
    7069     jne short 04efch                          ; 75 0d
     7103    jne short 04f50h                          ; 75 0d
    70707104    dec bx                                    ; 4b
    70717105    test bx, bx                               ; 85 db
    7072     jbe short 04efch                          ; 76 08
     7106    jbe short 04f50h                          ; 76 08
    70737107    mov AL, strict byte 011h                  ; b0 11
    70747108    mov dx, 00080h                            ; ba 80 00
    70757109    out DX, AL                                ; ee
    7076     jmp short 04ee5h                          ; eb e9
     7110    jmp short 04f39h                          ; eb e9
    70777111    test bx, bx                               ; 85 db
    7078     jne short 04f06h                          ; 75 06
     7112    jne short 04f5ah                          ; 75 06
    70797113    mov ax, strict word 0000bh                ; b8 0b 00
    7080     call 04e44h                               ; e8 3e ff
     7114    call 04e98h                               ; e8 3e ff
    70817115    mov dx, strict word 00060h                ; ba 60 00
    70827116    in AL, DX                                 ; ec
     
    70847118    ; sub ah, ah                                ; 2a e4
    70857119    test ax, ax                               ; 85 c0
    7086     je short 04f16h                           ; 74 06
     7120    je short 04f6ah                           ; 74 06
    70877121    mov ax, 003e0h                            ; b8 e0 03
    7088     call 04e44h                               ; e8 2e ff
     7122    call 04e98h                               ; e8 2e ff
    70897123    mov AL, strict byte 0ffh                  ; b0 ff
    70907124    mov dx, strict word 00060h                ; ba 60 00
     
    70967130    ; sub ah, ah                                ; 2a e4
    70977131    test AL, strict byte 002h                 ; a8 02
    7098     je short 04f36h                           ; 74 0d
     7132    je short 04f8ah                           ; 74 0d
    70997133    dec bx                                    ; 4b
    71007134    test bx, bx                               ; 85 db
    7101     jbe short 04f36h                          ; 76 08
     7135    jbe short 04f8ah                          ; 76 08
    71027136    mov AL, strict byte 020h                  ; b0 20
    71037137    mov dx, 00080h                            ; ba 80 00
    71047138    out DX, AL                                ; ee
    7105     jmp short 04f1fh                          ; eb e9
     7139    jmp short 04f73h                          ; eb e9
    71067140    test bx, bx                               ; 85 db
    7107     jne short 04f40h                          ; 75 06
     7141    jne short 04f94h                          ; 75 06
    71087142    mov ax, strict word 00014h                ; b8 14 00
    7109     call 04e44h                               ; e8 04 ff
     7143    call 04e98h                               ; e8 04 ff
    71107144    mov bx, strict word 0ffffh                ; bb ff ff
    71117145    mov dx, strict word 00064h                ; ba 64 00
     
    71147148    ; sub ah, ah                                ; 2a e4
    71157149    test AL, strict byte 001h                 ; a8 01
    7116     jne short 04f5ah                          ; 75 0d
     7150    jne short 04faeh                          ; 75 0d
    71177151    dec bx                                    ; 4b
    71187152    test bx, bx                               ; 85 db
    7119     jbe short 04f5ah                          ; 76 08
     7153    jbe short 04faeh                          ; 76 08
    71207154    mov AL, strict byte 021h                  ; b0 21
    71217155    mov dx, 00080h                            ; ba 80 00
    71227156    out DX, AL                                ; ee
    7123     jmp short 04f43h                          ; eb e9
     7157    jmp short 04f97h                          ; eb e9
    71247158    test bx, bx                               ; 85 db
    7125     jne short 04f64h                          ; 75 06
     7159    jne short 04fb8h                          ; 75 06
    71267160    mov ax, strict word 00015h                ; b8 15 00
    7127     call 04e44h                               ; e8 e0 fe
     7161    call 04e98h                               ; e8 e0 fe
    71287162    mov dx, strict word 00060h                ; ba 60 00
    71297163    in AL, DX                                 ; ec
     
    71317165    ; sub ah, ah                                ; 2a e4
    71327166    cmp ax, 000fah                            ; 3d fa 00
    7133     je short 04f75h                           ; 74 06
     7167    je short 04fc9h                           ; 74 06
    71347168    mov ax, 003e1h                            ; b8 e1 03
    7135     call 04e44h                               ; e8 cf fe
     7169    call 04e98h                               ; e8 cf fe
    71367170    mov dx, strict word 00064h                ; ba 64 00
    71377171    in AL, DX                                 ; ec
     
    71397173    ; sub ah, ah                                ; 2a e4
    71407174    test AL, strict byte 001h                 ; a8 01
    7141     jne short 04f87h                          ; 75 08
     7175    jne short 04fdbh                          ; 75 08
    71427176    mov AL, strict byte 031h                  ; b0 31
    71437177    mov dx, 00080h                            ; ba 80 00
    71447178    out DX, AL                                ; ee
    7145     jmp short 04f75h                          ; eb ee
     7179    jmp short 04fc9h                          ; eb ee
    71467180    mov dx, strict word 00060h                ; ba 60 00
    71477181    in AL, DX                                 ; ec
     
    71497183    ; sub ah, ah                                ; 2a e4
    71507184    cmp ax, 000aah                            ; 3d aa 00
    7151     je short 04fa0h                           ; 74 0e
     7185    je short 04ff4h                           ; 74 0e
    71527186    in AL, DX                                 ; ec
    71537187    db  02ah, 0e4h
    71547188    ; sub ah, ah                                ; 2a e4
    71557189    cmp ax, 000aah                            ; 3d aa 00
    7156     je short 04fa0h                           ; 74 06
     7190    je short 04ff4h                           ; 74 06
    71577191    mov ax, 003e2h                            ; b8 e2 03
    7158     call 04e44h                               ; e8 a4 fe
     7192    call 04e98h                               ; e8 a4 fe
    71597193    mov AL, strict byte 0f5h                  ; b0 f5
    71607194    mov dx, strict word 00060h                ; ba 60 00
     
    71667200    ; sub ah, ah                                ; 2a e4
    71677201    test AL, strict byte 002h                 ; a8 02
    7168     je short 04fc0h                           ; 74 0d
     7202    je short 05014h                           ; 74 0d
    71697203    dec bx                                    ; 4b
    71707204    test bx, bx                               ; 85 db
    7171     jbe short 04fc0h                          ; 76 08
     7205    jbe short 05014h                          ; 76 08
    71727206    mov AL, strict byte 040h                  ; b0 40
    71737207    mov dx, 00080h                            ; ba 80 00
    71747208    out DX, AL                                ; ee
    7175     jmp short 04fa9h                          ; eb e9
     7209    jmp short 04ffdh                          ; eb e9
    71767210    test bx, bx                               ; 85 db
    7177     jne short 04fcah                          ; 75 06
     7211    jne short 0501eh                          ; 75 06
    71787212    mov ax, strict word 00028h                ; b8 28 00
    7179     call 04e44h                               ; e8 7a fe
     7213    call 04e98h                               ; e8 7a fe
    71807214    mov bx, strict word 0ffffh                ; bb ff ff
    71817215    mov dx, strict word 00064h                ; ba 64 00
     
    71847218    ; sub ah, ah                                ; 2a e4
    71857219    test AL, strict byte 001h                 ; a8 01
    7186     jne short 04fe4h                          ; 75 0d
     7220    jne short 05038h                          ; 75 0d
    71877221    dec bx                                    ; 4b
    71887222    test bx, bx                               ; 85 db
    7189     jbe short 04fe4h                          ; 76 08
     7223    jbe short 05038h                          ; 76 08
    71907224    mov AL, strict byte 041h                  ; b0 41
    71917225    mov dx, 00080h                            ; ba 80 00
    71927226    out DX, AL                                ; ee
    7193     jmp short 04fcdh                          ; eb e9
     7227    jmp short 05021h                          ; eb e9
    71947228    test bx, bx                               ; 85 db
    7195     jne short 04feeh                          ; 75 06
     7229    jne short 05042h                          ; 75 06
    71967230    mov ax, strict word 00029h                ; b8 29 00
    7197     call 04e44h                               ; e8 56 fe
     7231    call 04e98h                               ; e8 56 fe
    71987232    mov dx, strict word 00060h                ; ba 60 00
    71997233    in AL, DX                                 ; ec
     
    72017235    ; sub ah, ah                                ; 2a e4
    72027236    cmp ax, 000fah                            ; 3d fa 00
    7203     je short 04fffh                           ; 74 06
     7237    je short 05053h                           ; 74 06
    72047238    mov ax, 003e3h                            ; b8 e3 03
    7205     call 04e44h                               ; e8 45 fe
     7239    call 04e98h                               ; e8 45 fe
    72067240    mov AL, strict byte 060h                  ; b0 60
    72077241    mov dx, strict word 00064h                ; ba 64 00
    7208     out DX, AL                                ; ee
    7209     mov bx, strict word 0ffffh                ; bb ff ff
    7210     mov dx, strict word 00064h                ; ba 64 00
    7211     in AL, DX                                 ; ec
    7212     db  02ah, 0e4h
    7213     ; sub ah, ah                                ; 2a e4
    7214     test AL, strict byte 002h                 ; a8 02
    7215     je short 0501fh                           ; 74 0d
    7216     dec bx                                    ; 4b
    7217     test bx, bx                               ; 85 db
    7218     jbe short 0501fh                          ; 76 08
    7219     mov AL, strict byte 050h                  ; b0 50
    7220     mov dx, 00080h                            ; ba 80 00
    7221     out DX, AL                                ; ee
    7222     jmp short 05008h                          ; eb e9
    7223     test bx, bx                               ; 85 db
    7224     jne short 05029h                          ; 75 06
    7225     mov ax, strict word 00032h                ; b8 32 00
    7226     call 04e44h                               ; e8 1b fe
    7227     mov AL, strict byte 065h                  ; b0 65
    7228     mov dx, strict word 00060h                ; ba 60 00
    7229     out DX, AL                                ; ee
    7230     mov bx, strict word 0ffffh                ; bb ff ff
    7231     mov dx, strict word 00064h                ; ba 64 00
    7232     in AL, DX                                 ; ec
    7233     db  02ah, 0e4h
    7234     ; sub ah, ah                                ; 2a e4
    7235     test AL, strict byte 002h                 ; a8 02
    7236     je short 05049h                           ; 74 0d
    7237     dec bx                                    ; 4b
    7238     test bx, bx                               ; 85 db
    7239     jbe short 05049h                          ; 76 08
    7240     mov AL, strict byte 060h                  ; b0 60
    7241     mov dx, 00080h                            ; ba 80 00
    7242     out DX, AL                                ; ee
    7243     jmp short 05032h                          ; eb e9
    7244     test bx, bx                               ; 85 db
    7245     jne short 05053h                          ; 75 06
    7246     mov ax, strict word 0003ch                ; b8 3c 00
    7247     call 04e44h                               ; e8 f1 fd
    7248     mov AL, strict byte 0f4h                  ; b0 f4
    7249     mov dx, strict word 00060h                ; ba 60 00
    72507242    out DX, AL                                ; ee
    72517243    mov bx, strict word 0ffffh                ; bb ff ff
     
    72597251    test bx, bx                               ; 85 db
    72607252    jbe short 05073h                          ; 76 08
    7261     mov AL, strict byte 070h                  ; b0 70
     7253    mov AL, strict byte 050h                  ; b0 50
    72627254    mov dx, 00080h                            ; ba 80 00
    72637255    out DX, AL                                ; ee
     
    72657257    test bx, bx                               ; 85 db
    72667258    jne short 0507dh                          ; 75 06
     7259    mov ax, strict word 00032h                ; b8 32 00
     7260    call 04e98h                               ; e8 1b fe
     7261    mov AL, strict byte 065h                  ; b0 65
     7262    mov dx, strict word 00060h                ; ba 60 00
     7263    out DX, AL                                ; ee
     7264    mov bx, strict word 0ffffh                ; bb ff ff
     7265    mov dx, strict word 00064h                ; ba 64 00
     7266    in AL, DX                                 ; ec
     7267    db  02ah, 0e4h
     7268    ; sub ah, ah                                ; 2a e4
     7269    test AL, strict byte 002h                 ; a8 02
     7270    je short 0509dh                           ; 74 0d
     7271    dec bx                                    ; 4b
     7272    test bx, bx                               ; 85 db
     7273    jbe short 0509dh                          ; 76 08
     7274    mov AL, strict byte 060h                  ; b0 60
     7275    mov dx, 00080h                            ; ba 80 00
     7276    out DX, AL                                ; ee
     7277    jmp short 05086h                          ; eb e9
     7278    test bx, bx                               ; 85 db
     7279    jne short 050a7h                          ; 75 06
     7280    mov ax, strict word 0003ch                ; b8 3c 00
     7281    call 04e98h                               ; e8 f1 fd
     7282    mov AL, strict byte 0f4h                  ; b0 f4
     7283    mov dx, strict word 00060h                ; ba 60 00
     7284    out DX, AL                                ; ee
     7285    mov bx, strict word 0ffffh                ; bb ff ff
     7286    mov dx, strict word 00064h                ; ba 64 00
     7287    in AL, DX                                 ; ec
     7288    db  02ah, 0e4h
     7289    ; sub ah, ah                                ; 2a e4
     7290    test AL, strict byte 002h                 ; a8 02
     7291    je short 050c7h                           ; 74 0d
     7292    dec bx                                    ; 4b
     7293    test bx, bx                               ; 85 db
     7294    jbe short 050c7h                          ; 76 08
     7295    mov AL, strict byte 070h                  ; b0 70
     7296    mov dx, 00080h                            ; ba 80 00
     7297    out DX, AL                                ; ee
     7298    jmp short 050b0h                          ; eb e9
     7299    test bx, bx                               ; 85 db
     7300    jne short 050d1h                          ; 75 06
    72677301    mov ax, strict word 00046h                ; b8 46 00
    7268     call 04e44h                               ; e8 c7 fd
     7302    call 04e98h                               ; e8 c7 fd
    72697303    mov bx, strict word 0ffffh                ; bb ff ff
    72707304    mov dx, strict word 00064h                ; ba 64 00
     
    72737307    ; sub ah, ah                                ; 2a e4
    72747308    test AL, strict byte 001h                 ; a8 01
    7275     jne short 05097h                          ; 75 0d
     7309    jne short 050ebh                          ; 75 0d
    72767310    dec bx                                    ; 4b
    72777311    test bx, bx                               ; 85 db
    7278     jbe short 05097h                          ; 76 08
     7312    jbe short 050ebh                          ; 76 08
    72797313    mov AL, strict byte 071h                  ; b0 71
    72807314    mov dx, 00080h                            ; ba 80 00
    72817315    out DX, AL                                ; ee
    7282     jmp short 05080h                          ; eb e9
     7316    jmp short 050d4h                          ; eb e9
    72837317    test bx, bx                               ; 85 db
    7284     jne short 050a1h                          ; 75 06
     7318    jne short 050f5h                          ; 75 06
    72857319    mov ax, strict word 00046h                ; b8 46 00
    7286     call 04e44h                               ; e8 a3 fd
     7320    call 04e98h                               ; e8 a3 fd
    72877321    mov dx, strict word 00060h                ; ba 60 00
    72887322    in AL, DX                                 ; ec
     
    72907324    ; sub ah, ah                                ; 2a e4
    72917325    cmp ax, 000fah                            ; 3d fa 00
    7292     je short 050b2h                           ; 74 06
     7326    je short 05106h                           ; 74 06
    72937327    mov ax, 003e4h                            ; b8 e4 03
    7294     call 04e44h                               ; e8 92 fd
     7328    call 04e98h                               ; e8 92 fd
    72957329    mov AL, strict byte 0a8h                  ; b0 a8
    72967330    mov dx, strict word 00064h                ; ba 64 00
    72977331    out DX, AL                                ; ee
    72987332    xor ax, ax                                ; 31 c0
    7299     call 0655bh                               ; e8 9e 14
     7333    call 065afh                               ; e8 9e 14
    73007334    mov sp, bp                                ; 89 ec
    73017335    pop bp                                    ; 5d
    73027336    retn                                      ; c3
    7303 enqueue_key_:                                ; 0xf50c1 LB 0x9e
     7337enqueue_key_:                                ; 0xf5115 LB 0x9e
    73047338    push bp                                   ; 55
    73057339    mov bp, sp                                ; 89 e5
     
    73137347    mov dx, strict word 0001ah                ; ba 1a 00
    73147348    mov ax, strict word 00040h                ; b8 40 00
    7315     call 0166ch                               ; e8 95 c5
     7349    call 0166ch                               ; e8 41 c5
    73167350    mov di, ax                                ; 89 c7
    73177351    mov dx, strict word 0001ch                ; ba 1c 00
    73187352    mov ax, strict word 00040h                ; b8 40 00
    7319     call 0166ch                               ; e8 8a c5
     7353    call 0166ch                               ; e8 36 c5
    73207354    mov si, ax                                ; 89 c6
    73217355    lea cx, [si+002h]                         ; 8d 4c 02
    73227356    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7323     jc short 050efh                           ; 72 03
     7357    jc short 05143h                           ; 72 03
    73247358    mov cx, strict word 0001eh                ; b9 1e 00
    73257359    cmp cx, di                                ; 39 f9
    7326     jne short 050f7h                          ; 75 04
     7360    jne short 0514bh                          ; 75 04
    73277361    xor ax, ax                                ; 31 c0
    7328     jmp short 05121h                          ; eb 2a
     7362    jmp short 05175h                          ; eb 2a
    73297363    mov al, bl                                ; 88 d8
    73307364    xor ah, ah                                ; 30 e4
     
    73327366    mov dx, si                                ; 89 f2
    73337367    mov ax, strict word 00040h                ; b8 40 00
    7334     call 0165eh                               ; e8 59 c5
     7368    call 0165eh                               ; e8 05 c5
    73357369    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    73367370    xor bh, bh                                ; 30 ff
    73377371    lea dx, [si+001h]                         ; 8d 54 01
    73387372    mov ax, strict word 00040h                ; b8 40 00
    7339     call 0165eh                               ; e8 4b c5
     7373    call 0165eh                               ; e8 f7 c4
    73407374    mov bx, cx                                ; 89 cb
    73417375    mov dx, strict word 0001ch                ; ba 1c 00
    73427376    mov ax, strict word 00040h                ; b8 40 00
    7343     call 0167ah                               ; e8 5c c5
     7377    call 0167ah                               ; e8 08 c5
    73447378    mov ax, strict word 00001h                ; b8 01 00
    73457379    lea sp, [bp-008h]                         ; 8d 66 f8
     
    73507384    pop bp                                    ; 5d
    73517385    retn                                      ; c3
    7352     aam 0c6h                                  ; d4 c6
    7353     lds di, [bp+si-04948h]                    ; c5 ba b8 b6
    7354     stosb                                     ; aa
    7355     popfw                                     ; 9d
    7356     push sp                                   ; 54
    7357     push bx                                   ; 53
    7358     inc si                                    ; 46
    7359     inc bp                                    ; 45
    7360     cmp bh, byte [bx+si]                      ; 3a 38
    7361     sub bl, byte [ss:di]                      ; 36 2a 1d
    7362     popfw                                     ; 9d
    7363     push sp                                   ; 54
    7364     push bp                                   ; 55
    7365     push dx                                   ; 52
    7366     not word [bx+di-009h]                     ; f7 51 f7
    7367     push cx                                   ; 51
    7368     in AL, strict byte 052h                   ; e4 52
    7369     into                                      ; ce
    7370     push cx                                   ; 51
    7371     push 0dc53h                               ; 68 53 dc
    7372     push bx                                   ; 53
    7373     adc word [si+061h], strict byte 00054h    ; 83 54 61 54
    7374     pushfw                                    ; 9c
    7375     push dx                                   ; 52
    7376     not word [bx+di-009h]                     ; f7 51 f7
    7377     push cx                                   ; 51
    7378     db  026h, 053h
    7379     ; es push bx                                ; 26 53
    7380     in AL, DX                                 ; ec
    7381     push cx                                   ; 51
    7382     mov sp, 04153h                            ; bc 53 41
    7383     push sp                                   ; 54
    7384     jl short 051b3h                           ; 7c 54
    7385 _int09_function:                             ; 0xf515f LB 0x494
     7386    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
     7387    db  01dh, 0f1h, 054h, 0a9h, 052h, 04bh, 052h, 04bh, 052h, 038h, 053h, 022h, 052h, 0bch, 053h, 030h
     7388    db  054h, 0d7h, 054h, 0b5h, 054h, 0f0h, 052h, 04bh, 052h, 04bh, 052h, 07ah, 053h, 040h, 052h, 010h
     7389    db  054h, 095h, 054h, 0d0h, 054h
     7390_int09_function:                             ; 0xf51b3 LB 0x494
    73867391    push bp                                   ; 55
    73877392    mov bp, sp                                ; 89 e5
     
    73917396    mov byte [bp-00ah], al                    ; 88 46 f6
    73927397    test al, al                               ; 84 c0
    7393     jne short 05189h                          ; 75 19
     7398    jne short 051ddh                          ; 75 19
    73947399    mov bx, 00da0h                            ; bb a0 0d
    73957400    mov cx, ds                                ; 8c d9
    73967401    mov ax, strict word 00004h                ; b8 04 00
    7397     call 01923h                               ; e8 a8 c7
     7402    call 01923h                               ; e8 54 c7
    73987403    push 00587h                               ; 68 87 05
    73997404    push strict byte 00004h                   ; 6a 04
    7400     call 01966h                               ; e8 e3 c7
     7405    call 01966h                               ; e8 8f c7
    74017406    add sp, strict byte 00004h                ; 83 c4 04
    7402     jmp near 0524fh                           ; e9 c6 00
     7407    jmp near 052a3h                           ; e9 c6 00
    74037408    mov dx, strict word 00018h                ; ba 18 00
    74047409    mov ax, strict word 00040h                ; b8 40 00
    7405     call 01650h                               ; e8 be c4
     7410    call 01650h                               ; e8 6a c4
    74067411    mov byte [bp-010h], al                    ; 88 46 f0
    74077412    mov byte [bp-008h], al                    ; 88 46 f8
    74087413    mov dx, 00096h                            ; ba 96 00
    74097414    mov ax, strict word 00040h                ; b8 40 00
    7410     call 01650h                               ; e8 af c4
     7415    call 01650h                               ; e8 5b c4
    74117416    mov byte [bp-004h], al                    ; 88 46 fc
    74127417    mov byte [bp-00ch], al                    ; 88 46 f4
    74137418    mov dx, strict word 00017h                ; ba 17 00
    74147419    mov ax, strict word 00040h                ; b8 40 00
    7415     call 01650h                               ; e8 a0 c4
     7420    call 01650h                               ; e8 4c c4
    74167421    mov byte [bp-006h], al                    ; 88 46 fa
    74177422    mov byte [bp-00eh], al                    ; 88 46 f2
     
    74207425    pop ES                                    ; 07
    74217426    mov cx, strict word 00012h                ; b9 12 00
    7422     mov di, 0512ah                            ; bf 2a 51
     7427    mov di, 0517eh                            ; bf 7e 51
    74237428    repne scasb                               ; f2 ae
    74247429    sal cx, 1                                 ; d1 e1
    74257430    mov di, cx                                ; 89 cf
    7426     mov ax, word [cs:di+0513bh]               ; 2e 8b 85 3b 51
     7431    mov ax, word [cs:di+0518fh]               ; 2e 8b 85 8f 51
    74277432    jmp ax                                    ; ff e0
    74287433    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    74327437    mov dx, strict word 00017h                ; ba 17 00
    74337438    mov ax, strict word 00040h                ; b8 40 00
    7434     call 0165eh                               ; e8 7c c4
     7439    call 0165eh                               ; e8 28 c4
    74357440    or byte [bp-008h], 040h                   ; 80 4e f8 40
    74367441    mov al, byte [bp-008h]                    ; 8a 46 f8
    7437     jmp near 0546dh                           ; e9 81 02
     7442    jmp near 054c1h                           ; e9 81 02
    74387443    mov al, byte [bp-010h]                    ; 8a 46 f0
    74397444    and AL, strict byte 0bfh                  ; 24 bf
    74407445    mov byte [bp-008h], al                    ; 88 46 f8
    7441     jmp near 0546dh                           ; e9 76 02
     7446    jmp near 054c1h                           ; e9 76 02
    74427447    test byte [bp-00ch], 002h                 ; f6 46 f4 02
    7443     jne short 05230h                          ; 75 33
     7448    jne short 05284h                          ; 75 33
    74447449    mov al, byte [bp-00ah]                    ; 8a 46 f6
    74457450    and AL, strict byte 07fh                  ; 24 7f
    74467451    cmp AL, strict byte 02ah                  ; 3c 2a
    7447     jne short 0520bh                          ; 75 05
     7452    jne short 0525fh                          ; 75 05
    74487453    mov dx, strict word 00002h                ; ba 02 00
    7449     jmp short 0520eh                          ; eb 03
     7454    jmp short 05262h                          ; eb 03
    74507455    mov dx, strict word 00001h                ; ba 01 00
    74517456    test byte [bp-00ah], 080h                 ; f6 46 f6 80
    7452     je short 0521dh                           ; 74 09
     7457    je short 05271h                           ; 74 09
    74537458    mov al, dl                                ; 88 d0
    74547459    not al                                    ; f6 d0
    74557460    and byte [bp-00eh], al                    ; 20 46 f2
    7456     jmp short 05220h                          ; eb 03
     7461    jmp short 05274h                          ; eb 03
    74577462    or byte [bp-00eh], dl                     ; 08 56 f2
    74587463    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    74617466    mov dx, strict word 00017h                ; ba 17 00
    74627467    mov ax, strict word 00040h                ; b8 40 00
    7463     call 0165eh                               ; e8 2e c4
     7468    call 0165eh                               ; e8 da c3
    74647469    mov al, byte [bp-00ah]                    ; 8a 46 f6
    74657470    and AL, strict byte 07fh                  ; 24 7f
    74667471    cmp AL, strict byte 01dh                  ; 3c 1d
    7467     je short 0523dh                           ; 74 04
     7472    je short 05291h                           ; 74 04
    74687473    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
    74697474    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
     
    74727477    mov dx, 00096h                            ; ba 96 00
    74737478    mov ax, strict word 00040h                ; b8 40 00
    7474     call 0165eh                               ; e8 0f c4
     7479    call 0165eh                               ; e8 bb c3
    74757480    lea sp, [bp-002h]                         ; 8d 66 fe
    74767481    pop di                                    ; 5f
     
    74787483    retn                                      ; c3
    74797484    test byte [bp-004h], 001h                 ; f6 46 fc 01
    7480     jne short 05230h                          ; 75 d5
     7485    jne short 05284h                          ; 75 d5
    74817486    mov al, byte [bp-006h]                    ; 8a 46 fa
    74827487    or AL, strict byte 004h                   ; 0c 04
     
    74867491    mov dx, strict word 00017h                ; ba 17 00
    74877492    mov ax, strict word 00040h                ; b8 40 00
    7488     call 0165eh                               ; e8 ee c3
     7493    call 0165eh                               ; e8 9a c3
    74897494    mov al, byte [bp-004h]                    ; 8a 46 fc
    74907495    test AL, strict byte 002h                 ; a8 02
    7491     je short 05285h                           ; 74 0e
     7496    je short 052d9h                           ; 74 0e
    74927497    or AL, strict byte 004h                   ; 0c 04
    74937498    mov byte [bp-00ch], al                    ; 88 46 f4
     
    74957500    mov bx, ax                                ; 89 c3
    74967501    mov dx, 00096h                            ; ba 96 00
    7497     jmp short 05294h                          ; eb 0f
     7502    jmp short 052e8h                          ; eb 0f
    74987503    mov al, byte [bp-010h]                    ; 8a 46 f0
    74997504    or AL, strict byte 001h                   ; 0c 01
     
    75037508    mov dx, strict word 00018h                ; ba 18 00
    75047509    mov ax, strict word 00040h                ; b8 40 00
    7505     call 0165eh                               ; e8 c4 c3
    7506     jmp short 05230h                          ; eb 94
     7510    call 0165eh                               ; e8 70 c3
     7511    jmp short 05284h                          ; eb 94
    75077512    test byte [bp-004h], 001h                 ; f6 46 fc 01
    7508     jne short 05230h                          ; 75 8e
     7513    jne short 05284h                          ; 75 8e
    75097514    mov al, byte [bp-006h]                    ; 8a 46 fa
    75107515    and AL, strict byte 0fbh                  ; 24 fb
     
    75147519    mov dx, strict word 00017h                ; ba 17 00
    75157520    mov ax, strict word 00040h                ; b8 40 00
    7516     call 0165eh                               ; e8 a7 c3
     7521    call 0165eh                               ; e8 53 c3
    75177522    mov al, byte [bp-004h]                    ; 8a 46 fc
    75187523    test AL, strict byte 002h                 ; a8 02
    7519     je short 052cch                           ; 74 0e
     7524    je short 05320h                           ; 74 0e
    75207525    and AL, strict byte 0fbh                  ; 24 fb
    75217526    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75237528    mov bx, ax                                ; 89 c3
    75247529    mov dx, 00096h                            ; ba 96 00
    7525     jmp short 052dbh                          ; eb 0f
     7530    jmp short 0532fh                          ; eb 0f
    75267531    mov al, byte [bp-010h]                    ; 8a 46 f0
    75277532    and AL, strict byte 0feh                  ; 24 fe
     
    75317536    mov dx, strict word 00018h                ; ba 18 00
    75327537    mov ax, strict word 00040h                ; b8 40 00
    7533     call 0165eh                               ; e8 7d c3
    7534     jmp near 05230h                           ; e9 4c ff
     7538    call 0165eh                               ; e8 29 c3
     7539    jmp near 05284h                           ; e9 4c ff
    75357540    mov al, byte [bp-006h]                    ; 8a 46 fa
    75367541    or AL, strict byte 008h                   ; 0c 08
     
    75407545    mov dx, strict word 00017h                ; ba 17 00
    75417546    mov ax, strict word 00040h                ; b8 40 00
    7542     call 0165eh                               ; e8 65 c3
     7547    call 0165eh                               ; e8 11 c3
    75437548    mov al, byte [bp-004h]                    ; 8a 46 fc
    75447549    test AL, strict byte 002h                 ; a8 02
    7545     je short 0530eh                           ; 74 0e
     7550    je short 05362h                           ; 74 0e
    75467551    or AL, strict byte 008h                   ; 0c 08
    75477552    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75497554    mov bx, ax                                ; 89 c3
    75507555    mov dx, 00096h                            ; ba 96 00
    7551     jmp short 0531dh                          ; eb 0f
     7556    jmp short 05371h                          ; eb 0f
    75527557    mov al, byte [bp-010h]                    ; 8a 46 f0
    75537558    or AL, strict byte 002h                   ; 0c 02
     
    75577562    mov dx, strict word 00018h                ; ba 18 00
    75587563    mov ax, strict word 00040h                ; b8 40 00
    7559     call 0165eh                               ; e8 3b c3
    7560     jmp near 05230h                           ; e9 0a ff
     7564    call 0165eh                               ; e8 e7 c2
     7565    jmp near 05284h                           ; e9 0a ff
    75617566    mov al, byte [bp-006h]                    ; 8a 46 fa
    75627567    and AL, strict byte 0f7h                  ; 24 f7
     
    75667571    mov dx, strict word 00017h                ; ba 17 00
    75677572    mov ax, strict word 00040h                ; b8 40 00
    7568     call 0165eh                               ; e8 23 c3
     7573    call 0165eh                               ; e8 cf c2
    75697574    mov al, byte [bp-004h]                    ; 8a 46 fc
    75707575    test AL, strict byte 002h                 ; a8 02
    7571     je short 05350h                           ; 74 0e
     7576    je short 053a4h                           ; 74 0e
    75727577    and AL, strict byte 0f7h                  ; 24 f7
    75737578    mov byte [bp-00ch], al                    ; 88 46 f4
     
    75757580    mov bx, ax                                ; 89 c3
    75767581    mov dx, 00096h                            ; ba 96 00
    7577     jmp short 0535fh                          ; eb 0f
     7582    jmp short 053b3h                          ; eb 0f
    75787583    mov al, byte [bp-010h]                    ; 8a 46 f0
    75797584    and AL, strict byte 0fdh                  ; 24 fd
     
    75837588    mov dx, strict word 00018h                ; ba 18 00
    75847589    mov ax, strict word 00040h                ; b8 40 00
    7585     call 0165eh                               ; e8 f9 c2
    7586     jmp near 05230h                           ; e9 c8 fe
     7590    call 0165eh                               ; e8 a5 c2
     7591    jmp near 05284h                           ; e9 c8 fe
    75877592    test byte [bp-004h], 003h                 ; f6 46 fc 03
    7588     jne short 0538eh                          ; 75 20
     7593    jne short 053e2h                          ; 75 20
    75897594    mov al, byte [bp-010h]                    ; 8a 46 f0
    75907595    or AL, strict byte 020h                   ; 0c 20
     
    75947599    mov dx, strict word 00018h                ; ba 18 00
    75957600    mov ax, strict word 00040h                ; b8 40 00
    7596     call 0165eh                               ; e8 db c2
     7601    call 0165eh                               ; e8 87 c2
    75977602    mov al, byte [bp-006h]                    ; 8a 46 fa
    75987603    xor AL, strict byte 020h                  ; 34 20
    75997604    mov byte [bp-00eh], al                    ; 88 46 f2
    7600     jmp near 05223h                           ; e9 95 fe
     7605    jmp near 05277h                           ; e9 95 fe
    76017606    mov al, byte [bp-010h]                    ; 8a 46 f0
    76027607    or AL, strict byte 008h                   ; 0c 08
     
    76067611    mov dx, strict word 00018h                ; ba 18 00
    76077612    mov ax, strict word 00040h                ; b8 40 00
    7608     call 0165eh                               ; e8 bb c2
     7613    call 0165eh                               ; e8 67 c2
    76097614    mov AL, strict byte 0aeh                  ; b0 ae
    76107615    mov dx, strict word 00064h                ; ba 64 00
    76117616    out DX, AL                                ; ee
    7612     call 0e034h                               ; e8 88 8c
     7617    call 0e034h                               ; e8 34 8c
    76137618    mov dx, strict word 00018h                ; ba 18 00
    76147619    mov ax, strict word 00040h                ; b8 40 00
    7615     call 01650h                               ; e8 9b c2
     7620    call 01650h                               ; e8 47 c2
    76167621    test AL, strict byte 008h                 ; a8 08
    7617     jne short 053ach                          ; 75 f3
    7618     jmp near 05230h                           ; e9 74 fe
     7622    jne short 05400h                          ; 75 f3
     7623    jmp near 05284h                           ; e9 74 fe
    76197624    test byte [bp-004h], 003h                 ; f6 46 fc 03
    7620     je short 053c5h                           ; 74 03
    7621     jmp near 05230h                           ; e9 6b fe
     7625    je short 05419h                           ; 74 03
     7626    jmp near 05284h                           ; e9 6b fe
    76227627    mov al, byte [bp-010h]                    ; 8a 46 f0
    76237628    and AL, strict byte 0dfh                  ; 24 df
     
    76277632    mov dx, strict word 00018h                ; ba 18 00
    76287633    mov ax, strict word 00040h                ; b8 40 00
    7629     call 0165eh                               ; e8 84 c2
    7630     jmp short 053c2h                          ; eb e6
     7634    call 0165eh                               ; e8 30 c2
     7635    jmp short 05416h                          ; eb e6
    76317636    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7632     je short 05415h                           ; 74 33
     7637    je short 05469h                           ; 74 33
    76337638    mov dx, strict word 0001ah                ; ba 1a 00
    76347639    mov ax, strict word 00040h                ; b8 40 00
    7635     call 0166ch                               ; e8 81 c2
     7640    call 0166ch                               ; e8 2d c2
    76367641    mov bx, ax                                ; 89 c3
    76377642    mov dx, strict word 0001ch                ; ba 1c 00
    76387643    mov ax, strict word 00040h                ; b8 40 00
    7639     call 0167ah                               ; e8 84 c2
     7644    call 0167ah                               ; e8 30 c2
    76407645    mov bx, 00080h                            ; bb 80 00
    76417646    mov dx, strict word 00071h                ; ba 71 00
    76427647    mov ax, strict word 00040h                ; b8 40 00
    7643     call 0165eh                               ; e8 5c c2
     7648    call 0165eh                               ; e8 08 c2
    76447649    mov AL, strict byte 0aeh                  ; b0 ae
    76457650    mov dx, strict word 00064h                ; ba 64 00
     
    76507655    xor dx, dx                                ; 31 d2
    76517656    xor ax, ax                                ; 31 c0
    7652     call 050c1h                               ; e8 ae fc
    7653     jmp short 053c2h                          ; eb ad
     7657    call 05115h                               ; e8 ae fc
     7658    jmp short 05416h                          ; eb ad
    76547659    mov al, byte [bp-010h]                    ; 8a 46 f0
    76557660    or AL, strict byte 010h                   ; 0c 10
     
    76597664    mov dx, strict word 00018h                ; ba 18 00
    76607665    mov ax, strict word 00040h                ; b8 40 00
    7661     call 0165eh                               ; e8 34 c2
     7666    call 0165eh                               ; e8 e0 c1
    76627667    mov al, byte [bp-006h]                    ; 8a 46 fa
    76637668    xor AL, strict byte 010h                  ; 34 10
     
    76677672    mov dx, strict word 00017h                ; ba 17 00
    76687673    mov ax, strict word 00040h                ; b8 40 00
    7669     call 0165eh                               ; e8 1f c2
    7670     jmp short 053c2h                          ; eb 81
     7674    call 0165eh                               ; e8 cb c1
     7675    jmp short 05416h                          ; eb 81
    76717676    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7672     je short 0544ah                           ; 74 03
    7673     jmp near 05230h                           ; e9 e6 fd
     7677    je short 0549eh                           ; 74 03
     7678    jmp near 05284h                           ; e9 e6 fd
    76747679    mov al, byte [bp-010h]                    ; 8a 46 f0
    76757680    and AL, strict byte 0efh                  ; 24 ef
     
    76797684    mov dx, strict word 00018h                ; ba 18 00
    76807685    mov ax, strict word 00040h                ; b8 40 00
    7681     call 0165eh                               ; e8 ff c1
    7682     jmp short 05447h                          ; eb e6
     7686    call 0165eh                               ; e8 ab c1
     7687    jmp short 0549bh                          ; eb e6
    76837688    mov al, byte [bp-010h]                    ; 8a 46 f0
    76847689    test AL, strict byte 004h                 ; a8 04
    7685     jne short 05447h                          ; 75 df
     7690    jne short 0549bh                          ; 75 df
    76867691    or AL, strict byte 004h                   ; 0c 04
    76877692    mov byte [bp-008h], al                    ; 88 46 f8
     
    76907695    mov dx, strict word 00018h                ; ba 18 00
    76917696    mov ax, strict word 00040h                ; b8 40 00
    7692     call 0165eh                               ; e8 e4 c1
    7693     jmp short 05447h                          ; eb cb
     7697    call 0165eh                               ; e8 90 c1
     7698    jmp short 0549bh                          ; eb cb
    76947699    mov al, byte [bp-010h]                    ; 8a 46 f0
    76957700    and AL, strict byte 0fbh                  ; 24 fb
    7696     jmp short 0544fh                          ; eb cc
     7701    jmp short 054a3h                          ; eb cc
    76977702    mov al, byte [bp-006h]                    ; 8a 46 fa
    76987703    and AL, strict byte 00ch                  ; 24 0c
    76997704    cmp AL, strict byte 00ch                  ; 3c 0c
    7700     jne short 0549dh                          ; 75 11
     7705    jne short 054f1h                          ; 75 11
    77017706    mov bx, 01234h                            ; bb 34 12
    77027707    mov dx, strict word 00072h                ; ba 72 00
    77037708    mov ax, strict word 00040h                ; b8 40 00
    7704     call 0167ah                               ; e8 e2 c1
     7709    call 0167ah                               ; e8 8e c1
    77057710    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    77067711    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7707     je short 054b2h                           ; 74 0f
     7712    je short 05506h                           ; 74 0f
    77087713    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    77097714    mov bl, byte [bp-008h]                    ; 8a 5e f8
    77107715    xor bh, bh                                ; 30 ff
    77117716    mov dx, strict word 00018h                ; ba 18 00
    7712     jmp near 05249h                           ; e9 97 fd
     7717    jmp near 0529dh                           ; e9 97 fd
    77137718    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77147719    test AL, strict byte 080h                 ; a8 80
    7715     je short 054f0h                           ; 74 37
     7720    je short 05544h                           ; 74 37
    77167721    cmp AL, strict byte 0fah                  ; 3c fa
    7717     jne short 054cfh                          ; 75 12
     7722    jne short 05523h                          ; 75 12
    77187723    mov dx, 00097h                            ; ba 97 00
    77197724    mov ax, strict word 00040h                ; b8 40 00
    7720     call 01650h                               ; e8 8a c1
     7725    call 01650h                               ; e8 36 c1
    77217726    mov bl, al                                ; 88 c3
    77227727    or bl, 010h                               ; 80 cb 10
    77237728    xor bh, bh                                ; 30 ff
    7724     jmp short 054e5h                          ; eb 16
     7729    jmp short 05539h                          ; eb 16
    77257730    cmp AL, strict byte 0feh                  ; 3c fe
    7726     je short 054d6h                           ; 74 03
    7727     jmp near 05230h                           ; e9 5a fd
     7731    je short 0552ah                           ; 74 03
     7732    jmp near 05284h                           ; e9 5a fd
    77287733    mov dx, 00097h                            ; ba 97 00
    77297734    mov ax, strict word 00040h                ; b8 40 00
    7730     call 01650h                               ; e8 71 c1
     7735    call 01650h                               ; e8 1d c1
    77317736    or AL, strict byte 020h                   ; 0c 20
    77327737    xor ah, ah                                ; 30 e4
     
    77347739    mov dx, 00097h                            ; ba 97 00
    77357740    mov ax, strict word 00040h                ; b8 40 00
    7736     call 0165eh                               ; e8 70 c1
    7737     jmp short 054d3h                          ; eb e3
     7741    call 0165eh                               ; e8 1c c1
     7742    jmp short 05527h                          ; eb e3
    77387743    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
    7739     jbe short 05515h                          ; 76 1f
     7744    jbe short 05569h                          ; 76 1f
    77407745    mov bx, 00da0h                            ; bb a0 0d
    77417746    mov cx, ds                                ; 8c d9
    77427747    mov ax, strict word 00004h                ; b8 04 00
    7743     call 01923h                               ; e8 22 c4
     7748    call 01923h                               ; e8 ce c3
    77447749    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77457750    xor ah, ah                                ; 30 e4
     
    77477752    push 005a1h                               ; 68 a1 05
    77487753    push strict byte 00004h                   ; 6a 04
    7749     call 01966h                               ; e8 57 c4
     7754    call 01966h                               ; e8 03 c4
    77507755    add sp, strict byte 00006h                ; 83 c4 06
    7751     jmp near 0524fh                           ; e9 3a fd
     7756    jmp near 052a3h                           ; e9 3a fd
    77527757    mov al, byte [bp-00eh]                    ; 8a 46 f2
    77537758    test AL, strict byte 008h                 ; a8 08
    7754     je short 0552fh                           ; 74 13
     7759    je short 05583h                           ; 74 13
    77557760    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77567761    xor ah, ah                                ; 30 e4
     
    77587763    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    77597764    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7760     jmp near 055bfh                           ; e9 90 00
     7765    jmp near 05613h                           ; e9 90 00
    77617766    test AL, strict byte 004h                 ; a8 04
    7762     je short 05546h                           ; 74 13
     7767    je short 0559ah                           ; 74 13
    77637768    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77647769    xor ah, ah                                ; 30 e4
     
    77667771    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    77677772    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7768     jmp near 055bfh                           ; e9 79 00
     7773    jmp near 05613h                           ; e9 79 00
    77697774    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77707775    and AL, strict byte 002h                  ; 24 02
    77717776    test al, al                               ; 84 c0
    7772     jbe short 05563h                          ; 76 14
     7777    jbe short 055b7h                          ; 76 14
    77737778    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77747779    cmp AL, strict byte 047h                  ; 3c 47
    7775     jc short 05563h                           ; 72 0d
     7780    jc short 055b7h                           ; 72 0d
    77767781    cmp AL, strict byte 053h                  ; 3c 53
    7777     jnbe short 05563h                         ; 77 09
     7782    jnbe short 055b7h                         ; 77 09
    77787783    mov DL, strict byte 0e0h                  ; b2 e0
    77797784    xor ah, ah                                ; 30 e4
    77807785    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
    7781     jmp short 055bbh                          ; eb 58
     7786    jmp short 0560fh                          ; eb 58
    77827787    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7783     je short 05598h                           ; 74 2f
     7788    je short 055ech                           ; 74 2f
    77847789    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77857790    xor ah, ah                                ; 30 e4
     
    77897794    mov al, byte [bp-00eh]                    ; 8a 46 f2
    77907795    test ax, dx                               ; 85 d0
    7791     je short 05588h                           ; 74 0a
     7796    je short 055dch                           ; 74 0a
    77927797    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    77937798    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
    7794     jmp short 05590h                          ; eb 08
     7799    jmp short 055e4h                          ; eb 08
    77957800    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    77967801    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    77977802    shr ax, 008h                              ; c1 e8 08
    77987803    mov byte [bp-00ah], al                    ; 88 46 f6
    7799     jmp short 055c5h                          ; eb 2d
     7804    jmp short 05619h                          ; eb 2d
    78007805    mov al, byte [bp-00ah]                    ; 8a 46 f6
    78017806    xor ah, ah                                ; 30 e4
     
    78057810    mov al, byte [bp-00eh]                    ; 8a 46 f2
    78067811    test ax, dx                               ; 85 d0
    7807     je short 055b7h                           ; 74 0a
     7812    je short 0560bh                           ; 74 0a
    78087813    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    78097814    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    7810     jmp short 055bfh                          ; eb 08
     7815    jmp short 05613h                          ; eb 08
    78117816    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    78127817    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     
    78147819    mov byte [bp-00ah], al                    ; 88 46 f6
    78157820    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7816     jne short 055e5h                          ; 75 1a
     7821    jne short 05639h                          ; 75 1a
    78177822    test dl, dl                               ; 84 d2
    7818     jne short 055e5h                          ; 75 16
     7823    jne short 05639h                          ; 75 16
    78197824    mov bx, 00da0h                            ; bb a0 0d
    78207825    mov cx, ds                                ; 8c d9
    78217826    mov ax, strict word 00004h                ; b8 04 00
    7822     call 01923h                               ; e8 49 c3
     7827    call 01923h                               ; e8 f5 c2
    78237828    push 005d8h                               ; 68 d8 05
    78247829    push strict byte 00004h                   ; 6a 04
    7825     call 01966h                               ; e8 84 c3
     7830    call 01966h                               ; e8 30 c3
    78267831    add sp, strict byte 00004h                ; 83 c4 04
    78277832    mov bl, dl                                ; 88 d3
     
    78307835    xor ah, ah                                ; 30 e4
    78317836    mov dx, bx                                ; 89 da
    7832     jmp near 05410h                           ; e9 1d fe
    7833 dequeue_key_:                                ; 0xf55f3 LB 0x94
     7837    jmp near 05464h                           ; e9 1d fe
     7838dequeue_key_:                                ; 0xf5647 LB 0x94
    78347839    push bp                                   ; 55
    78357840    mov bp, sp                                ; 89 e5
     
    78447849    mov dx, strict word 0001ah                ; ba 1a 00
    78457850    mov ax, strict word 00040h                ; b8 40 00
    7846     call 0166ch                               ; e8 5f c0
     7851    call 0166ch                               ; e8 0b c0
    78477852    mov bx, ax                                ; 89 c3
    78487853    mov dx, strict word 0001ch                ; ba 1c 00
    78497854    mov ax, strict word 00040h                ; b8 40 00
    7850     call 0166ch                               ; e8 54 c0
     7855    call 0166ch                               ; e8 00 c0
    78517856    cmp bx, ax                                ; 39 c3
    7852     je short 05659h                           ; 74 3d
     7857    je short 056adh                           ; 74 3d
    78537858    mov dx, bx                                ; 89 da
    78547859    mov ax, strict word 00040h                ; b8 40 00
    7855     call 01650h                               ; e8 2c c0
     7860    call 01650h                               ; e8 d8 bf
    78567861    mov cl, al                                ; 88 c1
    78577862    lea dx, [bx+001h]                         ; 8d 57 01
    78587863    mov ax, strict word 00040h                ; b8 40 00
    7859     call 01650h                               ; e8 21 c0
     7864    call 01650h                               ; e8 cd bf
    78607865    mov es, [bp-008h]                         ; 8e 46 f8
    78617866    mov byte [es:si], cl                      ; 26 88 0c
     
    78637868    mov byte [es:di], al                      ; 26 88 05
    78647869    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7865     je short 05654h                           ; 74 13
     7870    je short 056a8h                           ; 74 13
    78667871    inc bx                                    ; 43
    78677872    inc bx                                    ; 43
    78687873    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7869     jc short 0564bh                           ; 72 03
     7874    jc short 0569fh                           ; 72 03
    78707875    mov bx, strict word 0001eh                ; bb 1e 00
    78717876    mov dx, strict word 0001ah                ; ba 1a 00
    78727877    mov ax, strict word 00040h                ; b8 40 00
    7873     call 0167ah                               ; e8 26 c0
     7878    call 0167ah                               ; e8 d2 bf
    78747879    mov ax, strict word 00001h                ; b8 01 00
    7875     jmp short 0565bh                          ; eb 02
     7880    jmp short 056afh                          ; eb 02
    78767881    xor ax, ax                                ; 31 c0
    78777882    lea sp, [bp-004h]                         ; 8d 66 fc
     
    78847889    or cl, byte [bx+di]                       ; 0a 09
    78857890    add ax, 00102h                            ; 05 02 01
    7886     add byte [bx+di+04057h], cl               ; 00 89 57 40
     7891    add ch, bl                                ; 00 dd
    78877892    push di                                   ; 57
    7888     rcl byte [bx+01eh], CL                    ; d2 57 1e
     7893    xchg sp, ax                               ; 94
     7894    push di                                   ; 57
     7895    db  026h, 058h
     7896    ; es pop ax                                 ; 26 58
     7897    jc short 05723h                           ; 72 58
     7898    sbb word [bx+si-054h], strict byte 00058h ; 83 58 ac 58
     7899    mov CH, strict byte 058h                  ; b5 58
     7900    db  026h, 059h
     7901    ; es pop cx                                 ; 26 59
    78897902    pop ax                                    ; 58
    7890     das                                       ; 2f
     7903    pop cx                                    ; 59
     7904    xchg word [bx+di-040h], bx                ; 87 59 c0
     7905    pop cx                                    ; 59
     7906    db  020h
    78917907    pop ax                                    ; 58
    7892     pop ax                                    ; 58
    7893     pop ax                                    ; 58
    7894     popaw                                     ; 61
    7895     pop ax                                    ; 58
    7896     rcr byte [bx+si+004h], CL                 ; d2 58 04
    7897     pop cx                                    ; 59
    7898     xor bx, word [bx+di+06ch]                 ; 33 59 6c
    7899     pop cx                                    ; 59
    7900     int3                                      ; cc
    7901     push di                                   ; 57
    7902 _int16_function:                             ; 0xf5687 LB 0x2f0
     7908_int16_function:                             ; 0xf56db LB 0x2f0
    79037909    push bp                                   ; 55
    79047910    mov bp, sp                                ; 89 e5
     
    79077913    mov dx, strict word 00017h                ; ba 17 00
    79087914    mov ax, strict word 00040h                ; b8 40 00
    7909     call 01650h                               ; e8 b9 bf
     7915    call 01650h                               ; e8 65 bf
    79107916    mov cl, al                                ; 88 c1
    79117917    mov bh, al                                ; 88 c7
    79127918    mov dx, 00097h                            ; ba 97 00
    79137919    mov ax, strict word 00040h                ; b8 40 00
    7914     call 01650h                               ; e8 ac bf
     7920    call 01650h                               ; e8 58 bf
    79157921    mov bl, al                                ; 88 c3
    79167922    mov dl, cl                                ; 88 ca
     
    79227928    xor al, dl                                ; 30 d0
    79237929    test ax, ax                               ; 85 c0
    7924     je short 05720h                           ; 74 66
     7930    je short 05774h                           ; 74 66
    79257931    cli                                       ; fa
    79267932    mov AL, strict byte 0edh                  ; b0 ed
     
    79327938    ; sub ah, ah                                ; 2a e4
    79337939    test AL, strict byte 001h                 ; a8 01
    7934     jne short 056d3h                          ; 75 08
     7940    jne short 05727h                          ; 75 08
    79357941    mov AL, strict byte 021h                  ; b0 21
    79367942    mov dx, 00080h                            ; ba 80 00
    79377943    out DX, AL                                ; ee
    7938     jmp short 056c1h                          ; eb ee
     7944    jmp short 05715h                          ; eb ee
    79397945    mov dx, strict word 00060h                ; ba 60 00
    79407946    in AL, DX                                 ; ec
     
    79427948    ; sub ah, ah                                ; 2a e4
    79437949    cmp ax, 000fah                            ; 3d fa 00
    7944     jne short 0571fh                          ; 75 41
     7950    jne short 05773h                          ; 75 41
    79457951    mov dl, bl                                ; 88 da
    79467952    and dl, 0c8h                              ; 80 e2 c8
     
    79627968    ; sub ah, ah                                ; 2a e4
    79637969    test AL, strict byte 001h                 ; a8 01
    7964     jne short 0570eh                          ; 75 08
     7970    jne short 05762h                          ; 75 08
    79657971    mov AL, strict byte 021h                  ; b0 21
    79667972    mov dx, 00080h                            ; ba 80 00
    79677973    out DX, AL                                ; ee
    7968     jmp short 056fch                          ; eb ee
     7974    jmp short 05750h                          ; eb ee
    79697975    mov dx, strict word 00060h                ; ba 60 00
    79707976    in AL, DX                                 ; ec
     
    79747980    mov dx, 00097h                            ; ba 97 00
    79757981    mov ax, strict word 00040h                ; b8 40 00
    7976     call 0165eh                               ; e8 3f bf
     7982    call 0165eh                               ; e8 eb be
    79777983    sti                                       ; fb
    79787984    mov ax, word [bp+012h]                    ; 8b 46 12
    79797985    shr ax, 008h                              ; c1 e8 08
    79807986    cmp ax, 000a2h                            ; 3d a2 00
    7981     jnbe short 05789h                         ; 77 5e
     7987    jnbe short 057ddh                         ; 77 5e
    79827988    push CS                                   ; 0e
    79837989    pop ES                                    ; 07
    79847990    mov cx, strict word 0000ch                ; b9 0c 00
    7985     mov di, 05664h                            ; bf 64 56
     7991    mov di, 056b8h                            ; bf b8 56
    79867992    repne scasb                               ; f2 ae
    79877993    sal cx, 1                                 ; d1 e1
    79887994    mov di, cx                                ; 89 cf
    7989     mov ax, word [cs:di+0566fh]               ; 2e 8b 85 6f 56
     7995    mov ax, word [cs:di+056c3h]               ; 2e 8b 85 c3 56
    79907996    jmp ax                                    ; ff e0
    79917997    push strict byte 00001h                   ; 6a 01
     
    79948000    mov dx, ss                                ; 8c d2
    79958001    lea ax, [bp-006h]                         ; 8d 46 fa
    7996     call 055f3h                               ; e8 a4 fe
     8002    call 05647h                               ; e8 a4 fe
    79978003    test ax, ax                               ; 85 c0
    7998     jne short 0575eh                          ; 75 0b
     8004    jne short 057b2h                          ; 75 0b
    79998005    push 0060fh                               ; 68 0f 06
    80008006    push strict byte 00007h                   ; 6a 07
    8001     call 01966h                               ; e8 0b c2
     8007    call 01966h                               ; e8 b7 c1
    80028008    add sp, strict byte 00004h                ; 83 c4 04
    80038009    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8004     je short 0576ah                           ; 74 06
     8010    je short 057beh                           ; 74 06
    80058011    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8006     je short 05770h                           ; 74 06
     8012    je short 057c4h                           ; 74 06
    80078013    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    8008     jne short 05774h                          ; 75 04
     8014    jne short 057c8h                          ; 75 04
    80098015    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    80108016    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    80158021    or dx, ax                                 ; 09 c2
    80168022    mov word [bp+012h], dx                    ; 89 56 12
    8017     jmp near 057cch                           ; e9 43 00
     8023    jmp near 05820h                           ; e9 43 00
    80188024    mov bx, 00da0h                            ; bb a0 0d
    80198025    mov cx, ds                                ; 8c d9
    80208026    mov ax, strict word 00004h                ; b8 04 00
    8021     call 01923h                               ; e8 8f c1
     8027    call 01923h                               ; e8 3b c1
    80228028    mov ax, word [bp+012h]                    ; 8b 46 12
    80238029    shr ax, 008h                              ; c1 e8 08
     
    80258031    push 00633h                               ; 68 33 06
    80268032    push strict byte 00004h                   ; 6a 04
    8027     call 01966h                               ; e8 c3 c1
     8033    call 01966h                               ; e8 6f c1
    80288034    add sp, strict byte 00006h                ; 83 c4 06
    80298035    mov bx, 00da0h                            ; bb a0 0d
    80308036    mov cx, ds                                ; 8c d9
    80318037    mov ax, strict word 00004h                ; b8 04 00
    8032     call 01923h                               ; e8 72 c1
     8038    call 01923h                               ; e8 1e c1
    80338039    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80348040    push ax                                   ; 50
     
    80418047    push 0065bh                               ; 68 5b 06
    80428048    push strict byte 00004h                   ; 6a 04
    8043     call 01966h                               ; e8 9d c1
     8049    call 01966h                               ; e8 49 c1
    80448050    add sp, strict byte 0000ch                ; 83 c4 0c
    80458051    lea sp, [bp-002h]                         ; 8d 66 fe
     
    80538059    mov dx, ss                                ; 8c d2
    80548060    lea ax, [bp-006h]                         ; 8d 46 fa
    8055     call 055f3h                               ; e8 0d fe
     8061    call 05647h                               ; e8 0d fe
    80568062    test ax, ax                               ; 85 c0
    8057     jne short 057f0h                          ; 75 06
     8063    jne short 05844h                          ; 75 06
    80588064    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    8059     jmp short 057cch                          ; eb dc
     8065    jmp short 05820h                          ; eb dc
    80608066    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8061     je short 057fch                           ; 74 06
     8067    je short 05850h                           ; 74 06
    80628068    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8063     je short 05802h                           ; 74 06
     8069    je short 05856h                           ; 74 06
    80648070    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    8065     jne short 05806h                          ; 75 04
     8071    jne short 0585ah                          ; 75 04
    80668072    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    80678073    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    80738079    mov word [bp+012h], dx                    ; 89 56 12
    80748080    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    8075     jmp short 057cch                          ; eb ae
     8081    jmp short 05820h                          ; eb ae
    80768082    mov dx, strict word 00017h                ; ba 17 00
    80778083    mov ax, strict word 00040h                ; b8 40 00
    8078     call 01650h                               ; e8 29 be
     8084    call 01650h                               ; e8 d5 bd
    80798085    mov dx, word [bp+012h]                    ; 8b 56 12
    80808086    mov dl, al                                ; 88 c2
    8081     jmp near 05783h                           ; e9 54 ff
     8087    jmp near 057d7h                           ; e9 54 ff
    80828088    mov dl, byte [bp+010h]                    ; 8a 56 10
    80838089    xor dh, dh                                ; 30 f6
     
    80858091    shr ax, 008h                              ; c1 e8 08
    80868092    xor ah, ah                                ; 30 e4
    8087     call 050c1h                               ; e8 82 f8
     8093    call 05115h                               ; e8 82 f8
    80888094    test ax, ax                               ; 85 c0
    8089     jne short 05850h                          ; 75 0d
     8095    jne short 058a4h                          ; 75 0d
    80908096    mov ax, word [bp+012h]                    ; 8b 46 12
    80918097    xor al, al                                ; 30 c0
    80928098    or AL, strict byte 001h                   ; 0c 01
    80938099    mov word [bp+012h], ax                    ; 89 46 12
    8094     jmp near 057cch                           ; e9 7c ff
     8100    jmp near 05820h                           ; e9 7c ff
    80958101    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8096     jmp near 057cch                           ; e9 74 ff
     8102    jmp near 05820h                           ; e9 74 ff
    80978103    mov ax, word [bp+012h]                    ; 8b 46 12
    80988104    xor al, al                                ; 30 c0
    80998105    or AL, strict byte 030h                   ; 0c 30
    8100     jmp short 0584ah                          ; eb e9
     8106    jmp short 0589eh                          ; eb e9
    81018107    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    81028108    xor cx, cx                                ; 31 c9
     
    81118117    ; sub ah, ah                                ; 2a e4
    81128118    test AL, strict byte 001h                 ; a8 01
    8113     jne short 05888h                          ; 75 0d
     8119    jne short 058dch                          ; 75 0d
    81148120    dec bx                                    ; 4b
    81158121    test bx, bx                               ; 85 db
    8116     jbe short 05888h                          ; 76 08
     8122    jbe short 058dch                          ; 76 08
    81178123    mov dx, 00080h                            ; ba 80 00
    81188124    in AL, DX                                 ; ec
    81198125    db  02ah, 0e4h
    81208126    ; sub ah, ah                                ; 2a e4
    8121     jmp short 05871h                          ; eb e9
     8127    jmp short 058c5h                          ; eb e9
    81228128    test bx, bx                               ; 85 db
    8123     jbe short 058cch                          ; 76 40
     8129    jbe short 05920h                          ; 76 40
    81248130    mov dx, strict word 00060h                ; ba 60 00
    81258131    in AL, DX                                 ; ec
     
    81278133    ; sub ah, ah                                ; 2a e4
    81288134    cmp ax, 000fah                            ; 3d fa 00
    8129     jne short 058cch                          ; 75 35
     8135    jne short 05920h                          ; 75 35
    81308136    mov bx, strict word 0ffffh                ; bb ff ff
    81318137    mov dx, strict word 00064h                ; ba 64 00
     
    81348140    ; sub ah, ah                                ; 2a e4
    81358141    test AL, strict byte 001h                 ; a8 01
    8136     jne short 058b1h                          ; 75 0d
     8142    jne short 05905h                          ; 75 0d
    81378143    dec bx                                    ; 4b
    81388144    test bx, bx                               ; 85 db
    8139     jbe short 058b1h                          ; 76 08
     8145    jbe short 05905h                          ; 76 08
    81408146    mov dx, 00080h                            ; ba 80 00
    81418147    in AL, DX                                 ; ec
    81428148    db  02ah, 0e4h
    81438149    ; sub ah, ah                                ; 2a e4
    8144     jmp short 0589ah                          ; eb e9
     8150    jmp short 058eeh                          ; eb e9
    81458151    test bx, bx                               ; 85 db
    8146     jbe short 058c3h                          ; 76 0e
     8152    jbe short 05917h                          ; 76 0e
    81478153    shr cx, 008h                              ; c1 e9 08
    81488154    mov dx, strict word 00060h                ; ba 60 00
     
    81548160    dec byte [bp-004h]                        ; fe 4e fc
    81558161    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8156     jnbe short 05897h                         ; 77 cb
     8162    jnbe short 058ebh                         ; 77 cb
    81578163    mov word [bp+00ch], cx                    ; 89 4e 0c
    8158     jmp near 057cch                           ; e9 fa fe
     8164    jmp near 05820h                           ; e9 fa fe
    81598165    push strict byte 00001h                   ; 6a 01
    81608166    mov cx, ss                                ; 8c d1
     
    81628168    mov dx, ss                                ; 8c d2
    81638169    lea ax, [bp-006h]                         ; 8d 46 fa
    8164     call 055f3h                               ; e8 12 fd
     8170    call 05647h                               ; e8 12 fd
    81658171    test ax, ax                               ; 85 c0
    8166     jne short 058f0h                          ; 75 0b
     8172    jne short 05944h                          ; 75 0b
    81678173    push 0060fh                               ; 68 0f 06
    81688174    push strict byte 00007h                   ; 6a 07
    8169     call 01966h                               ; e8 79 c0
     8175    call 01966h                               ; e8 25 c0
    81708176    add sp, strict byte 00004h                ; 83 c4 04
    81718177    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8172     jne short 058f9h                          ; 75 03
    8173     jmp near 05774h                           ; e9 7b fe
     8178    jne short 0594dh                          ; 75 03
     8179    jmp near 057c8h                           ; e9 7b fe
    81748180    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8175     jne short 05902h                          ; 75 03
    8176     jmp near 05770h                           ; e9 6e fe
    8177     jmp short 058f6h                          ; eb f2
     8181    jne short 05956h                          ; 75 03
     8182    jmp near 057c4h                           ; e9 6e fe
     8183    jmp short 0594ah                          ; eb f2
    81788184    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    81798185    push strict byte 00000h                   ; 6a 00
     
    81828188    mov dx, ss                                ; 8c d2
    81838189    lea ax, [bp-006h]                         ; 8d 46 fa
    8184     call 055f3h                               ; e8 db fc
     8190    call 05647h                               ; e8 db fc
    81858191    test ax, ax                               ; 85 c0
    8186     jne short 0591fh                          ; 75 03
    8187     jmp near 057eah                           ; e9 cb fe
     8192    jne short 05973h                          ; 75 03
     8193    jmp near 0583eh                           ; e9 cb fe
    81888194    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8189     jne short 05928h                          ; 75 03
    8190     jmp near 05806h                           ; e9 de fe
     8195    jne short 0597ch                          ; 75 03
     8196    jmp near 0585ah                           ; e9 de fe
    81918197    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8192     jne short 05931h                          ; 75 03
    8193     jmp near 05802h                           ; e9 d1 fe
    8194     jmp short 05925h                          ; eb f2
     8198    jne short 05985h                          ; 75 03
     8199    jmp near 05856h                           ; e9 d1 fe
     8200    jmp short 05979h                          ; eb f2
    81958201    mov dx, strict word 00017h                ; ba 17 00
    81968202    mov ax, strict word 00040h                ; b8 40 00
    8197     call 01650h                               ; e8 14 bd
     8203    call 01650h                               ; e8 c0 bc
    81988204    mov dx, word [bp+012h]                    ; 8b 56 12
    81998205    mov dl, al                                ; 88 c2
     
    82018207    mov dx, strict word 00018h                ; ba 18 00
    82028208    mov ax, strict word 00040h                ; b8 40 00
    8203     call 01650h                               ; e8 03 bd
     8209    call 01650h                               ; e8 af bc
    82048210    mov bh, al                                ; 88 c7
    82058211    and bh, 073h                              ; 80 e7 73
    82068212    mov dx, 00096h                            ; ba 96 00
    82078213    mov ax, strict word 00040h                ; b8 40 00
    8208     call 01650h                               ; e8 f5 bc
     8214    call 01650h                               ; e8 a1 bc
    82098215    and AL, strict byte 00ch                  ; 24 0c
    82108216    or al, bh                                 ; 08 f8
     
    82138219    xor ah, ah                                ; 30 e4
    82148220    sal ax, 008h                              ; c1 e0 08
    8215     jmp near 05781h                           ; e9 15 fe
     8221    jmp near 057d5h                           ; e9 15 fe
    82168222    mov ax, word [bp+012h]                    ; 8b 46 12
    82178223    xor ah, ah                                ; 30 e4
    82188224    or ah, 080h                               ; 80 cc 80
    8219     jmp near 0584ah                           ; e9 d3 fe
    8220 set_geom_lba_:                               ; 0xf5977 LB 0xe7
     8225    jmp near 0589eh                           ; e9 d3 fe
     8226set_geom_lba_:                               ; 0xf59cb LB 0xe7
    82218227    push bx                                   ; 53
    82228228    push cx                                   ; 51
     
    82348240    mov dx, word [bp+00ch]                    ; 8b 56 0c
    82358241    mov si, strict word 00020h                ; be 20 00
    8236     call 09f80h                               ; e8 dc 45
     8242    call 09fd0h                               ; e8 d8 45
    82378243    test ax, ax                               ; 85 c0
    8238     jne short 059b4h                          ; 75 0c
     8244    jne short 05a08h                          ; 75 0c
    82398245    test bx, bx                               ; 85 db
    8240     jne short 059b4h                          ; 75 08
     8246    jne short 05a08h                          ; 75 08
    82418247    test cx, cx                               ; 85 c9
    8242     jne short 059b4h                          ; 75 04
     8248    jne short 05a08h                          ; 75 04
    82438249    test dx, dx                               ; 85 d2
    8244     je short 059bbh                           ; 74 07
     8250    je short 05a0fh                           ; 74 07
    82458251    mov bx, strict word 0ffffh                ; bb ff ff
    82468252    mov si, bx                                ; 89 de
    8247     jmp short 059c1h                          ; eb 06
     8253    jmp short 05a15h                          ; eb 06
    82488254    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    82498255    mov si, word [bp+00eh]                    ; 8b 76 0e
    82508256    mov word [bp-004h], bx                    ; 89 5e fc
    82518257    xor bx, bx                                ; 31 db
    8252     jmp short 059cdh                          ; eb 05
     8258    jmp short 05a21h                          ; eb 05
    82538259    cmp bx, strict byte 00004h                ; 83 fb 04
    8254     jnl short 059f0h                          ; 7d 23
     8260    jnl short 05a44h                          ; 7d 23
    82558261    mov ax, word [bp-006h]                    ; 8b 46 fa
    82568262    cmp si, ax                                ; 39 c6
    8257     jc short 059deh                           ; 72 0a
    8258     jne short 059e7h                          ; 75 11
     8263    jc short 05a32h                           ; 72 0a
     8264    jne short 05a3bh                          ; 75 11
    82598265    mov ax, word [bp-004h]                    ; 8b 46 fc
    82608266    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8261     jnbe short 059e7h                         ; 77 09
     8267    jnbe short 05a3bh                         ; 77 09
    82628268    mov ax, word [bp-002h]                    ; 8b 46 fe
    82638269    inc ax                                    ; 40
     
    82678273    rcr word [bp-008h], 1                     ; d1 5e f8
    82688274    inc bx                                    ; 43
    8269     jmp short 059c8h                          ; eb d8
     8275    jmp short 05a1ch                          ; eb d8
    82708276    mov ax, word [bp-002h]                    ; 8b 46 fe
    82718277    xor dx, dx                                ; 31 d2
    82728278    mov bx, strict word 0003fh                ; bb 3f 00
    82738279    xor cx, cx                                ; 31 c9
    8274     call 09f30h                               ; e8 33 45
     8280    call 09f80h                               ; e8 2f 45
    82758281    mov bx, ax                                ; 89 c3
    82768282    mov cx, dx                                ; 89 d1
    82778283    mov ax, word [bp-004h]                    ; 8b 46 fc
    82788284    mov dx, si                                ; 89 f2
    8279     call 09f50h                               ; e8 47 45
     8285    call 09fa0h                               ; e8 43 45
    82808286    mov word [es:di+002h], ax                 ; 26 89 45 02
    82818287    cmp ax, 00400h                            ; 3d 00 04
    8282     jbe short 05a18h                          ; 76 06
     8288    jbe short 05a6ch                          ; 76 06
    82838289    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    82848290    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    82918297    pop bx                                    ; 5b
    82928298    retn 00008h                               ; c2 08 00
    8293     out strict byte 05ah, AL                  ; e6 5a
    8294     neg word [bp+si+026h]                     ; f7 5a 26
     8299    cmp bl, byte [bp+di+04bh]                 ; 3a 5b 4b
    82958300    pop bx                                    ; 5b
    8296     db  026h, 05bh
    8297     ; es pop bx                                 ; 26 5b
    8298     db  026h, 05bh
    8299     ; es pop bx                                 ; 26 5b
    8300     push SS                                   ; 16
     8301    jp short 05ae1h                           ; 7a 5b
     8302    jp short 05ae3h                           ; 7a 5b
     8303    jp short 05ae5h                           ; 7a 5b
     8304    push strict byte 0005dh                   ; 6a 5d
     8305    mov word [0a35eh], ax                     ; a3 5e a3
     8306    pop si                                    ; 5e
     8307    xchg di, ax                               ; 97
    83018308    pop bp                                    ; 5d
    8302     dec di                                    ; 4f
     8309    sbb byte [bp-05dh], 05eh                  ; 80 5e a3 5e
     8310    mov word [0805eh], ax                     ; a3 5e 80
    83038311    pop si                                    ; 5e
    8304     dec di                                    ; 4f
     8312    sbb byte [bp-05dh], 05eh                  ; 80 5e a3 5e
     8313    mov word [0025eh], ax                     ; a3 5e 02
    83058314    pop si                                    ; 5e
    8306     inc bx                                    ; 43
    8307     pop bp                                    ; 5d
    8308     sub AL, strict byte 05eh                  ; 2c 5e
    8309     dec di                                    ; 4f
     8315    sbb byte [bp-05dh], 05eh                  ; 80 5e a3 5e
     8316    mov word [0805eh], ax                     ; a3 5e 80
    83108317    pop si                                    ; 5e
    8311     dec di                                    ; 4f
     8318    xor bx, word [bp-05dh]                    ; 33 5e a3
    83128319    pop si                                    ; 5e
    8313     sub AL, strict byte 05eh                  ; 2c 5e
    8314     sub AL, strict byte 05eh                  ; 2c 5e
    8315     dec di                                    ; 4f
     8320    mov word [0a35eh], ax                     ; a3 5e a3
    83168321    pop si                                    ; 5e
    8317     dec di                                    ; 4f
    8318     pop si                                    ; 5e
    8319     scasb                                     ; ae
    8320     pop bp                                    ; 5d
    8321     sub AL, strict byte 05eh                  ; 2c 5e
    8322     dec di                                    ; 4f
    8323     pop si                                    ; 5e
    8324     dec di                                    ; 4f
    8325     pop si                                    ; 5e
    8326     sub AL, strict byte 05eh                  ; 2c 5e
    8327     fistp word [di+04fh]                      ; df 5d 4f
    8328     pop si                                    ; 5e
    8329     dec di                                    ; 4f
    8330     pop si                                    ; 5e
    8331     dec di                                    ; 4f
    8332     pop si                                    ; 5e
    8333 _int13_harddisk:                             ; 0xf5a5e LB 0x44f
     8322_int13_harddisk:                             ; 0xf5ab2 LB 0x44f
    83348323    push bp                                   ; 55
    83358324    mov bp, sp                                ; 89 e5
     
    83378326    mov dx, strict word 0000eh                ; ba 0e 00
    83388327    mov ax, strict word 00040h                ; b8 40 00
    8339     call 0166ch                               ; e8 ff bb
     8328    call 0166ch                               ; e8 ab bb
    83408329    mov si, 00122h                            ; be 22 01
    83418330    mov word [bp-004h], ax                    ; 89 46 fc
     
    83438332    mov dx, 0008eh                            ; ba 8e 00
    83448333    mov ax, strict word 00040h                ; b8 40 00
    8345     call 0165eh                               ; e8 e0 bb
     8334    call 0165eh                               ; e8 8c bb
    83468335    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83478336    xor ah, ah                                ; 30 e4
    83488337    cmp ax, 00080h                            ; 3d 80 00
    8349     jc short 05a8dh                           ; 72 05
     8338    jc short 05ae1h                           ; 72 05
    83508339    cmp ax, 00090h                            ; 3d 90 00
    8351     jc short 05aabh                           ; 72 1e
     8340    jc short 05affh                           ; 72 1e
    83528341    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83538342    xor ah, ah                                ; 30 e4
     
    83598348    push 0068dh                               ; 68 8d 06
    83608349    push strict byte 00004h                   ; 6a 04
    8361     call 01966h                               ; e8 c1 be
     8350    call 01966h                               ; e8 6d be
    83628351    add sp, strict byte 0000ah                ; 83 c4 0a
    8363     jmp near 05e6ah                           ; e9 bf 03
     8352    jmp near 05ebeh                           ; e9 bf 03
    83648353    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83658354    xor ah, ah                                ; 30 e4
     
    83708359    mov byte [bp-002h], dl                    ; 88 56 fe
    83718360    cmp dl, 010h                              ; 80 fa 10
    8372     jc short 05ad4h                           ; 72 10
     8361    jc short 05b28h                           ; 72 10
    83738362    push ax                                   ; 50
    83748363    mov ax, word [bp+016h]                    ; 8b 46 16
     
    83778366    push 0067eh                               ; 68 7e 06
    83788367    push 006b8h                               ; 68 b8 06
    8379     jmp short 05aa0h                          ; eb cc
     8368    jmp short 05af4h                          ; eb cc
    83808369    mov bx, word [bp+016h]                    ; 8b 5e 16
    83818370    shr bx, 008h                              ; c1 eb 08
    83828371    cmp bx, strict byte 00018h                ; 83 fb 18
    8383     jnbe short 05b23h                         ; 77 44
     8372    jnbe short 05b77h                         ; 77 44
    83848373    add bx, bx                                ; 01 db
    8385     jmp word [cs:bx+05a2ch]                   ; 2e ff a7 2c 5a
     8374    jmp word [cs:bx+05a80h]                   ; 2e ff a7 80 5a
    83868375    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8387     jnc short 05af4h                          ; 73 08
     8376    jnc short 05b48h                          ; 73 08
    83888377    mov al, byte [bp-002h]                    ; 8a 46 fe
    83898378    xor ah, ah                                ; 30 e4
    8390     call 01d85h                               ; e8 91 c2
    8391     jmp near 05d2ch                           ; e9 35 02
     8379    call 01d85h                               ; e8 3d c2
     8380    jmp near 05d80h                           ; e9 35 02
    83928381    mov dx, strict word 00074h                ; ba 74 00
    83938382    mov ax, strict word 00040h                ; b8 40 00
    8394     call 01650h                               ; e8 50 bb
     8383    call 01650h                               ; e8 fc ba
    83958384    mov cl, al                                ; 88 c1
    83968385    mov dx, word [bp+016h]                    ; 8b 56 16
     
    84038392    mov dx, strict word 00074h                ; ba 74 00
    84048393    mov ax, strict word 00040h                ; b8 40 00
    8405     call 0165eh                               ; e8 42 bb
     8394    call 0165eh                               ; e8 ee ba
    84068395    test cl, cl                               ; 84 c9
    8407     je short 05b84h                           ; 74 64
    8408     jmp near 05e86h                           ; e9 63 03
    8409     jmp near 05e4fh                           ; e9 29 03
     8396    je short 05bd8h                           ; 74 64
     8397    jmp near 05edah                           ; e9 63 03
     8398    jmp near 05ea3h                           ; e9 29 03
    84108399    mov ax, word [bp+016h]                    ; 8b 46 16
    84118400    xor ah, ah                                ; 30 e4
     
    84278416    mov ax, word [bp-00eh]                    ; 8b 46 f2
    84288417    cmp ax, 00080h                            ; 3d 80 00
    8429     jnbe short 05b61h                         ; 77 04
     8418    jnbe short 05bb5h                         ; 77 04
    84308419    test ax, ax                               ; 85 c0
    8431     jne short 05b87h                          ; 75 26
     8420    jne short 05bdbh                          ; 75 26
    84328421    mov bx, 00da0h                            ; bb a0 0d
    84338422    mov cx, ds                                ; 8c d9
    84348423    mov ax, strict word 00004h                ; b8 04 00
    8435     call 01923h                               ; e8 b7 bd
     8424    call 01923h                               ; e8 63 bd
    84368425    mov ax, word [bp+016h]                    ; 8b 46 16
    84378426    shr ax, 008h                              ; c1 e8 08
     
    84408429    push 006eah                               ; 68 ea 06
    84418430    push strict byte 00004h                   ; 6a 04
    8442     call 01966h                               ; e8 e8 bd
     8431    call 01966h                               ; e8 94 bd
    84438432    add sp, strict byte 00008h                ; 83 c4 08
    8444     jmp near 05e6ah                           ; e9 e6 02
    8445     jmp near 05d30h                           ; e9 a9 01
     8433    jmp near 05ebeh                           ; e9 e6 02
     8434    jmp near 05d84h                           ; e9 a9 01
    84468435    mov al, byte [bp-002h]                    ; 8a 46 fe
    84478436    xor ah, ah                                ; 30 e4
     
    84558444    mov word [bp-00ah], dx                    ; 89 56 f6
    84568445    cmp di, ax                                ; 39 c7
    8457     jnc short 05bb5h                          ; 73 0c
     8446    jnc short 05c09h                          ; 73 0c
    84588447    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8459     jbe short 05bb5h                          ; 76 07
     8448    jbe short 05c09h                          ; 76 07
    84608449    mov ax, word [bp-006h]                    ; 8b 46 fa
    84618450    cmp ax, dx                                ; 39 d0
    8462     jbe short 05be5h                          ; 76 30
     8451    jbe short 05c39h                          ; 76 30
    84638452    mov bx, 00da0h                            ; bb a0 0d
    84648453    mov cx, ds                                ; 8c d9
    84658454    mov ax, strict word 00004h                ; b8 04 00
    8466     call 01923h                               ; e8 63 bd
     8455    call 01923h                               ; e8 0f bd
    84678456    push word [bp-006h]                       ; ff 76 fa
    84688457    push word [bp-008h]                       ; ff 76 f8
     
    84778466    push 00712h                               ; 68 12 07
    84788467    push strict byte 00004h                   ; 6a 04
    8479     call 01966h                               ; e8 87 bd
     8468    call 01966h                               ; e8 33 bd
    84808469    add sp, strict byte 00010h                ; 83 c4 10
    8481     jmp near 05e6ah                           ; e9 85 02
     8470    jmp near 05ebeh                           ; e9 85 02
    84828471    mov ax, word [bp+016h]                    ; 8b 46 16
    84838472    shr ax, 008h                              ; c1 e8 08
    84848473    cmp ax, strict word 00004h                ; 3d 04 00
    8485     je short 05c10h                           ; 74 20
     8474    je short 05c64h                           ; 74 20
    84868475    mov al, byte [bp-002h]                    ; 8a 46 fe
    84878476    xor ah, ah                                ; 30 e4
     
    84918480    add bx, ax                                ; 01 c3
    84928481    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8493     jne short 05c19h                          ; 75 14
     8482    jne short 05c6dh                          ; 75 14
    84948483    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    84958484    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8496     je short 05c13h                           ; 74 05
    8497     jmp short 05c19h                          ; eb 09
    8498     jmp near 05d2ch                           ; e9 19 01
     8485    je short 05c67h                           ; 74 05
     8486    jmp short 05c6dh                          ; eb 09
     8487    jmp near 05d80h                           ; e9 19 01
    84998488    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8500     jc short 05c49h                           ; 72 30
     8489    jc short 05c9dh                           ; 72 30
    85018490    mov ax, di                                ; 89 f8
    85028491    xor dx, dx                                ; 31 d2
    85038492    mov bx, cx                                ; 89 cb
    85048493    xor cx, cx                                ; 31 c9
    8505     call 09f30h                               ; e8 0c 43
     8494    call 09f80h                               ; e8 08 43
    85068495    xor bx, bx                                ; 31 db
    85078496    add ax, word [bp-008h]                    ; 03 46 f8
     
    85098498    mov bx, word [bp-00ah]                    ; 8b 5e f6
    85108499    xor cx, cx                                ; 31 c9
    8511     call 09f30h                               ; e8 fd 42
     8500    call 09f80h                               ; e8 f9 42
    85128501    xor bx, bx                                ; 31 db
    85138502    add ax, word [bp-006h]                    ; 03 46 fa
     
    85658554    mov word [bp+016h], bx                    ; 89 5e 16
    85668555    test dl, dl                               ; 84 d2
    8567     je short 05d2ch                           ; 74 46
     8556    je short 05d80h                           ; 74 46
    85688557    mov bx, 00da0h                            ; bb a0 0d
    85698558    mov cx, ds                                ; 8c d9
    85708559    mov ax, strict word 00004h                ; b8 04 00
    8571     call 01923h                               ; e8 32 bc
     8560    call 01923h                               ; e8 de bb
    85728561    mov al, dl                                ; 88 d0
    85738562    xor ah, ah                                ; 30 e4
     
    85798568    push 00759h                               ; 68 59 07
    85808569    push strict byte 00004h                   ; 6a 04
    8581     call 01966h                               ; e8 5e bc
     8570    call 01966h                               ; e8 0a bc
    85828571    add sp, strict byte 0000ah                ; 83 c4 0a
    85838572    mov ax, word [bp+016h]                    ; 8b 46 16
    85848573    xor ah, ah                                ; 30 e4
    85858574    or ah, 00ch                               ; 80 cc 0c
    8586     jmp near 05e72h                           ; e9 5c 01
     8575    jmp near 05ec6h                           ; e9 5c 01
    85878576    mov bx, 00da0h                            ; bb a0 0d
    85888577    mov cx, ds                                ; 8c d9
    85898578    mov ax, strict word 00004h                ; b8 04 00
    8590     call 01923h                               ; e8 02 bc
     8579    call 01923h                               ; e8 ae bb
    85918580    push 0077ah                               ; 68 7a 07
    85928581    push strict byte 00004h                   ; 6a 04
    8593     call 01966h                               ; e8 3d bc
     8582    call 01966h                               ; e8 e9 bb
    85948583    add sp, strict byte 00004h                ; 83 c4 04
    85958584    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    85978586    mov dx, strict word 00074h                ; ba 74 00
    85988587    mov ax, strict word 00040h                ; b8 40 00
    8599     call 0165eh                               ; e8 23 b9
     8588    call 0165eh                               ; e8 cf b8
    86008589    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    86018590    mov sp, bp                                ; 89 ec
     
    86408629    mov dl, al                                ; 88 c2
    86418630    mov word [bp+012h], dx                    ; 89 56 12
    8642     jmp near 05d2ch                           ; e9 7e ff
     8631    jmp near 05d80h                           ; e9 7e ff
    86438632    mov al, byte [bp-002h]                    ; 8a 46 fe
    86448633    xor ah, ah                                ; 30 e4
     
    86578646    and AL, strict byte 0c0h                  ; 24 c0
    86588647    cmp AL, strict byte 040h                  ; 3c 40
    8659     jne short 05dd4h                          ; 75 03
    8660     jmp near 05d2ch                           ; e9 58 ff
     8648    jne short 05e28h                          ; 75 03
     8649    jmp near 05d80h                           ; e9 58 ff
    86618650    mov ax, word [bp+016h]                    ; 8b 46 16
    86628651    xor ah, ah                                ; 30 e4
    86638652    or ah, 0aah                               ; 80 cc aa
    8664     jmp near 05e72h                           ; e9 93 00
     8653    jmp near 05ec6h                           ; e9 93 00
    86658654    mov al, byte [bp-002h]                    ; 8a 46 fe
    86668655    xor ah, ah                                ; 30 e4
     
    86778666    mov bx, word [bp-008h]                    ; 8b 5e f8
    86788667    xor cx, cx                                ; 31 c9
    8679     call 09f30h                               ; e8 26 41
     8668    call 09f80h                               ; e8 22 41
    86808669    mov bx, word [bp-006h]                    ; 8b 5e fa
    86818670    xor cx, cx                                ; 31 c9
    8682     call 09f30h                               ; e8 1e 41
     8671    call 09f80h                               ; e8 1a 41
    86838672    mov word [bp-010h], ax                    ; 89 46 f0
    86848673    mov word [bp-00ch], dx                    ; 89 56 f4
     
    86898678    or ah, 003h                               ; 80 cc 03
    86908679    mov word [bp+016h], ax                    ; 89 46 16
    8691     jmp near 05d30h                           ; e9 04 ff
     8680    jmp near 05d84h                           ; e9 04 ff
    86928681    mov bx, 00da0h                            ; bb a0 0d
    86938682    mov cx, ds                                ; 8c d9
    86948683    mov ax, strict word 00004h                ; b8 04 00
    8695     call 01923h                               ; e8 ec ba
     8684    call 01923h                               ; e8 98 ba
    86968685    mov ax, word [bp+016h]                    ; 8b 46 16
    86978686    shr ax, 008h                              ; c1 e8 08
     
    87008689    push 00794h                               ; 68 94 07
    87018690    push strict byte 00004h                   ; 6a 04
    8702     call 01966h                               ; e8 1d bb
     8691    call 01966h                               ; e8 c9 ba
    87038692    add sp, strict byte 00008h                ; 83 c4 08
    8704     jmp near 05d2ch                           ; e9 dd fe
     8693    jmp near 05d80h                           ; e9 dd fe
    87058694    mov bx, 00da0h                            ; bb a0 0d
    87068695    mov cx, ds                                ; 8c d9
    87078696    mov ax, strict word 00004h                ; b8 04 00
    8708     call 01923h                               ; e8 c9 ba
     8697    call 01923h                               ; e8 75 ba
    87098698    mov ax, word [bp+016h]                    ; 8b 46 16
    87108699    shr ax, 008h                              ; c1 e8 08
     
    87128701    push 0067eh                               ; 68 7e 06
    87138702    push 007c7h                               ; 68 c7 07
    8714     jmp near 05b79h                           ; e9 0f fd
     8703    jmp near 05bcdh                           ; e9 0f fd
    87158704    mov ax, word [bp+016h]                    ; 8b 46 16
    87168705    xor ah, ah                                ; 30 e4
     
    87228711    mov dx, strict word 00074h                ; ba 74 00
    87238712    mov ax, strict word 00040h                ; b8 40 00
    8724     call 0165eh                               ; e8 d8 b7
     8713    call 0165eh                               ; e8 84 b7
    87258714    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8726     jmp near 05d3fh                           ; e9 b2 fe
    8727     dec cx                                    ; 49
     8715    jmp near 05d93h                           ; e9 b2 fe
     8716    popfw                                     ; 9d
    87288717    pop di                                    ; 5f
    8729     jl short 05ef0h                           ; 7c 5f
    8730     jl short 05ef2h                           ; 7c 5f
    8731     jl short 05ef4h                           ; 7c 5f
    8732     insw                                      ; 6d
    8733     arpl di, dx                               ; 63 d7
    8734     pushaw                                    ; 60
    8735     jl short 05efah                           ; 7c 5f
    8736     loopne 05efdh                             ; e0 60
    8737     insw                                      ; 6d
    8738     arpl [bx+di+05fh], sp                     ; 63 61 5f
     8718    rcr byte [bx-030h], 1                     ; d0 5f d0
     8719    pop di                                    ; 5f
     8720    rcr byte [bx-03fh], 1                     ; d0 5f c1
     8721    arpl [bp+di], bp                          ; 63 2b
    87398722    popaw                                     ; 61
     8723    rcr byte [bx+034h], 1                     ; d0 5f 34
     8724    popaw                                     ; 61
     8725    sal word [bp+di-04bh], 05fh               ; c1 63 b5 5f
     8726    mov CH, strict byte 05fh                  ; b5 5f
     8727    mov CH, strict byte 05fh                  ; b5 5f
     8728    mov CH, strict byte 05fh                  ; b5 5f
     8729    fsub dword [bp+di-04bh]                   ; d8 63 b5
    87408730    pop di                                    ; 5f
    8741     popaw                                     ; 61
    8742     pop di                                    ; 5f
    8743     popaw                                     ; 61
    8744     pop di                                    ; 5f
    8745     test byte [bp+di+061h], ah                ; 84 63 61
    8746     pop di                                    ; 5f
    8747     popaw                                     ; 61
    8748     pop di                                    ; 5f
    8749 _int13_harddisk_ext:                         ; 0xf5ead LB 0x50f
     8731    mov CH, strict byte 05fh                  ; b5 5f
     8732_int13_harddisk_ext:                         ; 0xf5f01 LB 0x50f
    87508733    push bp                                   ; 55
    87518734    mov bp, sp                                ; 89 e5
     
    87538736    mov dx, strict word 0000eh                ; ba 0e 00
    87548737    mov ax, strict word 00040h                ; b8 40 00
    8755     call 0166ch                               ; e8 b0 b7
     8738    call 0166ch                               ; e8 5c b7
    87568739    mov word [bp-012h], ax                    ; 89 46 ee
    87578740    mov dx, strict word 0000eh                ; ba 0e 00
    87588741    mov ax, strict word 00040h                ; b8 40 00
    8759     call 0166ch                               ; e8 a4 b7
     8742    call 0166ch                               ; e8 50 b7
    87608743    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    87618744    mov word [bp-006h], ax                    ; 89 46 fa
     
    87638746    mov dx, 0008eh                            ; ba 8e 00
    87648747    mov ax, strict word 00040h                ; b8 40 00
    8765     call 0165eh                               ; e8 83 b7
     8748    call 0165eh                               ; e8 2f b7
    87668749    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87678750    xor ah, ah                                ; 30 e4
    87688751    cmp ax, 00080h                            ; 3d 80 00
    8769     jc short 05eeah                           ; 72 05
     8752    jc short 05f3eh                           ; 72 05
    87708753    cmp ax, 00090h                            ; 3d 90 00
    8771     jc short 05f08h                           ; 72 1e
     8754    jc short 05f5ch                           ; 72 1e
    87728755    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87738756    xor ah, ah                                ; 30 e4
     
    87798762    push 0068dh                               ; 68 8d 06
    87808763    push strict byte 00004h                   ; 6a 04
    8781     call 01966h                               ; e8 64 ba
     8764    call 01966h                               ; e8 10 ba
    87828765    add sp, strict byte 0000ah                ; 83 c4 0a
    8783     jmp near 0639ah                           ; e9 92 04
     8766    jmp near 063eeh                           ; e9 92 04
    87848767    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87858768    xor ah, ah                                ; 30 e4
     
    87898772    mov byte [bp-004h], dl                    ; 88 56 fc
    87908773    cmp dl, 010h                              ; 80 fa 10
    8791     jc short 05f2fh                           ; 72 10
     8774    jc short 05f83h                           ; 72 10
    87928775    push ax                                   ; 50
    87938776    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87968779    push 007f5h                               ; 68 f5 07
    87978780    push 006b8h                               ; 68 b8 06
    8798     jmp short 05efdh                          ; eb ce
     8781    jmp short 05f51h                          ; eb ce
    87998782    mov bx, word [bp+016h]                    ; 8b 5e 16
    88008783    shr bx, 008h                              ; c1 eb 08
    88018784    sub bx, strict byte 00041h                ; 83 eb 41
    88028785    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8803     jnbe short 05f61h                         ; 77 24
     8786    jnbe short 05fb5h                         ; 77 24
    88048787    add bx, bx                                ; 01 db
    88058788    mov dx, word [bp+016h]                    ; 8b 56 16
    88068789    xor dh, dh                                ; 30 f6
    8807     jmp word [cs:bx+05e8dh]                   ; 2e ff a7 8d 5e
     8790    jmp word [cs:bx+05ee1h]                   ; 2e ff a7 e1 5e
    88088791    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    88098792    mov ax, word [bp+016h]                    ; 8b 46 16
     
    88128795    mov word [bp+016h], ax                    ; 89 46 16
    88138796    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8814     jmp near 06371h                           ; e9 10 04
     8797    jmp near 063c5h                           ; e9 10 04
    88158798    mov bx, 00da0h                            ; bb a0 0d
    88168799    mov cx, ds                                ; 8c d9
    88178800    mov ax, strict word 00004h                ; b8 04 00
    8818     call 01923h                               ; e8 b7 b9
     8801    call 01923h                               ; e8 63 b9
    88198802    mov ax, word [bp+016h]                    ; 8b 46 16
    88208803    shr ax, 008h                              ; c1 e8 08
     
    88228805    push 007f5h                               ; 68 f5 07
    88238806    push 007c7h                               ; 68 c7 07
    8824     jmp near 06011h                           ; e9 95 00
     8807    jmp near 06065h                           ; e9 95 00
    88258808    mov di, word [bp+00ah]                    ; 8b 7e 0a
    88268809    mov es, [bp+004h]                         ; 8e 46 04
     
    88388821    xor bx, bx                                ; 31 db
    88398822    mov si, strict word 00020h                ; be 20 00
    8840     call 09f90h                               ; e8 e1 3f
     8823    call 09fe0h                               ; e8 dd 3f
    88418824    mov si, ax                                ; 89 c6
    88428825    mov word [bp-00ch], bx                    ; 89 5e f4
     
    88528835    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
    88538836    cmp si, word [es:bx+03ch]                 ; 26 3b 77 3c
    8854     jnbe short 05ff9h                         ; 77 22
    8855     jne short 0601ch                          ; 75 43
     8837    jnbe short 0604dh                         ; 77 22
     8838    jne short 06070h                          ; 75 43
    88568839    mov di, word [bp-00ch]                    ; 8b 7e f4
    88578840    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
    8858     jnbe short 05ff9h                         ; 77 17
     8841    jnbe short 0604dh                         ; 77 17
    88598842    mov di, word [bp-00ch]                    ; 8b 7e f4
    88608843    cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
    8861     jne short 0601ch                          ; 75 31
     8844    jne short 06070h                          ; 75 31
    88628845    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
    8863     jnbe short 05ff9h                         ; 77 08
    8864     jne short 0601ch                          ; 75 29
     8846    jnbe short 0604dh                         ; 77 08
     8847    jne short 06070h                          ; 75 29
    88658848    cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
    8866     jc short 0601ch                           ; 72 23
     8849    jc short 06070h                           ; 72 23
    88678850    mov bx, 00da0h                            ; bb a0 0d
    88688851    mov cx, ds                                ; 8c d9
    88698852    mov ax, strict word 00004h                ; b8 04 00
    8870     call 01923h                               ; e8 1f b9
     8853    call 01923h                               ; e8 cb b8
    88718854    mov ax, word [bp+016h]                    ; 8b 46 16
    88728855    shr ax, 008h                              ; c1 e8 08
     
    88758858    push 00808h                               ; 68 08 08
    88768859    push strict byte 00004h                   ; 6a 04
    8877     call 01966h                               ; e8 50 b9
     8860    call 01966h                               ; e8 fc b8
    88788861    add sp, strict byte 00008h                ; 83 c4 08
    8879     jmp near 0639ah                           ; e9 7e 03
     8862    jmp near 063eeh                           ; e9 7e 03
    88808863    mov di, word [bp+016h]                    ; 8b 7e 16
    88818864    shr di, 008h                              ; c1 ef 08
    88828865    cmp di, strict byte 00044h                ; 83 ff 44
    8883     je short 0602ch                           ; 74 05
     8866    je short 06080h                           ; 74 05
    88848867    cmp di, strict byte 00047h                ; 83 ff 47
    8885     jne short 0602fh                          ; 75 03
    8886     jmp near 0636dh                           ; e9 3e 03
     8868    jne short 06083h                          ; 75 03
     8869    jmp near 063c1h                           ; e9 3e 03
    88878870    les bx, [bp-008h]                         ; c4 5e f8
    88888871    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     
    89228905    mov word [es:bx+002h], ax                 ; 26 89 47 02
    89238906    test dl, dl                               ; 84 d2
    8924     je short 060feh                           ; 74 51
     8907    je short 06152h                           ; 74 51
    89258908    mov bx, 00da0h                            ; bb a0 0d
    89268909    mov cx, ds                                ; 8c d9
    89278910    mov ax, strict word 00004h                ; b8 04 00
    8928     call 01923h                               ; e8 6b b8
     8911    call 01923h                               ; e8 17 b8
    89298912    mov al, dl                                ; 88 d0
    89308913    xor ah, ah                                ; 30 e4
     
    89348917    push 00759h                               ; 68 59 07
    89358918    push strict byte 00004h                   ; 6a 04
    8936     call 01966h                               ; e8 9d b8
     8919    call 01966h                               ; e8 49 b8
    89378920    add sp, strict byte 0000ah                ; 83 c4 0a
    89388921    mov ax, word [bp+016h]                    ; 8b 46 16
    89398922    xor ah, ah                                ; 30 e4
    89408923    or ah, 00ch                               ; 80 cc 0c
    8941     jmp near 063a2h                           ; e9 cb 02
     8924    jmp near 063f6h                           ; e9 cb 02
    89428925    or dh, 0b2h                               ; 80 ce b2
    89438926    mov word [bp+016h], dx                    ; 89 56 16
    8944     jmp near 063a5h                           ; e9 c5 02
     8927    jmp near 063f9h                           ; e9 c5 02
    89458928    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    89468929    mov ax, word [bp+004h]                    ; 8b 46 04
     
    89528935    mov word [bp-00eh], ax                    ; 89 46 f2
    89538936    cmp ax, strict word 0001ah                ; 3d 1a 00
    8954     jnc short 06101h                          ; 73 06
    8955     jmp near 0639ah                           ; e9 9c 02
    8956     jmp near 0636dh                           ; e9 6c 02
    8957     jnc short 06106h                          ; 73 03
    8958     jmp near 0619dh                           ; e9 97 00
     8937    jnc short 06155h                          ; 73 06
     8938    jmp near 063eeh                           ; e9 9c 02
     8939    jmp near 063c1h                           ; e9 6c 02
     8940    jnc short 0615ah                          ; 73 03
     8941    jmp near 061f1h                           ; e9 97 00
    89598942    mov al, byte [bp-004h]                    ; 8a 46 fc
    89608943    xor ah, ah                                ; 30 e4
     
    89958978    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89968979    mov si, strict word 00020h                ; be 20 00
    8997     call 09f80h                               ; e8 ed 3d
     8980    call 09fd0h                               ; e8 e9 3d
    89988981    mov bx, di                                ; 89 fb
    89998982    mov word [es:bx+014h], dx                 ; 26 89 57 14
    90008983    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    90018984    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    9002     jc short 06208h                           ; 72 65
     8985    jc short 0625ch                           ; 72 65
    90038986    mov es, [bp-00ah]                         ; 8e 46 f6
    90048987    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    90279010    mov dl, byte [es:bx+027h]                 ; 26 8a 57 27
    90289011    test dl, dl                               ; 84 d2
    9029     jne short 061f8h                          ; 75 04
     9012    jne short 0624ch                          ; 75 04
    90309013    xor bx, bx                                ; 31 db
    9031     jmp short 061fbh                          ; eb 03
     9014    jmp short 0624fh                          ; eb 03
    90329015    mov bx, strict word 00008h                ; bb 08 00
    90339016    or bl, 010h                               ; 80 cb 10
    90349017    cmp dl, 001h                              ; 80 fa 01
    9035     jne short 0620bh                          ; 75 08
     9018    jne short 0625fh                          ; 75 08
    90369019    mov ax, strict word 00001h                ; b8 01 00
    9037     jmp short 0620dh                          ; eb 05
    9038     jmp near 0629eh                           ; e9 93 00
     9020    jmp short 06261h                          ; eb 05
     9021    jmp near 062f2h                           ; e9 93 00
    90399022    xor ax, ax                                ; 31 c0
    90409023    or bx, ax                                 ; 09 c3
    90419024    cmp dl, 003h                              ; 80 fa 03
    9042     jne short 06219h                          ; 75 05
     9025    jne short 0626dh                          ; 75 05
    90439026    mov ax, strict word 00003h                ; b8 03 00
    9044     jmp short 0621bh                          ; eb 02
     9027    jmp short 0626fh                          ; eb 02
    90459028    xor ax, ax                                ; 31 c0
    90469029    or bx, ax                                 ; 09 c3
     
    90699052    xor bl, bl                                ; 30 db
    90709053    xor bh, bh                                ; 30 ff
    9071     jmp short 06280h                          ; eb 05
     9054    jmp short 062d4h                          ; eb 05
    90729055    cmp bh, 00fh                              ; 80 ff 0f
    9073     jnc short 06294h                          ; 73 14
     9056    jnc short 062e8h                          ; 73 14
    90749057    mov dl, bh                                ; 88 fa
    90759058    xor dh, dh                                ; 30 f6
    90769059    add dx, 00356h                            ; 81 c2 56 03
    90779060    mov ax, word [bp-012h]                    ; 8b 46 ee
    9078     call 01650h                               ; e8 c2 b3
     9061    call 01650h                               ; e8 6e b3
    90799062    add bl, al                                ; 00 c3
    90809063    db  0feh, 0c7h
    90819064    ; inc bh                                    ; fe c7
    9082     jmp short 0627bh                          ; eb e7
     9065    jmp short 062cfh                          ; eb e7
    90839066    neg bl                                    ; f6 db
    90849067    les si, [bp-008h]                         ; c4 76 f8
    90859068    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    90869069    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    9087     jnc short 062a7h                          ; 73 03
    9088     jmp near 0636dh                           ; e9 c6 00
     9070    jnc short 062fbh                          ; 73 03
     9071    jmp near 063c1h                           ; e9 c6 00
    90899072    mov al, byte [bp-004h]                    ; 8a 46 fc
    90909073    xor ah, ah                                ; 30 e4
     
    91059088    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    91069089    test al, al                               ; 84 c0
    9107     jne short 062efh                          ; 75 0c
     9090    jne short 06343h                          ; 75 0c
    91089091    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    91099092    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    91149097    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    91159098    test al, al                               ; 84 c0
    9116     jne short 06324h                          ; 75 16
     9099    jne short 06378h                          ; 75 16
    91179100    mov word [es:di+030h], dx                 ; 26 89 55 30
    91189101    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    91299112    xor bl, bl                                ; 30 db
    91309113    mov BH, strict byte 01eh                  ; b7 1e
    9131     jmp short 0634fh                          ; eb 05
     9114    jmp short 063a3h                          ; eb 05
    91329115    cmp bh, 040h                              ; 80 ff 40
    9133     jnc short 06364h                          ; 73 15
     9116    jnc short 063b8h                          ; 73 15
    91349117    mov al, bh                                ; 88 f8
    91359118    xor ah, ah                                ; 30 e4
     
    91379120    add dx, ax                                ; 01 c2
    91389121    mov ax, word [bp+004h]                    ; 8b 46 04
    9139     call 01650h                               ; e8 f2 b2
     9122    call 01650h                               ; e8 9e b2
    91409123    add bl, al                                ; 00 c3
    91419124    db  0feh, 0c7h
    91429125    ; inc bh                                    ; fe c7
    9143     jmp short 0634ah                          ; eb e6
     9126    jmp short 0639eh                          ; eb e6
    91449127    neg bl                                    ; f6 db
    91459128    mov es, [bp-00ah]                         ; 8e 46 f6
     
    91499132    mov dx, strict word 00074h                ; ba 74 00
    91509133    mov ax, strict word 00040h                ; b8 40 00
    9151     call 0165eh                               ; e8 e2 b2
     9134    call 0165eh                               ; e8 8e b2
    91529135    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    91539136    mov sp, bp                                ; 89 ec
     
    91559138    retn                                      ; c3
    91569139    cmp dx, strict byte 00006h                ; 83 fa 06
    9157     je short 0636dh                           ; 74 e4
     9140    je short 063c1h                           ; 74 e4
    91589141    cmp dx, strict byte 00001h                ; 83 fa 01
    9159     jc short 0639ah                           ; 72 0c
    9160     jbe short 0636dh                          ; 76 dd
     9142    jc short 063eeh                           ; 72 0c
     9143    jbe short 063c1h                          ; 76 dd
    91619144    cmp dx, strict byte 00003h                ; 83 fa 03
    9162     jc short 0639ah                           ; 72 05
     9145    jc short 063eeh                           ; 72 05
    91639146    cmp dx, strict byte 00004h                ; 83 fa 04
    9164     jbe short 0636dh                          ; 76 d3
     9147    jbe short 063c1h                          ; 76 d3
    91659148    mov ax, word [bp+016h]                    ; 8b 46 16
    91669149    xor ah, ah                                ; 30 e4
     
    91729155    mov dx, strict word 00074h                ; ba 74 00
    91739156    mov ax, strict word 00040h                ; b8 40 00
    9174     call 0165eh                               ; e8 a8 b2
     9157    call 0165eh                               ; e8 54 b2
    91759158    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9176     jmp short 06380h                          ; eb c4
    9177 _int14_function:                             ; 0xf63bc LB 0x15c
     9159    jmp short 063d4h                          ; eb c4
     9160_int14_function:                             ; 0xf6410 LB 0x15c
    91789161    push bp                                   ; 55
    91799162    mov bp, sp                                ; 89 e5
     
    91839166    add dx, dx                                ; 01 d2
    91849167    mov ax, strict word 00040h                ; b8 40 00
    9185     call 0166ch                               ; e8 a0 b2
     9168    call 0166ch                               ; e8 4c b2
    91869169    mov si, ax                                ; 89 c6
    91879170    mov bx, ax                                ; 89 c3
     
    91899172    add dx, strict byte 0007ch                ; 83 c2 7c
    91909173    mov ax, strict word 00040h                ; b8 40 00
    9191     call 01650h                               ; e8 74 b2
     9174    call 01650h                               ; e8 20 b2
    91929175    mov cl, al                                ; 88 c1
    91939176    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9194     jnc short 063e8h                          ; 73 04
     9177    jnc short 0643ch                          ; 73 04
    91959178    test si, si                               ; 85 f6
    9196     jnbe short 063ebh                         ; 77 03
    9197     jmp near 0650eh                           ; e9 23 01
     9179    jnbe short 0643fh                         ; 77 03
     9180    jmp near 06562h                           ; e9 23 01
    91989181    mov al, byte [bp+013h]                    ; 8a 46 13
    91999182    cmp AL, strict byte 001h                  ; 3c 01
    9200     jc short 063ffh                           ; 72 0d
    9201     jbe short 0645fh                          ; 76 6b
     9183    jc short 06453h                           ; 72 0d
     9184    jbe short 064b3h                          ; 76 6b
    92029185    cmp AL, strict byte 003h                  ; 3c 03
    9203     je short 06457h                           ; 74 5f
     9186    je short 064abh                           ; 74 5f
    92049187    cmp AL, strict byte 002h                  ; 3c 02
    9205     je short 0645ah                           ; 74 5e
    9206     jmp near 06508h                           ; e9 09 01
     9188    je short 064aeh                           ; 74 5e
     9189    jmp near 0655ch                           ; e9 09 01
    92079190    test al, al                               ; 84 c0
    9208     jne short 0645ch                          ; 75 59
     9191    jne short 064b0h                          ; 75 59
    92099192    lea dx, [bx+003h]                         ; 8d 57 03
    92109193    in AL, DX                                 ; ec
     
    92169199    mov al, byte [bp+012h]                    ; 8a 46 12
    92179200    test AL, strict byte 0e0h                 ; a8 e0
    9218     jne short 06422h                          ; 75 0c
     9201    jne short 06476h                          ; 75 0c
    92199202    mov AL, strict byte 017h                  ; b0 17
    92209203    mov dx, bx                                ; 89 da
     
    92239206    mov dx, si                                ; 89 f2
    92249207    out DX, AL                                ; ee
    9225     jmp short 06439h                          ; eb 17
     9208    jmp short 0648dh                          ; eb 17
    92269209    and AL, strict byte 0e0h                  ; 24 e0
    92279210    xor ah, ah                                ; 30 e4
     
    92499232    ; sub ah, ah                                ; 2a e4
    92509233    mov byte [bp+012h], al                    ; 88 46 12
    9251     jmp near 064e9h                           ; e9 92 00
    9252     jmp near 064f7h                           ; e9 9d 00
    9253     jmp short 064adh                          ; eb 51
    9254     jmp near 06508h                           ; e9 a9 00
     9234    jmp near 0653dh                           ; e9 92 00
     9235    jmp near 0654bh                           ; e9 9d 00
     9236    jmp short 06501h                          ; eb 51
     9237    jmp near 0655ch                           ; e9 a9 00
    92559238    mov dx, strict word 0006ch                ; ba 6c 00
    92569239    mov ax, strict word 00040h                ; b8 40 00
    9257     call 0166ch                               ; e8 04 b2
     9240    call 0166ch                               ; e8 b0 b1
    92589241    mov si, ax                                ; 89 c6
    92599242    lea dx, [bx+005h]                         ; 8d 57 05
     
    92639246    and ax, strict word 00060h                ; 25 60 00
    92649247    cmp ax, strict word 00060h                ; 3d 60 00
    9265     je short 0648fh                           ; 74 17
     9248    je short 064e3h                           ; 74 17
    92669249    test cl, cl                               ; 84 c9
    9267     je short 0648fh                           ; 74 13
     9250    je short 064e3h                           ; 74 13
    92689251    mov dx, strict word 0006ch                ; ba 6c 00
    92699252    mov ax, strict word 00040h                ; b8 40 00
    9270     call 0166ch                               ; e8 e7 b1
     9253    call 0166ch                               ; e8 93 b1
    92719254    cmp ax, si                                ; 39 f0
    9272     je short 0646ah                           ; 74 e1
     9255    je short 064beh                           ; 74 e1
    92739256    mov si, ax                                ; 89 c6
    92749257    db  0feh, 0c9h
    92759258    ; dec cl                                    ; fe c9
    9276     jmp short 0646ah                          ; eb db
     9259    jmp short 064beh                          ; eb db
    92779260    test cl, cl                               ; 84 c9
    9278     je short 06499h                           ; 74 06
     9261    je short 064edh                           ; 74 06
    92799262    mov al, byte [bp+012h]                    ; 8a 46 12
    92809263    mov dx, bx                                ; 89 da
     
    92869269    mov byte [bp+013h], al                    ; 88 46 13
    92879270    test cl, cl                               ; 84 c9
    9288     jne short 064e9h                          ; 75 43
     9271    jne short 0653dh                          ; 75 43
    92899272    or AL, strict byte 080h                   ; 0c 80
    92909273    mov byte [bp+013h], al                    ; 88 46 13
    9291     jmp short 064e9h                          ; eb 3c
     9274    jmp short 0653dh                          ; eb 3c
    92929275    mov dx, strict word 0006ch                ; ba 6c 00
    92939276    mov ax, strict word 00040h                ; b8 40 00
    9294     call 0166ch                               ; e8 b6 b1
     9277    call 0166ch                               ; e8 62 b1
    92959278    mov si, ax                                ; 89 c6
    92969279    lea dx, [bx+005h]                         ; 8d 57 05
     
    92999282    ; sub ah, ah                                ; 2a e4
    93009283    test AL, strict byte 001h                 ; a8 01
    9301     jne short 064d9h                          ; 75 17
     9284    jne short 0652dh                          ; 75 17
    93029285    test cl, cl                               ; 84 c9
    9303     je short 064d9h                           ; 74 13
     9286    je short 0652dh                           ; 74 13
    93049287    mov dx, strict word 0006ch                ; ba 6c 00
    93059288    mov ax, strict word 00040h                ; b8 40 00
    9306     call 0166ch                               ; e8 9d b1
     9289    call 0166ch                               ; e8 49 b1
    93079290    cmp ax, si                                ; 39 f0
    9308     je short 064b8h                           ; 74 e5
     9291    je short 0650ch                           ; 74 e5
    93099292    mov si, ax                                ; 89 c6
    93109293    db  0feh, 0c9h
    93119294    ; dec cl                                    ; fe c9
    9312     jmp short 064b8h                          ; eb df
     9295    jmp short 0650ch                          ; eb df
    93139296    test cl, cl                               ; 84 c9
    9314     je short 064efh                           ; 74 12
     9297    je short 06543h                           ; 74 12
    93159298    mov byte [bp+013h], 000h                  ; c6 46 13 00
    93169299    mov dx, bx                                ; 89 da
     
    93209303    mov byte [bp+012h], al                    ; 88 46 12
    93219304    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9322     jmp short 06512h                          ; eb 23
     9305    jmp short 06566h                          ; eb 23
    93239306    lea dx, [bx+005h]                         ; 8d 57 05
    93249307    in AL, DX                                 ; ec
    93259308    db  02ah, 0e4h
    93269309    ; sub ah, ah                                ; 2a e4
    9327     jmp short 064a8h                          ; eb b1
     9310    jmp short 064fch                          ; eb b1
    93289311    lea dx, [si+005h]                         ; 8d 54 05
    93299312    in AL, DX                                 ; ec
     
    93359318    db  02ah, 0e4h
    93369319    ; sub ah, ah                                ; 2a e4
    9337     jmp short 064e6h                          ; eb de
     9320    jmp short 0653ah                          ; eb de
    93389321    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9339     jmp short 06512h                          ; eb 04
     9322    jmp short 06566h                          ; eb 04
    93409323    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    93419324    lea sp, [bp-002h]                         ; 8d 66 fe
     
    93439326    pop bp                                    ; 5d
    93449327    retn                                      ; c3
    9345 timer_wait_:                                 ; 0xf6518 LB 0x43
     9328timer_wait_:                                 ; 0xf656c LB 0x43
    93469329    push bp                                   ; 55
    93479330    mov bp, sp                                ; 89 e5
     
    93519334    mov bx, strict word 0000fh                ; bb 0f 00
    93529335    xor cx, cx                                ; 31 c9
    9353     call 09f50h                               ; e8 2a 3a
     9336    call 09fa0h                               ; e8 26 3a
    93549337    mov cx, ax                                ; 89 c1
    93559338    mov bx, dx                                ; 89 d3
     
    93639346    adc bx, strict byte 0ffffh                ; 83 d3 ff
    93649347    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9365     jne short 06545h                          ; 75 05
     9348    jne short 06599h                          ; 75 05
    93669349    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9367     je short 06554h                           ; 74 0f
     9350    je short 065a8h                           ; 74 0f
    93689351    mov dx, strict word 00061h                ; ba 61 00
    93699352    in AL, DX                                 ; ec
     
    93729355    and AL, strict byte 010h                  ; 24 10
    93739356    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9374     jne short 06545h                          ; 75 f3
    9375     jmp short 06535h                          ; eb e1
     9357    jne short 06599h                          ; 75 f3
     9358    jmp short 06589h                          ; eb e1
    93769359    lea sp, [bp-004h]                         ; 8d 66 fc
    93779360    pop cx                                    ; 59
     
    93799362    pop bp                                    ; 5d
    93809363    retn                                      ; c3
    9381 set_enable_a20_:                             ; 0xf655b LB 0x30
     9364set_enable_a20_:                             ; 0xf65af LB 0x30
    93829365    push bp                                   ; 55
    93839366    mov bp, sp                                ; 89 e5
     
    93929375    mov cl, al                                ; 88 c1
    93939376    test bx, bx                               ; 85 db
    9394     je short 06574h                           ; 74 05
     9377    je short 065c8h                           ; 74 05
    93959378    or AL, strict byte 002h                   ; 0c 02
    93969379    out DX, AL                                ; ee
    9397     jmp short 06577h                          ; eb 03
     9380    jmp short 065cbh                          ; eb 03
    93989381    and AL, strict byte 0fdh                  ; 24 fd
    93999382    out DX, AL                                ; ee
    94009383    test cl, 002h                             ; f6 c1 02
    9401     je short 06581h                           ; 74 05
     9384    je short 065d5h                           ; 74 05
    94029385    mov ax, strict word 00001h                ; b8 01 00
    9403     jmp short 06583h                          ; eb 02
     9386    jmp short 065d7h                          ; eb 02
    94049387    xor ax, ax                                ; 31 c0
    94059388    lea sp, [bp-006h]                         ; 8d 66 fa
     
    94099392    pop bp                                    ; 5d
    94109393    retn                                      ; c3
    9411 set_e820_range_:                             ; 0xf658b LB 0x88
     9394set_e820_range_:                             ; 0xf65df LB 0x88
    94129395    push si                                   ; 56
    94139396    push bp                                   ; 55
     
    94399422    retn 0000ah                               ; c2 0a 00
    94409423    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9441     db  01dh, 069h, 04eh, 066h, 062h, 066h, 0f7h, 066h, 0fdh, 066h, 002h, 067h, 007h, 067h, 0afh, 067h
    9442     db  0dah, 067h, 0f0h, 066h, 0f0h, 066h, 0a7h, 068h, 0cfh, 068h, 0e2h, 068h, 0f1h, 068h, 0f7h, 066h
    9443     db  0f8h, 068h
    9444 _int15_function:                             ; 0xf6613 LB 0x33c
     9424    db  071h, 069h, 0a2h, 066h, 0b6h, 066h, 04bh, 067h, 051h, 067h, 056h, 067h, 05bh, 067h, 003h, 068h
     9425    db  02eh, 068h, 044h, 067h, 044h, 067h, 0fbh, 068h, 023h, 069h, 036h, 069h, 045h, 069h, 04bh, 067h
     9426    db  04ch, 069h
     9427_int15_function:                             ; 0xf6667 LB 0x33c
    94459428    push bp                                   ; 55
    94469429    mov bp, sp                                ; 89 e5
     
    94509433    shr ax, 008h                              ; c1 e8 08
    94519434    cmp ax, 000ech                            ; 3d ec 00
    9452     jnbe short 06658h                         ; 77 35
     9435    jnbe short 066ach                         ; 77 35
    94539436    push CS                                   ; 0e
    94549437    pop ES                                    ; 07
    94559438    mov cx, strict word 00011h                ; b9 11 00
    9456     mov di, 065e1h                            ; bf e1 65
     9439    mov di, 06635h                            ; bf 35 66
    94579440    repne scasb                               ; f2 ae
    94589441    sal cx, 1                                 ; d1 e1
    94599442    mov di, cx                                ; 89 cf
    9460     mov si, word [cs:di+065f1h]               ; 2e 8b b5 f1 65
     9443    mov si, word [cs:di+06645h]               ; 2e 8b b5 45 66
    94619444    mov ax, word [bp+012h]                    ; 8b 46 12
    94629445    xor ah, ah                                ; 30 e4
     
    94719454    xor ah, ah                                ; 30 e4
    94729455    cmp ax, 000c0h                            ; 3d c0 00
    9473     je short 0665bh                           ; 74 03
    9474     jmp near 0691dh                           ; e9 c2 02
     9456    je short 066afh                           ; 74 03
     9457    jmp near 06971h                           ; e9 c2 02
    94759458    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9476     jmp near 068c6h                           ; e9 64 02
     9459    jmp near 0691ah                           ; e9 64 02
    94779460    mov dx, ax                                ; 89 c2
    94789461    cmp ax, strict word 00001h                ; 3d 01 00
    9479     jc short 06677h                           ; 72 0e
    9480     jbe short 0668bh                          ; 76 20
     9462    jc short 066cbh                           ; 72 0e
     9463    jbe short 066dfh                          ; 76 20
    94819464    cmp ax, strict word 00003h                ; 3d 03 00
    9482     je short 066b8h                           ; 74 48
     9465    je short 0670ch                           ; 74 48
    94839466    cmp ax, strict word 00002h                ; 3d 02 00
    9484     je short 0669bh                           ; 74 26
    9485     jmp short 066c5h                          ; eb 4e
     9467    je short 066efh                           ; 74 26
     9468    jmp short 06719h                          ; eb 4e
    94869469    test ax, ax                               ; 85 c0
    9487     jne short 066c5h                          ; 75 4a
     9470    jne short 06719h                          ; 75 4a
    94889471    xor ax, ax                                ; 31 c0
    9489     call 0655bh                               ; e8 db fe
     9472    call 065afh                               ; e8 db fe
    94909473    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94919474    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9492     jmp near 066f0h                           ; e9 65 00
     9475    jmp near 06744h                           ; e9 65 00
    94939476    mov ax, strict word 00001h                ; b8 01 00
    9494     call 0655bh                               ; e8 ca fe
     9477    call 065afh                               ; e8 ca fe
    94959478    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94969479    mov byte [bp+013h], dh                    ; 88 76 13
    9497     jmp near 066f0h                           ; e9 55 00
     9480    jmp near 06744h                           ; e9 55 00
    94989481    mov dx, 00092h                            ; ba 92 00
    94999482    in AL, DX                                 ; ec
     
    95079490    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95089491    mov byte [bp+013h], ah                    ; 88 66 13
    9509     jmp near 066f0h                           ; e9 38 00
     9492    jmp near 06744h                           ; e9 38 00
    95109493    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95119494    mov byte [bp+013h], ah                    ; 88 66 13
    95129495    mov word [bp+00ch], ax                    ; 89 46 0c
    9513     jmp near 066f0h                           ; e9 2b 00
     9496    jmp near 06744h                           ; e9 2b 00
    95149497    mov bx, 00da0h                            ; bb a0 0d
    95159498    mov cx, ds                                ; 8c d9
    95169499    mov ax, strict word 00004h                ; b8 04 00
    9517     call 01923h                               ; e8 53 b2
     9500    call 01923h                               ; e8 ff b1
    95189501    mov ax, word [bp+012h]                    ; 8b 46 12
    95199502    xor ah, ah                                ; 30 e4
     
    95219504    push 0082eh                               ; 68 2e 08
    95229505    push strict byte 00004h                   ; 6a 04
    9523     call 01966h                               ; e8 88 b2
     9506    call 01966h                               ; e8 34 b2
    95249507    add sp, strict byte 00006h                ; 83 c4 06
    95259508    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    95349517    retn                                      ; c3
    95359518    mov word [bp+018h], dx                    ; 89 56 18
    9536     jmp near 067a9h                           ; e9 ac 00
     9519    jmp near 067fdh                           ; e9 ac 00
    95379520    mov word [bp+018h], dx                    ; 89 56 18
    9538     jmp short 066f0h                          ; eb ee
     9521    jmp short 06744h                          ; eb ee
    95399522    mov word [bp+018h], cx                    ; 89 4e 18
    9540     jmp short 066edh                          ; eb e6
     9523    jmp short 06741h                          ; eb e6
    95419524    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9542     jne short 0677ch                          ; 75 6f
     9525    jne short 067d0h                          ; 75 6f
    95439526    mov dx, 000a0h                            ; ba a0 00
    95449527    mov ax, strict word 00040h                ; b8 40 00
    9545     call 01650h                               ; e8 3a af
     9528    call 01650h                               ; e8 e6 ae
    95469529    test AL, strict byte 001h                 ; a8 01
    9547     jne short 06779h                          ; 75 5f
     9530    jne short 067cdh                          ; 75 5f
    95489531    mov bx, strict word 00001h                ; bb 01 00
    95499532    mov dx, 000a0h                            ; ba a0 00
    95509533    mov ax, strict word 00040h                ; b8 40 00
    9551     call 0165eh                               ; e8 38 af
     9534    call 0165eh                               ; e8 e4 ae
    95529535    mov bx, word [bp+014h]                    ; 8b 5e 14
    95539536    mov dx, 00098h                            ; ba 98 00
    95549537    mov ax, strict word 00040h                ; b8 40 00
    9555     call 0167ah                               ; e8 48 af
     9538    call 0167ah                               ; e8 f4 ae
    95569539    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    95579540    mov dx, 0009ah                            ; ba 9a 00
    95589541    mov ax, strict word 00040h                ; b8 40 00
    9559     call 0167ah                               ; e8 3c af
     9542    call 0167ah                               ; e8 e8 ae
    95609543    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    95619544    mov dx, 0009ch                            ; ba 9c 00
    95629545    mov ax, strict word 00040h                ; b8 40 00
    9563     call 0167ah                               ; e8 30 af
     9546    call 0167ah                               ; e8 dc ae
    95649547    mov bx, word [bp+010h]                    ; 8b 5e 10
    95659548    mov dx, 0009eh                            ; ba 9e 00
    95669549    mov ax, strict word 00040h                ; b8 40 00
    9567     call 0167ah                               ; e8 24 af
     9550    call 0167ah                               ; e8 d0 ae
    95689551    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95699552    mov dx, 000a1h                            ; ba a1 00
     
    95749557    out DX, AL                                ; ee
    95759558    mov ax, strict word 0000bh                ; b8 0b 00
    9576     call 016ach                               ; e8 43 af
     9559    call 016ach                               ; e8 ef ae
    95779560    mov dl, al                                ; 88 c2
    95789561    or dl, 040h                               ; 80 ca 40
    95799562    xor dh, dh                                ; 30 f6
    95809563    mov ax, strict word 0000bh                ; b8 0b 00
    9581     call 016c7h                               ; e8 51 af
    9582     jmp near 066f0h                           ; e9 77 ff
    9583     jmp near 068bdh                           ; e9 41 01
     9564    call 016c7h                               ; e8 fd ae
     9565    jmp near 06744h                           ; e9 77 ff
     9566    jmp near 06911h                           ; e9 41 01
    95849567    cmp ax, strict word 00001h                ; 3d 01 00
    9585     jne short 0679dh                          ; 75 1c
     9568    jne short 067f1h                          ; 75 1c
    95869569    xor bx, bx                                ; 31 db
    95879570    mov dx, 000a0h                            ; ba a0 00
    95889571    mov ax, strict word 00040h                ; b8 40 00
    9589     call 0165eh                               ; e8 d2 ae
     9572    call 0165eh                               ; e8 7e ae
    95909573    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95919574    mov ax, strict word 0000bh                ; b8 0b 00
    9592     call 016ach                               ; e8 16 af
     9575    call 016ach                               ; e8 c2 ae
    95939576    mov dl, al                                ; 88 c2
    95949577    and dl, 0bfh                              ; 80 e2 bf
    9595     jmp short 0676eh                          ; eb d1
     9578    jmp short 067c2h                          ; eb d1
    95969579    mov word [bp+018h], dx                    ; 89 56 18
    95979580    mov ax, bx                                ; 89 d8
     
    96019584    or bx, ax                                 ; 09 c3
    96029585    mov word [bp+012h], bx                    ; 89 5e 12
    9603     jmp near 066f0h                           ; e9 41 ff
     9586    jmp near 06744h                           ; e9 41 ff
    96049587    mov ax, strict word 00031h                ; b8 31 00
    9605     call 016ach                               ; e8 f7 ae
     9588    call 016ach                               ; e8 a3 ae
    96069589    xor ah, ah                                ; 30 e4
    96079590    mov dx, ax                                ; 89 c2
    96089591    sal dx, 008h                              ; c1 e2 08
    96099592    mov ax, strict word 00030h                ; b8 30 00
    9610     call 016ach                               ; e8 ea ae
     9593    call 016ach                               ; e8 96 ae
    96119594    xor ah, ah                                ; 30 e4
    96129595    or dx, ax                                 ; 09 c2
    96139596    mov word [bp+012h], dx                    ; 89 56 12
    96149597    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9615     jbe short 067d3h                          ; 76 05
     9598    jbe short 06827h                          ; 76 05
    96169599    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    96179600    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9618     jmp near 066f0h                           ; e9 16 ff
     9601    jmp near 06744h                           ; e9 16 ff
    96199602    cli                                       ; fa
    96209603    mov ax, strict word 00001h                ; b8 01 00
    9621     call 0655bh                               ; e8 7a fd
     9604    call 065afh                               ; e8 7a fd
    96229605    mov dx, word [bp+006h]                    ; 8b 56 06
    96239606    add dx, strict byte 00038h                ; 83 c2 38
    96249607    mov ax, word [bp+014h]                    ; 8b 46 14
    96259608    mov bx, strict word 0ffffh                ; bb ff ff
    9626     call 0167ah                               ; e8 8a ae
     9609    call 0167ah                               ; e8 36 ae
    96279610    mov dx, word [bp+006h]                    ; 8b 56 06
    96289611    add dx, strict byte 0003ah                ; 83 c2 3a
    96299612    mov ax, word [bp+014h]                    ; 8b 46 14
    96309613    xor bx, bx                                ; 31 db
    9631     call 0167ah                               ; e8 7c ae
     9614    call 0167ah                               ; e8 28 ae
    96329615    mov dx, word [bp+006h]                    ; 8b 56 06
    96339616    add dx, strict byte 0003ch                ; 83 c2 3c
    96349617    mov ax, word [bp+014h]                    ; 8b 46 14
    96359618    mov bx, strict word 0000fh                ; bb 0f 00
    9636     call 0165eh                               ; e8 51 ae
     9619    call 0165eh                               ; e8 fd ad
    96379620    mov dx, word [bp+006h]                    ; 8b 56 06
    96389621    add dx, strict byte 0003dh                ; 83 c2 3d
    96399622    mov ax, word [bp+014h]                    ; 8b 46 14
    96409623    mov bx, 0009bh                            ; bb 9b 00
    9641     call 0165eh                               ; e8 42 ae
     9624    call 0165eh                               ; e8 ee ad
    96429625    mov dx, word [bp+006h]                    ; 8b 56 06
    96439626    add dx, strict byte 0003eh                ; 83 c2 3e
    96449627    mov ax, word [bp+014h]                    ; 8b 46 14
    96459628    xor bx, bx                                ; 31 db
    9646     call 0167ah                               ; e8 50 ae
     9629    call 0167ah                               ; e8 fc ad
    96479630    mov AL, strict byte 011h                  ; b0 11
    96489631    mov dx, strict word 00020h                ; ba 20 00
     
    96749657    out DX, AL                                ; ee
    96759658    mov si, word [bp+006h]                    ; 8b 76 06
    9676     call 0686bh                               ; e8 00 00
     9659    call 068bfh                               ; e8 00 00
    96779660    pop di                                    ; 5f
    96789661    add di, strict byte 00018h                ; 83 c7 18
     
    97029685    push cx                                   ; 51
    97039686    retf                                      ; cb
    9704     jmp near 066f0h                           ; e9 49 fe
     9687    jmp near 06744h                           ; e9 49 fe
    97059688    mov bx, 00da0h                            ; bb a0 0d
    97069689    mov cx, ds                                ; 8c d9
    97079690    mov ax, strict word 00004h                ; b8 04 00
    9708     call 01923h                               ; e8 71 b0
     9691    call 01923h                               ; e8 1d b0
    97099692    push 0086eh                               ; 68 6e 08
    97109693    push strict byte 00004h                   ; 6a 04
    9711     call 01966h                               ; e8 ac b0
     9694    call 01966h                               ; e8 58 b0
    97129695    add sp, strict byte 00004h                ; 83 c4 04
    97139696    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    97169699    or ah, 086h                               ; 80 cc 86
    97179700    mov word [bp+012h], ax                    ; 89 46 12
    9718     jmp near 066f0h                           ; e9 21 fe
     9701    jmp near 06744h                           ; e9 21 fe
    97199702    mov word [bp+018h], cx                    ; 89 4e 18
    97209703    mov word [bp+012h], ax                    ; 89 46 12
    97219704    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    97229705    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9723     jmp near 066f0h                           ; e9 0e fe
     9706    jmp near 06744h                           ; e9 0e fe
    97249707    mov dx, strict word 0000eh                ; ba 0e 00
    97259708    mov ax, strict word 00040h                ; b8 40 00
    9726     call 0166ch                               ; e8 81 ad
     9709    call 0166ch                               ; e8 2d ad
    97279710    mov word [bp+014h], ax                    ; 89 46 14
    9728     jmp near 067d3h                           ; e9 e2 fe
     9711    jmp near 06827h                           ; e9 e2 fe
    97299712    push 0089dh                               ; 68 9d 08
    97309713    push strict byte 00008h                   ; 6a 08
    9731     jmp short 068b7h                          ; eb bf
     9714    jmp short 0690bh                          ; eb bf
    97329715    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9733     jne short 0691dh                          ; 75 1f
     9716    jne short 06971h                          ; 75 1f
    97349717    mov word [bp+012h], ax                    ; 89 46 12
    97359718    mov ax, word [bp+00ch]                    ; 8b 46 0c
    97369719    xor ah, ah                                ; 30 e4
    97379720    cmp ax, strict word 00001h                ; 3d 01 00
    9738     jc short 06916h                           ; 72 0b
     9721    jc short 0696ah                           ; 72 0b
    97399722    cmp ax, strict word 00003h                ; 3d 03 00
    9740     jnbe short 06916h                         ; 77 06
     9723    jnbe short 0696ah                         ; 77 06
    97419724    mov word [bp+018h], cx                    ; 89 4e 18
    9742     jmp near 066f0h                           ; e9 da fd
     9725    jmp near 06744h                           ; e9 da fd
    97439726    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9744     jmp near 066f0h                           ; e9 d3 fd
     9727    jmp near 06744h                           ; e9 d3 fd
    97459728    mov bx, 00da0h                            ; bb a0 0d
    97469729    mov cx, ds                                ; 8c d9
    97479730    mov ax, strict word 00004h                ; b8 04 00
    9748     call 01923h                               ; e8 fb af
     9731    call 01923h                               ; e8 a7 af
    97499732    push word [bp+00ch]                       ; ff 76 0c
    97509733    push word [bp+012h]                       ; ff 76 12
    97519734    push 008b4h                               ; 68 b4 08
    97529735    push strict byte 00004h                   ; 6a 04
    9753     call 01966h                               ; e8 30 b0
     9736    call 01966h                               ; e8 dc af
    97549737    add sp, strict byte 00008h                ; 83 c4 08
    9755     jmp short 068bdh                          ; eb 82
    9756     mov cx, 0de6ah                            ; b9 6a de
    9757     push strict byte 0fffeh                   ; 6a fe
    9758     push strict byte 0004dh                   ; 6a 4d
    9759     imul bp, word [bp+di+06bh], strict byte 0ff88h ; 6b 6b 6b 88
    9760     imul bp, word [bp+si-03395h], strict byte 0006bh ; 6b aa 6b cc 6b
    9761     or word [si+03dh], bp                     ; 09 6c 3d
     9738    jmp short 06911h                          ; eb 82
     9739    or ax, 0326bh                             ; 0d 6b 32
     9740    imul dx, word [bp+si+06bh], strict byte 0ffa1h ; 6b 52 6b a1
     9741    imul di, word [bx-02395h], strict byte 0006bh ; 6b bf 6b dc 6b
     9742    db  0feh
     9743    imul sp, word [bx+si], strict byte 0006ch ; 6b 20 6c
     9744    pop bp                                    ; 5d
    97629745    insb                                      ; 6c
    9763 _int15_function32:                           ; 0xf694f LB 0x38a
     9746    xchg cx, ax                               ; 91
     9747    insb                                      ; 6c
     9748_int15_function32:                           ; 0xf69a3 LB 0x38a
    97649749    push bp                                   ; 55
    97659750    mov bp, sp                                ; 89 e5
     
    97739758    xor dh, dh                                ; 30 f6
    97749759    cmp ax, 000e8h                            ; 3d e8 00
    9775     je short 069b6h                           ; 74 4a
     9760    je short 06a0ah                           ; 74 4a
    97769761    cmp ax, 000d0h                            ; 3d d0 00
    9777     je short 06983h                           ; 74 12
     9762    je short 069d7h                           ; 74 12
    97789763    cmp ax, 00086h                            ; 3d 86 00
    9779     jne short 069b4h                          ; 75 3e
     9764    jne short 06a08h                          ; 75 3e
    97809765    sti                                       ; fb
    97819766    mov dx, word [bp+01ch]                    ; 8b 56 1c
    97829767    mov ax, word [bp+018h]                    ; 8b 46 18
    9783     call 06518h                               ; e8 98 fb
    9784     jmp near 06b47h                           ; e9 c4 01
     9768    call 0656ch                               ; e8 98 fb
     9769    jmp near 06b9bh                           ; e9 c4 01
    97859770    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9786     jne short 069b4h                          ; 75 2c
     9771    jne short 06a08h                          ; 75 2c
    97879772    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9788     jne short 069eah                          ; 75 5b
     9773    jne short 06a3eh                          ; 75 5b
    97899774    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9790     jne short 069eah                          ; 75 54
     9775    jne short 06a3eh                          ; 75 54
    97919776    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9792     jne short 069eah                          ; 75 4d
     9777    jne short 06a3eh                          ; 75 4d
    97939778    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9794     jne short 069eah                          ; 75 46
     9779    jne short 06a3eh                          ; 75 46
    97959780    mov ax, word [bp+00ah]                    ; 8b 46 0a
    97969781    or ax, word [bp+008h]                     ; 0b 46 08
    9797     jne short 069eah                          ; 75 3e
     9782    jne short 06a3eh                          ; 75 3e
    97989783    mov ax, word [bp+006h]                    ; 8b 46 06
    97999784    or ax, word [bp+004h]                     ; 0b 46 04
    9800     je short 069b8h                           ; 74 04
    9801     jmp short 069eah                          ; eb 34
    9802     jmp short 069e0h                          ; eb 28
     9785    je short 06a0ch                           ; 74 04
     9786    jmp short 06a3eh                          ; eb 34
     9787    jmp short 06a34h                          ; eb 28
    98039788    mov word [bp+028h], bx                    ; 89 5e 28
    98049789    mov ax, word [bp+014h]                    ; 8b 46 14
     
    98129797    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    98139798    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    9814     jmp near 06b47h                           ; e9 67 01
     9799    jmp near 06b9bh                           ; e9 67 01
    98159800    cmp dx, strict byte 00020h                ; 83 fa 20
    9816     je short 069f0h                           ; 74 0b
     9801    je short 06a44h                           ; 74 0b
    98179802    cmp dx, strict byte 00001h                ; 83 fa 01
    9818     je short 069edh                           ; 74 03
    9819     jmp near 06b1dh                           ; e9 30 01
    9820     jmp near 06c8bh                           ; e9 9b 02
     9803    je short 06a41h                           ; 74 03
     9804    jmp near 06b71h                           ; e9 30 01
     9805    jmp near 06cdfh                           ; e9 9b 02
    98219806    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9822     jne short 069eah                          ; 75 f3
     9807    jne short 06a3eh                          ; 75 f3
    98239808    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9824     jne short 069eah                          ; 75 ec
     9809    jne short 06a3eh                          ; 75 ec
    98259810    mov ax, strict word 00035h                ; b8 35 00
    9826     call 016ach                               ; e8 a8 ac
     9811    call 016ach                               ; e8 54 ac
    98279812    mov bl, al                                ; 88 c3
    98289813    xor bh, bh                                ; 30 ff
     
    98319816    sal bx, 1                                 ; d1 e3
    98329817    rcl dx, 1                                 ; d1 d2
    9833     loop 06a0dh                               ; e2 fa
     9818    loop 06a61h                               ; e2 fa
    98349819    mov ax, strict word 00034h                ; b8 34 00
    9835     call 016ach                               ; e8 93 ac
     9820    call 016ach                               ; e8 3f ac
    98369821    xor ah, ah                                ; 30 e4
    98379822    mov dx, bx                                ; 89 da
     
    98419826    adc dx, 00100h                            ; 81 d2 00 01
    98429827    cmp dx, 00100h                            ; 81 fa 00 01
    9843     jc short 06a33h                           ; 72 06
    9844     jne short 06a61h                          ; 75 32
     9828    jc short 06a87h                           ; 72 06
     9829    jne short 06ab5h                          ; 75 32
    98459830    test bx, bx                               ; 85 db
    9846     jnbe short 06a61h                         ; 77 2e
     9831    jnbe short 06ab5h                         ; 77 2e
    98479832    mov ax, strict word 00031h                ; b8 31 00
    9848     call 016ach                               ; e8 73 ac
     9833    call 016ach                               ; e8 1f ac
    98499834    mov bl, al                                ; 88 c3
    98509835    xor bh, bh                                ; 30 ff
     
    98539838    sal bx, 1                                 ; d1 e3
    98549839    rcl dx, 1                                 ; d1 d2
    9855     loop 06a42h                               ; e2 fa
     9840    loop 06a96h                               ; e2 fa
    98569841    mov ax, strict word 00030h                ; b8 30 00
    9857     call 016ach                               ; e8 5e ac
     9842    call 016ach                               ; e8 0a ac
    98589843    xor ah, ah                                ; 30 e4
    98599844    or bx, ax                                 ; 09 c3
     
    98619846    sal bx, 1                                 ; d1 e3
    98629847    rcl dx, 1                                 ; d1 d2
    9863     loop 06a55h                               ; e2 fa
     9848    loop 06aa9h                               ; e2 fa
    98649849    add bx, strict byte 00000h                ; 83 c3 00
    98659850    adc dx, strict byte 00010h                ; 83 d2 10
    98669851    mov ax, strict word 00062h                ; b8 62 00
    9867     call 016ach                               ; e8 45 ac
     9852    call 016ach                               ; e8 f1 ab
    98689853    xor ah, ah                                ; 30 e4
    98699854    mov word [bp-00ah], ax                    ; 89 46 f6
     
    98739858    sal word [bp-00ah], 1                     ; d1 66 f6
    98749859    rcl word [bp-008h], 1                     ; d1 56 f8
    9875     loop 06a74h                               ; e2 f8
     9860    loop 06ac8h                               ; e2 f8
    98769861    mov ax, strict word 00061h                ; b8 61 00
    9877     call 016ach                               ; e8 2a ac
     9862    call 016ach                               ; e8 d6 ab
    98789863    xor ah, ah                                ; 30 e4
    98799864    or word [bp-00ah], ax                     ; 09 46 f6
     
    98829867    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    98839868    mov ax, strict word 00063h                ; b8 63 00
    9884     call 016ach                               ; e8 14 ac
     9869    call 016ach                               ; e8 c0 ab
    98859870    mov byte [bp-004h], al                    ; 88 46 fc
    98869871    mov byte [bp-006h], al                    ; 88 46 fa
    98879872    mov ax, word [bp+014h]                    ; 8b 46 14
    98889873    cmp ax, strict word 00009h                ; 3d 09 00
    9889     jnbe short 06b1dh                         ; 77 77
     9874    jnbe short 06b71h                         ; 77 77
    98909875    mov si, ax                                ; 89 c6
    98919876    add si, ax                                ; 01 c6
     
    98949879    mov cx, dx                                ; 89 d1
    98959880    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9896     jmp word [cs:si+0693bh]                   ; 2e ff a4 3b 69
     9881    jmp word [cs:si+0698fh]                   ; 2e ff a4 8f 69
    98979882    push strict byte 00001h                   ; 6a 01
    98989883    push strict byte 00000h                   ; 6a 00
     
    99049889    xor bx, bx                                ; 31 db
    99059890    xor cx, cx                                ; 31 c9
    9906     call 0658bh                               ; e8 ba fa
     9891    call 065dfh                               ; e8 ba fa
    99079892    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    99089893    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    9909     jmp near 06c70h                           ; e9 92 01
     9894    jmp near 06cc4h                           ; e9 92 01
    99109895    push strict byte 00002h                   ; 6a 02
    99119896    push strict byte 00000h                   ; 6a 00
     
    99179902    mov bx, 0fc00h                            ; bb 00 fc
    99189903    mov cx, strict word 00009h                ; b9 09 00
    9919     call 0658bh                               ; e8 94 fa
     9904    call 065dfh                               ; e8 94 fa
    99209905    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    9921     jmp short 06ad6h                          ; eb d8
     9906    jmp short 06b2ah                          ; eb d8
    99229907    push strict byte 00002h                   ; 6a 02
    99239908    push strict byte 00000h                   ; 6a 00
     
    99299914    xor bx, bx                                ; 31 db
    99309915    mov cx, strict word 0000fh                ; b9 0f 00
    9931     call 0658bh                               ; e8 75 fa
     9916    call 065dfh                               ; e8 75 fa
    99329917    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    9933     jmp short 06ad6h                          ; eb b9
     9918    jmp short 06b2ah                          ; eb b9
    99349919    mov bx, 00da0h                            ; bb a0 0d
    99359920    mov cx, ds                                ; 8c d9
    99369921    mov ax, strict word 00004h                ; b8 04 00
    9937     call 01923h                               ; e8 fb ad
     9922    call 01923h                               ; e8 a7 ad
    99389923    push word [bp+014h]                       ; ff 76 14
    99399924    push word [bp+020h]                       ; ff 76 20
    99409925    push 008b4h                               ; 68 b4 08
    99419926    push strict byte 00004h                   ; 6a 04
    9942     call 01966h                               ; e8 30 ae
     9927    call 01966h                               ; e8 dc ad
    99439928    add sp, strict byte 00008h                ; 83 c4 08
    99449929    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    99609945    xor bx, bx                                ; 31 db
    99619946    mov cx, strict word 00010h                ; b9 10 00
    9962     call 0658bh                               ; e8 28 fa
     9947    call 065dfh                               ; e8 28 fa
    99639948    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    9964     jmp near 06ad6h                           ; e9 6b ff
     9949    jmp near 06b2ah                           ; e9 6b ff
    99659950    push strict byte 00003h                   ; 6a 03
    99669951    push strict byte 00000h                   ; 6a 00
     
    99729957    mov bx, ax                                ; 89 c3
    99739958    mov ax, si                                ; 89 f0
    9974     call 0658bh                               ; e8 0b fa
     9959    call 065dfh                               ; e8 0b fa
    99759960    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    9976     jmp near 06ad6h                           ; e9 4e ff
     9961    jmp near 06b2ah                           ; e9 4e ff
    99779962    push strict byte 00002h                   ; 6a 02
    99789963    push strict byte 00000h                   ; 6a 00
     
    99849969    xor bx, bx                                ; 31 db
    99859970    mov cx, 0fec0h                            ; b9 c0 fe
    9986     call 0658bh                               ; e8 e9 f9
     9971    call 065dfh                               ; e8 e9 f9
    99879972    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    9988     jmp near 06ad6h                           ; e9 2c ff
     9973    jmp near 06b2ah                           ; e9 2c ff
    99899974    push strict byte 00002h                   ; 6a 02
    99909975    push strict byte 00000h                   ; 6a 00
     
    99969981    xor bx, bx                                ; 31 db
    99979982    mov cx, 0fee0h                            ; b9 e0 fe
    9998     call 0658bh                               ; e8 c7 f9
     9983    call 065dfh                               ; e8 c7 f9
    99999984    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10000     jmp near 06ad6h                           ; e9 0a ff
     9985    jmp near 06b2ah                           ; e9 0a ff
    100019986    push strict byte 00002h                   ; 6a 02
    100029987    push strict byte 00000h                   ; 6a 00
     
    100089993    xor bx, bx                                ; 31 db
    100099994    mov cx, strict word 0fffch                ; b9 fc ff
    10010     call 0658bh                               ; e8 a7 f9
     9995    call 065dfh                               ; e8 a7 f9
    100119996    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10012     jne short 06bf1h                          ; 75 07
     9997    jne short 06c45h                          ; 75 07
    100139998    mov ax, word [bp-008h]                    ; 8b 46 f8
    100149999    test ax, ax                               ; 85 c0
    10015     je short 06c01h                           ; 74 10
     10000    je short 06c55h                           ; 74 10
    1001610001    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10017     jmp near 06ad6h                           ; e9 dd fe
     10002    jmp near 06b2ah                           ; e9 dd fe
    1001810003    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10019     jmp near 06ad6h                           ; e9 d5 fe
     10004    jmp near 06b2ah                           ; e9 d5 fe
    1002010005    mov word [bp+014h], ax                    ; 89 46 14
    1002110006    mov word [bp+016h], ax                    ; 89 46 16
    10022     jmp short 06c70h                          ; eb 67
     10007    jmp short 06cc4h                          ; eb 67
    1002310008    push strict byte 00002h                   ; 6a 02
    1002410009    push strict byte 00000h                   ; 6a 00
     
    1003010015    xor bx, bx                                ; 31 db
    1003110016    xor cx, cx                                ; 31 c9
    10032     call 0658bh                               ; e8 6b f9
     10017    call 065dfh                               ; e8 6b f9
    1003310018    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10034     jne short 06c2dh                          ; 75 07
     10019    jne short 06c81h                          ; 75 07
    1003510020    mov ax, word [bp-008h]                    ; 8b 46 f8
    1003610021    test ax, ax                               ; 85 c0
    10037     je short 06c35h                           ; 74 08
     10022    je short 06c89h                           ; 74 08
    1003810023    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10039     jmp near 06ad6h                           ; e9 a1 fe
     10024    jmp near 06b2ah                           ; e9 a1 fe
    1004010025    mov word [bp+014h], ax                    ; 89 46 14
    1004110026    mov word [bp+016h], ax                    ; 89 46 16
    10042     jmp short 06c70h                          ; eb 33
     10027    jmp short 06cc4h                          ; eb 33
    1004310028    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10044     jne short 06c49h                          ; 75 06
     10029    jne short 06c9dh                          ; 75 06
    1004510030    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10046     je short 06c70h                           ; 74 27
     10031    je short 06cc4h                           ; 74 27
    1004710032    push strict byte 00001h                   ; 6a 01
    1004810033    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    1005810043    xor bx, bx                                ; 31 db
    1005910044    xor cx, cx                                ; 31 c9
    10060     call 0658bh                               ; e8 23 f9
     10045    call 065dfh                               ; e8 23 f9
    1006110046    xor ax, ax                                ; 31 c0
    1006210047    mov word [bp+014h], ax                    ; 89 46 14
     
    1006710052    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1006810053    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10069     jmp near 06b47h                           ; e9 bc fe
     10054    jmp near 06b9bh                           ; e9 bc fe
    1007010055    mov word [bp+028h], bx                    ; 89 5e 28
    1007110056    mov ax, strict word 00031h                ; b8 31 00
    10072     call 016ach                               ; e8 18 aa
     10057    call 016ach                               ; e8 c4 a9
    1007310058    xor ah, ah                                ; 30 e4
    1007410059    mov dx, ax                                ; 89 c2
    1007510060    sal dx, 008h                              ; c1 e2 08
    1007610061    mov ax, strict word 00030h                ; b8 30 00
    10077     call 016ach                               ; e8 0b aa
     10062    call 016ach                               ; e8 b7 a9
    1007810063    xor ah, ah                                ; 30 e4
    1007910064    or dx, ax                                 ; 09 c2
    1008010065    mov word [bp+01ch], dx                    ; 89 56 1c
    1008110066    cmp dx, 03c00h                            ; 81 fa 00 3c
    10082     jbe short 06cb3h                          ; 76 05
     10067    jbe short 06d07h                          ; 76 05
    1008310068    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1008410069    mov ax, strict word 00035h                ; b8 35 00
    10085     call 016ach                               ; e8 f3 a9
     10070    call 016ach                               ; e8 9f a9
    1008610071    xor ah, ah                                ; 30 e4
    1008710072    mov dx, ax                                ; 89 c2
    1008810073    sal dx, 008h                              ; c1 e2 08
    1008910074    mov ax, strict word 00034h                ; b8 34 00
    10090     call 016ach                               ; e8 e6 a9
     10075    call 016ach                               ; e8 92 a9
    1009110076    xor ah, ah                                ; 30 e4
    1009210077    or dx, ax                                 ; 09 c2
     
    1009510080    mov word [bp+020h], ax                    ; 89 46 20
    1009610081    mov word [bp+014h], dx                    ; 89 56 14
    10097     jmp near 06b47h                           ; e9 6e fe
    10098 _int15_blkmove:                              ; 0xf6cd9 LB 0x18a
     10082    jmp near 06b9bh                           ; e9 6e fe
     10083_int15_blkmove:                              ; 0xf6d2d LB 0x18a
    1009910084    push bp                                   ; 55
    1010010085    mov bp, sp                                ; 89 e5
     
    1010510090    cli                                       ; fa
    1010610091    mov ax, strict word 00001h                ; b8 01 00
    10107     call 0655bh                               ; e8 74 f8
     10092    call 065afh                               ; e8 74 f8
    1010810093    mov di, ax                                ; 89 c7
    1010910094    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1011510100    mov byte [bp-006h], dl                    ; 88 56 fa
    1011610101    cmp cx, ax                                ; 39 c1
    10117     jnc short 06d06h                          ; 73 05
     10102    jnc short 06d5ah                          ; 73 05
    1011810103    db  0feh, 0c2h
    1011910104    ; inc dl                                    ; fe c2
     
    1012310108    mov ax, word [bp+006h]                    ; 8b 46 06
    1012410109    mov bx, strict word 0002fh                ; bb 2f 00
    10125     call 0167ah                               ; e8 65 a9
     10110    call 0167ah                               ; e8 11 a9
    1012610111    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1012710112    add dx, strict byte 0000ah                ; 83 c2 0a
    1012810113    mov ax, word [bp+006h]                    ; 8b 46 06
    1012910114    mov bx, cx                                ; 89 cb
    10130     call 0167ah                               ; e8 57 a9
     10115    call 0167ah                               ; e8 03 a9
    1013110116    mov bl, byte [bp-006h]                    ; 8a 5e fa
    1013210117    xor bh, bh                                ; 30 ff
     
    1013410119    add dx, strict byte 0000ch                ; 83 c2 0c
    1013510120    mov ax, word [bp+006h]                    ; 8b 46 06
    10136     call 0165eh                               ; e8 2a a9
     10121    call 0165eh                               ; e8 d6 a8
    1013710122    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1013810123    add dx, strict byte 0000dh                ; 83 c2 0d
    1013910124    mov ax, word [bp+006h]                    ; 8b 46 06
    1014010125    mov bx, 00093h                            ; bb 93 00
    10141     call 0165eh                               ; e8 1b a9
     10126    call 0165eh                               ; e8 c7 a8
    1014210127    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1014310128    add dx, strict byte 0000eh                ; 83 c2 0e
    1014410129    mov ax, word [bp+006h]                    ; 8b 46 06
    1014510130    xor bx, bx                                ; 31 db
    10146     call 0167ah                               ; e8 29 a9
     10131    call 0167ah                               ; e8 d5 a8
    1014710132    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1014810133    add dx, strict byte 00020h                ; 83 c2 20
    1014910134    mov ax, word [bp+006h]                    ; 8b 46 06
    1015010135    mov bx, strict word 0ffffh                ; bb ff ff
    10151     call 0167ah                               ; e8 1a a9
     10136    call 0167ah                               ; e8 c6 a8
    1015210137    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1015310138    add dx, strict byte 00022h                ; 83 c2 22
    1015410139    mov ax, word [bp+006h]                    ; 8b 46 06
    1015510140    xor bx, bx                                ; 31 db
    10156     call 0167ah                               ; e8 0c a9
     10141    call 0167ah                               ; e8 b8 a8
    1015710142    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1015810143    add dx, strict byte 00024h                ; 83 c2 24
    1015910144    mov ax, word [bp+006h]                    ; 8b 46 06
    1016010145    mov bx, strict word 0000fh                ; bb 0f 00
    10161     call 0165eh                               ; e8 e1 a8
     10146    call 0165eh                               ; e8 8d a8
    1016210147    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1016310148    add dx, strict byte 00025h                ; 83 c2 25
    1016410149    mov ax, word [bp+006h]                    ; 8b 46 06
    1016510150    mov bx, 0009bh                            ; bb 9b 00
    10166     call 0165eh                               ; e8 d2 a8
     10151    call 0165eh                               ; e8 7e a8
    1016710152    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1016810153    add dx, strict byte 00026h                ; 83 c2 26
    1016910154    mov ax, word [bp+006h]                    ; 8b 46 06
    1017010155    xor bx, bx                                ; 31 db
    10171     call 0167ah                               ; e8 e0 a8
     10156    call 0167ah                               ; e8 8c a8
    1017210157    mov ax, ss                                ; 8c d0
    1017310158    mov cx, ax                                ; 89 c1
     
    1017910164    mov ax, word [bp+006h]                    ; 8b 46 06
    1018010165    mov bx, strict word 0ffffh                ; bb ff ff
    10181     call 0167ah                               ; e8 c4 a8
     10166    call 0167ah                               ; e8 70 a8
    1018210167    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1018310168    add dx, strict byte 0002ah                ; 83 c2 2a
    1018410169    mov ax, word [bp+006h]                    ; 8b 46 06
    1018510170    mov bx, cx                                ; 89 cb
    10186     call 0167ah                               ; e8 b6 a8
     10171    call 0167ah                               ; e8 62 a8
    1018710172    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1018810173    xor bh, bh                                ; 30 ff
     
    1019010175    add dx, strict byte 0002ch                ; 83 c2 2c
    1019110176    mov ax, word [bp+006h]                    ; 8b 46 06
    10192     call 0165eh                               ; e8 89 a8
     10177    call 0165eh                               ; e8 35 a8
    1019310178    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1019410179    add dx, strict byte 0002dh                ; 83 c2 2d
    1019510180    mov ax, word [bp+006h]                    ; 8b 46 06
    1019610181    mov bx, 00093h                            ; bb 93 00
    10197     call 0165eh                               ; e8 7a a8
     10182    call 0165eh                               ; e8 26 a8
    1019810183    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1019910184    add dx, strict byte 0002eh                ; 83 c2 2e
    1020010185    mov ax, word [bp+006h]                    ; 8b 46 06
    1020110186    xor bx, bx                                ; 31 db
    10202     call 0167ah                               ; e8 88 a8
     10187    call 0167ah                               ; e8 34 a8
    1020310188    lea bx, [bp+004h]                         ; 8d 5e 04
    1020410189    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    1021010195    mov word [00467h], bx                     ; 89 1e 67 04
    1021110196    mov [00469h], ss                          ; 8c 16 69 04
    10212     call 06e0dh                               ; e8 00 00
     10197    call 06e61h                               ; e8 00 00
    1021310198    pop di                                    ; 5f
    1021410199    add di, strict byte 00018h                ; 83 c7 18
     
    1024210227    int3                                      ; cc
    1024310228    mov ax, di                                ; 89 f8
    10244     call 0655bh                               ; e8 08 f7
     10229    call 065afh                               ; e8 08 f7
    1024510230    sti                                       ; fb
    1024610231    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1025110236    pop bp                                    ; 5d
    1025210237    retn                                      ; c3
    10253 _inv_op_handler:                             ; 0xf6e63 LB 0x19b
     10238_inv_op_handler:                             ; 0xf6eb7 LB 0x19b
    1025410239    push bp                                   ; 55
    1025510240    mov bp, sp                                ; 89 e5
     
    1026010245    les bx, [bp+018h]                         ; c4 5e 18
    1026110246    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10262     jne short 06e79h                          ; 75 06
     10247    jne short 06ecdh                          ; 75 06
    1026310248    inc word [bp+018h]                        ; ff 46 18
    10264     jmp near 06ff7h                           ; e9 7e 01
     10249    jmp near 0704bh                           ; e9 7e 01
    1026510250    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10266     je short 06e83h                           ; 74 03
    10267     jmp near 06ff3h                           ; e9 70 01
     10251    je short 06ed7h                           ; 74 03
     10252    jmp near 07047h                           ; e9 70 01
    1026810253    mov si, 00800h                            ; be 00 08
    1026910254    xor ax, ax                                ; 31 c0
     
    1029410279    sal ax, 1                                 ; d1 e0
    1029510280    rcl dx, 1                                 ; d1 d2
    10296     loop 06ed4h                               ; e2 fa
     10281    loop 06f28h                               ; e2 fa
    1029710282    cmp bx, dx                                ; 39 d3
    10298     jne short 06ee2h                          ; 75 04
     10283    jne short 06f36h                          ; 75 04
    1029910284    cmp di, ax                                ; 39 c7
    10300     je short 06ee7h                           ; 74 05
     10285    je short 06f3bh                           ; 74 05
    1030110286    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1030210287    mov es, [bp-006h]                         ; 8e 46 fa
     
    1030910294    sal ax, 1                                 ; d1 e0
    1031010295    rcl dx, 1                                 ; d1 d2
    10311     loop 06efdh                               ; e2 fa
     10296    loop 06f51h                               ; e2 fa
    1031210297    cmp bx, dx                                ; 39 d3
    10313     jne short 06f0bh                          ; 75 04
     10298    jne short 06f5fh                          ; 75 04
    1031410299    cmp di, ax                                ; 39 c7
    10315     je short 06f0fh                           ; 74 04
     10300    je short 06f63h                           ; 74 04
    1031610301    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1031710302    push strict byte 00000h                   ; 6a 00
     
    1036710352    mov ax, strict word 00008h                ; b8 08 00
    1036810353    test cx, strict word 00001h               ; f7 c1 01 00
    10369     je near 06fb0h                            ; 0f 84 02 00
     10354    je near 07004h                            ; 0f 84 02 00
    1037010355    mov es, ax                                ; 8e c0
    1037110356    test cx, strict word 00002h               ; f7 c1 02 00
    10372     je near 06fd8h                            ; 0f 84 20 00
     10357    je near 0702ch                            ; 0f 84 20 00
    1037310358    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1037410359    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1038710372    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1038810373    iret                                      ; cf
    10389     jmp short 06ff7h                          ; eb 04
     10374    jmp short 0704bh                          ; eb 04
    1039010375    sti                                       ; fb
    1039110376    hlt                                       ; f4
    10392     jmp short 06ff4h                          ; eb fd
     10377    jmp short 07048h                          ; eb fd
    1039310378    lea sp, [bp-004h]                         ; 8d 66 fc
    1039410379    pop di                                    ; 5f
     
    1039610381    pop bp                                    ; 5d
    1039710382    retn                                      ; c3
    10398 init_rtc_:                                   ; 0xf6ffe LB 0x28
     10383init_rtc_:                                   ; 0xf7052 LB 0x28
    1039910384    push bp                                   ; 55
    1040010385    mov bp, sp                                ; 89 e5
     
    1040210387    mov dx, strict word 00026h                ; ba 26 00
    1040310388    mov ax, strict word 0000ah                ; b8 0a 00
    10404     call 016c7h                               ; e8 bc a6
     10389    call 016c7h                               ; e8 68 a6
    1040510390    mov dx, strict word 00002h                ; ba 02 00
    1040610391    mov ax, strict word 0000bh                ; b8 0b 00
    10407     call 016c7h                               ; e8 b3 a6
     10392    call 016c7h                               ; e8 5f a6
    1040810393    mov ax, strict word 0000ch                ; b8 0c 00
    10409     call 016ach                               ; e8 92 a6
     10394    call 016ach                               ; e8 3e a6
    1041010395    mov ax, strict word 0000dh                ; b8 0d 00
    10411     call 016ach                               ; e8 8c a6
     10396    call 016ach                               ; e8 38 a6
    1041210397    lea sp, [bp-002h]                         ; 8d 66 fe
    1041310398    pop dx                                    ; 5a
    1041410399    pop bp                                    ; 5d
    1041510400    retn                                      ; c3
    10416 rtc_updating_:                               ; 0xf7026 LB 0x21
     10401rtc_updating_:                               ; 0xf707a LB 0x21
    1041710402    push bp                                   ; 55
    1041810403    mov bp, sp                                ; 89 e5
     
    1042010405    mov dx, 061a8h                            ; ba a8 61
    1042110406    dec dx                                    ; 4a
    10422     je short 0703eh                           ; 74 0e
     10407    je short 07092h                           ; 74 0e
    1042310408    mov ax, strict word 0000ah                ; b8 0a 00
    10424     call 016ach                               ; e8 76 a6
     10409    call 016ach                               ; e8 22 a6
    1042510410    test AL, strict byte 080h                 ; a8 80
    10426     jne short 0702dh                          ; 75 f3
     10411    jne short 07081h                          ; 75 f3
    1042710412    xor ax, ax                                ; 31 c0
    10428     jmp short 07041h                          ; eb 03
     10413    jmp short 07095h                          ; eb 03
    1042910414    mov ax, strict word 00001h                ; b8 01 00
    1043010415    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1043210417    pop bp                                    ; 5d
    1043310418    retn                                      ; c3
    10434 _int70_function:                             ; 0xf7047 LB 0xbf
     10419_int70_function:                             ; 0xf709b LB 0xbf
    1043510420    push bp                                   ; 55
    1043610421    mov bp, sp                                ; 89 e5
     
    1043810423    push ax                                   ; 50
    1043910424    mov ax, strict word 0000bh                ; b8 0b 00
    10440     call 016ach                               ; e8 5a a6
     10425    call 016ach                               ; e8 06 a6
    1044110426    mov bl, al                                ; 88 c3
    1044210427    mov byte [bp-004h], al                    ; 88 46 fc
    1044310428    mov ax, strict word 0000ch                ; b8 0c 00
    10444     call 016ach                               ; e8 4f a6
     10429    call 016ach                               ; e8 fb a5
    1044510430    mov dl, al                                ; 88 c2
    1044610431    test bl, 060h                             ; f6 c3 60
    10447     jne short 07067h                          ; 75 03
    10448     jmp near 070edh                           ; e9 86 00
     10432    jne short 070bbh                          ; 75 03
     10433    jmp near 07141h                           ; e9 86 00
    1044910434    test AL, strict byte 020h                 ; a8 20
    10450     je short 0706fh                           ; 74 04
     10435    je short 070c3h                           ; 74 04
    1045110436    sti                                       ; fb
    1045210437    int 04ah                                  ; cd 4a
    1045310438    cli                                       ; fa
    1045410439    test dl, 040h                             ; f6 c2 40
    10455     je short 070d7h                           ; 74 63
     10440    je short 0712bh                           ; 74 63
    1045610441    mov dx, 000a0h                            ; ba a0 00
    1045710442    mov ax, strict word 00040h                ; b8 40 00
    10458     call 01650h                               ; e8 d3 a5
     10443    call 01650h                               ; e8 7f a5
    1045910444    test al, al                               ; 84 c0
    10460     je short 070edh                           ; 74 6c
     10445    je short 07141h                           ; 74 6c
    1046110446    mov dx, 0009ch                            ; ba 9c 00
    1046210447    mov ax, strict word 00040h                ; b8 40 00
    10463     call 01688h                               ; e8 fe a5
     10448    call 01688h                               ; e8 aa a5
    1046410449    test dx, dx                               ; 85 d2
    10465     jne short 070d9h                          ; 75 4b
     10450    jne short 0712dh                          ; 75 4b
    1046610451    cmp ax, 003d1h                            ; 3d d1 03
    10467     jnc short 070d9h                          ; 73 46
     10452    jnc short 0712dh                          ; 73 46
    1046810453    mov dx, 00098h                            ; ba 98 00
    1046910454    mov ax, strict word 00040h                ; b8 40 00
    10470     call 0166ch                               ; e8 d0 a5
     10455    call 0166ch                               ; e8 7c a5
    1047110456    mov si, ax                                ; 89 c6
    1047210457    mov dx, 0009ah                            ; ba 9a 00
    1047310458    mov ax, strict word 00040h                ; b8 40 00
    10474     call 0166ch                               ; e8 c5 a5
     10459    call 0166ch                               ; e8 71 a5
    1047510460    mov cx, ax                                ; 89 c1
    1047610461    xor bx, bx                                ; 31 db
    1047710462    mov dx, 000a0h                            ; ba a0 00
    1047810463    mov ax, strict word 00040h                ; b8 40 00
    10479     call 0165eh                               ; e8 aa a5
     10464    call 0165eh                               ; e8 56 a5
    1048010465    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1048110466    and dl, 037h                              ; 80 e2 37
    1048210467    xor dh, dh                                ; 30 f6
    1048310468    mov ax, strict word 0000bh                ; b8 0b 00
    10484     call 016c7h                               ; e8 05 a6
     10469    call 016c7h                               ; e8 b1 a5
    1048510470    mov dx, cx                                ; 89 ca
    1048610471    mov ax, si                                ; 89 f0
    10487     call 01650h                               ; e8 87 a5
     10472    call 01650h                               ; e8 33 a5
    1048810473    mov bl, al                                ; 88 c3
    1048910474    or bl, 080h                               ; 80 cb 80
     
    1049110476    mov dx, cx                                ; 89 ca
    1049210477    mov ax, si                                ; 89 f0
    10493     call 0165eh                               ; e8 87 a5
    10494     jmp short 070edh                          ; eb 14
     10478    call 0165eh                               ; e8 33 a5
     10479    jmp short 07141h                          ; eb 14
    1049510480    mov bx, ax                                ; 89 c3
    1049610481    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1049910484    mov dx, 0009ch                            ; ba 9c 00
    1050010485    mov ax, strict word 00040h                ; b8 40 00
    10501     call 0169ah                               ; e8 ad a5
    10502     call 0e030h                               ; e8 40 6f
     10486    call 0169ah                               ; e8 59 a5
     10487    call 0e030h                               ; e8 ec 6e
    1050310488    lea sp, [bp-002h]                         ; 8d 66 fe
    1050410489    pop si                                    ; 5e
    1050510490    pop bp                                    ; 5d
    1050610491    retn                                      ; c3
    10507     sbb AL, strict byte 071h                  ; 1c 71
    10508     inc bx                                    ; 43
    10509     jno short 07163h                          ; 71 68
    10510     jno short 070a1h                          ; 71 a4
    10511     jno short 070f5h                          ; 71 f6
    10512     jno short 0712eh                          ; 71 2d
    10513     jc short 07177h                           ; 72 74
    10514     jc short 070d4h                           ; 72 cf
    10515     db  072h
    10516 _int1a_function:                             ; 0xf7106 LB 0x1d9
     10492    jo short 071bdh                           ; 70 71
     10493    xchg di, ax                               ; 97
     10494    jno short 0710bh                          ; 71 bc
     10495    jno short 07149h                          ; 71 f8
     10496    jno short 0719dh                          ; 71 4a
     10497    jc short 070d6h                           ; 72 81
     10498    jc short 0711fh                           ; 72 c8
     10499    jc short 0717ch                           ; 72 23
     10500    db  073h
     10501_int1a_function:                             ; 0xf715a LB 0x1d9
    1051710502    push bp                                   ; 55
    1051810503    mov bp, sp                                ; 89 e5
     
    1052010505    mov al, byte [bp+013h]                    ; 8a 46 13
    1052110506    cmp AL, strict byte 007h                  ; 3c 07
    10522     jnbe short 0716fh                         ; 77 5e
     10507    jnbe short 071c3h                         ; 77 5e
    1052310508    mov bl, al                                ; 88 c3
    1052410509    xor bh, bh                                ; 30 ff
    1052510510    add bx, bx                                ; 01 db
    10526     jmp word [cs:bx+070f6h]                   ; 2e ff a7 f6 70
     10511    jmp word [cs:bx+0714ah]                   ; 2e ff a7 4a 71
    1052710512    cli                                       ; fa
    1052810513    mov bx, 0046eh                            ; bb 6e 04
     
    1053910524    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1054010525    sti                                       ; fb
    10541     jmp short 0716fh                          ; eb 2c
     10526    jmp short 071c3h                          ; eb 2c
    1054210527    cli                                       ; fa
    1054310528    mov bx, 0046eh                            ; bb 6e 04
     
    1055310538    sti                                       ; fb
    1055410539    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10555     jmp short 0716fh                          ; eb 07
    10556     call 07026h                               ; e8 bb fe
     10540    jmp short 071c3h                          ; eb 07
     10541    call 0707ah                               ; e8 bb fe
    1055710542    test ax, ax                               ; 85 c0
    10558     je short 07172h                           ; 74 03
    10559     jmp near 071a0h                           ; e9 2e 00
     10543    je short 071c6h                           ; 74 03
     10544    jmp near 071f4h                           ; e9 2e 00
    1056010545    xor ax, ax                                ; 31 c0
    10561     call 016ach                               ; e8 35 a5
     10546    call 016ach                               ; e8 e1 a4
    1056210547    mov byte [bp+00fh], al                    ; 88 46 0f
    1056310548    mov ax, strict word 00002h                ; b8 02 00
    10564     call 016ach                               ; e8 2c a5
     10549    call 016ach                               ; e8 d8 a4
    1056510550    mov byte [bp+010h], al                    ; 88 46 10
    1056610551    mov ax, strict word 00004h                ; b8 04 00
    10567     call 016ach                               ; e8 23 a5
     10552    call 016ach                               ; e8 cf a4
    1056810553    mov dl, al                                ; 88 c2
    1056910554    mov byte [bp+011h], al                    ; 88 46 11
    1057010555    mov ax, strict word 0000bh                ; b8 0b 00
    10571     call 016ach                               ; e8 18 a5
     10556    call 016ach                               ; e8 c4 a4
    1057210557    and AL, strict byte 001h                  ; 24 01
    1057310558    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1057710562    pop bp                                    ; 5d
    1057810563    retn                                      ; c3
    10579     call 07026h                               ; e8 7f fe
     10564    call 0707ah                               ; e8 7f fe
    1058010565    test ax, ax                               ; 85 c0
    10581     je short 071aeh                           ; 74 03
    10582     call 06ffeh                               ; e8 50 fe
     10566    je short 07202h                           ; 74 03
     10567    call 07052h                               ; e8 50 fe
    1058310568    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1058410569    xor dh, dh                                ; 30 f6
    1058510570    xor ax, ax                                ; 31 c0
    10586     call 016c7h                               ; e8 0f a5
     10571    call 016c7h                               ; e8 bb a4
    1058710572    mov dl, byte [bp+010h]                    ; 8a 56 10
    1058810573    xor dh, dh                                ; 30 f6
    1058910574    mov ax, strict word 00002h                ; b8 02 00
    10590     call 016c7h                               ; e8 04 a5
     10575    call 016c7h                               ; e8 b0 a4
    1059110576    mov dl, byte [bp+011h]                    ; 8a 56 11
    1059210577    xor dh, dh                                ; 30 f6
    1059310578    mov ax, strict word 00004h                ; b8 04 00
    10594     call 016c7h                               ; e8 f9 a4
     10579    call 016c7h                               ; e8 a5 a4
    1059510580    mov ax, strict word 0000bh                ; b8 0b 00
    10596     call 016ach                               ; e8 d8 a4
     10581    call 016ach                               ; e8 84 a4
    1059710582    mov bl, al                                ; 88 c3
    1059810583    and bl, 060h                              ; 80 e3 60
     
    1060410589    xor dh, dh                                ; 30 f6
    1060510590    mov ax, strict word 0000bh                ; b8 0b 00
    10606     call 016c7h                               ; e8 da a4
     10591    call 016c7h                               ; e8 86 a4
    1060710592    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1060810593    mov byte [bp+012h], bl                    ; 88 5e 12
    10609     jmp short 071a0h                          ; eb aa
     10594    jmp short 071f4h                          ; eb aa
    1061010595    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10611     call 07026h                               ; e8 29 fe
     10596    call 0707ah                               ; e8 29 fe
    1061210597    test ax, ax                               ; 85 c0
    10613     je short 07203h                           ; 74 02
    10614     jmp short 071a0h                          ; eb 9d
     10598    je short 07257h                           ; 74 02
     10599    jmp short 071f4h                          ; eb 9d
    1061510600    mov ax, strict word 00009h                ; b8 09 00
    10616     call 016ach                               ; e8 a3 a4
     10601    call 016ach                               ; e8 4f a4
    1061710602    mov byte [bp+010h], al                    ; 88 46 10
    1061810603    mov ax, strict word 00008h                ; b8 08 00
    10619     call 016ach                               ; e8 9a a4
     10604    call 016ach                               ; e8 46 a4
    1062010605    mov byte [bp+00fh], al                    ; 88 46 0f
    1062110606    mov ax, strict word 00007h                ; b8 07 00
    10622     call 016ach                               ; e8 91 a4
     10607    call 016ach                               ; e8 3d a4
    1062310608    mov byte [bp+00eh], al                    ; 88 46 0e
    1062410609    mov ax, strict word 00032h                ; b8 32 00
    10625     call 016ach                               ; e8 88 a4
     10610    call 016ach                               ; e8 34 a4
    1062610611    mov byte [bp+011h], al                    ; 88 46 11
    1062710612    mov byte [bp+012h], al                    ; 88 46 12
    10628     jmp near 071a0h                           ; e9 73 ff
    10629     call 07026h                               ; e8 f6 fd
     10613    jmp near 071f4h                           ; e9 73 ff
     10614    call 0707ah                               ; e8 f6 fd
    1063010615    test ax, ax                               ; 85 c0
    10631     je short 0723ah                           ; 74 06
    10632     call 06ffeh                               ; e8 c7 fd
    10633     jmp near 071a0h                           ; e9 66 ff
     10616    je short 0728eh                           ; 74 06
     10617    call 07052h                               ; e8 c7 fd
     10618    jmp near 071f4h                           ; e9 66 ff
    1063410619    mov dl, byte [bp+010h]                    ; 8a 56 10
    1063510620    xor dh, dh                                ; 30 f6
    1063610621    mov ax, strict word 00009h                ; b8 09 00
    10637     call 016c7h                               ; e8 82 a4
     10622    call 016c7h                               ; e8 2e a4
    1063810623    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1063910624    xor dh, dh                                ; 30 f6
    1064010625    mov ax, strict word 00008h                ; b8 08 00
    10641     call 016c7h                               ; e8 77 a4
     10626    call 016c7h                               ; e8 23 a4
    1064210627    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1064310628    xor dh, dh                                ; 30 f6
    1064410629    mov ax, strict word 00007h                ; b8 07 00
    10645     call 016c7h                               ; e8 6c a4
     10630    call 016c7h                               ; e8 18 a4
    1064610631    mov dl, byte [bp+011h]                    ; 8a 56 11
    1064710632    xor dh, dh                                ; 30 f6
    1064810633    mov ax, strict word 00032h                ; b8 32 00
    10649     call 016c7h                               ; e8 61 a4
     10634    call 016c7h                               ; e8 0d a4
    1065010635    mov ax, strict word 0000bh                ; b8 0b 00
    10651     call 016ach                               ; e8 40 a4
     10636    call 016ach                               ; e8 ec a3
    1065210637    mov bl, al                                ; 88 c3
    1065310638    and bl, 07fh                              ; 80 e3 7f
    10654     jmp near 071e3h                           ; e9 6f ff
     10639    jmp near 07237h                           ; e9 6f ff
    1065510640    mov ax, strict word 0000bh                ; b8 0b 00
    10656     call 016ach                               ; e8 32 a4
     10641    call 016ach                               ; e8 de a3
    1065710642    mov bl, al                                ; 88 c3
    1065810643    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1065910644    test AL, strict byte 020h                 ; a8 20
    10660     je short 07288h                           ; 74 03
    10661     jmp near 071a0h                           ; e9 18 ff
    10662     call 07026h                               ; e8 9b fd
     10645    je short 072dch                           ; 74 03
     10646    jmp near 071f4h                           ; e9 18 ff
     10647    call 0707ah                               ; e8 9b fd
    1066310648    test ax, ax                               ; 85 c0
    10664     je short 07292h                           ; 74 03
    10665     call 06ffeh                               ; e8 6c fd
     10649    je short 072e6h                           ; 74 03
     10650    call 07052h                               ; e8 6c fd
    1066610651    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1066710652    xor dh, dh                                ; 30 f6
    1066810653    mov ax, strict word 00001h                ; b8 01 00
    10669     call 016c7h                               ; e8 2a a4
     10654    call 016c7h                               ; e8 d6 a3
    1067010655    mov dl, byte [bp+010h]                    ; 8a 56 10
    1067110656    xor dh, dh                                ; 30 f6
    1067210657    mov ax, strict word 00003h                ; b8 03 00
    10673     call 016c7h                               ; e8 1f a4
     10658    call 016c7h                               ; e8 cb a3
    1067410659    mov dl, byte [bp+011h]                    ; 8a 56 11
    1067510660    xor dh, dh                                ; 30 f6
    1067610661    mov ax, strict word 00005h                ; b8 05 00
    10677     call 016c7h                               ; e8 14 a4
     10662    call 016c7h                               ; e8 c0 a3
    1067810663    mov dx, 000a1h                            ; ba a1 00
    1067910664    in AL, DX                                 ; ec
     
    1068710672    xor dh, dh                                ; 30 f6
    1068810673    mov ax, strict word 0000bh                ; b8 0b 00
    10689     call 016c7h                               ; e8 fb a3
    10690     jmp near 071a0h                           ; e9 d1 fe
     10674    call 016c7h                               ; e8 a7 a3
     10675    jmp near 071f4h                           ; e9 d1 fe
    1069110676    mov ax, strict word 0000bh                ; b8 0b 00
    10692     call 016ach                               ; e8 d7 a3
     10677    call 016ach                               ; e8 83 a3
    1069310678    mov bl, al                                ; 88 c3
    1069410679    mov dl, al                                ; 88 c2
    1069510680    and dl, 057h                              ; 80 e2 57
    10696     jmp near 071e5h                           ; e9 06 ff
    10697 send_to_mouse_ctrl_:                         ; 0xf72df LB 0x34
     10681    jmp near 07239h                           ; e9 06 ff
     10682send_to_mouse_ctrl_:                         ; 0xf7333 LB 0x34
    1069810683    push bp                                   ; 55
    1069910684    mov bp, sp                                ; 89 e5
     
    1070610691    ; sub ah, ah                                ; 2a e4
    1070710692    test AL, strict byte 002h                 ; a8 02
    10708     je short 072feh                           ; 74 0e
     10693    je short 07352h                           ; 74 0e
    1070910694    push 008eeh                               ; 68 ee 08
    1071010695    push 01168h                               ; 68 68 11
    1071110696    push strict byte 00007h                   ; 6a 07
    10712     call 01966h                               ; e8 6b a6
     10697    call 01966h                               ; e8 17 a6
    1071310698    add sp, strict byte 00006h                ; 83 c4 06
    1071410699    mov AL, strict byte 0d4h                  ; b0 d4
     
    1072410709    pop bp                                    ; 5d
    1072510710    retn                                      ; c3
    10726 get_mouse_data_:                             ; 0xf7313 LB 0x5d
     10711get_mouse_data_:                             ; 0xf7367 LB 0x5d
    1072710712    push bp                                   ; 55
    1072810713    mov bp, sp                                ; 89 e5
     
    1073910724    and ax, strict word 00021h                ; 25 21 00
    1074010725    cmp ax, strict word 00021h                ; 3d 21 00
    10741     je short 07356h                           ; 74 28
     10726    je short 073aah                           ; 74 28
    1074210727    test cx, cx                               ; 85 c9
    10743     je short 07356h                           ; 74 24
     10728    je short 073aah                           ; 74 24
    1074410729    mov dx, strict word 00061h                ; ba 61 00
    1074510730    in AL, DX                                 ; ec
     
    1075810743    xor ah, ah                                ; 30 e4
    1075910744    cmp dx, ax                                ; 39 c2
    10760     je short 0733dh                           ; 74 ea
     10745    je short 07391h                           ; 74 ea
    1076110746    dec cx                                    ; 49
    10762     jmp short 07320h                          ; eb ca
     10747    jmp short 07374h                          ; eb ca
    1076310748    test cx, cx                               ; 85 c9
    10764     jne short 0735eh                          ; 75 04
     10749    jne short 073b2h                          ; 75 04
    1076510750    mov AL, strict byte 001h                  ; b0 01
    10766     jmp short 07369h                          ; eb 0b
     10751    jmp short 073bdh                          ; eb 0b
    1076710752    mov dx, strict word 00060h                ; ba 60 00
    1076810753    in AL, DX                                 ; ec
     
    1077610761    pop bp                                    ; 5d
    1077710762    retn                                      ; c3
    10778 set_kbd_command_byte_:                       ; 0xf7370 LB 0x32
     10763set_kbd_command_byte_:                       ; 0xf73c4 LB 0x32
    1077910764    push bp                                   ; 55
    1078010765    mov bp, sp                                ; 89 e5
     
    1078710772    ; sub ah, ah                                ; 2a e4
    1078810773    test AL, strict byte 002h                 ; a8 02
    10789     je short 0738fh                           ; 74 0e
     10774    je short 073e3h                           ; 74 0e
    1079010775    push 008f8h                               ; 68 f8 08
    1079110776    push 01168h                               ; 68 68 11
    1079210777    push strict byte 00007h                   ; 6a 07
    10793     call 01966h                               ; e8 da a5
     10778    call 01966h                               ; e8 86 a5
    1079410779    add sp, strict byte 00006h                ; 83 c4 06
    1079510780    mov AL, strict byte 060h                  ; b0 60
     
    1080410789    pop bp                                    ; 5d
    1080510790    retn                                      ; c3
    10806 _int74_function:                             ; 0xf73a2 LB 0xd2
     10791_int74_function:                             ; 0xf73f6 LB 0xd2
    1080710792    push bp                                   ; 55
    1080810793    mov bp, sp                                ; 89 e5
     
    1081010795    mov dx, strict word 0000eh                ; ba 0e 00
    1081110796    mov ax, strict word 00040h                ; b8 40 00
    10812     call 0166ch                               ; e8 bb a2
     10797    call 0166ch                               ; e8 67 a2
    1081310798    mov cx, ax                                ; 89 c1
    1081410799    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1081910804    and AL, strict byte 021h                  ; 24 21
    1082010805    cmp AL, strict byte 021h                  ; 3c 21
    10821     jne short 073e6h                          ; 75 22
     10806    jne short 0743ah                          ; 75 22
    1082210807    mov dx, strict word 00060h                ; ba 60 00
    1082310808    in AL, DX                                 ; ec
     
    1082710812    mov dx, strict word 00026h                ; ba 26 00
    1082810813    mov ax, cx                                ; 89 c8
    10829     call 01650h                               ; e8 7c a2
     10814    call 01650h                               ; e8 28 a2
    1083010815    mov byte [bp-002h], al                    ; 88 46 fe
    1083110816    mov dx, strict word 00027h                ; ba 27 00
    1083210817    mov ax, cx                                ; 89 c8
    10833     call 01650h                               ; e8 71 a2
     10818    call 01650h                               ; e8 1d a2
    1083410819    mov byte [bp-006h], al                    ; 88 46 fa
    1083510820    test AL, strict byte 080h                 ; a8 80
    10836     jne short 073e9h                          ; 75 03
    10837     jmp near 07460h                           ; e9 77 00
     10821    jne short 0743dh                          ; 75 03
     10822    jmp near 074b4h                           ; e9 77 00
    1083810823    mov al, byte [bp-006h]                    ; 8a 46 fa
    1083910824    and AL, strict byte 007h                  ; 24 07
     
    1084910834    add dx, strict byte 00028h                ; 83 c2 28
    1085010835    mov ax, cx                                ; 89 c8
    10851     call 0165eh                               ; e8 52 a2
     10836    call 0165eh                               ; e8 fe a1
    1085210837    mov al, byte [bp-008h]                    ; 8a 46 f8
    1085310838    cmp al, byte [bp-004h]                    ; 3a 46 fc
    10854     jc short 07450h                           ; 72 3c
     10839    jc short 074a4h                           ; 72 3c
    1085510840    mov dx, strict word 00028h                ; ba 28 00
    1085610841    mov ax, cx                                ; 89 c8
    10857     call 01650h                               ; e8 34 a2
     10842    call 01650h                               ; e8 e0 a1
    1085810843    xor ah, ah                                ; 30 e4
    1085910844    mov word [bp+00ch], ax                    ; 89 46 0c
    1086010845    mov dx, strict word 00029h                ; ba 29 00
    1086110846    mov ax, cx                                ; 89 c8
    10862     call 01650h                               ; e8 27 a2
     10847    call 01650h                               ; e8 d3 a1
    1086310848    xor ah, ah                                ; 30 e4
    1086410849    mov word [bp+00ah], ax                    ; 89 46 0a
    1086510850    mov dx, strict word 0002ah                ; ba 2a 00
    1086610851    mov ax, cx                                ; 89 c8
    10867     call 01650h                               ; e8 1a a2
     10852    call 01650h                               ; e8 c6 a1
    1086810853    xor ah, ah                                ; 30 e4
    1086910854    mov word [bp+008h], ax                    ; 89 46 08
     
    1087210857    mov byte [bp-002h], ah                    ; 88 66 fe
    1087310858    test byte [bp-006h], 080h                 ; f6 46 fa 80
    10874     je short 07453h                           ; 74 0a
     10859    je short 074a7h                           ; 74 0a
    1087510860    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10876     jmp short 07453h                          ; eb 03
     10861    jmp short 074a7h                          ; eb 03
    1087710862    inc byte [bp-002h]                        ; fe 46 fe
    1087810863    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1088010865    mov dx, strict word 00026h                ; ba 26 00
    1088110866    mov ax, cx                                ; 89 c8
    10882     call 0165eh                               ; e8 fe a1
     10867    call 0165eh                               ; e8 aa a1
    1088310868    mov sp, bp                                ; 89 ec
    1088410869    pop bp                                    ; 5d
    1088510870    retn                                      ; c3
    10886     mov BH, strict byte 074h                  ; b7 74
    10887     xor si, word [di-050h]                    ; 33 75 b0
    10888     jne short 074b0h                          ; 75 45
    10889     jbe short 0741eh                          ; 76 b1
    10890     jbe short 0746dh                          ; 76 fe
    10891     je short 0744ah                           ; 74 d9
    10892     jbe short 07411h                          ; 76 9e
     10871    or si, word [di-079h]                     ; 0b 75 87
     10872    jne short 074c1h                          ; 75 04
     10873    jbe short 07458h                          ; 76 99
     10874    jbe short 074c6h                          ; 76 05
     10875    jnbe short 07515h                         ; 77 52
     10876    jne short 074f2h                          ; 75 2d
     10877    jnbe short 074b9h                         ; 77 f2
    1089310878    db  077h
    10894 _int15_function_mouse:                       ; 0xf7474 LB 0x38d
     10879_int15_function_mouse:                       ; 0xf74c8 LB 0x38d
    1089510880    push bp                                   ; 55
    1089610881    mov bp, sp                                ; 89 e5
     
    1089910884    mov dx, strict word 0000eh                ; ba 0e 00
    1090010885    mov ax, strict word 00040h                ; b8 40 00
    10901     call 0166ch                               ; e8 e8 a1
     10886    call 0166ch                               ; e8 94 a1
    1090210887    mov cx, ax                                ; 89 c1
    1090310888    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10904     jbe short 07497h                          ; 76 0b
     10889    jbe short 074ebh                          ; 76 0b
    1090510890    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1090610891    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10907     jmp near 077fbh                           ; e9 64 03
     10892    jmp near 0784fh                           ; e9 64 03
    1090810893    mov ax, strict word 00065h                ; b8 65 00
    10909     call 07370h                               ; e8 d3 fe
     10894    call 073c4h                               ; e8 d3 fe
    1091010895    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1091110896    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1091210897    mov al, byte [bp+012h]                    ; 8a 46 12
    1091310898    cmp AL, strict byte 007h                  ; 3c 07
    10914     jnbe short 0750ch                         ; 77 60
     10899    jnbe short 07560h                         ; 77 60
    1091510900    xor ah, ah                                ; 30 e4
    1091610901    mov si, ax                                ; 89 c6
    1091710902    add si, ax                                ; 01 c6
    10918     jmp word [cs:si+07464h]                   ; 2e ff a4 64 74
     10903    jmp word [cs:si+074b8h]                   ; 2e ff a4 b8 74
    1091910904    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10920     jnbe short 0750fh                         ; 77 52
     10905    jnbe short 07563h                         ; 77 52
    1092110906    mov dx, strict word 00027h                ; ba 27 00
    1092210907    mov ax, cx                                ; 89 c8
    10923     call 01650h                               ; e8 8b a1
     10908    call 01650h                               ; e8 37 a1
    1092410909    test AL, strict byte 080h                 ; a8 80
    10925     jne short 074d4h                          ; 75 0b
     10910    jne short 07528h                          ; 75 0b
    1092610911    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1092710912    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10928     jmp near 077f5h                           ; e9 21 03
     10913    jmp near 07849h                           ; e9 21 03
    1092910914    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    10930     jne short 074deh                          ; 75 04
     10915    jne short 07532h                          ; 75 04
    1093110916    mov AL, strict byte 0f5h                  ; b0 f5
    10932     jmp short 074e0h                          ; eb 02
     10917    jmp short 07534h                          ; eb 02
    1093310918    mov AL, strict byte 0f4h                  ; b0 f4
    1093410919    xor ah, ah                                ; 30 e4
    10935     call 072dfh                               ; e8 fa fd
     10920    call 07333h                               ; e8 fa fd
    1093610921    test al, al                               ; 84 c0
    10937     jne short 07512h                          ; 75 29
     10922    jne short 07566h                          ; 75 29
    1093810923    mov dx, ss                                ; 8c d2
    1093910924    lea ax, [bp-008h]                         ; 8d 46 f8
    10940     call 07313h                               ; e8 22 fe
     10925    call 07367h                               ; e8 22 fe
    1094110926    test al, al                               ; 84 c0
    10942     je short 074fbh                           ; 74 06
     10927    je short 0754fh                           ; 74 06
    1094310928    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10944     jne short 07512h                          ; 75 17
    10945     jmp near 077f5h                           ; e9 f7 02
     10929    jne short 07566h                          ; 75 17
     10930    jmp near 07849h                           ; e9 f7 02
    1094610931    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1094710932    cmp AL, strict byte 001h                  ; 3c 01
    10948     jc short 07509h                           ; 72 04
     10933    jc short 0755dh                           ; 72 04
    1094910934    cmp AL, strict byte 008h                  ; 3c 08
    10950     jbe short 07515h                          ; 76 0c
    10951     jmp near 076a7h                           ; e9 9b 01
    10952     jmp near 077e2h                           ; e9 d3 02
    10953     jmp near 077edh                           ; e9 db 02
    10954     jmp near 07779h                           ; e9 64 02
     10935    jbe short 07569h                          ; 76 0c
     10936    jmp near 076fbh                           ; e9 9b 01
     10937    jmp near 07836h                           ; e9 d3 02
     10938    jmp near 07841h                           ; e9 db 02
     10939    jmp near 077cdh                           ; e9 64 02
    1095510940    mov dx, strict word 00027h                ; ba 27 00
    1095610941    mov ax, cx                                ; 89 c8
    10957     call 01650h                               ; e8 33 a1
     10942    call 01650h                               ; e8 df a0
    1095810943    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1095910944    db  0feh, 0cch
     
    1096510950    mov dx, strict word 00027h                ; ba 27 00
    1096610951    mov ax, cx                                ; 89 c8
    10967     call 0165eh                               ; e8 2b a1
     10952    call 0165eh                               ; e8 d7 a0
    1096810953    mov dx, strict word 00026h                ; ba 26 00
    1096910954    mov ax, cx                                ; 89 c8
    10970     call 01650h                               ; e8 15 a1
     10955    call 01650h                               ; e8 c1 a0
    1097110956    mov bl, al                                ; 88 c3
    1097210957    and bl, 0f8h                              ; 80 e3 f8
     
    1097410959    mov dx, strict word 00026h                ; ba 26 00
    1097510960    mov ax, cx                                ; 89 c8
    10976     call 0165eh                               ; e8 14 a1
     10961    call 0165eh                               ; e8 c0 a0
    1097710962    mov ax, 000ffh                            ; b8 ff 00
    10978     call 072dfh                               ; e8 8f fd
     10963    call 07333h                               ; e8 8f fd
    1097910964    test al, al                               ; 84 c0
    10980     jne short 07512h                          ; 75 be
     10965    jne short 07566h                          ; 75 be
    1098110966    mov dx, ss                                ; 8c d2
    1098210967    lea ax, [bp-004h]                         ; 8d 46 fc
    10983     call 07313h                               ; e8 b7 fd
     10968    call 07367h                               ; e8 b7 fd
    1098410969    mov cl, al                                ; 88 c1
    1098510970    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10986     jne short 0756eh                          ; 75 0a
     10971    jne short 075c2h                          ; 75 0a
    1098710972    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1098810973    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10989     jmp short 074fbh                          ; eb 8d
     10974    jmp short 0754fh                          ; eb 8d
    1099010975    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10991     je short 07585h                           ; 74 11
     10976    je short 075d9h                           ; 74 11
    1099210977    mov al, byte [bp-004h]                    ; 8a 46 fc
    1099310978    xor ah, ah                                ; 30 e4
     
    1099510980    push 00903h                               ; 68 03 09
    1099610981    push strict byte 00007h                   ; 6a 07
    10997     call 01966h                               ; e8 e4 a3
     10982    call 01966h                               ; e8 90 a3
    1099810983    add sp, strict byte 00006h                ; 83 c4 06
    1099910984    test cl, cl                               ; 84 c9
    11000     jne short 07512h                          ; 75 89
     10985    jne short 07566h                          ; 75 89
    1100110986    mov dx, ss                                ; 8c d2
    1100210987    lea ax, [bp-008h]                         ; 8d 46 f8
    11003     call 07313h                               ; e8 82 fd
     10988    call 07367h                               ; e8 82 fd
    1100410989    test al, al                               ; 84 c0
    11005     jne short 075ebh                          ; 75 56
     10990    jne short 0763fh                          ; 75 56
    1100610991    mov dx, ss                                ; 8c d2
    1100710992    lea ax, [bp-006h]                         ; 8d 46 fa
    11008     call 07313h                               ; e8 76 fd
     10993    call 07367h                               ; e8 76 fd
    1100910994    test al, al                               ; 84 c0
    11010     jne short 075ebh                          ; 75 4a
     10995    jne short 0763fh                          ; 75 4a
    1101110996    mov al, byte [bp-008h]                    ; 8a 46 f8
    1101210997    mov byte [bp+00ch], al                    ; 88 46 0c
    1101310998    mov al, byte [bp-006h]                    ; 8a 46 fa
    1101410999    mov byte [bp+00dh], al                    ; 88 46 0d
    11015     jmp near 077f5h                           ; e9 45 02
     11000    jmp near 07849h                           ; e9 45 02
    1101611001    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1101711002    cmp AL, strict byte 003h                  ; 3c 03
    11018     jc short 075c7h                           ; 72 10
    11019     jbe short 075e5h                          ; 76 2c
     11003    jc short 0761bh                           ; 72 10
     11004    jbe short 07639h                          ; 76 2c
    1102011005    cmp AL, strict byte 006h                  ; 3c 06
    11021     je short 075fah                           ; 74 3d
     11006    je short 0764eh                           ; 74 3d
    1102211007    cmp AL, strict byte 005h                  ; 3c 05
    11023     je short 075f4h                           ; 74 33
     11008    je short 07648h                           ; 74 33
    1102411009    cmp AL, strict byte 004h                  ; 3c 04
    11025     je short 075eeh                           ; 74 29
    11026     jmp short 07600h                          ; eb 39
     11010    je short 07642h                           ; 74 29
     11011    jmp short 07654h                          ; eb 39
    1102711012    cmp AL, strict byte 002h                  ; 3c 02
    11028     je short 075dfh                           ; 74 14
     11013    je short 07633h                           ; 74 14
    1102911014    cmp AL, strict byte 001h                  ; 3c 01
    11030     je short 075d9h                           ; 74 0a
     11015    je short 0762dh                           ; 74 0a
    1103111016    test al, al                               ; 84 c0
    11032     jne short 07600h                          ; 75 2d
     11017    jne short 07654h                          ; 75 2d
    1103311018    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    11034     jmp short 07604h                          ; eb 2b
     11019    jmp short 07658h                          ; eb 2b
    1103511020    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    11036     jmp short 07604h                          ; eb 25
     11021    jmp short 07658h                          ; eb 25
    1103711022    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    11038     jmp short 07604h                          ; eb 1f
     11023    jmp short 07658h                          ; eb 1f
    1103911024    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    11040     jmp short 07604h                          ; eb 19
    11041     jmp near 07779h                           ; e9 8b 01
     11025    jmp short 07658h                          ; eb 19
     11026    jmp near 077cdh                           ; e9 8b 01
    1104211027    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    11043     jmp short 07604h                          ; eb 10
     11028    jmp short 07658h                          ; eb 10
    1104411029    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    11045     jmp short 07604h                          ; eb 0a
     11030    jmp short 07658h                          ; eb 0a
    1104611031    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    11047     jmp short 07604h                          ; eb 04
     11032    jmp short 07658h                          ; eb 04
    1104811033    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1104911034    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    11050     jbe short 0763ah                          ; 76 30
     11035    jbe short 0768eh                          ; 76 30
    1105111036    mov ax, 000f3h                            ; b8 f3 00
    11052     call 072dfh                               ; e8 cf fc
     11037    call 07333h                               ; e8 cf fc
    1105311038    test al, al                               ; 84 c0
    11054     jne short 0762fh                          ; 75 1b
     11039    jne short 07683h                          ; 75 1b
    1105511040    mov dx, ss                                ; 8c d2
    1105611041    lea ax, [bp-006h]                         ; 8d 46 fa
    11057     call 07313h                               ; e8 f7 fc
     11042    call 07367h                               ; e8 f7 fc
    1105811043    mov al, byte [bp-008h]                    ; 8a 46 f8
    1105911044    xor ah, ah                                ; 30 e4
    11060     call 072dfh                               ; e8 bb fc
     11045    call 07333h                               ; e8 bb fc
    1106111046    mov dx, ss                                ; 8c d2
    1106211047    lea ax, [bp-006h]                         ; 8d 46 fa
    11063     call 07313h                               ; e8 e7 fc
    11064     jmp near 077f5h                           ; e9 c6 01
     11048    call 07367h                               ; e8 e7 fc
     11049    jmp near 07849h                           ; e9 c6 01
    1106511050    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1106611051    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11067     jmp near 077f5h                           ; e9 bb 01
     11052    jmp near 07849h                           ; e9 bb 01
    1106811053    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1106911054    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11070     jmp near 077f5h                           ; e9 b0 01
     11055    jmp near 07849h                           ; e9 b0 01
    1107111056    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11072     jnc short 076a7h                          ; 73 5c
     11057    jnc short 076fbh                          ; 73 5c
    1107311058    mov ax, 000e8h                            ; b8 e8 00
    11074     call 072dfh                               ; e8 8e fc
     11059    call 07333h                               ; e8 8e fc
    1107511060    test al, al                               ; 84 c0
    11076     jne short 0769dh                          ; 75 48
     11061    jne short 076f1h                          ; 75 48
    1107711062    mov dx, ss                                ; 8c d2
    1107811063    lea ax, [bp-008h]                         ; 8d 46 f8
    11079     call 07313h                               ; e8 b6 fc
     11064    call 07367h                               ; e8 b6 fc
    1108011065    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11081     je short 07674h                           ; 74 11
     11066    je short 076c8h                           ; 74 11
    1108211067    mov al, byte [bp-008h]                    ; 8a 46 f8
    1108311068    xor ah, ah                                ; 30 e4
     
    1108511070    push 0092eh                               ; 68 2e 09
    1108611071    push strict byte 00007h                   ; 6a 07
    11087     call 01966h                               ; e8 f5 a2
     11072    call 01966h                               ; e8 a1 a2
    1108811073    add sp, strict byte 00006h                ; 83 c4 06
    1108911074    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1109011075    xor ah, ah                                ; 30 e4
    11091     call 072dfh                               ; e8 63 fc
     11076    call 07333h                               ; e8 63 fc
    1109211077    mov dx, ss                                ; 8c d2
    1109311078    lea ax, [bp-008h]                         ; 8d 46 f8
    11094     call 07313h                               ; e8 8f fc
     11079    call 07367h                               ; e8 8f fc
    1109511080    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11096     je short 076d6h                           ; 74 4c
     11081    je short 0772ah                           ; 74 4c
    1109711082    mov al, byte [bp-008h]                    ; 8a 46 f8
    1109811083    xor ah, ah                                ; 30 e4
     
    1110011085    push 0092eh                               ; 68 2e 09
    1110111086    push strict byte 00007h                   ; 6a 07
    11102     call 01966h                               ; e8 ce a2
     11087    call 01966h                               ; e8 7a a2
    1110311088    add sp, strict byte 00006h                ; 83 c4 06
    11104     jmp short 076d6h                          ; eb 39
     11089    jmp short 0772ah                          ; eb 39
    1110511090    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110611091    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11107     jmp short 076d6h                          ; eb 2f
     11092    jmp short 0772ah                          ; eb 2f
    1110811093    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1110911094    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11110     jmp short 076d6h                          ; eb 25
     11095    jmp short 0772ah                          ; eb 25
    1111111096    mov ax, 000f2h                            ; b8 f2 00
    11112     call 072dfh                               ; e8 28 fc
     11097    call 07333h                               ; e8 28 fc
    1111311098    test al, al                               ; 84 c0
    11114     jne short 076ceh                          ; 75 13
     11099    jne short 07722h                          ; 75 13
    1111511100    mov dx, ss                                ; 8c d2
    1111611101    lea ax, [bp-008h]                         ; 8d 46 f8
    11117     call 07313h                               ; e8 50 fc
     11102    call 07367h                               ; e8 50 fc
    1111811103    mov dx, ss                                ; 8c d2
    1111911104    lea ax, [bp-006h]                         ; 8d 46 fa
    11120     call 07313h                               ; e8 48 fc
    11121     jmp near 075a7h                           ; e9 d9 fe
     11105    call 07367h                               ; e8 48 fc
     11106    jmp near 075fbh                           ; e9 d9 fe
    1112211107    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1112311108    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11124     jmp near 077f5h                           ; e9 1c 01
     11109    jmp near 07849h                           ; e9 1c 01
    1112511110    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1112611111    test al, al                               ; 84 c0
    11127     jbe short 076e7h                          ; 76 07
     11112    jbe short 0773bh                          ; 76 07
    1112811113    cmp AL, strict byte 002h                  ; 3c 02
    11129     jbe short 0774eh                          ; 76 6a
    11130     jmp near 07783h                           ; e9 9c 00
     11114    jbe short 077a2h                          ; 76 6a
     11115    jmp near 077d7h                           ; e9 9c 00
    1113111116    mov ax, 000e9h                            ; b8 e9 00
    11132     call 072dfh                               ; e8 f2 fb
     11117    call 07333h                               ; e8 f2 fb
    1113311118    test al, al                               ; 84 c0
    11134     jne short 07757h                          ; 75 66
     11119    jne short 077abh                          ; 75 66
    1113511120    mov dx, ss                                ; 8c d2
    1113611121    lea ax, [bp-008h]                         ; 8d 46 f8
    11137     call 07313h                               ; e8 1a fc
     11122    call 07367h                               ; e8 1a fc
    1113811123    mov cl, al                                ; 88 c1
    1113911124    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11140     je short 07712h                           ; 74 11
     11125    je short 07766h                           ; 74 11
    1114111126    mov al, byte [bp-008h]                    ; 8a 46 f8
    1114211127    xor ah, ah                                ; 30 e4
     
    1114411129    push 0092eh                               ; 68 2e 09
    1114511130    push strict byte 00007h                   ; 6a 07
    11146     call 01966h                               ; e8 57 a2
     11131    call 01966h                               ; e8 03 a2
    1114711132    add sp, strict byte 00006h                ; 83 c4 06
    1114811133    test cl, cl                               ; 84 c9
    11149     jne short 07779h                          ; 75 63
     11134    jne short 077cdh                          ; 75 63
    1115011135    mov dx, ss                                ; 8c d2
    1115111136    lea ax, [bp-008h]                         ; 8d 46 f8
    11152     call 07313h                               ; e8 f5 fb
     11137    call 07367h                               ; e8 f5 fb
    1115311138    test al, al                               ; 84 c0
    11154     jne short 07779h                          ; 75 57
     11139    jne short 077cdh                          ; 75 57
    1115511140    mov dx, ss                                ; 8c d2
    1115611141    lea ax, [bp-006h]                         ; 8d 46 fa
    11157     call 07313h                               ; e8 e9 fb
     11142    call 07367h                               ; e8 e9 fb
    1115811143    test al, al                               ; 84 c0
    11159     jne short 07779h                          ; 75 4b
     11144    jne short 077cdh                          ; 75 4b
    1116011145    mov dx, ss                                ; 8c d2
    1116111146    lea ax, [bp-004h]                         ; 8d 46 fc
    11162     call 07313h                               ; e8 dd fb
     11147    call 07367h                               ; e8 dd fb
    1116311148    test al, al                               ; 84 c0
    11164     jne short 07779h                          ; 75 3f
     11149    jne short 077cdh                          ; 75 3f
    1116511150    mov al, byte [bp-008h]                    ; 8a 46 f8
    1116611151    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1116911154    mov al, byte [bp-004h]                    ; 8a 46 fc
    1117011155    mov byte [bp+00eh], al                    ; 88 46 0e
    11171     jmp short 076d6h                          ; eb 88
     11156    jmp short 0772ah                          ; eb 88
    1117211157    cmp AL, strict byte 001h                  ; 3c 01
    11173     jne short 07759h                          ; 75 07
     11158    jne short 077adh                          ; 75 07
    1117411159    mov ax, 000e6h                            ; b8 e6 00
    11175     jmp short 0775ch                          ; eb 05
    11176     jmp short 07779h                          ; eb 20
     11160    jmp short 077b0h                          ; eb 05
     11161    jmp short 077cdh                          ; eb 20
    1117711162    mov ax, 000e7h                            ; b8 e7 00
    11178     call 072dfh                               ; e8 80 fb
     11163    call 07333h                               ; e8 80 fb
    1117911164    mov cl, al                                ; 88 c1
    1118011165    test cl, cl                               ; 84 c9
    11181     jne short 07775h                          ; 75 10
     11166    jne short 077c9h                          ; 75 10
    1118211167    mov dx, ss                                ; 8c d2
    1118311168    lea ax, [bp-008h]                         ; 8d 46 f8
    11184     call 07313h                               ; e8 a6 fb
     11169    call 07367h                               ; e8 a6 fb
    1118511170    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11186     je short 07775h                           ; 74 02
     11171    je short 077c9h                           ; 74 02
    1118711172    mov CL, strict byte 001h                  ; b1 01
    1118811173    test cl, cl                               ; 84 c9
    11189     je short 077e0h                           ; 74 67
     11174    je short 07834h                           ; 74 67
    1119011175    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1119111176    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11192     jmp short 077e0h                          ; eb 5d
     11177    jmp short 07834h                          ; eb 5d
    1119311178    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1119411179    xor ah, ah                                ; 30 e4
     
    1119611181    push 0095ah                               ; 68 5a 09
    1119711182    push strict byte 00007h                   ; 6a 07
    11198     call 01966h                               ; e8 d5 a1
     11183    call 01966h                               ; e8 81 a1
    1119911184    add sp, strict byte 00006h                ; 83 c4 06
    1120011185    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1120111186    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11202     jmp short 077f5h                          ; eb 57
     11187    jmp short 07849h                          ; eb 57
    1120311188    mov si, word [bp+00ch]                    ; 8b 76 0c
    1120411189    mov bx, si                                ; 89 f3
    1120511190    mov dx, strict word 00022h                ; ba 22 00
    1120611191    mov ax, cx                                ; 89 c8
    11207     call 0167ah                               ; e8 cf 9e
     11192    call 0167ah                               ; e8 7b 9e
    1120811193    mov bx, word [bp+014h]                    ; 8b 5e 14
    1120911194    mov dx, strict word 00024h                ; ba 24 00
    1121011195    mov ax, cx                                ; 89 c8
    11211     call 0167ah                               ; e8 c4 9e
     11196    call 0167ah                               ; e8 70 9e
    1121211197    mov dx, strict word 00027h                ; ba 27 00
    1121311198    mov ax, cx                                ; 89 c8
    11214     call 01650h                               ; e8 92 9e
     11199    call 01650h                               ; e8 3e 9e
    1121511200    mov ah, al                                ; 88 c4
    1121611201    test si, si                               ; 85 f6
    11217     jne short 077d2h                          ; 75 0e
     11202    jne short 07826h                          ; 75 0e
    1121811203    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11219     jne short 077d2h                          ; 75 08
     11204    jne short 07826h                          ; 75 08
    1122011205    test AL, strict byte 080h                 ; a8 80
    11221     je short 077d4h                           ; 74 06
     11206    je short 07828h                           ; 74 06
    1122211207    and AL, strict byte 07fh                  ; 24 7f
    11223     jmp short 077d4h                          ; eb 02
     11208    jmp short 07828h                          ; eb 02
    1122411209    or AL, strict byte 080h                   ; 0c 80
    1122511210    mov bl, al                                ; 88 c3
     
    1122711212    mov dx, strict word 00027h                ; ba 27 00
    1122811213    mov ax, cx                                ; 89 c8
    11229     call 0165eh                               ; e8 7e 9e
    11230     jmp short 077f5h                          ; eb 13
     11214    call 0165eh                               ; e8 2a 9e
     11215    jmp short 07849h                          ; eb 13
    1123111216    push 00974h                               ; 68 74 09
    1123211217    push strict byte 00007h                   ; 6a 07
    11233     call 01966h                               ; e8 7c a1
     11218    call 01966h                               ; e8 28 a1
    1123411219    add sp, strict byte 00004h                ; 83 c4 04
    1123511220    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123611221    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1123711222    mov ax, strict word 00047h                ; b8 47 00
    11238     call 07370h                               ; e8 75 fb
     11223    call 073c4h                               ; e8 75 fb
    1123911224    lea sp, [bp-002h]                         ; 8d 66 fe
    1124011225    pop si                                    ; 5e
    1124111226    pop bp                                    ; 5d
    1124211227    retn                                      ; c3
    11243 _int17_function:                             ; 0xf7801 LB 0xaf
     11228_int17_function:                             ; 0xf7855 LB 0xaf
    1124411229    push bp                                   ; 55
    1124511230    mov bp, sp                                ; 89 e5
     
    1125111236    add dx, strict byte 00008h                ; 83 c2 08
    1125211237    mov ax, strict word 00040h                ; b8 40 00
    11253     call 0166ch                               ; e8 57 9e
     11238    call 0166ch                               ; e8 03 9e
    1125411239    mov bx, ax                                ; 89 c3
    1125511240    mov si, ax                                ; 89 c6
    1125611241    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11257     jnc short 0782bh                          ; 73 0c
     11242    jnc short 0787fh                          ; 73 0c
    1125811243    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1125911244    cmp ax, strict word 00003h                ; 3d 03 00
    11260     jnc short 0782bh                          ; 73 04
     11245    jnc short 0787fh                          ; 73 04
    1126111246    test bx, bx                               ; 85 db
    11262     jnbe short 0782eh                         ; 77 03
    11263     jmp near 078a6h                           ; e9 78 00
     11247    jnbe short 07882h                         ; 77 03
     11248    jmp near 078fah                           ; e9 78 00
    1126411249    mov dx, ax                                ; 89 c2
    1126511250    add dx, strict byte 00078h                ; 83 c2 78
    1126611251    mov ax, strict word 00040h                ; b8 40 00
    11267     call 01650h                               ; e8 17 9e
     11252    call 01650h                               ; e8 c3 9d
    1126811253    xor ah, ah                                ; 30 e4
    1126911254    mov cx, ax                                ; 89 c1
    1127011255    sal cx, 008h                              ; c1 e1 08
    1127111256    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11272     jne short 07872h                          ; 75 2c
     11257    jne short 078c6h                          ; 75 2c
    1127311258    mov al, byte [bp+012h]                    ; 8a 46 12
    1127411259    mov dx, bx                                ; 89 da
     
    1129011275    ; sub ah, ah                                ; 2a e4
    1129111276    test AL, strict byte 040h                 ; a8 40
    11292     je short 07872h                           ; 74 07
     11277    je short 078c6h                           ; 74 07
    1129311278    test cx, cx                               ; 85 c9
    11294     je short 07872h                           ; 74 03
     11279    je short 078c6h                           ; 74 03
    1129511280    dec cx                                    ; 49
    11296     jmp short 07861h                          ; eb ef
     11281    jmp short 078b5h                          ; eb ef
    1129711282    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11298     jne short 0788dh                          ; 75 15
     11283    jne short 078e1h                          ; 75 15
    1129911284    lea dx, [si+002h]                         ; 8d 54 02
    1130011285    in AL, DX                                 ; ec
     
    1131511300    mov byte [bp+013h], al                    ; 88 46 13
    1131611301    test cx, cx                               ; 85 c9
    11317     jne short 078a0h                          ; 75 04
     11302    jne short 078f4h                          ; 75 04
    1131811303    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1131911304    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11320     jmp short 078aah                          ; eb 04
     11305    jmp short 078feh                          ; eb 04
    1132111306    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1132211307    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1132411309    pop bp                                    ; 5d
    1132511310    retn                                      ; c3
    11326 wait_:                                       ; 0xf78b0 LB 0xaf
     11311wait_:                                       ; 0xf7904 LB 0xaf
    1132711312    push bp                                   ; 55
    1132811313    mov bp, sp                                ; 89 e5
     
    1134211327    mov dx, 0046ch                            ; ba 6c 04
    1134311328    xor ax, ax                                ; 31 c0
    11344     call 01688h                               ; e8 b5 9d
     11329    call 01688h                               ; e8 61 9d
    1134511330    mov word [bp-010h], ax                    ; 89 46 f0
    1134611331    mov bx, dx                                ; 89 d3
     
    1134811333    mov dx, 0046ch                            ; ba 6c 04
    1134911334    xor ax, ax                                ; 31 c0
    11350     call 01688h                               ; e8 a7 9d
     11335    call 01688h                               ; e8 53 9d
    1135111336    mov word [bp-012h], ax                    ; 89 46 ee
    1135211337    mov di, dx                                ; 89 d7
    1135311338    cmp dx, bx                                ; 39 da
    11354     jnbe short 078f1h                         ; 77 07
    11355     jne short 078f8h                          ; 75 0c
     11339    jnbe short 07945h                         ; 77 07
     11340    jne short 0794ch                          ; 75 0c
    1135611341    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11357     jbe short 078f8h                          ; 76 07
     11342    jbe short 0794ch                          ; 76 07
    1135811343    sub ax, word [bp-010h]                    ; 2b 46 f0
    1135911344    sbb dx, bx                                ; 19 da
    11360     jmp short 07903h                          ; eb 0b
     11345    jmp short 07957h                          ; eb 0b
    1136111346    cmp dx, bx                                ; 39 da
    11362     jc short 07903h                           ; 72 07
    11363     jne short 07907h                          ; 75 09
     11347    jc short 07957h                           ; 72 07
     11348    jne short 0795bh                          ; 75 09
    1136411349    cmp ax, word [bp-010h]                    ; 3b 46 f0
    11365     jnc short 07907h                          ; 73 04
     11350    jnc short 0795bh                          ; 73 04
    1136611351    sub si, ax                                ; 29 c6
    1136711352    sbb cx, dx                                ; 19 d1
     
    1137111356    mov ax, 00100h                            ; b8 00 01
    1137211357    int 016h                                  ; cd 16
    11373     je short 0791bh                           ; 74 05
     11358    je short 0796fh                           ; 74 05
    1137411359    mov AL, strict byte 001h                  ; b0 01
    11375     jmp near 0791dh                           ; e9 02 00
     11360    jmp near 07971h                           ; e9 02 00
    1137611361    db  032h, 0c0h
    1137711362    ; xor al, al                                ; 32 c0
    1137811363    test al, al                               ; 84 c0
    11379     je short 07944h                           ; 74 23
     11364    je short 07998h                           ; 74 23
    1138011365    db  033h, 0c0h
    1138111366    ; xor ax, ax                                ; 33 c0
     
    1138811373    push 00996h                               ; 68 96 09
    1138911374    push strict byte 00004h                   ; 6a 04
    11390     call 01966h                               ; e8 2f a0
     11375    call 01966h                               ; e8 db 9f
    1139111376    add sp, strict byte 00006h                ; 83 c4 06
    1139211377    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11393     je short 07944h                           ; 74 04
     11378    je short 07998h                           ; 74 04
    1139411379    mov al, dl                                ; 88 d0
    11395     jmp short 07956h                          ; eb 12
     11380    jmp short 079aah                          ; eb 12
    1139611381    test cx, cx                               ; 85 c9
    11397     jnle short 078d8h                         ; 7f 90
    11398     jne short 0794eh                          ; 75 04
     11382    jnle short 0792ch                         ; 7f 90
     11383    jne short 079a2h                          ; 75 04
    1139911384    test si, si                               ; 85 f6
    11400     jnbe short 078d8h                         ; 77 8a
     11385    jnbe short 0792ch                         ; 77 8a
    1140111386    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1140211387    push ax                                   ; 50
     
    1141011395    pop bp                                    ; 5d
    1141111396    retn                                      ; c3
    11412 read_logo_byte_:                             ; 0xf795f LB 0x16
     11397read_logo_byte_:                             ; 0xf79b3 LB 0x16
    1141311398    push bp                                   ; 55
    1141411399    mov bp, sp                                ; 89 e5
     
    1142511410    pop bp                                    ; 5d
    1142611411    retn                                      ; c3
    11427 read_logo_word_:                             ; 0xf7975 LB 0x14
     11412read_logo_word_:                             ; 0xf79c9 LB 0x14
    1142811413    push bp                                   ; 55
    1142911414    mov bp, sp                                ; 89 e5
     
    1143811423    pop bp                                    ; 5d
    1143911424    retn                                      ; c3
    11440 print_detected_harddisks_:                   ; 0xf7989 LB 0x13a
     11425print_detected_harddisks_:                   ; 0xf79dd LB 0x13a
    1144111426    push bp                                   ; 55
    1144211427    mov bp, sp                                ; 89 e5
     
    1145011435    mov dx, strict word 0000eh                ; ba 0e 00
    1145111436    mov ax, strict word 00040h                ; b8 40 00
    11452     call 0166ch                               ; e8 d0 9c
     11437    call 0166ch                               ; e8 7c 9c
    1145311438    mov si, ax                                ; 89 c6
    1145411439    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1145611441    xor ch, ch                                ; 30 ed
    1145711442    mov dx, 00304h                            ; ba 04 03
    11458     call 01650h                               ; e8 a4 9c
     11443    call 01650h                               ; e8 50 9c
    1145911444    mov byte [bp-00ch], al                    ; 88 46 f4
    1146011445    xor bl, bl                                ; 30 db
    1146111446    cmp bl, byte [bp-00ch]                    ; 3a 5e f4
    11462     jnc short 07a13h                          ; 73 5d
     11447    jnc short 07a67h                          ; 73 5d
    1146311448    mov al, bl                                ; 88 d8
    1146411449    xor ah, ah                                ; 30 e4
     
    1146611451    add dx, 00305h                            ; 81 c2 05 03
    1146711452    mov ax, si                                ; 89 f0
    11468     call 01650h                               ; e8 8b 9c
     11453    call 01650h                               ; e8 37 9c
    1146911454    mov bh, al                                ; 88 c7
    1147011455    cmp AL, strict byte 00ch                  ; 3c 0c
    11471     jc short 079f0h                           ; 72 25
     11456    jc short 07a44h                           ; 72 25
    1147211457    test cl, cl                               ; 84 c9
    11473     jne short 079dch                          ; 75 0d
     11458    jne short 07a30h                          ; 75 0d
    1147411459    push 009a7h                               ; 68 a7 09
    1147511460    push strict byte 00002h                   ; 6a 02
    11476     call 01966h                               ; e8 8f 9f
     11461    call 01966h                               ; e8 3b 9f
    1147711462    add sp, strict byte 00004h                ; 83 c4 04
    1147811463    mov CL, strict byte 001h                  ; b1 01
     
    1148311468    push 009bch                               ; 68 bc 09
    1148411469    push strict byte 00002h                   ; 6a 02
    11485     call 01966h                               ; e8 7c 9f
     11470    call 01966h                               ; e8 28 9f
    1148611471    add sp, strict byte 00006h                ; 83 c4 06
    11487     jmp near 07a90h                           ; e9 a0 00
     11472    jmp near 07ae4h                           ; e9 a0 00
    1148811473    cmp AL, strict byte 008h                  ; 3c 08
    11489     jc short 07a07h                           ; 72 13
     11474    jc short 07a5bh                           ; 72 13
    1149011475    test ch, ch                               ; 84 ed
    11491     jne short 07a05h                          ; 75 0d
     11476    jne short 07a59h                          ; 75 0d
    1149211477    push 009cfh                               ; 68 cf 09
    1149311478    push strict byte 00002h                   ; 6a 02
    11494     call 01966h                               ; e8 66 9f
     11479    call 01966h                               ; e8 12 9f
    1149511480    add sp, strict byte 00004h                ; 83 c4 04
    1149611481    mov CH, strict byte 001h                  ; b5 01
    11497     jmp short 079dch                          ; eb d5
     11482    jmp short 07a30h                          ; eb d5
    1149811483    cmp AL, strict byte 004h                  ; 3c 04
    11499     jnc short 07a27h                          ; 73 1c
     11484    jnc short 07a7bh                          ; 73 1c
    1150011485    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11501     je short 07a16h                           ; 74 05
    11502     jmp short 07a27h                          ; eb 14
    11503     jmp near 07a95h                           ; e9 7f 00
     11486    je short 07a6ah                           ; 74 05
     11487    jmp short 07a7bh                          ; eb 14
     11488    jmp near 07ae9h                           ; e9 7f 00
    1150411489    push 009e4h                               ; 68 e4 09
    1150511490    push strict byte 00002h                   ; 6a 02
    11506     call 01966h                               ; e8 48 9f
     11491    call 01966h                               ; e8 f4 9e
    1150711492    add sp, strict byte 00004h                ; 83 c4 04
    1150811493    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11509     jmp short 07a3dh                          ; eb 16
     11494    jmp short 07a91h                          ; eb 16
    1151011495    cmp bh, 004h                              ; 80 ff 04
    11511     jc short 07a3dh                           ; 72 11
     11496    jc short 07a91h                           ; 72 11
    1151211497    test cl, cl                               ; 84 c9
    11513     jne short 07a3dh                          ; 75 0d
     11498    jne short 07a91h                          ; 75 0d
    1151411499    push 009f6h                               ; 68 f6 09
    1151511500    push strict byte 00002h                   ; 6a 02
    11516     call 01966h                               ; e8 2e 9f
     11501    call 01966h                               ; e8 da 9e
    1151711502    add sp, strict byte 00004h                ; 83 c4 04
    1151811503    mov CL, strict byte 001h                  ; b1 01
     
    1152311508    push 00a0ah                               ; 68 0a 0a
    1152411509    push strict byte 00002h                   ; 6a 02
    11525     call 01966h                               ; e8 1b 9f
     11510    call 01966h                               ; e8 c7 9e
    1152611511    add sp, strict byte 00006h                ; 83 c4 06
    1152711512    cmp bh, 004h                              ; 80 ff 04
    11528     jc short 07a56h                           ; 72 03
     11513    jc short 07aaah                           ; 72 03
    1152911514    sub bh, 004h                              ; 80 ef 04
    1153011515    mov al, bh                                ; 88 f8
     
    1153511520    sar ax, 1                                 ; d1 f8
    1153611521    test ax, ax                               ; 85 c0
    11537     je short 07a68h                           ; 74 05
     11522    je short 07abch                           ; 74 05
    1153811523    push 00a14h                               ; 68 14 0a
    11539     jmp short 07a6bh                          ; eb 03
     11524    jmp short 07abfh                          ; eb 03
    1154011525    push 00a1fh                               ; 68 1f 0a
    1154111526    push strict byte 00002h                   ; 6a 02
    11542     call 01966h                               ; e8 f6 9e
     11527    call 01966h                               ; e8 a2 9e
    1154311528    add sp, strict byte 00004h                ; 83 c4 04
    1154411529    mov al, bh                                ; 88 f8
     
    1154811533    idiv di                                   ; f7 ff
    1154911534    test dx, dx                               ; 85 d2
    11550     je short 07a86h                           ; 74 05
     11535    je short 07adah                           ; 74 05
    1155111536    push 00a28h                               ; 68 28 0a
    11552     jmp short 07a89h                          ; eb 03
     11537    jmp short 07addh                          ; eb 03
    1155311538    push 00a2eh                               ; 68 2e 0a
    1155411539    push di                                   ; 57
    11555     call 01966h                               ; e8 d9 9e
     11540    call 01966h                               ; e8 85 9e
    1155611541    add sp, strict byte 00004h                ; 83 c4 04
    1155711542    db  0feh, 0c3h
    1155811543    ; inc bl                                    ; fe c3
    11559     jmp near 079b1h                           ; e9 1c ff
     11544    jmp near 07a05h                           ; e9 1c ff
    1156011545    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11561     jne short 07aaeh                          ; 75 13
     11546    jne short 07b02h                          ; 75 13
    1156211547    test cl, cl                               ; 84 c9
    11563     jne short 07aaeh                          ; 75 0f
     11548    jne short 07b02h                          ; 75 0f
    1156411549    test ch, ch                               ; 84 ed
    11565     jne short 07aaeh                          ; 75 0b
     11550    jne short 07b02h                          ; 75 0b
    1156611551    push 00a35h                               ; 68 35 0a
    1156711552    push strict byte 00002h                   ; 6a 02
    11568     call 01966h                               ; e8 bb 9e
     11553    call 01966h                               ; e8 67 9e
    1156911554    add sp, strict byte 00004h                ; 83 c4 04
    1157011555    push 00a49h                               ; 68 49 0a
    1157111556    push strict byte 00002h                   ; 6a 02
    11572     call 01966h                               ; e8 b0 9e
     11557    call 01966h                               ; e8 5c 9e
    1157311558    add sp, strict byte 00004h                ; 83 c4 04
    1157411559    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1158011565    pop bp                                    ; 5d
    1158111566    retn                                      ; c3
    11582 get_boot_drive_:                             ; 0xf7ac3 LB 0x28
     11567get_boot_drive_:                             ; 0xf7b17 LB 0x28
    1158311568    push bp                                   ; 55
    1158411569    mov bp, sp                                ; 89 e5
     
    1158811573    mov dx, strict word 0000eh                ; ba 0e 00
    1158911574    mov ax, strict word 00040h                ; b8 40 00
    11590     call 0166ch                               ; e8 99 9b
     11575    call 0166ch                               ; e8 45 9b
    1159111576    mov dx, 00304h                            ; ba 04 03
    11592     call 01650h                               ; e8 77 9b
     11577    call 01650h                               ; e8 23 9b
    1159311578    sub bl, 002h                              ; 80 eb 02
    1159411579    cmp bl, al                                ; 38 c3
    11595     jc short 07ae2h                           ; 72 02
     11580    jc short 07b36h                           ; 72 02
    1159611581    mov BL, strict byte 0ffh                  ; b3 ff
    1159711582    mov al, bl                                ; 88 d8
     
    1160111586    pop bp                                    ; 5d
    1160211587    retn                                      ; c3
    11603 show_logo_:                                  ; 0xf7aeb LB 0x226
     11588show_logo_:                                  ; 0xf7b3f LB 0x226
    1160411589    push bp                                   ; 55
    1160511590    mov bp, sp                                ; 89 e5
     
    1161211597    mov dx, strict word 0000eh                ; ba 0e 00
    1161311598    mov ax, strict word 00040h                ; b8 40 00
    11614     call 0166ch                               ; e8 6d 9b
     11599    call 0166ch                               ; e8 19 9b
    1161511600    mov si, ax                                ; 89 c6
    1161611601    xor cl, cl                                ; 30 c9
     
    1162411609    mov al, dl                                ; 88 d0
    1162511610    xor ah, ah                                ; 30 e4
    11626     call 07975h                               ; e8 5d fe
     11611    call 079c9h                               ; e8 5d fe
    1162711612    cmp ax, 066bbh                            ; 3d bb 66
    11628     jne short 07b2fh                          ; 75 12
     11613    jne short 07b83h                          ; 75 12
    1162911614    push SS                                   ; 16
    1163011615    pop ES                                    ; 07
     
    1163411619    mov word [es:di], bx                      ; 26 89 1d
    1163511620    cmp ax, strict word 0004fh                ; 3d 4f 00
    11636     je short 07b32h                           ; 74 03
    11637     jmp near 07befh                           ; e9 bd 00
     11621    je short 07b86h                           ; 74 03
     11622    jmp near 07c43h                           ; e9 bd 00
    1163811623    mov al, dl                                ; 88 d0
    1163911624    add AL, strict byte 004h                  ; 04 04
    1164011625    xor ah, ah                                ; 30 e4
    11641     call 0795fh                               ; e8 24 fe
     11626    call 079b3h                               ; e8 24 fe
    1164211627    mov ch, al                                ; 88 c5
    1164311628    mov byte [bp-012h], al                    ; 88 46 ee
     
    1164511630    add AL, strict byte 005h                  ; 04 05
    1164611631    xor ah, ah                                ; 30 e4
    11647     call 0795fh                               ; e8 16 fe
     11632    call 079b3h                               ; e8 16 fe
    1164811633    mov dh, al                                ; 88 c6
    1164911634    mov byte [bp-010h], al                    ; 88 46 f0
     
    1165111636    add AL, strict byte 002h                  ; 04 02
    1165211637    xor ah, ah                                ; 30 e4
    11653     call 07975h                               ; e8 1e fe
     11638    call 079c9h                               ; e8 1e fe
    1165411639    mov bx, ax                                ; 89 c3
    1165511640    mov word [bp-014h], ax                    ; 89 46 ec
     
    1165711642    add AL, strict byte 006h                  ; 04 06
    1165811643    xor ah, ah                                ; 30 e4
    11659     call 0795fh                               ; e8 fa fd
     11644    call 079b3h                               ; e8 fa fd
    1166011645    mov byte [bp-00eh], al                    ; 88 46 f2
    1166111646    test ch, ch                               ; 84 ed
    11662     jne short 07b74h                          ; 75 08
     11647    jne short 07bc8h                          ; 75 08
    1166311648    test dh, dh                               ; 84 f6
    11664     jne short 07b74h                          ; 75 04
     11649    jne short 07bc8h                          ; 75 04
    1166511650    test bx, bx                               ; 85 db
    11666     je short 07bcch                           ; 74 58
     11651    je short 07c20h                           ; 74 58
    1166711652    mov bx, 00142h                            ; bb 42 01
    1166811653    mov ax, 04f02h                            ; b8 02 4f
    1166911654    int 010h                                  ; cd 10
    1167011655    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11671     je short 07ba5h                           ; 74 23
     11656    je short 07bf9h                           ; 74 23
    1167211657    xor bx, bx                                ; 31 db
    11673     jmp short 07b8ch                          ; eb 06
     11658    jmp short 07be0h                          ; eb 06
    1167411659    inc bx                                    ; 43
    1167511660    cmp bx, strict byte 00010h                ; 83 fb 10
    11676     jnbe short 07bach                         ; 77 20
     11661    jnbe short 07c00h                         ; 77 20
    1167711662    mov ax, bx                                ; 89 d8
    1167811663    or ah, 002h                               ; 80 cc 02
     
    1168111666    xor dx, dx                                ; 31 d2
    1168211667    mov ax, strict word 00001h                ; b8 01 00
    11683     call 078b0h                               ; e8 13 fd
     11668    call 07904h                               ; e8 13 fd
    1168411669    cmp AL, strict byte 086h                  ; 3c 86
    11685     jne short 07b86h                          ; 75 e5
     11670    jne short 07bdah                          ; 75 e5
    1168611671    mov CL, strict byte 001h                  ; b1 01
    11687     jmp short 07bach                          ; eb 07
     11672    jmp short 07c00h                          ; eb 07
    1168811673    mov ax, 00210h                            ; b8 10 02
    1168911674    mov dx, 003b8h                            ; ba b8 03
    1169011675    out DX, ax                                ; ef
    1169111676    test cl, cl                               ; 84 c9
    11692     jne short 07bc2h                          ; 75 12
     11677    jne short 07c16h                          ; 75 12
    1169311678    mov ax, word [bp-014h]                    ; 8b 46 ec
    1169411679    shr ax, 004h                              ; c1 e8 04
    1169511680    mov dx, strict word 00001h                ; ba 01 00
    11696     call 078b0h                               ; e8 f4 fc
     11681    call 07904h                               ; e8 f4 fc
    1169711682    cmp AL, strict byte 086h                  ; 3c 86
    11698     jne short 07bc2h                          ; 75 02
     11683    jne short 07c16h                          ; 75 02
    1169911684    mov CL, strict byte 001h                  ; b1 01
    1170011685    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11701     je short 07befh                           ; 74 27
     11686    je short 07c43h                           ; 74 27
    1170211687    test cl, cl                               ; 84 c9
    11703     je short 07bceh                           ; 74 02
    11704     jmp short 07befh                          ; eb 21
     11688    je short 07c22h                           ; 74 02
     11689    jmp short 07c43h                          ; eb 21
    1170511690    mov bx, strict word 00010h                ; bb 10 00
    11706     jmp short 07bd8h                          ; eb 05
     11691    jmp short 07c2ch                          ; eb 05
    1170711692    dec bx                                    ; 4b
    1170811693    test bx, bx                               ; 85 db
    11709     jbe short 07befh                          ; 76 17
     11694    jbe short 07c43h                          ; 76 17
    1171011695    mov ax, bx                                ; 89 d8
    1171111696    or ah, 002h                               ; 80 cc 02
     
    1171411699    xor dx, dx                                ; 31 d2
    1171511700    mov ax, strict word 00001h                ; b8 01 00
    11716     call 078b0h                               ; e8 c7 fc
     11701    call 07904h                               ; e8 c7 fc
    1171711702    cmp AL, strict byte 086h                  ; 3c 86
    11718     jne short 07bd3h                          ; 75 e6
     11703    jne short 07c27h                          ; 75 e6
    1171911704    mov CL, strict byte 001h                  ; b1 01
    1172011705    xor bx, bx                                ; 31 db
    1172111706    mov dx, 0037dh                            ; ba 7d 03
    1172211707    mov ax, si                                ; 89 f0
    11723     call 0165eh                               ; e8 65 9a
     11708    call 0165eh                               ; e8 11 9a
    1172411709    mov AL, strict byte 003h                  ; b0 03
    1172511710    mov AH, strict byte 000h                  ; b4 00
    1172611711    int 010h                                  ; cd 10
    1172711712    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11728     je short 07c19h                           ; 74 14
     11713    je short 07c6dh                           ; 74 14
    1172911714    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11730     jne short 07c40h                          ; 75 35
     11715    jne short 07c94h                          ; 75 35
    1173111716    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11732     jne short 07c40h                          ; 75 2f
     11717    jne short 07c94h                          ; 75 2f
    1173311718    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11734     je short 07c1ch                           ; 74 05
    11735     jmp short 07c40h                          ; eb 27
    11736     jmp near 07cf4h                           ; e9 d8 00
     11719    je short 07c70h                           ; 74 05
     11720    jmp short 07c94h                          ; eb 27
     11721    jmp near 07d48h                           ; e9 d8 00
    1173711722    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
    11738     jne short 07c2dh                          ; 75 0b
     11723    jne short 07c81h                          ; 75 0b
    1173911724    push 00a4bh                               ; 68 4b 0a
    1174011725    push strict byte 00002h                   ; 6a 02
    11741     call 01966h                               ; e8 3c 9d
     11726    call 01966h                               ; e8 e8 9c
    1174211727    add sp, strict byte 00004h                ; 83 c4 04
    1174311728    test cl, cl                               ; 84 c9
    11744     jne short 07c40h                          ; 75 0f
     11729    jne short 07c94h                          ; 75 0f
    1174511730    mov dx, strict word 00001h                ; ba 01 00
    1174611731    mov ax, 000c0h                            ; b8 c0 00
    11747     call 078b0h                               ; e8 76 fc
     11732    call 07904h                               ; e8 76 fc
    1174811733    cmp AL, strict byte 086h                  ; 3c 86
    11749     jne short 07c40h                          ; 75 02
     11734    jne short 07c94h                          ; 75 02
    1175011735    mov CL, strict byte 001h                  ; b1 01
    1175111736    test cl, cl                               ; 84 c9
    11752     je short 07c19h                           ; 74 d5
     11737    je short 07c6dh                           ; 74 d5
    1175311738    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    1175411739    mov ax, 00100h                            ; b8 00 01
     
    1176911754    push 00a6dh                               ; 68 6d 0a
    1177011755    push strict byte 00002h                   ; 6a 02
    11771     call 01966h                               ; e8 f9 9c
     11756    call 01966h                               ; e8 a5 9c
    1177211757    add sp, strict byte 00004h                ; 83 c4 04
    11773     call 07989h                               ; e8 16 fd
     11758    call 079ddh                               ; e8 16 fd
    1177411759    push 00ab1h                               ; 68 b1 0a
    1177511760    push strict byte 00002h                   ; 6a 02
    11776     call 01966h                               ; e8 eb 9c
     11761    call 01966h                               ; e8 97 9c
    1177711762    add sp, strict byte 00004h                ; 83 c4 04
    1177811763    mov dx, strict word 00001h                ; ba 01 00
    1177911764    mov ax, strict word 00040h                ; b8 40 00
    11780     call 078b0h                               ; e8 29 fc
     11765    call 07904h                               ; e8 29 fc
    1178111766    mov bl, al                                ; 88 c3
    1178211767    test al, al                               ; 84 c0
    11783     je short 07c7eh                           ; 74 f1
     11768    je short 07cd2h                           ; 74 f1
    1178411769    cmp AL, strict byte 030h                  ; 3c 30
    11785     je short 07ce1h                           ; 74 50
     11770    je short 07d35h                           ; 74 50
    1178611771    cmp bl, 002h                              ; 80 fb 02
    11787     jc short 07cbah                           ; 72 24
     11772    jc short 07d0eh                           ; 72 24
    1178811773    cmp bl, 009h                              ; 80 fb 09
    11789     jnbe short 07cbah                         ; 77 1f
     11774    jnbe short 07d0eh                         ; 77 1f
    1179011775    mov al, bl                                ; 88 d8
    1179111776    xor ah, ah                                ; 30 e4
    11792     call 07ac3h                               ; e8 21 fe
     11777    call 07b17h                               ; e8 21 fe
    1179311778    cmp AL, strict byte 0ffh                  ; 3c ff
    11794     jne short 07ca8h                          ; 75 02
    11795     jmp short 07c7eh                          ; eb d6
     11779    jne short 07cfch                          ; 75 02
     11780    jmp short 07cd2h                          ; eb d6
    1179611781    mov bl, al                                ; 88 c3
    1179711782    xor bh, bh                                ; 30 ff
    1179811783    mov dx, 0037ch                            ; ba 7c 03
    1179911784    mov ax, si                                ; 89 f0
    11800     call 0165eh                               ; e8 aa 99
     11785    call 0165eh                               ; e8 56 99
    1180111786    mov byte [bp-00ch], 002h                  ; c6 46 f4 02
    11802     jmp short 07ce1h                          ; eb 27
     11787    jmp short 07d35h                          ; eb 27
    1180311788    cmp bl, 02eh                              ; 80 fb 2e
    11804     je short 07ccfh                           ; 74 10
     11789    je short 07d23h                           ; 74 10
    1180511790    cmp bl, 026h                              ; 80 fb 26
    11806     je short 07cd5h                           ; 74 11
     11791    je short 07d29h                           ; 74 11
    1180711792    cmp bl, 021h                              ; 80 fb 21
    11808     jne short 07cdbh                          ; 75 12
     11793    jne short 07d2fh                          ; 75 12
    1180911794    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11810     jmp short 07ce1h                          ; eb 12
     11795    jmp short 07d35h                          ; eb 12
    1181111796    mov byte [bp-00ch], 003h                  ; c6 46 f4 03
    11812     jmp short 07ce1h                          ; eb 0c
     11797    jmp short 07d35h                          ; eb 0c
    1181311798    mov byte [bp-00ch], 004h                  ; c6 46 f4 04
    11814     jmp short 07ce1h                          ; eb 06
     11799    jmp short 07d35h                          ; eb 06
    1181511800    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11816     je short 07c7eh                           ; 74 9d
     11801    je short 07cd2h                           ; 74 9d
    1181711802    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1181811803    xor bh, bh                                ; 30 ff
    1181911804    mov dx, 0037dh                            ; ba 7d 03
    1182011805    mov ax, si                                ; 89 f0
    11821     call 0165eh                               ; e8 70 99
     11806    call 0165eh                               ; e8 1c 99
    1182211807    mov AL, strict byte 003h                  ; b0 03
    1182311808    mov AH, strict byte 000h                  ; b4 00
     
    1183211817    push DS                                   ; 1e
    1183311818    mov ds, ax                                ; 8e d8
    11834     call 0edbfh                               ; e8 ba 70
     11819    call 0edbfh                               ; e8 66 70
    1183511820    pop DS                                    ; 1f
    1183611821    pop bp                                    ; 5d
     
    1184311828    pop bp                                    ; 5d
    1184411829    retn                                      ; c3
    11845 delay_boot_:                                 ; 0xf7d11 LB 0x6b
     11830delay_boot_:                                 ; 0xf7d65 LB 0x6b
    1184611831    push bp                                   ; 55
    1184711832    mov bp, sp                                ; 89 e5
     
    1185311838    mov dx, ax                                ; 89 c2
    1185411839    test ax, ax                               ; 85 c0
    11855     je short 07d72h                           ; 74 53
     11840    je short 07dc6h                           ; 74 53
    1185611841    mov AL, strict byte 034h                  ; b0 34
    1185711842    out strict byte 043h, AL                  ; e6 43
     
    1186311848    push 00afbh                               ; 68 fb 0a
    1186411849    push strict byte 00002h                   ; 6a 02
    11865     call 01966h                               ; e8 32 9c
     11850    call 01966h                               ; e8 de 9b
    1186611851    add sp, strict byte 00006h                ; 83 c4 06
    1186711852    mov bx, dx                                ; 89 d3
    1186811853    test bx, bx                               ; 85 db
    11869     jbe short 07d54h                          ; 76 17
     11854    jbe short 07da8h                          ; 76 17
    1187011855    push bx                                   ; 53
    1187111856    push 00b19h                               ; 68 19 0b
    1187211857    push strict byte 00002h                   ; 6a 02
    11873     call 01966h                               ; e8 20 9c
     11858    call 01966h                               ; e8 cc 9b
    1187411859    add sp, strict byte 00006h                ; 83 c4 06
    1187511860    xor dx, dx                                ; 31 d2
    1187611861    mov ax, strict word 00040h                ; b8 40 00
    11877     call 078b0h                               ; e8 5f fb
     11862    call 07904h                               ; e8 5f fb
    1187811863    dec bx                                    ; 4b
    11879     jmp short 07d39h                          ; eb e5
     11864    jmp short 07d8dh                          ; eb e5
    1188011865    push 00a49h                               ; 68 49 0a
    1188111866    push strict byte 00002h                   ; 6a 02
    11882     call 01966h                               ; e8 0a 9c
     11867    call 01966h                               ; e8 b6 9b
    1188311868    add sp, strict byte 00004h                ; 83 c4 04
    1188411869    mov AL, strict byte 034h                  ; b0 34
     
    1189111876    push DS                                   ; 1e
    1189211877    mov ds, ax                                ; 8e d8
    11893     call 0edbfh                               ; e8 4f 70
     11878    call 0edbfh                               ; e8 fb 6f
    1189411879    pop DS                                    ; 1f
    1189511880    pop bp                                    ; 5d
     
    1190211887    pop bp                                    ; 5d
    1190311888    retn                                      ; c3
    11904 scsi_cmd_data_in_:                           ; 0xf7d7c LB 0xd5
     11889scsi_cmd_data_in_:                           ; 0xf7dd0 LB 0xd5
    1190511890    push bp                                   ; 55
    1190611891    mov bp, sp                                ; 89 e5
     
    1191811903    ; sub ah, ah                                ; 2a e4
    1191911904    test AL, strict byte 001h                 ; a8 01
    11920     jne short 07d92h                          ; 75 f7
     11905    jne short 07de6h                          ; 75 f7
    1192111906    mov al, byte [bp+004h]                    ; 8a 46 04
    1192211907    cmp AL, strict byte 010h                  ; 3c 10
    11923     jne short 07da6h                          ; 75 04
     11908    jne short 07dfah                          ; 75 04
    1192411909    xor ax, ax                                ; 31 c0
    11925     jmp short 07da8h                          ; eb 02
     11910    jmp short 07dfch                          ; eb 02
    1192611911    xor ah, ah                                ; 30 e4
    1192711912    mov di, ax                                ; 89 c7
     
    1193111916    shr dx, 1                                 ; d1 ea
    1193211917    rcr ax, 1                                 ; d1 d8
    11933     loop 07db2h                               ; e2 fa
     11918    loop 07e06h                               ; e2 fa
    1193411919    mov cx, ax                                ; 89 c1
    1193511920    and cx, 000f0h                            ; 81 e1 f0 00
     
    1194911934    shr dx, 1                                 ; d1 ea
    1195011935    rcr ax, 1                                 ; d1 d8
    11951     loop 07dd7h                               ; e2 fa
     11936    loop 07e2bh                               ; e2 fa
    1195211937    mov dx, si                                ; 89 f2
    1195311938    out DX, AL                                ; ee
     
    1195611941    xor ah, ah                                ; 30 e4
    1195711942    cmp cx, ax                                ; 39 c1
    11958     jnc short 07df9h                          ; 73 0e
     11943    jnc short 07e4dh                          ; 73 0e
    1195911944    les di, [bp-00ah]                         ; c4 7e f6
    1196011945    add di, cx                                ; 01 cf
     
    1196311948    out DX, AL                                ; ee
    1196411949    inc cx                                    ; 41
    11965     jmp short 07de2h                          ; eb e9
     11950    jmp short 07e36h                          ; eb e9
    1196611951    mov dx, si                                ; 89 f2
    1196711952    in AL, DX                                 ; ec
     
    1196911954    ; sub ah, ah                                ; 2a e4
    1197011955    test AL, strict byte 001h                 ; a8 01
    11971     jne short 07df9h                          ; 75 f7
     11956    jne short 07e4dh                          ; 75 f7
    1197211957    test AL, strict byte 002h                 ; a8 02
    11973     je short 07e14h                           ; 74 0e
     11958    je short 07e68h                           ; 74 0e
    1197411959    lea dx, [si+003h]                         ; 8d 54 03
    1197511960    xor al, al                                ; 30 c0
     
    1197911964    ; sub ah, ah                                ; 2a e4
    1198011965    mov di, strict word 00004h                ; bf 04 00
    11981     jmp short 07e46h                          ; eb 32
     11966    jmp short 07e9ah                          ; eb 32
    1198211967    lea dx, [si+001h]                         ; 8d 54 01
    1198311968    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11984     jne short 07e23h                          ; 75 06
     11969    jne short 07e77h                          ; 75 06
    1198511970    cmp bx, 08000h                            ; 81 fb 00 80
    11986     jbe short 07e3dh                          ; 76 1a
     11971    jbe short 07e91h                          ; 76 1a
    1198711972    mov cx, 08000h                            ; b9 00 80
    1198811973    les di, [bp+006h]                         ; c4 7e 06
     
    1199311978    add ax, 00800h                            ; 05 00 08
    1199411979    mov word [bp+008h], ax                    ; 89 46 08
    11995     jmp short 07e14h                          ; eb d7
     11980    jmp short 07e68h                          ; eb d7
    1199611981    mov cx, bx                                ; 89 d9
    1199711982    les di, [bp+006h]                         ; c4 7e 06
     
    1200411989    pop bp                                    ; 5d
    1200511990    retn 0000ah                               ; c2 0a 00
    12006 scsi_cmd_data_out_:                          ; 0xf7e51 LB 0xd5
     11991scsi_cmd_data_out_:                          ; 0xf7ea5 LB 0xd5
    1200711992    push bp                                   ; 55
    1200811993    mov bp, sp                                ; 89 e5
     
    1202012005    ; sub ah, ah                                ; 2a e4
    1202112006    test AL, strict byte 001h                 ; a8 01
    12022     jne short 07e67h                          ; 75 f7
     12007    jne short 07ebbh                          ; 75 f7
    1202312008    mov al, byte [bp+004h]                    ; 8a 46 04
    1202412009    cmp AL, strict byte 010h                  ; 3c 10
    12025     jne short 07e7bh                          ; 75 04
     12010    jne short 07ecfh                          ; 75 04
    1202612011    xor ax, ax                                ; 31 c0
    12027     jmp short 07e7dh                          ; eb 02
     12012    jmp short 07ed1h                          ; eb 02
    1202812013    xor ah, ah                                ; 30 e4
    1202912014    mov si, ax                                ; 89 c6
     
    1203312018    shr dx, 1                                 ; d1 ea
    1203412019    rcr ax, 1                                 ; d1 d8
    12035     loop 07e87h                               ; e2 fa
     12020    loop 07edbh                               ; e2 fa
    1203612021    mov cx, ax                                ; 89 c1
    1203712022    and cx, 000f0h                            ; 81 e1 f0 00
     
    1205112036    shr dx, 1                                 ; d1 ea
    1205212037    rcr ax, 1                                 ; d1 d8
    12053     loop 07each                               ; e2 fa
     12038    loop 07f00h                               ; e2 fa
    1205412039    mov dx, di                                ; 89 fa
    1205512040    out DX, AL                                ; ee
     
    1205812043    xor ah, ah                                ; 30 e4
    1205912044    cmp cx, ax                                ; 39 c1
    12060     jnc short 07eceh                          ; 73 0e
     12045    jnc short 07f22h                          ; 73 0e
    1206112046    les si, [bp-00ah]                         ; c4 76 f6
    1206212047    add si, cx                                ; 01 ce
     
    1206512050    out DX, AL                                ; ee
    1206612051    inc cx                                    ; 41
    12067     jmp short 07eb7h                          ; eb e9
     12052    jmp short 07f0bh                          ; eb e9
    1206812053    lea dx, [di+001h]                         ; 8d 55 01
    1206912054    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12070     jne short 07eddh                          ; 75 06
     12055    jne short 07f31h                          ; 75 06
    1207112056    cmp bx, 08000h                            ; 81 fb 00 80
    12072     jbe short 07ef8h                          ; 76 1b
     12057    jbe short 07f4ch                          ; 76 1b
    1207312058    mov cx, 08000h                            ; b9 00 80
    1207412059    les si, [bp+006h]                         ; c4 76 06
     
    1208012065    add ax, 00800h                            ; 05 00 08
    1208112066    mov word [bp+008h], ax                    ; 89 46 08
    12082     jmp short 07eceh                          ; eb d6
     12067    jmp short 07f22h                          ; eb d6
    1208312068    mov cx, bx                                ; 89 d9
    1208412069    les si, [bp+006h]                         ; c4 76 06
     
    1209012075    ; sub ah, ah                                ; 2a e4
    1209112076    test AL, strict byte 001h                 ; a8 01
    12092     jne short 07f00h                          ; 75 f7
     12077    jne short 07f54h                          ; 75 f7
    1209312078    test AL, strict byte 002h                 ; a8 02
    12094     je short 07f1bh                           ; 74 0e
     12079    je short 07f6fh                           ; 74 0e
    1209512080    lea dx, [di+003h]                         ; 8d 55 03
    1209612081    xor al, al                                ; 30 c0
     
    1210012085    ; sub ah, ah                                ; 2a e4
    1210112086    mov ax, strict word 00004h                ; b8 04 00
    12102     jmp short 07f1dh                          ; eb 02
     12087    jmp short 07f71h                          ; eb 02
    1210312088    xor ax, ax                                ; 31 c0
    1210412089    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1210712092    pop bp                                    ; 5d
    1210812093    retn 0000ah                               ; c2 0a 00
    12109 @scsi_read_sectors:                          ; 0xf7f26 LB 0xe0
     12094@scsi_read_sectors:                          ; 0xf7f7a LB 0xe0
    1211012095    push bp                                   ; 55
    1211112096    mov bp, sp                                ; 89 e5
     
    1211912104    mov byte [bp-006h], al                    ; 88 46 fa
    1212012105    cmp AL, strict byte 004h                  ; 3c 04
    12121     jbe short 07f52h                          ; 76 11
     12106    jbe short 07fa6h                          ; 76 11
    1212212107    xor ah, ah                                ; 30 e4
    1212312108    push ax                                   ; 50
     
    1212512110    push 00b30h                               ; 68 30 0b
    1212612111    push strict byte 00007h                   ; 6a 07
    12127     call 01966h                               ; e8 17 9a
     12112    call 01966h                               ; e8 c3 99
    1212812113    add sp, strict byte 00008h                ; 83 c4 08
    1212912114    mov es, [bp+006h]                         ; 8e 46 06
     
    1216512150    sal word [bp-00ah], 1                     ; d1 66 f6
    1216612151    rcl word [bp-008h], 1                     ; d1 56 f8
    12167     loop 07fbch                               ; e2 f8
     12152    loop 08010h                               ; e2 f8
    1216812153    push word [bp-008h]                       ; ff 76 f8
    1216912154    push word [bp-00ah]                       ; ff 76 f6
     
    1217412159    mov cx, ss                                ; 8c d1
    1217512160    lea bx, [bp-01ah]                         ; 8d 5e e6
    12176     call 07d7ch                               ; e8 9e fd
     12161    call 07dd0h                               ; e8 9e fd
    1217712162    mov ah, al                                ; 88 c4
    1217812163    test al, al                               ; 84 c0
    12179     jne short 07ff9h                          ; 75 15
     12164    jne short 0804dh                          ; 75 15
    1218012165    mov es, [bp+006h]                         ; 8e 46 06
    1218112166    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1219112176    pop bp                                    ; 5d
    1219212177    retn 00004h                               ; c2 04 00
    12193 @scsi_write_sectors:                         ; 0xf8006 LB 0xe0
     12178@scsi_write_sectors:                         ; 0xf805a LB 0xe0
    1219412179    push bp                                   ; 55
    1219512180    mov bp, sp                                ; 89 e5
     
    1220312188    mov byte [bp-006h], al                    ; 88 46 fa
    1220412189    cmp AL, strict byte 004h                  ; 3c 04
    12205     jbe short 08032h                          ; 76 11
     12190    jbe short 08086h                          ; 76 11
    1220612191    xor ah, ah                                ; 30 e4
    1220712192    push ax                                   ; 50
     
    1220912194    push 00b30h                               ; 68 30 0b
    1221012195    push strict byte 00007h                   ; 6a 07
    12211     call 01966h                               ; e8 37 99
     12196    call 01966h                               ; e8 e3 98
    1221212197    add sp, strict byte 00008h                ; 83 c4 08
    1221312198    mov es, [bp+006h]                         ; 8e 46 06
     
    1224912234    sal word [bp-00ah], 1                     ; d1 66 f6
    1225012235    rcl word [bp-008h], 1                     ; d1 56 f8
    12251     loop 0809ch                               ; e2 f8
     12236    loop 080f0h                               ; e2 f8
    1225212237    push word [bp-008h]                       ; ff 76 f8
    1225312238    push word [bp-00ah]                       ; ff 76 f6
     
    1225812243    mov cx, ss                                ; 8c d1
    1225912244    lea bx, [bp-01ah]                         ; 8d 5e e6
    12260     call 07e51h                               ; e8 93 fd
     12245    call 07ea5h                               ; e8 93 fd
    1226112246    mov ah, al                                ; 88 c4
    1226212247    test al, al                               ; 84 c0
    12263     jne short 080d9h                          ; 75 15
     12248    jne short 0812dh                          ; 75 15
    1226412249    mov es, [bp+006h]                         ; 8e 46 06
    1226512250    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1227512260    pop bp                                    ; 5d
    1227612261    retn 00004h                               ; c2 04 00
    12277 scsi_cmd_packet_:                            ; 0xf80e6 LB 0x168
     12262scsi_cmd_packet_:                            ; 0xf813a LB 0x168
    1227812263    push bp                                   ; 55
    1227912264    mov bp, sp                                ; 89 e5
     
    1228712272    mov dx, strict word 0000eh                ; ba 0e 00
    1228812273    mov ax, strict word 00040h                ; b8 40 00
    12289     call 0166ch                               ; e8 6a 95
     12274    call 0166ch                               ; e8 16 95
    1229012275    mov si, 00122h                            ; be 22 01
    1229112276    mov word [bp-00ah], ax                    ; 89 46 f6
    1229212277    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12293     jne short 0812dh                          ; 75 1f
     12278    jne short 08181h                          ; 75 1f
    1229412279    mov bx, 00da0h                            ; bb a0 0d
    1229512280    mov cx, ds                                ; 8c d9
    1229612281    mov ax, strict word 00004h                ; b8 04 00
    12297     call 01923h                               ; e8 0a 98
     12282    call 01923h                               ; e8 b6 97
    1229812283    push 00b62h                               ; 68 62 0b
    1229912284    push 00b72h                               ; 68 72 0b
    1230012285    push strict byte 00004h                   ; 6a 04
    12301     call 01966h                               ; e8 42 98
     12286    call 01966h                               ; e8 ee 97
    1230212287    add sp, strict byte 00006h                ; 83 c4 06
    1230312288    mov dx, strict word 00001h                ; ba 01 00
    12304     jmp near 08243h                           ; e9 16 01
     12289    jmp near 08297h                           ; e9 16 01
    1230512290    sub di, strict byte 00008h                ; 83 ef 08
    1230612291    sal di, 002h                              ; c1 e7 02
     
    1231612301    ; sub ah, ah                                ; 2a e4
    1231712302    test AL, strict byte 001h                 ; a8 01
    12318     jne short 08149h                          ; 75 f7
     12303    jne short 0819dh                          ; 75 f7
    1231912304    xor ax, ax                                ; 31 c0
    1232012305    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1233212317    shr dx, 1                                 ; d1 ea
    1233312318    rcr ax, 1                                 ; d1 d8
    12334     loop 08174h                               ; e2 fa
     12319    loop 081c8h                               ; e2 fa
    1233512320    and ax, 000f0h                            ; 25 f0 00
    1233612321    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1235112336    shr dx, 1                                 ; d1 ea
    1235212337    rcr ax, 1                                 ; d1 d8
    12353     loop 0819ch                               ; e2 fa
     12338    loop 081f0h                               ; e2 fa
    1235412339    mov dx, bx                                ; 89 da
    1235512340    out DX, AL                                ; ee
     
    1235812343    xor ah, ah                                ; 30 e4
    1235912344    cmp cx, ax                                ; 39 c1
    12360     jnc short 081beh                          ; 73 0e
     12345    jnc short 08212h                          ; 73 0e
    1236112346    les di, [bp-00eh]                         ; c4 7e f2
    1236212347    add di, cx                                ; 01 cf
     
    1236512350    out DX, AL                                ; ee
    1236612351    inc cx                                    ; 41
    12367     jmp short 081a7h                          ; eb e9
     12352    jmp short 081fbh                          ; eb e9
    1236812353    mov dx, bx                                ; 89 da
    1236912354    in AL, DX                                 ; ec
     
    1237112356    ; sub ah, ah                                ; 2a e4
    1237212357    test AL, strict byte 001h                 ; a8 01
    12373     jne short 081beh                          ; 75 f7
     12358    jne short 08212h                          ; 75 f7
    1237412359    test AL, strict byte 002h                 ; a8 02
    12375     je short 081d9h                           ; 74 0e
     12360    je short 0822dh                           ; 74 0e
    1237612361    lea dx, [bx+003h]                         ; 8d 57 03
    1237712362    xor al, al                                ; 30 c0
     
    1238112366    ; sub ah, ah                                ; 2a e4
    1238212367    mov dx, strict word 00003h                ; ba 03 00
    12383     jmp short 08243h                          ; eb 6a
     12368    jmp short 08297h                          ; eb 6a
    1238412369    mov ax, word [bp+004h]                    ; 8b 46 04
    1238512370    test ax, ax                               ; 85 c0
    12386     je short 081e8h                           ; 74 08
     12371    je short 0823ch                           ; 74 08
    1238712372    lea dx, [bx+001h]                         ; 8d 57 01
    1238812373    mov cx, ax                                ; 89 c1
    1238912374    in AL, DX                                 ; ec
    12390     loop 081e5h                               ; e2 fd
     12375    loop 08239h                               ; e2 fd
    1239112376    mov ax, word [bp+006h]                    ; 8b 46 06
    1239212377    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1239612381    lea ax, [bx+001h]                         ; 8d 47 01
    1239712382    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12398     jne short 08209h                          ; 75 07
     12383    jne short 0825dh                          ; 75 07
    1239912384    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12400     jbe short 08226h                          ; 76 1d
     12385    jbe short 0827ah                          ; 76 1d
    1240112386    mov dx, ax                                ; 89 c2
    1240212387    mov cx, 08000h                            ; b9 00 80
     
    1240812393    add ax, 00800h                            ; 05 00 08
    1240912394    mov word [bp+00eh], ax                    ; 89 46 0e
    12410     jmp short 081f9h                          ; eb d3
     12395    jmp short 0824dh                          ; eb d3
    1241112396    mov dx, ax                                ; 89 c2
    1241212397    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1241512400    mov es, [bp-00ah]                         ; 8e 46 f6
    1241612401    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12417     je short 08241h                           ; 74 07
     12402    je short 08295h                           ; 74 07
    1241812403    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1241912404    in AL, DX                                 ; ec
    12420     loop 0823eh                               ; e2 fd
     12405    loop 08292h                               ; e2 fd
    1242112406    xor dx, dx                                ; 31 d2
    1242212407    mov ax, dx                                ; 89 d0
     
    1242612411    pop bp                                    ; 5d
    1242712412    retn 0000ch                               ; c2 0c 00
    12428 scsi_enumerate_attached_devices_:            ; 0xf824e LB 0x4a6
     12413scsi_enumerate_attached_devices_:            ; 0xf82a2 LB 0x4a6
    1242912414    push bp                                   ; 55
    1243012415    mov bp, sp                                ; 89 e5
     
    1243812423    mov dx, strict word 0000eh                ; ba 0e 00
    1243912424    mov ax, strict word 00040h                ; b8 40 00
    12440     call 0166ch                               ; e8 08 94
     12425    call 0166ch                               ; e8 b4 93
    1244112426    mov di, 00122h                            ; bf 22 01
    1244212427    mov word [bp-020h], ax                    ; 89 46 e0
    1244312428    mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
    12444     jmp near 08672h                           ; e9 00 04
     12429    jmp near 086c6h                           ; e9 00 04
    1244512430    cmp AL, strict byte 004h                  ; 3c 04
    12446     jc short 08279h                           ; 72 03
    12447     jmp near 086eah                           ; e9 71 04
     12431    jc short 082cdh                           ; 72 03
     12432    jmp near 0873eh                           ; e9 71 04
    1244812433    mov cx, strict word 00010h                ; b9 10 00
    1244912434    xor bx, bx                                ; 31 db
    1245012435    mov dx, ss                                ; 8c d2
    1245112436    lea ax, [bp-046h]                         ; 8d 46 ba
    12452     call 09fa0h                               ; e8 1a 1d
     12437    call 09ff0h                               ; e8 16 1d
    1245312438    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1245412439    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1246512450    lea bx, [bp-046h]                         ; 8d 5e ba
    1246612451    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12467     call 07d7ch                               ; e8 cd fa
     12452    call 07dd0h                               ; e8 cd fa
    1246812453    test al, al                               ; 84 c0
    12469     je short 082c1h                           ; 74 0e
     12454    je short 08315h                           ; 74 0e
    1247012455    push 00b92h                               ; 68 92 0b
    1247112456    push 00bcbh                               ; 68 cb 0b
    1247212457    push strict byte 00007h                   ; 6a 07
    12473     call 01966h                               ; e8 a8 96
     12458    call 01966h                               ; e8 54 96
    1247412459    add sp, strict byte 00006h                ; 83 c4 06
    1247512460    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1250312488    sal ax, 1                                 ; d1 e0
    1250412489    rcl dx, 1                                 ; d1 d2
    12505     loop 08310h                               ; e2 fa
     12490    loop 08364h                               ; e2 fa
    1250612491    or bx, ax                                 ; 09 c3
    1250712492    or dx, si                                 ; 09 f2
     
    1251112496    mov word [bp-028h], bx                    ; 89 5e d8
    1251212497    test dx, dx                               ; 85 d2
    12513     jne short 0832fh                          ; 75 06
     12498    jne short 08383h                          ; 75 06
    1251412499    cmp bx, 00200h                            ; 81 fb 00 02
    12515     je short 0834fh                           ; 74 20
     12500    je short 083a3h                           ; 74 20
    1251612501    mov bx, 00da0h                            ; bb a0 0d
    1251712502    mov cx, ds                                ; 8c d9
    1251812503    mov ax, strict word 00004h                ; b8 04 00
    12519     call 01923h                               ; e8 e9 95
     12504    call 01923h                               ; e8 95 95
    1252012505    push dx                                   ; 52
    1252112506    push word [bp-028h]                       ; ff 76 d8
     
    1252312508    push 00beah                               ; 68 ea 0b
    1252412509    push strict byte 00004h                   ; 6a 04
    12525     call 01966h                               ; e8 1d 96
     12510    call 01966h                               ; e8 c9 95
    1252612511    add sp, strict byte 0000ah                ; 83 c4 0a
    12527     jmp near 08666h                           ; e9 17 03
     12512    jmp near 086bah                           ; e9 17 03
    1252812513    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1252912514    cmp AL, strict byte 001h                  ; 3c 01
    12530     jc short 08362h                           ; 72 0c
    12531     jbe short 0836ah                          ; 76 12
     12515    jc short 083b6h                           ; 72 0c
     12516    jbe short 083beh                          ; 76 12
    1253212517    cmp AL, strict byte 003h                  ; 3c 03
    12533     je short 08372h                           ; 74 16
     12518    je short 083c6h                           ; 74 16
    1253412519    cmp AL, strict byte 002h                  ; 3c 02
    12535     je short 0836eh                           ; 74 0e
    12536     jmp short 083bbh                          ; eb 59
     12520    je short 083c2h                           ; 74 0e
     12521    jmp short 0840fh                          ; eb 59
    1253712522    test al, al                               ; 84 c0
    12538     jne short 083bbh                          ; 75 55
     12523    jne short 0840fh                          ; 75 55
    1253912524    mov BL, strict byte 090h                  ; b3 90
    12540     jmp short 08374h                          ; eb 0a
     12525    jmp short 083c8h                          ; eb 0a
    1254112526    mov BL, strict byte 098h                  ; b3 98
    12542     jmp short 08374h                          ; eb 06
     12527    jmp short 083c8h                          ; eb 06
    1254312528    mov BL, strict byte 0a0h                  ; b3 a0
    12544     jmp short 08374h                          ; eb 02
     12529    jmp short 083c8h                          ; eb 02
    1254512530    mov BL, strict byte 0a8h                  ; b3 a8
    1254612531    mov cl, bl                                ; 88 d9
     
    1254812533    xor ch, ch                                ; 30 ed
    1254912534    mov ax, cx                                ; 89 c8
    12550     call 016ach                               ; e8 2c 93
     12535    call 016ach                               ; e8 d8 92
    1255112536    test al, al                               ; 84 c0
    12552     je short 083bbh                           ; 74 37
     12537    je short 0840fh                           ; 74 37
    1255312538    mov al, bl                                ; 88 d8
    1255412539    db  0feh, 0c0h
    1255512540    ; inc al                                    ; fe c0
    1255612541    xor ah, ah                                ; 30 e4
    12557     call 016ach                               ; e8 1f 93
     12542    call 016ach                               ; e8 cb 92
    1255812543    xor ah, ah                                ; 30 e4
    1255912544    mov dx, ax                                ; 89 c2
    1256012545    sal dx, 008h                              ; c1 e2 08
    1256112546    mov al, bl                                ; 88 d8
    12562     call 016ach                               ; e8 13 93
     12547    call 016ach                               ; e8 bf 92
    1256312548    xor ah, ah                                ; 30 e4
    1256412549    add ax, dx                                ; 01 d0
     
    1256812553    add AL, strict byte 002h                  ; 04 02
    1256912554    xor ah, ah                                ; 30 e4
    12570     call 016ach                               ; e8 03 93
     12555    call 016ach                               ; e8 af 92
    1257112556    xor ah, ah                                ; 30 e4
    1257212557    mov word [bp-018h], ax                    ; 89 46 e8
    1257312558    mov ax, cx                                ; 89 c8
    12574     call 016ach                               ; e8 f9 92
     12559    call 016ach                               ; e8 a5 92
    1257512560    xor ah, ah                                ; 30 e4
    1257612561    mov word [bp-026h], ax                    ; 89 46 da
    12577     jmp near 084a9h                           ; e9 ee 00
     12562    jmp near 084fdh                           ; e9 ee 00
    1257812563    mov ax, word [bp-012h]                    ; 8b 46 ee
    1257912564    mov bx, word [bp-010h]                    ; 8b 5e f0
     
    1258112566    mov dx, word [bp-014h]                    ; 8b 56 ec
    1258212567    mov si, strict word 0000ch                ; be 0c 00
    12583     call 09f80h                               ; e8 b3 1b
     12568    call 09fd0h                               ; e8 af 1b
    1258412569    mov word [bp-02ah], ax                    ; 89 46 d6
    1258512570    mov word [bp-016h], bx                    ; 89 5e ea
     
    1258812573    mov ax, word [bp-012h]                    ; 8b 46 ee
    1258912574    test ax, ax                               ; 85 c0
    12590     jnbe short 083f5h                         ; 77 15
    12591     je short 083e5h                           ; 74 03
    12592     jmp near 0846ah                           ; e9 85 00
     12575    jnbe short 08449h                         ; 77 15
     12576    je short 08439h                           ; 74 03
     12577    jmp near 084beh                           ; e9 85 00
    1259312578    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12594     jnbe short 083f5h                         ; 77 0a
    12595     jne short 083e2h                          ; 75 f5
     12579    jnbe short 08449h                         ; 77 0a
     12580    jne short 08436h                          ; 75 f5
    1259612581    cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
    12597     jnbe short 083f5h                         ; 77 02
    12598     jne short 0846ah                          ; 75 75
     12582    jnbe short 08449h                         ; 77 02
     12583    jne short 084beh                          ; 75 75
    1259912584    mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
    1260012585    mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
     
    1260312588    mov dx, word [bp-014h]                    ; 8b 56 ec
    1260412589    mov si, strict word 00006h                ; be 06 00
    12605     call 09f80h                               ; e8 72 1b
     12590    call 09fd0h                               ; e8 6e 1b
    1260612591    mov si, word [bp-01eh]                    ; 8b 76 e2
    1260712592    add si, dx                                ; 01 d6
     
    1262112606    mov dx, si                                ; 89 f2
    1262212607    mov si, strict word 00008h                ; be 08 00
    12623     call 09f80h                               ; e8 42 1b
     12608    call 09fd0h                               ; e8 3e 1b
    1262412609    mov word [bp-02eh], bx                    ; 89 5e d2
    1262512610    mov word [bp-030h], cx                    ; 89 4e d0
     
    1263012615    mov dx, word [bp-036h]                    ; 8b 56 ca
    1263112616    mov si, strict word 00010h                ; be 10 00
    12632     call 09f80h                               ; e8 27 1b
     12617    call 09fd0h                               ; e8 23 1b
    1263312618    mov si, word [bp-032h]                    ; 8b 76 ce
    1263412619    add si, dx                                ; 01 d6
     
    1263712622    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1263812623    adc ax, bx                                ; 11 d8
    12639     jmp short 084a9h                          ; eb 3f
     12624    jmp short 084fdh                          ; eb 3f
    1264012625    test ax, ax                               ; 85 c0
    12641     jnbe short 08480h                         ; 77 12
    12642     jne short 0848ch                          ; 75 1c
     12626    jnbe short 084d4h                         ; 77 12
     12627    jne short 084e0h                          ; 75 1c
    1264312628    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    12644     jnbe short 08480h                         ; 77 0a
    12645     jne short 0848ch                          ; 75 14
     12629    jnbe short 084d4h                         ; 77 0a
     12630    jne short 084e0h                          ; 75 14
    1264612631    cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
    12647     jnbe short 08480h                         ; 77 02
    12648     jne short 0848ch                          ; 75 0c
     12632    jnbe short 084d4h                         ; 77 02
     12633    jne short 084e0h                          ; 75 0c
    1264912634    mov word [bp-018h], 00080h                ; c7 46 e8 80 00
    1265012635    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
    12651     jmp short 084a5h                          ; eb 19
     12636    jmp short 084f9h                          ; eb 19
    1265212637    mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
    1265312638    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
     
    1265612641    mov dx, word [bp-014h]                    ; 8b 56 ec
    1265712642    mov si, strict word 0000bh                ; be 0b 00
    12658     call 09f80h                               ; e8 db 1a
     12643    call 09fd0h                               ; e8 d7 1a
    1265912644    mov si, dx                                ; 89 d6
    1266012645    mov dx, cx                                ; 89 ca
     
    1269112676    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1269212677    test dx, dx                               ; 85 d2
    12693     jne short 0851bh                          ; 75 06
     12678    jne short 0856fh                          ; 75 06
    1269412679    cmp si, 00400h                            ; 81 fe 00 04
    12695     jbe short 08529h                          ; 76 0e
     12680    jbe short 0857dh                          ; 76 0e
    1269612681    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1269712682    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12698     jmp short 08531h                          ; eb 08
     12683    jmp short 08585h                          ; eb 08
    1269912684    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1270012685    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1270212687    mov cx, ds                                ; 8c d9
    1270312688    mov ax, strict word 00004h                ; b8 04 00
    12704     call 01923h                               ; e8 e7 93
     12689    call 01923h                               ; e8 93 93
    1270512690    push word [bp-012h]                       ; ff 76 ee
    1270612691    push word [bp-010h]                       ; ff 76 f0
     
    1271712702    push 00c18h                               ; 68 18 0c
    1271812703    push strict byte 00004h                   ; 6a 04
    12719     call 01966h                               ; e8 05 94
     12704    call 01966h                               ; e8 b1 93
    1272012705    add sp, strict byte 00018h                ; 83 c4 18
    1272112706    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1274512730    mov dx, strict word 00075h                ; ba 75 00
    1274612731    mov ax, strict word 00040h                ; b8 40 00
    12747     call 01650h                               ; e8 9b 90
     12732    call 01650h                               ; e8 47 90
    1274812733    mov bl, al                                ; 88 c3
    1274912734    db  0feh, 0c3h
     
    1275212737    mov dx, strict word 00075h                ; ba 75 00
    1275312738    mov ax, strict word 00040h                ; b8 40 00
    12754     call 0165eh                               ; e8 9a 90
     12739    call 0165eh                               ; e8 46 90
    1275512740    inc byte [bp-00ch]                        ; fe 46 f4
    12756     jmp near 0865bh                           ; e9 91 00
     12741    jmp near 086afh                           ; e9 91 00
    1275712742    mov bx, 00da0h                            ; bb a0 0d
    1275812743    mov cx, ds                                ; 8c d9
    1275912744    mov ax, strict word 00004h                ; b8 04 00
    12760     call 01923h                               ; e8 4e 93
     12745    call 01923h                               ; e8 fa 92
    1276112746    push word [bp-022h]                       ; ff 76 de
    1276212747    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1276512750    push 00c46h                               ; 68 46 0c
    1276612751    push strict byte 00004h                   ; 6a 04
    12767     call 01966h                               ; e8 80 93
     12752    call 01966h                               ; e8 2c 93
    1276812753    add sp, strict byte 00008h                ; 83 c4 08
    1276912754    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1277112756    mov byte [bp-00eh], al                    ; 88 46 f2
    1277212757    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
    12773     je short 085fdh                           ; 74 05
     12758    je short 08651h                           ; 74 05
    1277412759    mov dx, strict word 00001h                ; ba 01 00
    12775     jmp short 085ffh                          ; eb 02
     12760    jmp short 08653h                          ; eb 02
    1277612761    xor dx, dx                                ; 31 d2
    1277712762    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1280912794    inc word [bp-022h]                        ; ff 46 de
    1281012795    cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
    12811     jl short 08672h                           ; 7c 03
    12812     jmp near 086eah                           ; e9 78 00
     12796    jl short 086c6h                           ; 7c 03
     12797    jmp near 0873eh                           ; e9 78 00
    1281312798    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1281412799    xor al, al                                ; 30 c0
     
    1282912814    lea bx, [bp-046h]                         ; 8d 5e ba
    1283012815    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12831     call 07d7ch                               ; e8 d7 f6
     12816    call 07dd0h                               ; e8 d7 f6
    1283212817    test al, al                               ; 84 c0
    12833     je short 086b7h                           ; 74 0e
     12818    je short 0870bh                           ; 74 0e
    1283412819    push 00b92h                               ; 68 92 0b
    1283512820    push 00bb2h                               ; 68 b2 0b
    1283612821    push strict byte 00007h                   ; 6a 07
    12837     call 01966h                               ; e8 b2 92
     12822    call 01966h                               ; e8 5e 92
    1283812823    add sp, strict byte 00006h                ; 83 c4 06
    1283912824    mov es, [bp-020h]                         ; 8e 46 e0
     
    1284112826    mov byte [bp-00ch], al                    ; 88 46 f4
    1284212827    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12843     jne short 086d3h                          ; 75 0a
     12828    jne short 08727h                          ; 75 0a
    1284412829    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12845     jne short 086d3h                          ; 75 03
    12846     jmp near 08272h                           ; e9 9f fb
     12830    jne short 08727h                          ; 75 03
     12831    jmp near 082c6h                           ; e9 9f fb
    1284712832    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12848     jne short 0865bh                          ; 75 81
     12833    jne short 086afh                          ; 75 81
    1284912834    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1285012835    and AL, strict byte 01fh                  ; 24 1f
    1285112836    cmp AL, strict byte 005h                  ; 3c 05
    12852     jne short 086e7h                          ; 75 03
    12853     jmp near 085cah                           ; e9 e3 fe
    12854     jmp near 0865bh                           ; e9 71 ff
     12837    jne short 0873bh                          ; 75 03
     12838    jmp near 0861eh                           ; e9 e3 fe
     12839    jmp near 086afh                           ; e9 71 ff
    1285512840    lea sp, [bp-00ah]                         ; 8d 66 f6
    1285612841    pop di                                    ; 5f
     
    1286112846    pop bp                                    ; 5d
    1286212847    retn                                      ; c3
    12863 _scsi_init:                                  ; 0xf86f4 LB 0x66
     12848_scsi_init:                                  ; 0xf8748 LB 0x66
    1286412849    push bp                                   ; 55
    1286512850    mov bp, sp                                ; 89 e5
    1286612851    mov dx, strict word 0000eh                ; ba 0e 00
    1286712852    mov ax, strict word 00040h                ; b8 40 00
    12868     call 0166ch                               ; e8 6c 8f
     12853    call 0166ch                               ; e8 18 8f
    1286912854    mov bx, 00122h                            ; bb 22 01
    1287012855    mov es, ax                                ; 8e c0
     
    1287712862    ; sub ah, ah                                ; 2a e4
    1287812863    cmp AL, strict byte 055h                  ; 3c 55
    12879     jne short 08724h                          ; 75 0c
     12864    jne short 08778h                          ; 75 0c
    1288012865    xor al, al                                ; 30 c0
    1288112866    mov dx, 00433h                            ; ba 33 04
    1288212867    out DX, AL                                ; ee
    1288312868    mov ax, 00430h                            ; b8 30 04
    12884     call 0824eh                               ; e8 2a fb
     12869    call 082a2h                               ; e8 2a fb
    1288512870    mov AL, strict byte 055h                  ; b0 55
    1288612871    mov dx, 00436h                            ; ba 36 04
     
    1289012875    ; sub ah, ah                                ; 2a e4
    1289112876    cmp AL, strict byte 055h                  ; 3c 55
    12892     jne short 0873dh                          ; 75 0c
     12877    jne short 08791h                          ; 75 0c
    1289312878    xor al, al                                ; 30 c0
    1289412879    mov dx, 00437h                            ; ba 37 04
    1289512880    out DX, AL                                ; ee
    1289612881    mov ax, 00434h                            ; b8 34 04
    12897     call 0824eh                               ; e8 11 fb
     12882    call 082a2h                               ; e8 11 fb
    1289812883    mov AL, strict byte 055h                  ; b0 55
    1289912884    mov dx, 0043ah                            ; ba 3a 04
     
    1290312888    ; sub ah, ah                                ; 2a e4
    1290412889    cmp AL, strict byte 055h                  ; 3c 55
    12905     jne short 08756h                          ; 75 0c
     12890    jne short 087aah                          ; 75 0c
    1290612891    xor al, al                                ; 30 c0
    1290712892    mov dx, 0043bh                            ; ba 3b 04
    1290812893    out DX, AL                                ; ee
    1290912894    mov ax, 00438h                            ; b8 38 04
    12910     call 0824eh                               ; e8 f8 fa
     12895    call 082a2h                               ; e8 f8 fa
    1291112896    mov sp, bp                                ; 89 ec
    1291212897    pop bp                                    ; 5d
    1291312898    retn                                      ; c3
    12914 ahci_ctrl_extract_bits_:                     ; 0xf875a LB 0x1c
     12899ahci_ctrl_extract_bits_:                     ; 0xf87ae LB 0x1c
    1291512900    push si                                   ; 56
    1291612901    push bp                                   ; 55
     
    1292112906    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1292212907    xor ch, ch                                ; 30 ed
    12923     jcxz 08771h                               ; e3 06
     12908    jcxz 087c5h                               ; e3 06
    1292412909    shr dx, 1                                 ; d1 ea
    1292512910    rcr ax, 1                                 ; d1 d8
    12926     loop 0876bh                               ; e2 fa
     12911    loop 087bfh                               ; e2 fa
    1292712912    pop bp                                    ; 5d
    1292812913    pop si                                    ; 5e
    1292912914    retn 00002h                               ; c2 02 00
    12930 ahci_addr_to_phys_:                          ; 0xf8776 LB 0x1e
     12915ahci_addr_to_phys_:                          ; 0xf87ca LB 0x1e
    1293112916    push bx                                   ; 53
    1293212917    push cx                                   ; 51
     
    1293912924    sal ax, 1                                 ; d1 e0
    1294012925    rcl dx, 1                                 ; d1 d2
    12941     loop 08784h                               ; e2 fa
     12926    loop 087d8h                               ; e2 fa
    1294212927    xor cx, cx                                ; 31 c9
    1294312928    add ax, bx                                ; 01 d8
     
    1294712932    pop bx                                    ; 5b
    1294812933    retn                                      ; c3
    12949 ahci_port_cmd_sync_:                         ; 0xf8794 LB 0x156
     12934ahci_port_cmd_sync_:                         ; 0xf87e8 LB 0x156
    1295012935    push bp                                   ; 55
    1295112936    mov bp, sp                                ; 89 e5
     
    1296212947    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1296312948    cmp AL, strict byte 0ffh                  ; 3c ff
    12964     jne short 087b7h                          ; 75 03
    12965     jmp near 088e2h                           ; e9 2b 01
     12949    jne short 0880bh                          ; 75 03
     12950    jmp near 08936h                           ; e9 2b 01
    1296612951    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1296712952    xor ah, ah                                ; 30 e4
     
    1297612961    lea ax, [si+00080h]                       ; 8d 84 80 00
    1297712962    mov dx, cx                                ; 89 ca
    12978     call 08776h                               ; e8 92 ff
     12963    call 087cah                               ; e8 92 ff
    1297912964    mov es, cx                                ; 8e c1
    1298012965    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1304213027    xchg dx, ax                               ; 92
    1304313028    test dh, 040h                             ; f6 c6 40
    13044     jne short 08875h                          ; 75 04
     13029    jne short 088c9h                          ; 75 04
    1304513030    test AL, strict byte 001h                 ; a8 01
    13046     je short 08879h                           ; 74 04
     13031    je short 088cdh                           ; 74 04
    1304713032    mov AL, strict byte 001h                  ; b0 01
    13048     jmp short 0887bh                          ; eb 02
     13033    jmp short 088cfh                          ; eb 02
    1304913034    xor al, al                                ; 30 c0
    1305013035    test al, al                               ; 84 c0
    13051     je short 08848h                           ; 74 c9
     13036    je short 0889ch                           ; 74 c9
    1305213037    mov al, byte [bp-008h]                    ; 8a 46 f8
    1305313038    xor ah, ah                                ; 30 e4
     
    1310513090    pop bp                                    ; 5d
    1310613091    retn                                      ; c3
    13107 ahci_cmd_data_:                              ; 0xf88ea LB 0x267
     13092ahci_cmd_data_:                              ; 0xf893e LB 0x267
    1310813093    push bp                                   ; 55
    1310913094    mov bp, sp                                ; 89 e5
     
    1313013115    mov ax, 00080h                            ; b8 80 00
    1313113116    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13132     call 09fa0h                               ; e8 78 16
     13117    call 09ff0h                               ; e8 74 16
    1313313118    mov es, [bp-00ah]                         ; 8e 46 f6
    1313413119    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1314813133    mov dx, word [es:si]                      ; 26 8b 14
    1314913134    mov si, strict word 00008h                ; be 08 00
    13150     call 09f80h                               ; e8 14 16
     13135    call 09fd0h                               ; e8 10 16
    1315113136    mov es, [bp-00ah]                         ; 8e 46 f6
    1315213137    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1315913144    mov dx, word [es:si]                      ; 26 8b 14
    1316013145    mov si, strict word 00010h                ; be 10 00
    13161     call 09f80h                               ; e8 ee 15
     13146    call 09fd0h                               ; e8 ea 15
    1316213147    mov es, [bp-00ah]                         ; 8e 46 f6
    1316313148    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1317113156    mov dx, word [es:si]                      ; 26 8b 14
    1317213157    mov si, strict word 00018h                ; be 18 00
    13173     call 09f80h                               ; e8 c2 15
     13158    call 09fd0h                               ; e8 be 15
    1317413159    mov es, [bp-00ah]                         ; 8e 46 f6
    1317513160    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1318213167    mov dx, word [es:si]                      ; 26 8b 14
    1318313168    mov si, strict word 00020h                ; be 20 00
    13184     call 09f80h                               ; e8 9c 15
     13169    call 09fd0h                               ; e8 98 15
    1318513170    mov es, [bp-00ah]                         ; 8e 46 f6
    1318613171    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1319313178    mov dx, word [es:si]                      ; 26 8b 14
    1319413179    mov si, strict word 00028h                ; be 28 00
    13195     call 09f80h                               ; e8 76 15
     13180    call 09fd0h                               ; e8 72 15
    1319613181    mov es, [bp-00ah]                         ; 8e 46 f6
    1319713182    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1320713192    mov bx, word [bp-010h]                    ; 8b 5e f0
    1320813193    xor cx, cx                                ; 31 c9
    13209     call 09f30h                               ; e8 f1 14
     13194    call 09f80h                               ; e8 ed 14
    1321013195    push dx                                   ; 52
    1321113196    push ax                                   ; 50
     
    1321713202    mov ax, 0026ah                            ; b8 6a 02
    1321813203    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13219     call 09e86h                               ; e8 2b 14
     13204    call 09edah                               ; e8 2b 14
    1322013205    mov es, [bp-00ah]                         ; 8e 46 f6
    1322113206    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1324013225    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1324113226    test ax, ax                               ; 85 c0
    13242     je short 08aedh                           ; 74 3b
     13227    je short 08b41h                           ; 74 3b
    1324313228    dec ax                                    ; 48
    1324413229    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1325813243    mov al, byte [bp-008h]                    ; 8a 46 f8
    1325913244    cmp AL, strict byte 035h                  ; 3c 35
    13260     jne short 08afah                          ; 75 06
     13245    jne short 08b4eh                          ; 75 06
    1326113246    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13262     jmp short 08b11h                          ; eb 17
     13247    jmp short 08b65h                          ; eb 17
    1326313248    cmp AL, strict byte 0a0h                  ; 3c a0
    13264     jne short 08b0dh                          ; 75 0f
     13249    jne short 08b61h                          ; 75 0f
    1326513250    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1326613251    les bx, [bp-00eh]                         ; c4 5e f2
    1326713252    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13268     jmp short 08b11h                          ; eb 04
     13253    jmp short 08b65h                          ; eb 04
    1326913254    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1327013255    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1327313258    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1327413259    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13275     call 08794h                               ; e8 71 fc
     13260    call 087e8h                               ; e8 71 fc
    1327613261    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1327713262    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1328013265    add ax, 0026ah                            ; 05 6a 02
    1328113266    mov dx, cx                                ; 89 ca
    13282     call 09efdh                               ; e8 c5 13
     13267    call 09f51h                               ; e8 c5 13
    1328313268    mov es, cx                                ; 8e c1
    1328413269    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1328513270    test al, al                               ; 84 c0
    13286     je short 08b47h                           ; 74 05
     13271    je short 08b9bh                           ; 74 05
    1328713272    mov ax, strict word 00004h                ; b8 04 00
    13288     jmp short 08b49h                          ; eb 02
     13273    jmp short 08b9dh                          ; eb 02
    1328913274    xor ah, ah                                ; 30 e4
    1329013275    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1329413279    pop bp                                    ; 5d
    1329513280    retn                                      ; c3
    13296 ahci_port_deinit_current_:                   ; 0xf8b51 LB 0x180
     13281ahci_port_deinit_current_:                   ; 0xf8ba5 LB 0x180
    1329713282    push bp                                   ; 55
    1329813283    mov bp, sp                                ; 89 e5
     
    1330913294    mov byte [bp-00ah], al                    ; 88 46 f6
    1331013295    cmp AL, strict byte 0ffh                  ; 3c ff
    13311     je short 08bd2h                           ; 74 5f
     13296    je short 08c26h                           ; 74 5f
    1331213297    xor ah, ah                                ; 30 e4
    1331313298    sal ax, 007h                              ; c1 e0 07
     
    1335313338    xchg dx, ax                               ; 92
    1335413339    test ax, 0c011h                           ; a9 11 c0
    13355     je short 08bd5h                           ; 74 07
     13340    je short 08c29h                           ; 74 07
    1335613341    mov AL, strict byte 001h                  ; b0 01
    13357     jmp short 08bd7h                          ; eb 05
    13358     jmp near 08cc8h                           ; e9 f3 00
     13342    jmp short 08c2bh                          ; eb 05
     13343    jmp near 08d1ch                           ; e9 f3 00
    1335913344    xor al, al                                ; 30 c0
    1336013345    cmp AL, strict byte 001h                  ; 3c 01
    13361     je short 08ba5h                           ; 74 ca
     13346    je short 08bf9h                           ; 74 ca
    1336213347    mov cx, strict word 00020h                ; b9 20 00
    1336313348    xor bx, bx                                ; 31 db
    1336413349    mov ax, di                                ; 89 f8
    1336513350    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13366     call 09fa0h                               ; e8 b8 13
     13351    call 09ff0h                               ; e8 b4 13
    1336713352    lea ax, [di+00080h]                       ; 8d 85 80 00
    1336813353    mov cx, strict word 00040h                ; b9 40 00
    1336913354    xor bx, bx                                ; 31 db
    1337013355    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13371     call 09fa0h                               ; e8 a9 13
     13356    call 09ff0h                               ; e8 a5 13
    1337213357    lea ax, [di+00200h]                       ; 8d 85 00 02
    1337313358    mov cx, strict word 00060h                ; b9 60 00
    1337413359    xor bx, bx                                ; 31 db
    1337513360    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13376     call 09fa0h                               ; e8 9a 13
     13361    call 09ff0h                               ; e8 96 13
    1337713362    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1337813363    xor ah, ah                                ; 30 e4
     
    1347913464    pop bp                                    ; 5d
    1348013465    retn                                      ; c3
    13481 ahci_port_init_:                             ; 0xf8cd1 LB 0x24d
     13466ahci_port_init_:                             ; 0xf8d25 LB 0x24d
    1348213467    push bp                                   ; 55
    1348313468    mov bp, sp                                ; 89 e5
     
    1348913474    mov word [bp-00ah], dx                    ; 89 56 f6
    1349013475    mov byte [bp-008h], bl                    ; 88 5e f8
    13491     call 08b51h                               ; e8 6c fe
     13476    call 08ba5h                               ; e8 6c fe
    1349213477    mov al, bl                                ; 88 d8
    1349313478    xor ah, ah                                ; 30 e4
     
    1353813523    xchg dx, ax                               ; 92
    1353913524    test ax, 0c011h                           ; a9 11 c0
    13540     je short 08d56h                           ; 74 04
     13525    je short 08daah                           ; 74 04
    1354113526    mov AL, strict byte 001h                  ; b0 01
    13542     jmp short 08d58h                          ; eb 02
     13527    jmp short 08dach                          ; eb 02
    1354313528    xor al, al                                ; 30 c0
    1354413529    cmp AL, strict byte 001h                  ; 3c 01
    13545     je short 08d21h                           ; 74 c5
     13530    je short 08d75h                           ; 74 c5
    1354613531    mov cx, strict word 00020h                ; b9 20 00
    1354713532    xor bx, bx                                ; 31 db
    1354813533    mov ax, si                                ; 89 f0
    1354913534    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13550     call 09fa0h                               ; e8 37 12
     13535    call 09ff0h                               ; e8 33 12
    1355113536    lea ax, [si+00080h]                       ; 8d 84 80 00
    1355213537    mov cx, strict word 00040h                ; b9 40 00
    1355313538    xor bx, bx                                ; 31 db
    1355413539    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13555     call 09fa0h                               ; e8 28 12
     13540    call 09ff0h                               ; e8 24 12
    1355613541    lea di, [si+00200h]                       ; 8d bc 00 02
    1355713542    mov cx, strict word 00060h                ; b9 60 00
     
    1355913544    mov ax, di                                ; 89 f8
    1356013545    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13561     call 09fa0h                               ; e8 17 12
     13546    call 09ff0h                               ; e8 13 12
    1356213547    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1356313548    xor bh, bh                                ; 30 ff
     
    1357713562    mov ax, di                                ; 89 f8
    1357813563    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13579     call 08776h                               ; e8 bf f9
     13564    call 087cah                               ; e8 bf f9
    1358013565    mov es, [bp-00ah]                         ; 8e 46 f6
    1358113566    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1362213607    mov ax, si                                ; 89 f0
    1362313608    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13624     call 08776h                               ; e8 53 f9
     13609    call 087cah                               ; e8 53 f9
    1362513610    mov es, [bp-00ah]                         ; 8e 46 f6
    1362613611    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1372713712    pop bp                                    ; 5d
    1372813713    retn                                      ; c3
    13729 @ahci_read_sectors:                          ; 0xf8f1e LB 0xa8
     13714@ahci_read_sectors:                          ; 0xf8f72 LB 0xa8
    1373013715    push bp                                   ; 55
    1373113716    mov bp, sp                                ; 89 e5
     
    1373813723    sub bx, strict byte 0000ch                ; 83 eb 0c
    1373913724    cmp bx, strict byte 00004h                ; 83 fb 04
    13740     jbe short 08f44h                          ; 76 0f
     13725    jbe short 08f98h                          ; 76 0f
    1374113726    push bx                                   ; 53
    1374213727    push 00c62h                               ; 68 62 0c
    1374313728    push 00c74h                               ; 68 74 0c
    1374413729    push strict byte 00007h                   ; 6a 07
    13745     call 01966h                               ; e8 25 8a
     13730    call 01966h                               ; e8 d1 89
    1374613731    add sp, strict byte 00008h                ; 83 c4 08
    1374713732    xor di, di                                ; 31 ff
     
    1375813743    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1375913744    xor ax, ax                                ; 31 c0
    13760     call 08cd1h                               ; e8 60 fd
     13745    call 08d25h                               ; e8 60 fd
    1376113746    mov bx, strict word 00025h                ; bb 25 00
    1376213747    mov ax, si                                ; 89 f0
    1376313748    mov dx, word [bp+006h]                    ; 8b 56 06
    13764     call 088eah                               ; e8 6e f9
     13749    call 0893eh                               ; e8 6e f9
    1376513750    mov word [bp-006h], ax                    ; 89 46 fa
    1376613751    mov es, [bp+006h]                         ; 8e 46 06
     
    1379113776    pop bp                                    ; 5d
    1379213777    retn 00004h                               ; c2 04 00
    13793 @ahci_write_sectors:                         ; 0xf8fc6 LB 0x86
     13778@ahci_write_sectors:                         ; 0xf901a LB 0x86
    1379413779    push bp                                   ; 55
    1379513780    mov bp, sp                                ; 89 e5
     
    1380313788    sub dx, strict byte 0000ch                ; 83 ea 0c
    1380413789    cmp dx, strict byte 00004h                ; 83 fa 04
    13805     jbe short 08ff0h                          ; 76 0f
     13790    jbe short 09044h                          ; 76 0f
    1380613791    push dx                                   ; 52
    1380713792    push 00c93h                               ; 68 93 0c
    1380813793    push 00c74h                               ; 68 74 0c
    1380913794    push strict byte 00007h                   ; 6a 07
    13810     call 01966h                               ; e8 79 89
     13795    call 01966h                               ; e8 25 89
    1381113796    add sp, strict byte 00008h                ; 83 c4 08
    1381213797    xor bx, bx                                ; 31 db
     
    1382313808    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1382413809    xor ax, ax                                ; 31 c0
    13825     call 08cd1h                               ; e8 b6 fc
     13810    call 08d25h                               ; e8 b6 fc
    1382613811    mov bx, strict word 00035h                ; bb 35 00
    1382713812    mov ax, si                                ; 89 f0
    1382813813    mov dx, cx                                ; 89 ca
    13829     call 088eah                               ; e8 c5 f8
     13814    call 0893eh                               ; e8 c5 f8
    1383013815    mov dx, ax                                ; 89 c2
    1383113816    mov es, cx                                ; 8e c1
     
    1384213827    pop bp                                    ; 5d
    1384313828    retn 00004h                               ; c2 04 00
    13844 ahci_cmd_packet_:                            ; 0xf904c LB 0x18a
     13829ahci_cmd_packet_:                            ; 0xf90a0 LB 0x18a
    1384513830    push bp                                   ; 55
    1384613831    mov bp, sp                                ; 89 e5
     
    1385413839    mov dx, strict word 0000eh                ; ba 0e 00
    1385513840    mov ax, strict word 00040h                ; b8 40 00
    13856     call 0166ch                               ; e8 05 86
     13841    call 0166ch                               ; e8 b1 85
    1385713842    mov si, 00122h                            ; be 22 01
    1385813843    mov word [bp-008h], ax                    ; 89 46 f8
    1385913844    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13860     jne short 09092h                          ; 75 1f
     13845    jne short 090e6h                          ; 75 1f
    1386113846    mov bx, 00da0h                            ; bb a0 0d
    1386213847    mov cx, ds                                ; 8c d9
    1386313848    mov ax, strict word 00004h                ; b8 04 00
    13864     call 01923h                               ; e8 a5 88
     13849    call 01923h                               ; e8 51 88
    1386513850    push 00ca6h                               ; 68 a6 0c
    1386613851    push 00cb6h                               ; 68 b6 0c
    1386713852    push strict byte 00004h                   ; 6a 04
    13868     call 01966h                               ; e8 dd 88
     13853    call 01966h                               ; e8 89 88
    1386913854    add sp, strict byte 00006h                ; 83 c4 06
    1387013855    mov ax, strict word 00001h                ; b8 01 00
    13871     jmp near 091cdh                           ; e9 3b 01
     13856    jmp near 09221h                           ; e9 3b 01
    1387213857    test byte [bp+004h], 001h                 ; f6 46 04 01
    13873     jne short 0908ch                          ; 75 f4
     13858    jne short 090e0h                          ; 75 f4
    1387413859    mov ax, word [bp+006h]                    ; 8b 46 06
    1387513860    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1387713862    sal ax, 1                                 ; d1 e0
    1387813863    rcl dx, 1                                 ; d1 d2
    13879     loop 090a1h                               ; e2 fa
     13864    loop 090f5h                               ; e2 fa
    1388013865    mov es, [bp-008h]                         ; 8e 46 f8
    1388113866    mov word [es:si], ax                      ; 26 89 04
     
    1389113876    mov dx, word [bp+008h]                    ; 8b 56 08
    1389213877    xor cx, cx                                ; 31 c9
    13893     call 09f50h                               ; e8 76 0e
     13878    call 09fa0h                               ; e8 72 0e
    1389413879    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1389513880    xor di, di                                ; 31 ff
     
    1391013895    mov bx, ax                                ; 89 c3
    1391113896    xor al, al                                ; 30 c0
    13912     call 08cd1h                               ; e8 b8 fb
     13897    call 08d25h                               ; e8 b8 fb
    1391313898    mov al, byte [bp-006h]                    ; 8a 46 fa
    1391413899    xor ah, ah                                ; 30 e4
     
    1391813903    mov ax, 000c0h                            ; b8 c0 00
    1391913904    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13920     call 09fb0h                               ; e8 82 0e
     13905    call 0a000h                               ; e8 7e 0e
    1392113906    mov es, [bp-008h]                         ; 8e 46 f8
    1392213907    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1392513910    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1392613911    test ax, ax                               ; 85 c0
    13927     je short 0916ch                           ; 74 27
     13912    je short 091c0h                           ; 74 27
    1392813913    dec ax                                    ; 48
    1392913914    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1393813923    mov ax, si                                ; 89 f0
    1393913924    mov dx, word [bp-008h]                    ; 8b 56 f8
    13940     call 088eah                               ; e8 73 f7
     13925    call 0893eh                               ; e8 73 f7
    1394113926    les bx, [bp-00eh]                         ; c4 5e f2
    1394213927    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1396513950    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1396613951    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13967     jne short 091cbh                          ; 75 05
     13952    jne short 0921fh                          ; 75 05
    1396813953    mov ax, strict word 00004h                ; b8 04 00
    13969     jmp short 091cdh                          ; eb 02
     13954    jmp short 09221h                          ; eb 02
    1397013955    xor ax, ax                                ; 31 c0
    1397113956    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1397413959    pop bp                                    ; 5d
    1397513960    retn 0000ch                               ; c2 0c 00
    13976 ahci_port_detect_device_:                    ; 0xf91d6 LB 0x4e3
     13961ahci_port_detect_device_:                    ; 0xf922a LB 0x4e3
    1397713962    push bp                                   ; 55
    1397813963    mov bp, sp                                ; 89 e5
     
    1398713972    xor ch, ch                                ; 30 ed
    1398813973    mov bx, cx                                ; 89 cb
    13989     call 08cd1h                               ; e8 e0 fa
     13974    call 08d25h                               ; e8 e0 fa
    1399013975    mov dx, strict word 0000eh                ; ba 0e 00
    1399113976    mov ax, strict word 00040h                ; b8 40 00
    13992     call 0166ch                               ; e8 72 84
     13977    call 0166ch                               ; e8 1e 84
    1399313978    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
    1399413979    mov word [bp-016h], ax                    ; 89 46 ea
     
    1406014045    mov bx, strict word 0000fh                ; bb 0f 00
    1406114046    xor cx, cx                                ; 31 c9
    14062     call 0875ah                               ; e8 b5 f4
     14047    call 087aeh                               ; e8 b5 f4
    1406314048    test ax, ax                               ; 85 c0
    14064     jne short 092ach                          ; 75 03
    14065     jmp near 096b1h                           ; e9 05 04
     14049    jne short 09300h                          ; 75 03
     14050    jmp near 09705h                           ; e9 05 04
    1406614051    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1406714052    xor ah, ah                                ; 30 e4
     
    1409214077    mov bx, strict word 0000fh                ; bb 0f 00
    1409314078    xor cx, cx                                ; 31 c9
    14094     call 0875ah                               ; e8 67 f4
     14079    call 087aeh                               ; e8 67 f4
    1409514080    cmp ax, strict word 00001h                ; 3d 01 00
    14096     je short 092ach                           ; 74 b4
     14081    je short 09300h                           ; 74 b4
    1409714082    push strict byte 00000h                   ; 6a 00
    1409814083    mov bx, strict word 0000fh                ; bb 0f 00
     
    1410014085    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1410114086    mov dx, di                                ; 89 fa
    14102     call 0875ah                               ; e8 53 f4
     14087    call 087aeh                               ; e8 53 f4
    1410314088    cmp ax, strict word 00003h                ; 3d 03 00
    14104     jne short 092a9h                          ; 75 9d
     14089    jne short 092fdh                          ; 75 9d
    1410514090    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1410614091    add ax, 00130h                            ; 05 30 01
     
    1413014115    mov byte [bp-008h], al                    ; 88 46 f8
    1413114116    cmp AL, strict byte 004h                  ; 3c 04
    14132     jc short 09356h                           ; 72 03
    14133     jmp near 096b1h                           ; e9 5b 03
     14117    jc short 093aah                           ; 72 03
     14118    jmp near 09705h                           ; e9 5b 03
    1413414119    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1413514120    add ax, 00118h                            ; 05 18 01
     
    1418114166    add cl, 00ch                              ; 80 c1 0c
    1418214167    test dx, dx                               ; 85 d2
    14183     jne short 0941ch                          ; 75 54
     14168    jne short 09470h                          ; 75 54
    1418414169    cmp ax, 00101h                            ; 3d 01 01
    14185     jne short 0941ch                          ; 75 4f
     14170    jne short 09470h                          ; 75 4f
    1418614171    mov es, [bp-016h]                         ; 8e 46 ea
    1418714172    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1419814183    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1419914184    mov dx, es                                ; 8c c2
    14200     call 088eah                               ; e8 dd f4
     14185    call 0893eh                               ; e8 dd f4
    1420114186    mov byte [bp-00ah], cl                    ; 88 4e f6
    1420214187    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14203     je short 0941fh                           ; 74 08
     14188    je short 09473h                           ; 74 08
    1420414189    mov ax, strict word 00001h                ; b8 01 00
    14205     jmp short 09421h                          ; eb 05
    14206     jmp near 095efh                           ; e9 d0 01
     14190    jmp short 09475h                          ; eb 05
     14191    jmp near 09643h                           ; e9 d0 01
    1420714192    xor ax, ax                                ; 31 c0
    1420814193    mov dl, al                                ; 88 c2
     
    1422014205    mov word [bp-01eh], ax                    ; 89 46 e2
    1422114206    cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
    14222     jne short 09470h                          ; 75 1e
     14207    jne short 094c4h                          ; 75 1e
    1422314208    cmp di, strict byte 0ffffh                ; 83 ff ff
    14224     jne short 09470h                          ; 75 19
     14209    jne short 094c4h                          ; 75 19
    1422514210    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1422614211    mov word [bp-01eh], ax                    ; 89 46 e2
     
    1426114246    mov al, byte [bp-008h]                    ; 8a 46 f8
    1426214247    cmp AL, strict byte 001h                  ; 3c 01
    14263     jc short 094ebh                           ; 72 0c
    14264     jbe short 094f3h                          ; 76 12
     14248    jc short 0953fh                           ; 72 0c
     14249    jbe short 09547h                          ; 76 12
    1426514250    cmp AL, strict byte 003h                  ; 3c 03
    14266     je short 094fbh                           ; 74 16
     14251    je short 0954fh                           ; 74 16
    1426714252    cmp AL, strict byte 002h                  ; 3c 02
    14268     je short 094f7h                           ; 74 0e
    14269     jmp short 09543h                          ; eb 58
     14253    je short 0954bh                           ; 74 0e
     14254    jmp short 09597h                          ; eb 58
    1427014255    test al, al                               ; 84 c0
    14271     jne short 09543h                          ; 75 54
     14256    jne short 09597h                          ; 75 54
    1427214257    mov DL, strict byte 040h                  ; b2 40
    14273     jmp short 094fdh                          ; eb 0a
     14258    jmp short 09551h                          ; eb 0a
    1427414259    mov DL, strict byte 048h                  ; b2 48
    14275     jmp short 094fdh                          ; eb 06
     14260    jmp short 09551h                          ; eb 06
    1427614261    mov DL, strict byte 050h                  ; b2 50
    14277     jmp short 094fdh                          ; eb 02
     14262    jmp short 09551h                          ; eb 02
    1427814263    mov DL, strict byte 058h                  ; b2 58
    1427914264    mov bl, dl                                ; 88 d3
     
    1428114266    xor bh, bh                                ; 30 ff
    1428214267    mov ax, bx                                ; 89 d8
    14283     call 016ach                               ; e8 a3 81
     14268    call 016ach                               ; e8 4f 81
    1428414269    test al, al                               ; 84 c0
    14285     je short 09543h                           ; 74 36
     14270    je short 09597h                           ; 74 36
    1428614271    mov al, dl                                ; 88 d0
    1428714272    db  0feh, 0c0h
    1428814273    ; inc al                                    ; fe c0
    1428914274    xor ah, ah                                ; 30 e4
    14290     call 016ach                               ; e8 96 81
     14275    call 016ach                               ; e8 42 81
    1429114276    xor ah, ah                                ; 30 e4
    1429214277    mov cx, ax                                ; 89 c1
    1429314278    sal cx, 008h                              ; c1 e1 08
    1429414279    mov al, dl                                ; 88 d0
    14295     call 016ach                               ; e8 8a 81
     14280    call 016ach                               ; e8 36 81
    1429614281    xor ah, ah                                ; 30 e4
    1429714282    add ax, cx                                ; 01 c8
     
    1430014285    add AL, strict byte 002h                  ; 04 02
    1430114286    xor ah, ah                                ; 30 e4
    14302     call 016ach                               ; e8 7a 81
     14287    call 016ach                               ; e8 26 81
    1430314288    xor ah, ah                                ; 30 e4
    1430414289    mov word [bp-02ah], ax                    ; 89 46 d6
    1430514290    mov ax, bx                                ; 89 d8
    14306     call 016ach                               ; e8 70 81
     14291    call 016ach                               ; e8 1c 81
    1430714292    xor ah, ah                                ; 30 e4
    1430814293    mov word [bp-026h], ax                    ; 89 46 da
    14309     jmp short 09555h                          ; eb 12
     14294    jmp short 095a9h                          ; eb 12
    1431014295    push word [bp-01eh]                       ; ff 76 e2
    1431114296    push word [bp-012h]                       ; ff 76 ee
     
    1431414299    mov dx, ss                                ; 8c d2
    1431514300    lea ax, [bp-02ah]                         ; 8d 46 d6
    14316     call 05977h                               ; e8 22 c4
     14301    call 059cbh                               ; e8 22 c4
    1431714302    mov bx, 00da0h                            ; bb a0 0d
    1431814303    mov cx, ds                                ; 8c d9
    1431914304    mov ax, strict word 00004h                ; b8 04 00
    14320     call 01923h                               ; e8 c3 83
     14305    call 01923h                               ; e8 6f 83
    1432114306    push word [bp-01eh]                       ; ff 76 e2
    1432214307    push word [bp-012h]                       ; ff 76 ee
     
    1433914324    push 00cd6h                               ; 68 d6 0c
    1434014325    push strict byte 00004h                   ; 6a 04
    14341     call 01966h                               ; e8 d5 83
     14326    call 01966h                               ; e8 81 83
    1434214327    add sp, strict byte 0001ch                ; 83 c4 1c
    1434314328    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1437014355    mov dx, strict word 00075h                ; ba 75 00
    1437114356    mov ax, strict word 00040h                ; b8 40 00
    14372     call 01650h                               ; e8 73 80
     14357    call 01650h                               ; e8 1f 80
    1437314358    mov bl, al                                ; 88 c3
    1437414359    db  0feh, 0c3h
     
    1437714362    mov dx, strict word 00075h                ; ba 75 00
    1437814363    mov ax, strict word 00040h                ; b8 40 00
    14379     call 0165eh                               ; e8 72 80
    14380     jmp near 096a0h                           ; e9 b1 00
     14364    call 0165eh                               ; e8 1e 80
     14365    jmp near 096f4h                           ; e9 b1 00
    1438114366    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14382     jne short 09649h                          ; 75 54
     14367    jne short 0969dh                          ; 75 54
    1438314368    cmp ax, 00101h                            ; 3d 01 01
    14384     jne short 09649h                          ; 75 4f
     14369    jne short 0969dh                          ; 75 4f
    1438514370    mov es, [bp-016h]                         ; 8e 46 ea
    1438614371    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1439714382    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1439814383    mov dx, es                                ; 8c c2
    14399     call 088eah                               ; e8 b0 f2
     14384    call 0893eh                               ; e8 b0 f2
    1440014385    mov byte [bp-00ah], cl                    ; 88 4e f6
    1440114386    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14402     je short 0964bh                           ; 74 07
     14387    je short 0969fh                           ; 74 07
    1440314388    mov dx, strict word 00001h                ; ba 01 00
    14404     jmp short 0964dh                          ; eb 04
    14405     jmp short 096a0h                          ; eb 55
     14389    jmp short 096a1h                          ; eb 04
     14390    jmp short 096f4h                          ; eb 55
    1440614391    xor dx, dx                                ; 31 d2
    1440714392    mov bl, byte [bp-008h]                    ; 8a 5e f8
     
    1444214427    pop bp                                    ; 5d
    1444314428    retn                                      ; c3
    14444 ahci_mem_alloc_:                             ; 0xf96b9 LB 0x43
     14429ahci_mem_alloc_:                             ; 0xf970d LB 0x43
    1444514430    push bp                                   ; 55
    1444614431    mov bp, sp                                ; 89 e5
     
    1445214437    mov dx, 00413h                            ; ba 13 04
    1445314438    xor ax, ax                                ; 31 c0
    14454     call 0166ch                               ; e8 a3 7f
     14439    call 0166ch                               ; e8 4f 7f
    1445514440    test ax, ax                               ; 85 c0
    14456     je short 096f2h                           ; 74 25
     14441    je short 09746h                           ; 74 25
    1445714442    dec ax                                    ; 48
    1445814443    mov bx, ax                                ; 89 c3
     
    1446114446    sal ax, 1                                 ; d1 e0
    1446214447    rcl dx, 1                                 ; d1 d2
    14463     loop 096d5h                               ; e2 fa
     14448    loop 09729h                               ; e2 fa
    1446414449    mov si, ax                                ; 89 c6
    1446514450    mov di, dx                                ; 89 d7
     
    1446714452    shr di, 1                                 ; d1 ef
    1446814453    rcr si, 1                                 ; d1 de
    14469     loop 096e2h                               ; e2 fa
     14454    loop 09736h                               ; e2 fa
    1447014455    mov dx, 00413h                            ; ba 13 04
    1447114456    xor ax, ax                                ; 31 c0
    14472     call 0167ah                               ; e8 8a 7f
     14457    call 0167ah                               ; e8 36 7f
    1447314458    mov ax, si                                ; 89 f0
    1447414459    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1448014465    pop bp                                    ; 5d
    1448114466    retn                                      ; c3
    14482 ahci_hba_init_:                              ; 0xf96fc LB 0x16d
     14467ahci_hba_init_:                              ; 0xf9750 LB 0x16d
    1448314468    push bp                                   ; 55
    1448414469    mov bp, sp                                ; 89 e5
     
    1449214477    mov dx, strict word 0000eh                ; ba 0e 00
    1449314478    mov ax, strict word 00040h                ; b8 40 00
    14494     call 0166ch                               ; e8 5a 7f
     14479    call 0166ch                               ; e8 06 7f
    1449514480    mov bx, 00122h                            ; bb 22 01
    1449614481    mov di, ax                                ; 89 c7
     
    1450914494    shr eax, 010h                             ; 66 c1 e8 10
    1451014495    xchg dx, ax                               ; 92
    14511     call 096b9h                               ; e8 83 ff
     14496    call 0970dh                               ; e8 83 ff
    1451214497    mov word [bp-010h], ax                    ; 89 46 f0
    1451314498    test ax, ax                               ; 85 c0
    14514     jne short 09740h                          ; 75 03
    14515     jmp near 09848h                           ; e9 08 01
     14499    jne short 09794h                          ; 75 03
     14500    jmp near 0989ch                           ; e9 08 01
    1451614501    mov ax, word [bp-010h]                    ; 8b 46 f0
    1451714502    mov es, di                                ; 8e c7
     
    1456314548    xchg dx, ax                               ; 92
    1456414549    test AL, strict byte 001h                 ; a8 01
    14565     jne short 0979ah                          ; 75 de
     14550    jne short 097eeh                          ; 75 de
    1456614551    xor ax, ax                                ; 31 c0
    1456714552    xor cx, cx                                ; 31 c9
     
    1458114566    mov bx, strict word 0001fh                ; bb 1f 00
    1458214567    xor cx, cx                                ; 31 c9
    14583     call 0875ah                               ; e8 7a ef
     14568    call 087aeh                               ; e8 7a ef
    1458414569    db  0feh, 0c0h
    1458514570    ; inc al                                    ; fe c0
    1458614571    mov byte [bp-00ch], al                    ; 88 46 f4
    1458714572    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    14588     jmp short 0980ch                          ; eb 21
     14573    jmp short 09860h                          ; eb 21
    1458914574    xor al, al                                ; 30 c0
    1459014575    test al, al                               ; 84 c0
    14591     je short 09803h                           ; 74 12
     14576    je short 09857h                           ; 74 12
    1459214577    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1459314578    xor bh, bh                                ; 30 ff
    1459414579    xor ax, ax                                ; 31 c0
    1459514580    mov dx, word [bp-010h]                    ; 8b 56 f0
    14596     call 091d6h                               ; e8 d8 f9
     14581    call 0922ah                               ; e8 d8 f9
    1459714582    dec byte [bp-00ch]                        ; fe 4e f4
    14598     je short 09846h                           ; 74 43
     14583    je short 0989ah                           ; 74 43
    1459914584    inc byte [bp-00eh]                        ; fe 46 f2
    1460014585    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
    14601     jnc short 09846h                          ; 73 3a
     14586    jnc short 0989ah                          ; 73 3a
    1460214587    mov cl, byte [bp-00eh]                    ; 8a 4e f2
    1460314588    xor ch, ch                                ; 30 ed
    1460414589    mov bx, strict word 00001h                ; bb 01 00
    1460514590    xor di, di                                ; 31 ff
    14606     jcxz 0981eh                               ; e3 06
     14591    jcxz 09872h                               ; e3 06
    1460714592    sal bx, 1                                 ; d1 e3
    1460814593    rcl di, 1                                 ; d1 d7
    14609     loop 09818h                               ; e2 fa
     14594    loop 0986ch                               ; e2 fa
    1461014595    mov ax, strict word 0000ch                ; b8 0c 00
    1461114596    xor cx, cx                                ; 31 c9
     
    1462314608    xchg dx, ax                               ; 92
    1462414609    test dx, di                               ; 85 fa
    14625     jne short 09842h                          ; 75 04
     14610    jne short 09896h                          ; 75 04
    1462614611    test ax, bx                               ; 85 d8
    14627     je short 097ebh                           ; 74 a9
     14612    je short 0983fh                           ; 74 a9
    1462814613    mov AL, strict byte 001h                  ; b0 01
    14629     jmp short 097edh                          ; eb a7
     14614    jmp short 09841h                          ; eb a7
    1463014615    xor ax, ax                                ; 31 c0
    1463114616    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1463714622    pop bp                                    ; 5d
    1463814623    retn                                      ; c3
    14639     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 051h, 099h, 02fh, 099h, 035h, 099h, 03bh, 099h, 041h
    14640     db  099h, 047h, 099h, 04dh, 099h, 051h, 099h
    14641 _ahci_init:                                  ; 0xf9869 LB 0x119
     14624    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0a5h, 099h, 083h, 099h, 089h, 099h, 08fh, 099h, 095h
     14625    db  099h, 09bh, 099h, 0a1h, 099h, 0a5h, 099h
     14626_ahci_init:                                  ; 0xf98bd LB 0x119
    1464214627    push bp                                   ; 55
    1464314628    mov bp, sp                                ; 89 e5
     
    1464614631    mov ax, 00601h                            ; b8 01 06
    1464714632    mov dx, strict word 00001h                ; ba 01 00
    14648     call 09d9dh                               ; e8 24 05
     14633    call 09df1h                               ; e8 24 05
    1464914634    mov dx, ax                                ; 89 c2
    1465014635    cmp ax, strict word 0ffffh                ; 3d ff ff
    14651     je short 098cch                           ; 74 4c
     14636    je short 09920h                           ; 74 4c
    1465214637    xor al, al                                ; 30 c0
    1465314638    shr ax, 008h                              ; c1 e8 08
     
    1465714642    xor ah, ah                                ; 30 e4
    1465814643    mov bx, strict word 00034h                ; bb 34 00
    14659     call 09da5h                               ; e8 10 05
     14644    call 09df9h                               ; e8 10 05
    1466014645    mov cl, al                                ; 88 c1
    1466114646    test cl, cl                               ; 84 c9
    14662     je short 098cfh                           ; 74 34
     14647    je short 09923h                           ; 74 34
    1466314648    mov bl, cl                                ; 88 cb
    1466414649    xor bh, bh                                ; 30 ff
     
    1467114656    mov dx, word [bp-010h]                    ; 8b 56 f0
    1467214657    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14673     call 09da5h                               ; e8 eb 04
     14658    call 09df9h                               ; e8 eb 04
    1467414659    cmp AL, strict byte 012h                  ; 3c 12
    14675     je short 098cfh                           ; 74 11
     14660    je short 09923h                           ; 74 11
    1467614661    mov bl, cl                                ; 88 cb
    1467714662    db  0feh, 0c3h
     
    1468014665    mov dx, word [bp-010h]                    ; 8b 56 f0
    1468114666    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14682     jmp short 09892h                          ; eb c6
    14683     jmp near 0997ch                           ; e9 ad 00
     14667    jmp short 098e6h                          ; eb c6
     14668    jmp near 099d0h                           ; e9 ad 00
    1468414669    test cl, cl                               ; 84 c9
    14685     je short 098cch                           ; 74 f9
     14670    je short 09920h                           ; 74 f9
    1468614671    add cl, 002h                              ; 80 c1 02
    1468714672    mov bl, cl                                ; 88 cb
     
    1469514680    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1469614681    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14697     call 09da5h                               ; e8 b0 04
     14682    call 09df9h                               ; e8 b0 04
    1469814683    cmp AL, strict byte 010h                  ; 3c 10
    14699     jne short 098cch                          ; 75 d3
     14684    jne short 09920h                          ; 75 d3
    1470014685    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1470114686    mov bl, cl                                ; 88 cb
     
    1470414689    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1470514690    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14706     call 09dd3h                               ; e8 c6 04
     14691    call 09e27h                               ; e8 c6 04
    1470714692    mov dx, ax                                ; 89 c2
    1470814693    and ax, strict word 0000fh                ; 25 0f 00
    1470914694    sub ax, strict word 00004h                ; 2d 04 00
    1471014695    cmp ax, strict word 0000bh                ; 3d 0b 00
    14711     jnbe short 09951h                         ; 77 37
     14696    jnbe short 099a5h                         ; 77 37
    1471214697    push CS                                   ; 0e
    1471314698    pop ES                                    ; 07
    1471414699    mov cx, strict word 00008h                ; b9 08 00
    14715     mov di, 09852h                            ; bf 52 98
     14700    mov di, 098a6h                            ; bf a6 98
    1471614701    repne scasb                               ; f2 ae
    1471714702    sal cx, 1                                 ; d1 e1
    1471814703    mov di, cx                                ; 89 cf
    14719     mov ax, word [cs:di-067a7h]               ; 2e 8b 85 59 98
     14704    mov ax, word [cs:di-06753h]               ; 2e 8b 85 ad 98
    1472014705    jmp ax                                    ; ff e0
    1472114706    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14722     jmp short 09951h                          ; eb 1c
     14707    jmp short 099a5h                          ; eb 1c
    1472314708    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14724     jmp short 09951h                          ; eb 16
     14709    jmp short 099a5h                          ; eb 16
    1472514710    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14726     jmp short 09951h                          ; eb 10
     14711    jmp short 099a5h                          ; eb 10
    1472714712    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    14728     jmp short 09951h                          ; eb 0a
     14713    jmp short 099a5h                          ; eb 0a
    1472914714    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    14730     jmp short 09951h                          ; eb 04
     14715    jmp short 099a5h                          ; eb 04
    1473114716    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1473214717    mov cx, dx                                ; 89 d1
     
    1473514720    mov al, byte [bp-004h]                    ; 8a 46 fc
    1473614721    test al, al                               ; 84 c0
    14737     je short 0997ch                           ; 74 1c
     14722    je short 099d0h                           ; 74 1c
    1473814723    mov bl, al                                ; 88 c3
    1473914724    xor bh, bh                                ; 30 ff
     
    1474214727    mov al, byte [bp-008h]                    ; 8a 46 f8
    1474314728    xor ah, ah                                ; 30 e4
    14744     call 09dfdh                               ; e8 8c 04
     14729    call 09e51h                               ; e8 8c 04
    1474514730    test AL, strict byte 001h                 ; a8 01
    14746     je short 0997ch                           ; 74 07
     14731    je short 099d0h                           ; 74 07
    1474714732    and AL, strict byte 0f0h                  ; 24 f0
    1474814733    add ax, cx                                ; 01 c8
    14749     call 096fch                               ; e8 80 fd
     14734    call 09750h                               ; e8 80 fd
    1475014735    lea sp, [bp-002h]                         ; 8d 66 fe
    1475114736    pop di                                    ; 5f
    1475214737    pop bp                                    ; 5d
    1475314738    retn                                      ; c3
    14754 apm_out_str_:                                ; 0xf9982 LB 0x39
     14739apm_out_str_:                                ; 0xf99d6 LB 0x39
    1475514740    push bp                                   ; 55
    1475614741    mov bp, sp                                ; 89 e5
     
    1475814743    mov bx, ax                                ; 89 c3
    1475914744    cmp byte [bx], 000h                       ; 80 3f 00
    14760     je short 09997h                           ; 74 0a
     14745    je short 099ebh                           ; 74 0a
    1476114746    mov al, byte [bx]                         ; 8a 07
    1476214747    out DX, AL                                ; ee
     
    1476514750    db  00ah, 0c0h
    1476614751    ; or al, al                                 ; 0a c0
    14767     jne short 0998fh                          ; 75 f8
     14752    jne short 099e3h                          ; 75 f8
    1476814753    lea sp, [bp-002h]                         ; 8d 66 fe
    1476914754    pop bx                                    ; 5b
    1477014755    pop bp                                    ; 5d
    1477114756    retn                                      ; c3
    14772     fcomp qword [bx+di-0659ch]                ; dc 99 64 9a
    14773     out DX, AL                                ; ee
    14774     cwd                                       ; 99
    14775     or word [bp+si-0659ch], bx                ; 09 9a 64 9a
    14776     xor AL, strict byte 09ah                  ; 34 9a
    14777     db  064h, 09ah, 06ah, 09ah, 039h, 09ah
    14778     ; fs call far fs:09a39h:09a6ah              ; 64 9a 6a 9a 39 9a
    14779     cmp word [bp+si-065c7h], bx               ; 39 9a 39 9a
    14780     test ax, 0399ah                           ; a9 9a 39
    14781     call far 09aa2h:09a39h                    ; 9a 39 9a a2 9a
    14782 _apm_function:                               ; 0xf99bb LB 0xf3
     14757    xor byte [bp+si-06548h], bl               ; 30 9a b8 9a
     14758    inc dx                                    ; 42
     14759    call far 09ab8h:09a5dh                    ; 9a 5d 9a b8 9a
     14760    mov byte [bp+si-06548h], bl               ; 88 9a b8 9a
     14761    mov si, 08d9ah                            ; be 9a 8d
     14762    call far 09a8dh:09a8dh                    ; 9a 8d 9a 8d 9a
     14763    std                                       ; fd
     14764    call far 09a8dh:09a8dh                    ; 9a 8d 9a 8d 9a
     14765    db  0f6h
     14766    db  09ah
     14767_apm_function:                               ; 0xf9a0f LB 0xf3
    1478314768    push bp                                   ; 55
    1478414769    mov bp, sp                                ; 89 e5
     
    1478814773    xor ah, ah                                ; 30 e4
    1478914774    cmp ax, strict word 0000eh                ; 3d 0e 00
    14790     jnbe short 09a39h                         ; 77 6c
     14775    jnbe short 09a8dh                         ; 77 6c
    1479114776    mov bx, ax                                ; 89 c3
    1479214777    add bx, ax                                ; 01 c3
    1479314778    mov dx, word [bp+018h]                    ; 8b 56 18
    1479414779    or dl, 001h                               ; 80 ca 01
    14795     jmp word [cs:bx-06663h]                   ; 2e ff a7 9d 99
     14780    jmp word [cs:bx-0660fh]                   ; 2e ff a7 f1 99
    1479614781    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1479714782    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1479814783    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14799     jmp near 09a64h                           ; e9 76 00
     14784    jmp near 09ab8h                           ; e9 76 00
    1480014785    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14801     mov word [bp+00ch], 0a024h                ; c7 46 0c 24 a0
     14786    mov word [bp+00ch], 0a074h                ; c7 46 0c 74 a0
    1480214787    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1480314788    mov ax, strict word 0fff0h                ; b8 f0 ff
    1480414789    mov word [bp+006h], ax                    ; 89 46 06
    1480514790    mov word [bp+004h], ax                    ; 89 46 04
    14806     jmp near 09a64h                           ; e9 5b 00
     14791    jmp near 09ab8h                           ; e9 5b 00
    1480714792    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1480814793    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1481714802    mov si, ax                                ; 89 c6
    1481814803    sal esi, 010h                             ; 66 c1 e6 10
    14819     jmp near 09a64h                           ; e9 30 00
     14804    jmp near 09ab8h                           ; e9 30 00
    1482014805    sti                                       ; fb
    1482114806    hlt                                       ; f4
    14822     jmp near 09a64h                           ; e9 2b 00
     14807    jmp near 09ab8h                           ; e9 2b 00
    1482314808    mov bx, 00da0h                            ; bb a0 0d
    1482414809    mov cx, ds                                ; 8c d9
    1482514810    mov ax, strict word 00004h                ; b8 04 00
    14826     call 01923h                               ; e8 df 7e
     14811    call 01923h                               ; e8 8b 7e
    1482714812    push word [bp+00ch]                       ; ff 76 0c
    1482814813    push word [bp+012h]                       ; ff 76 12
    1482914814    push 00d29h                               ; 68 29 0d
    1483014815    push strict byte 00004h                   ; 6a 04
    14831     call 01966h                               ; e8 14 7f
     14816    call 01966h                               ; e8 c0 7e
    1483214817    add sp, strict byte 00008h                ; 83 c4 08
    1483314818    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1484114826    retn                                      ; c3
    1484214827    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14843     je short 09a8fh                           ; 74 1f
     14828    je short 09ae3h                           ; 74 1f
    1484414829    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14845     je short 09a87h                           ; 74 11
     14830    je short 09adbh                           ; 74 11
    1484614831    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14847     jne short 09a97h                          ; 75 1b
     14832    jne short 09aebh                          ; 75 1b
    1484814833    mov dx, 08900h                            ; ba 00 89
    1484914834    mov ax, 00d10h                            ; b8 10 0d
    14850     call 09982h                               ; e8 fd fe
    14851     jmp short 09a64h                          ; eb dd
     14835    call 099d6h                               ; e8 fd fe
     14836    jmp short 09ab8h                          ; eb dd
    1485214837    mov dx, 08900h                            ; ba 00 89
    1485314838    mov ax, 00d18h                            ; b8 18 0d
    14854     jmp short 09a82h                          ; eb f3
     14839    jmp short 09ad6h                          ; eb f3
    1485514840    mov dx, 08900h                            ; ba 00 89
    1485614841    mov ax, 00d20h                            ; b8 20 0d
    14857     jmp short 09a82h                          ; eb eb
     14842    jmp short 09ad6h                          ; eb eb
    1485814843    or ah, 00ah                               ; 80 cc 0a
    1485914844    mov word [bp+012h], ax                    ; 89 46 12
    1486014845    mov word [bp+018h], dx                    ; 89 56 18
    14861     jmp short 09a64h                          ; eb c2
     14846    jmp short 09ab8h                          ; eb c2
    1486214847    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14863     jmp short 09a64h                          ; eb bb
     14848    jmp short 09ab8h                          ; eb bb
    1486414849    or ah, 080h                               ; 80 cc 80
    14865     jmp short 09a9ah                          ; eb ec
    14866 pci16_select_reg_:                           ; 0xf9aae LB 0x24
     14850    jmp short 09aeeh                          ; eb ec
     14851pci16_select_reg_:                           ; 0xf9b02 LB 0x24
    1486714852    push bp                                   ; 55
    1486814853    mov bp, sp                                ; 89 e5
     
    1488114866    pop bp                                    ; 5d
    1488214867    retn                                      ; c3
    14883 pci16_find_device_:                          ; 0xf9ad2 LB 0xf9
     14868pci16_find_device_:                          ; 0xf9b26 LB 0xf9
    1488414869    push bp                                   ; 55
    1488514870    mov bp, sp                                ; 89 e5
     
    1489514880    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1489614881    test bl, 007h                             ; f6 c3 07
    14897     jne short 09b1ah                          ; 75 2d
     14882    jne short 09b6eh                          ; 75 2d
    1489814883    mov dx, strict word 0000eh                ; ba 0e 00
    1489914884    mov ax, bx                                ; 89 d8
    14900     call 09aaeh                               ; e8 b9 ff
     14885    call 09b02h                               ; e8 b9 ff
    1490114886    mov dx, 00cfeh                            ; ba fe 0c
    1490214887    in AL, DX                                 ; ec
     
    1490514890    mov byte [bp-006h], al                    ; 88 46 fa
    1490614891    cmp AL, strict byte 0ffh                  ; 3c ff
    14907     jne short 09b08h                          ; 75 06
     14892    jne short 09b5ch                          ; 75 06
    1490814893    add bx, strict byte 00008h                ; 83 c3 08
    14909     jmp near 09b9bh                           ; e9 93 00
     14894    jmp near 09befh                           ; e9 93 00
    1491014895    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14911     je short 09b15h                           ; 74 07
     14896    je short 09b69h                           ; 74 07
    1491214897    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
    14913     jmp short 09b1ah                          ; eb 05
     14898    jmp short 09b6eh                          ; eb 05
    1491414899    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
    1491514900    mov al, byte [bp-006h]                    ; 8a 46 fa
    1491614901    and AL, strict byte 007h                  ; 24 07
    1491714902    cmp AL, strict byte 001h                  ; 3c 01
    14918     jne short 09b42h                          ; 75 1f
     14903    jne short 09b96h                          ; 75 1f
    1491914904    mov ax, bx                                ; 89 d8
    1492014905    shr ax, 008h                              ; c1 e8 08
    1492114906    test ax, ax                               ; 85 c0
    14922     jne short 09b42h                          ; 75 16
     14907    jne short 09b96h                          ; 75 16
    1492314908    mov dx, strict word 0001ah                ; ba 1a 00
    1492414909    mov ax, bx                                ; 89 d8
    14925     call 09aaeh                               ; e8 7a ff
     14910    call 09b02h                               ; e8 7a ff
    1492614911    mov dx, 00cfeh                            ; ba fe 0c
    1492714912    in AL, DX                                 ; ec
     
    1492914914    ; sub ah, ah                                ; 2a e4
    1493014915    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14931     jbe short 09b42h                          ; 76 03
     14916    jbe short 09b96h                          ; 76 03
    1493214917    mov byte [bp-008h], al                    ; 88 46 f8
    1493314918    test di, di                               ; 85 ff
    14934     je short 09b4bh                           ; 74 05
     14919    je short 09b9fh                           ; 74 05
    1493514920    mov dx, strict word 00008h                ; ba 08 00
    14936     jmp short 09b4dh                          ; eb 02
     14921    jmp short 09ba1h                          ; eb 02
    1493714922    xor dx, dx                                ; 31 d2
    1493814923    mov ax, bx                                ; 89 d8
    14939     call 09aaeh                               ; e8 5c ff
     14924    call 09b02h                               ; e8 5c ff
    1494014925    mov dx, 00cfch                            ; ba fc 0c
    1494114926    in eax, DX                                ; 66 ed
     
    1494814933    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
    1494914934    test di, di                               ; 85 ff
    14950     je short 09b7ch                           ; 74 0f
     14935    je short 09bd0h                           ; 74 0f
    1495114936    mov cx, strict word 00008h                ; b9 08 00
    1495214937    shr dx, 1                                 ; d1 ea
    1495314938    rcr ax, 1                                 ; d1 d8
    14954     loop 09b70h                               ; e2 fa
     14939    loop 09bc4h                               ; e2 fa
    1495514940    mov word [bp-00ah], ax                    ; 89 46 f6
    1495614941    mov word [bp-00ch], dx                    ; 89 56 f4
    1495714942    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1495814943    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14959     jne short 09b8ch                          ; 75 08
     14944    jne short 09be0h                          ; 75 08
    1496014945    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1496114946    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14962     je short 09b92h                           ; 74 06
     14947    je short 09be6h                           ; 74 06
    1496314948    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
    14964     je short 09b98h                           ; 74 06
     14949    je short 09bech                           ; 74 06
    1496514950    dec si                                    ; 4e
    1496614951    cmp si, strict byte 0ffffh                ; 83 fe ff
    14967     je short 09bach                           ; 74 14
     14952    je short 09c00h                           ; 74 14
    1496814953    add bx, word [bp-010h]                    ; 03 5e f0
    1496914954    mov dx, bx                                ; 89 da
     
    1497214957    xor ah, ah                                ; 30 e4
    1497314958    cmp dx, ax                                ; 39 c2
    14974     jnbe short 09bach                         ; 77 03
    14975     jmp near 09ae8h                           ; e9 3c ff
     14959    jnbe short 09c00h                         ; 77 03
     14960    jmp near 09b3ch                           ; e9 3c ff
    1497614961    cmp si, strict byte 0ffffh                ; 83 fe ff
    14977     jne short 09bb5h                          ; 75 04
     14962    jne short 09c09h                          ; 75 04
    1497814963    mov ax, bx                                ; 89 d8
    14979     jmp short 09bb8h                          ; eb 03
     14964    jmp short 09c0ch                          ; eb 03
    1498014965    mov ax, strict word 0ffffh                ; b8 ff ff
    1498114966    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1498414969    pop bp                                    ; 5d
    1498514970    retn                                      ; c3
    14986     lodsb                                     ; ac
    14987     pushfw                                    ; 9c
    14988     lds bx, [si-06329h]                       ; c5 9c d7 9c
    14989     jmp short 09b63h                          ; eb 9c
    14990     std                                       ; fd
    14991     pushfw                                    ; 9c
    14992     db  010h
     14971    add byte [di-062e7h], bl                  ; 00 9d 19 9d
     14972    sub bx, word [di-062c1h]                  ; 2b 9d 3f 9d
     14973    push cx                                   ; 51
    1499314974    popfw                                     ; 9d
    14994 _pci16_function:                             ; 0xf9bcb LB 0x1d2
     14975    db  064h, 09dh
     14976    ; fs popfw                                  ; 64 9d
     14977_pci16_function:                             ; 0xf9c1f LB 0x1d2
    1499514978    push bp                                   ; 55
    1499614979    mov bp, sp                                ; 89 e5
     
    1500614989    xor ah, ah                                ; 30 e4
    1500714990    cmp bx, strict byte 00003h                ; 83 fb 03
    15008     jc short 09bfdh                           ; 72 13
    15009     jbe short 09c50h                          ; 76 64
     14991    jc short 09c51h                           ; 72 13
     14992    jbe short 09ca4h                          ; 76 64
    1501014993    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15011     je short 09c58h                           ; 74 67
     14994    je short 09cach                           ; 74 67
    1501214995    cmp bx, strict byte 00008h                ; 83 fb 08
    15013     jc short 09c07h                           ; 72 11
     14996    jc short 09c5bh                           ; 72 11
    1501414997    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15015     jbe short 09c5bh                          ; 76 60
    15016     jmp short 09c07h                          ; eb 0a
     14998    jbe short 09cafh                          ; 76 60
     14999    jmp short 09c5bh                          ; eb 0a
    1501715000    cmp bx, strict byte 00002h                ; 83 fb 02
    15018     je short 09c26h                           ; 74 24
     15001    je short 09c7ah                           ; 74 24
    1501915002    cmp bx, strict byte 00001h                ; 83 fb 01
    15020     je short 09c0ah                           ; 74 03
    15021     jmp near 09d69h                           ; e9 5f 01
     15003    je short 09c5eh                           ; 74 03
     15004    jmp near 09dbdh                           ; e9 5f 01
    1502215005    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1502315006    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1502515008    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1502615009    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15027     jmp near 09d96h                           ; e9 70 01
     15010    jmp near 09deah                           ; e9 70 01
    1502815011    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15029     jne short 09c32h                          ; 75 06
     15012    jne short 09c86h                          ; 75 06
    1503015013    or ah, 083h                               ; 80 cc 83
    15031     jmp near 09d8fh                           ; e9 5d 01
     15014    jmp near 09de3h                           ; e9 5d 01
    1503215015    mov bx, word [bp+008h]                    ; 8b 5e 08
    1503315016    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1503415017    mov ax, word [bp+018h]                    ; 8b 46 18
    1503515018    xor cx, cx                                ; 31 c9
    15036     call 09ad2h                               ; e8 92 fe
     15019    call 09b26h                               ; e8 92 fe
    1503715020    cmp ax, strict word 0ffffh                ; 3d ff ff
    15038     jne short 09c52h                          ; 75 0d
     15021    jne short 09ca6h                          ; 75 0d
    1503915022    mov ax, word [bp+020h]                    ; 8b 46 20
    1504015023    xor ah, ah                                ; 30 e4
    1504115024    or ah, 086h                               ; 80 cc 86
    15042     jmp near 09d8fh                           ; e9 3f 01
    15043     jmp short 09c5dh                          ; eb 0b
     15025    jmp near 09de3h                           ; e9 3f 01
     15026    jmp short 09cb1h                          ; eb 0b
    1504415027    mov word [bp+014h], ax                    ; 89 46 14
    15045     jmp near 09d96h                           ; e9 3e 01
    15046     jmp near 09d24h                           ; e9 c9 00
    15047     jmp short 09c82h                          ; eb 25
     15028    jmp near 09deah                           ; e9 3e 01
     15029    jmp near 09d78h                           ; e9 c9 00
     15030    jmp short 09cd6h                          ; eb 25
    1504815031    mov bx, word [bp+008h]                    ; 8b 5e 08
    1504915032    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1505015033    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1505115034    mov cx, strict word 00001h                ; b9 01 00
    15052     call 09ad2h                               ; e8 66 fe
     15035    call 09b26h                               ; e8 66 fe
    1505315036    cmp ax, strict word 0ffffh                ; 3d ff ff
    15054     jne short 09c7ch                          ; 75 0b
     15037    jne short 09cd0h                          ; 75 0b
    1505515038    mov ax, word [bp+020h]                    ; 8b 46 20
    1505615039    xor ah, ah                                ; 30 e4
    1505715040    or ah, 086h                               ; 80 cc 86
    15058     jmp near 09d8fh                           ; e9 13 01
     15041    jmp near 09de3h                           ; e9 13 01
    1505915042    mov word [bp+014h], ax                    ; 89 46 14
    15060     jmp near 09d96h                           ; e9 14 01
     15043    jmp near 09deah                           ; e9 14 01
    1506115044    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15062     jc short 09c8fh                           ; 72 06
     15045    jc short 09ce3h                           ; 72 06
    1506315046    or ah, 087h                               ; 80 cc 87
    15064     jmp near 09d8fh                           ; e9 00 01
     15047    jmp near 09de3h                           ; e9 00 01
    1506515048    mov dx, word [bp+004h]                    ; 8b 56 04
    1506615049    mov ax, word [bp+014h]                    ; 8b 46 14
    15067     call 09aaeh                               ; e8 16 fe
     15050    call 09b02h                               ; e8 16 fe
    1506815051    mov bx, word [bp+020h]                    ; 8b 5e 20
    1506915052    xor bh, bh                                ; 30 ff
    1507015053    sub bx, strict byte 00008h                ; 83 eb 08
    1507115054    cmp bx, strict byte 00005h                ; 83 fb 05
    15072     jnbe short 09d0dh                         ; 77 68
     15055    jnbe short 09d61h                         ; 77 68
    1507315056    add bx, bx                                ; 01 db
    15074     jmp word [cs:bx-06441h]                   ; 2e ff a7 bf 9b
     15057    jmp word [cs:bx-063edh]                   ; 2e ff a7 13 9c
    1507515058    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1507615059    xor bl, bl                                ; 30 db
     
    1508315066    or bx, ax                                 ; 09 c3
    1508415067    mov word [bp+01ch], bx                    ; 89 5e 1c
    15085     jmp short 09d0dh                          ; eb 48
     15068    jmp short 09d61h                          ; eb 48
    1508615069    mov dx, word [bp+004h]                    ; 8b 56 04
    1508715070    xor dh, dh                                ; 30 f6
     
    1509015073    in ax, DX                                 ; ed
    1509115074    mov word [bp+01ch], ax                    ; 89 46 1c
    15092     jmp short 09d0dh                          ; eb 36
     15075    jmp short 09d61h                          ; eb 36
    1509315076    mov dx, 00cfch                            ; ba fc 0c
    1509415077    in eax, DX                                ; 66 ed
     
    1509915082    mov word [bp+01ch], ax                    ; 89 46 1c
    1510015083    mov word [bp+01eh], dx                    ; 89 56 1e
    15101     jmp short 09d0dh                          ; eb 22
     15084    jmp short 09d61h                          ; eb 22
    1510215085    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1510315086    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1510615089    add dx, 00cfch                            ; 81 c2 fc 0c
    1510715090    out DX, AL                                ; ee
    15108     jmp short 09d0dh                          ; eb 10
     15091    jmp short 09d61h                          ; eb 10
    1510915092    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1511015093    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1511315096    add dx, 00cfch                            ; 81 c2 fc 0c
    1511415097    out DX, ax                                ; ef
    15115     jmp near 09d96h                           ; e9 86 00
     15098    jmp near 09deah                           ; e9 86 00
    1511615099    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1511715100    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1512215105    ; mov ax, cx                                ; 8b c1
    1512315106    out DX, eax                               ; 66 ef
    15124     jmp short 09d96h                          ; eb 72
     15107    jmp short 09deah                          ; eb 72
    1512515108    mov bx, word [bp+004h]                    ; 8b 5e 04
    1512615109    mov es, [bp+026h]                         ; 8e 46 26
     
    1512915112    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1513015113    cmp cx, word [es:bx]                      ; 26 3b 0f
    15131     jbe short 09d4ah                          ; 76 11
     15114    jbe short 09d9eh                          ; 76 11
    1513215115    mov ax, word [bp+020h]                    ; 8b 46 20
    1513315116    xor ah, ah                                ; 30 e4
     
    1513515118    mov word [bp+020h], ax                    ; 89 46 20
    1513615119    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15137     jmp short 09d5eh                          ; eb 14
     15120    jmp short 09db2h                          ; eb 14
    1513815121    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1513915122    mov si, 0f2c0h                            ; be c0 f2
     
    1514715130    les bx, [bp-008h]                         ; c4 5e f8
    1514815131    mov word [es:bx], ax                      ; 26 89 07
    15149     jmp short 09d96h                          ; eb 2d
     15132    jmp short 09deah                          ; eb 2d
    1515015133    mov bx, 00da0h                            ; bb a0 0d
    1515115134    mov cx, ds                                ; 8c d9
    1515215135    mov ax, strict word 00004h                ; b8 04 00
    15153     call 01923h                               ; e8 af 7b
     15136    call 01923h                               ; e8 5b 7b
    1515415137    mov ax, word [bp+014h]                    ; 8b 46 14
    1515515138    push ax                                   ; 50
     
    1515815141    push 00d5ch                               ; 68 5c 0d
    1515915142    push strict byte 00004h                   ; 6a 04
    15160     call 01966h                               ; e8 e2 7b
     15143    call 01966h                               ; e8 8e 7b
    1516115144    add sp, strict byte 00008h                ; 83 c4 08
    1516215145    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1517015153    pop bp                                    ; 5d
    1517115154    retn                                      ; c3
    15172 pci_find_classcode_:                         ; 0xf9d9d LB 0x8
     15155pci_find_classcode_:                         ; 0xf9df1 LB 0x8
    1517315156    push bp                                   ; 55
    1517415157    mov bp, sp                                ; 89 e5
     
    1517615159    pop bp                                    ; 5d
    1517715160    retn                                      ; c3
    15178 pci_read_config_byte_:                       ; 0xf9da5 LB 0x2e
     15161pci_read_config_byte_:                       ; 0xf9df9 LB 0x2e
    1517915162    push bp                                   ; 55
    1518015163    mov bp, sp                                ; 89 e5
     
    1520215185    pop bp                                    ; 5d
    1520315186    retn                                      ; c3
    15204 pci_read_config_word_:                       ; 0xf9dd3 LB 0x2a
     15187pci_read_config_word_:                       ; 0xf9e27 LB 0x2a
    1520515188    push bp                                   ; 55
    1520615189    mov bp, sp                                ; 89 e5
     
    1522615209    pop bp                                    ; 5d
    1522715210    retn                                      ; c3
    15228 pci_read_config_dword_:                      ; 0xf9dfd LB 0x4e
     15211pci_read_config_dword_:                      ; 0xf9e51 LB 0x4e
    1522915212    push bp                                   ; 55
    1523015213    mov bp, sp                                ; 89 e5
     
    1524815231    int 01ah                                  ; cd 1a
    1524915232    test cx, cx                               ; 85 c9
    15250     jne short 09e3ch                          ; 75 14
     15233    jne short 09e90h                          ; 75 14
    1525115234    mov al, byte [bp-006h]                    ; 8a 46 fa
    1525215235    xor ah, ah                                ; 30 e4
     
    1525815241    int 01ah                                  ; cd 1a
    1525915242    test cx, cx                               ; 85 c9
    15260     je short 09e41h                           ; 74 05
     15243    je short 09e95h                           ; 74 05
    1526115244    mov ax, strict word 00001h                ; b8 01 00
    15262     jmp short 09e43h                          ; eb 02
     15245    jmp short 09e97h                          ; eb 02
    1526315246    xor ax, ax                                ; 31 c0
    1526415247    cwd                                       ; 99
     
    1526815251    pop bp                                    ; 5d
    1526915252    retn                                      ; c3
    15270 vds_is_present_:                             ; 0xf9e4b LB 0x1d
     15253vds_is_present_:                             ; 0xf9e9f LB 0x1d
    1527115254    push bx                                   ; 53
    1527215255    push bp                                   ; 55
     
    1527615259    mov es, ax                                ; 8e c0
    1527715260    test byte [es:bx], 020h                   ; 26 f6 07 20
    15278     je short 09e63h                           ; 74 06
     15261    je short 09eb7h                           ; 74 06
    1527915262    mov ax, strict word 00001h                ; b8 01 00
    1528015263    pop bp                                    ; 5d
     
    1528515268    pop bx                                    ; 5b
    1528615269    retn                                      ; c3
    15287 vds_real_to_lin_:                            ; 0xf9e68 LB 0x1e
     15270vds_real_to_lin_:                            ; 0xf9ebc LB 0x1e
    1528815271    push bx                                   ; 53
    1528915272    push cx                                   ; 51
     
    1529615279    sal ax, 1                                 ; d1 e0
    1529715280    rcl dx, 1                                 ; d1 d2
    15298     loop 09e76h                               ; e2 fa
     15281    loop 09ecah                               ; e2 fa
    1529915282    xor cx, cx                                ; 31 c9
    1530015283    add ax, bx                                ; 01 d8
     
    1530415287    pop bx                                    ; 5b
    1530515288    retn                                      ; c3
    15306 vds_build_sg_list_:                          ; 0xf9e86 LB 0x77
     15289vds_build_sg_list_:                          ; 0xf9eda LB 0x77
    1530715290    push bp                                   ; 55
    1530815291    mov bp, sp                                ; 89 e5
     
    1531815301    mov bx, word [bp+006h]                    ; 8b 5e 06
    1531915302    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15320     call 09e68h                               ; e8 c3 ff
     15303    call 09ebch                               ; e8 c3 ff
    1532115304    mov es, si                                ; 8e c6
    1532215305    mov word [es:di+004h], ax                 ; 26 89 45 04
    1532315306    mov word [es:di+006h], dx                 ; 26 89 55 06
    1532415307    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15325     call 09e4bh                               ; e8 93 ff
     15308    call 09e9fh                               ; e8 93 ff
    1532615309    test ax, ax                               ; 85 c0
    15327     je short 09ecdh                           ; 74 11
     15310    je short 09f21h                           ; 74 11
    1532815311    mov es, si                                ; 8e c6
    1532915312    mov ax, 08105h                            ; b8 05 81
    1533015313    mov dx, strict word 00000h                ; ba 00 00
    1533115314    int 04bh                                  ; cd 4b
    15332     jc short 09ecah                           ; 72 02
     15315    jc short 09f1eh                           ; 72 02
    1533315316    db  032h, 0c0h
    1533415317    ; xor al, al                                ; 32 c0
    1533515318    cbw                                       ; 98
    15336     jmp short 09ef4h                          ; eb 27
     15319    jmp short 09f48h                          ; eb 27
    1533715320    mov es, si                                ; 8e c6
    1533815321    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1535115334    pop bp                                    ; 5d
    1535215335    retn 00004h                               ; c2 04 00
    15353 vds_free_sg_list_:                           ; 0xf9efd LB 0x33
     15336vds_free_sg_list_:                           ; 0xf9f51 LB 0x2f
    1535415337    push bp                                   ; 55
    1535515338    mov bp, sp                                ; 89 e5
     
    1535715340    push di                                   ; 57
    1535815341    mov bx, ax                                ; 89 c3
    15359     call 09e4bh                               ; e8 44 ff
     15342    call 09e9fh                               ; e8 44 ff
    1536015343    test ax, ax                               ; 85 c0
    15361     je short 09f1ch                           ; 74 11
     15344    je short 09f70h                           ; 74 11
    1536215345    mov di, bx                                ; 89 df
    1536315346    mov es, dx                                ; 8e c2
     
    1536515348    mov dx, strict word 00000h                ; ba 00 00
    1536615349    int 04bh                                  ; cd 4b
    15367     jc short 09f1bh                           ; 72 02
     15350    jc short 09f6fh                           ; 72 02
    1536815351    db  032h, 0c0h
    1536915352    ; xor al, al                                ; 32 c0
     
    1537615359    pop bp                                    ; 5d
    1537715360    retn                                      ; c3
    15378     times 0x5 db 0
    15379 __U4M:                                       ; 0xf9f30 LB 0x20
     15361    times 0x1 db 0
     15362__U4M:                                       ; 0xf9f80 LB 0x20
    1538015363    pushfw                                    ; 9c
    1538115364    push si                                   ; 56
     
    1540415387    retn                                      ; c3
    1540515388    times 0x4 db 0
    15406 __U4D:                                       ; 0xf9f50 LB 0x30
     15389__U4D:                                       ; 0xf9fa0 LB 0x30
    1540715390    pushfw                                    ; 9c
    1540815391    push DS                                   ; 1e
     
    1541915402    push dx                                   ; 52
    1542015403    push ax                                   ; 50
    15421     call 0a035h                               ; e8 d0 00
     15404    call 0a085h                               ; e8 d0 00
    1542215405    mov cx, word [bp-002h]                    ; 8b 4e fe
    1542315406    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1543015413    retn                                      ; c3
    1543115414    times 0xe db 0
    15432 __U8RS:                                      ; 0xf9f80 LB 0x10
     15415__U8RS:                                      ; 0xf9fd0 LB 0x10
    1543315416    test si, si                               ; 85 f6
    15434     je short 09f8fh                           ; 74 0b
     15417    je short 09fdfh                           ; 74 0b
    1543515418    shr ax, 1                                 ; d1 e8
    1543615419    rcr bx, 1                                 ; d1 db
     
    1543815421    rcr dx, 1                                 ; d1 da
    1543915422    dec si                                    ; 4e
    15440     jne short 09f84h                          ; 75 f5
     15423    jne short 09fd4h                          ; 75 f5
    1544115424    retn                                      ; c3
    15442 __U8LS:                                      ; 0xf9f90 LB 0x10
     15425__U8LS:                                      ; 0xf9fe0 LB 0x10
    1544315426    test si, si                               ; 85 f6
    15444     je short 09f9fh                           ; 74 0b
     15427    je short 09fefh                           ; 74 0b
    1544515428    sal dx, 1                                 ; d1 e2
    1544615429    rcl cx, 1                                 ; d1 d1
     
    1544815431    rcl ax, 1                                 ; d1 d0
    1544915432    dec si                                    ; 4e
    15450     jne short 09f94h                          ; 75 f5
     15433    jne short 09fe4h                          ; 75 f5
    1545115434    retn                                      ; c3
    15452 _fmemset_:                                   ; 0xf9fa0 LB 0x10
     15435_fmemset_:                                   ; 0xf9ff0 LB 0x10
    1545315436    push di                                   ; 57
    1545415437    mov es, dx                                ; 8e c2
     
    1546115444    retn                                      ; c3
    1546215445    times 0x3 db 0
    15463 _fmemcpy_:                                   ; 0xf9fb0 LB 0x3a
     15446_fmemcpy_:                                   ; 0xfa000 LB 0x3a
    1546415447    push bp                                   ; 55
    1546515448    db  08bh, 0ech
     
    1548615469    add byte [bx+si], al                      ; 00 00
    1548715470    add byte [bx+si], al                      ; 00 00
    15488     add byte [bx+si-05ffeh], ah               ; 00 a0 02 a0
    15489     push ES                                   ; 06
    15490     mov AL, byte [0a006h]                     ; a0 06 a0
    15491     push ES                                   ; 06
    15492     mov AL, byte [0a008h]                     ; a0 08 a0
    15493     or byte [bx+si-05ff6h], ah                ; 08 a0 0a a0
    15494     push CS                                   ; 0e
    15495     mov AL, byte [0a00eh]                     ; a0 0e a0
    15496     adc byte [bx+si-05febh], ah               ; 10 a0 15 a0
    15497     pop SS                                    ; 17
     15471    push ax                                   ; 50
     15472    mov AL, byte [0a052h]                     ; a0 52 a0
     15473    push si                                   ; 56
     15474    mov AL, byte [0a056h]                     ; a0 56 a0
     15475    push si                                   ; 56
     15476    mov AL, byte [0a058h]                     ; a0 58 a0
     15477    pop ax                                    ; 58
     15478    mov AL, byte [0a05ah]                     ; a0 5a a0
     15479    pop si                                    ; 5e
     15480    mov AL, byte [0a05eh]                     ; a0 5e a0
     15481    pushaw                                    ; 60
     15482    mov AL, byte [0a065h]                     ; a0 65 a0
     15483    db  067h
    1549815484    db  0a0h
    15499 apm_worker:                                  ; 0xf9fea LB 0x3a
     15485apm_worker:                                  ; 0xfa03a LB 0x3a
    1550015486    sti                                       ; fb
    1550115487    push ax                                   ; 50
     
    1550915495    pop ax                                    ; 58
    1551015496    mov AH, strict byte 053h                  ; b4 53
    15511     jnc short 0a020h                          ; 73 25
    15512     jmp word [cs:bp-06030h]                   ; 2e ff a6 d0 9f
    15513     jmp short 0a01eh                          ; eb 1c
     15497    jnc short 0a070h                          ; 73 25
     15498    jmp word [cs:bp-05fe0h]                   ; 2e ff a6 20 a0
     15499    jmp short 0a06eh                          ; eb 1c
    1551415500    sti                                       ; fb
    1551515501    hlt                                       ; f4
    15516     jmp short 0a01eh                          ; eb 18
    15517     jmp short 0a01eh                          ; eb 16
    15518     jmp short 0a020h                          ; eb 16
     15502    jmp short 0a06eh                          ; eb 18
     15503    jmp short 0a06eh                          ; eb 16
     15504    jmp short 0a070h                          ; eb 16
    1551915505    mov AH, strict byte 080h                  ; b4 80
    15520     jmp short 0a022h                          ; eb 14
    15521     jmp short 0a020h                          ; eb 10
     15506    jmp short 0a072h                          ; eb 14
     15507    jmp short 0a070h                          ; eb 10
    1552215508    mov ax, 00102h                            ; b8 02 01
    15523     jmp short 0a01eh                          ; eb 09
    15524     jmp short 0a01eh                          ; eb 07
     15509    jmp short 0a06eh                          ; eb 09
     15510    jmp short 0a06eh                          ; eb 07
    1552515511    mov BL, strict byte 000h                  ; b3 00
    1552615512    mov cx, strict word 00000h                ; b9 00 00
    15527     jmp short 0a01eh                          ; eb 00
     15513    jmp short 0a06eh                          ; eb 00
    1552815514    clc                                       ; f8
    1552915515    retn                                      ; c3
     
    1553115517    stc                                       ; f9
    1553215518    retn                                      ; c3
    15533 apm_pm16_entry:                              ; 0xfa024 LB 0x11
     15519apm_pm16_entry:                              ; 0xfa074 LB 0x11
    1553415520    mov AH, strict byte 002h                  ; b4 02
    1553515521    push DS                                   ; 1e
     
    1553915525    add bp, strict byte 00008h                ; 83 c5 08
    1554015526    mov ds, bp                                ; 8e dd
    15541     call 09feah                               ; e8 b8 ff
     15527    call 0a03ah                               ; e8 b8 ff
    1554215528    pop bp                                    ; 5d
    1554315529    pop DS                                    ; 1f
    1554415530    retf                                      ; cb
    15545 _DoUInt32Div:                                ; 0xfa035 LB 0x26b
     15531_DoUInt32Div:                                ; 0xfa085 LB 0x26b
    1554615532    push bp                                   ; 55
    1554715533    mov bp, sp                                ; 89 e5
     
    1556115547    mov [bp-006h], ds                         ; 8c 5e fa
    1556215548    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15563     jne short 0a085h                          ; 75 22
     15549    jne short 0a0d5h                          ; 75 22
    1556415550    mov ax, word [bx]                         ; 8b 07
    1556515551    test ax, ax                               ; 85 c0
    15566     je short 0a082h                           ; 74 19
     15552    je short 0a0d2h                           ; 74 19
    1556715553    cmp ax, strict word 00001h                ; 3d 01 00
    15568     jne short 0a085h                          ; 75 17
     15554    jne short 0a0d5h                          ; 75 17
    1556915555    xor ax, ax                                ; 31 c0
    1557015556    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1557415560    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1557515561    mov word [bp+006h], ax                    ; 89 46 06
    15576     jmp near 0a28dh                           ; e9 08 02
     15562    jmp near 0a2ddh                           ; e9 08 02
    1557715563    lds bx, [bp-00ch]                         ; c5 5e f4
    1557815564    mov ax, word [bx+002h]                    ; 8b 47 02
    1557915565    mov ds, [bp-006h]                         ; 8e 5e fa
    1558015566    cmp ax, word [si+002h]                    ; 3b 44 02
    15581     je short 0a0abh                           ; 74 18
     15567    je short 0a0fbh                           ; 74 18
    1558215568    mov ds, [bp-00ah]                         ; 8e 5e f6
    1558315569    mov ax, word [bx+002h]                    ; 8b 47 02
    1558415570    mov ds, [bp-006h]                         ; 8e 5e fa
    1558515571    cmp ax, word [si+002h]                    ; 3b 44 02
    15586     jbe short 0a0a6h                          ; 76 05
     15572    jbe short 0a0f6h                          ; 76 05
    1558715573    mov ax, strict word 00001h                ; b8 01 00
    15588     jmp short 0a0cch                          ; eb 26
     15574    jmp short 0a11ch                          ; eb 26
    1558915575    mov ax, strict word 0ffffh                ; b8 ff ff
    15590     jmp short 0a0cch                          ; eb 21
     15576    jmp short 0a11ch                          ; eb 21
    1559115577    mov ds, [bp-00ah]                         ; 8e 5e f6
    1559215578    mov ax, word [bx]                         ; 8b 07
    1559315579    mov ds, [bp-006h]                         ; 8e 5e fa
    1559415580    cmp ax, word [si]                         ; 3b 04
    15595     je short 0a0cah                           ; 74 13
     15581    je short 0a11ah                           ; 74 13
    1559615582    mov ds, [bp-00ah]                         ; 8e 5e f6
    1559715583    mov ax, word [bx]                         ; 8b 07
    1559815584    mov ds, [bp-006h]                         ; 8e 5e fa
    1559915585    cmp ax, word [si]                         ; 3b 04
    15600     jbe short 0a0c5h                          ; 76 02
    15601     jmp short 0a0a1h                          ; eb dc
     15586    jbe short 0a115h                          ; 76 02
     15587    jmp short 0a0f1h                          ; eb dc
    1560215588    mov ax, strict word 0ffffh                ; b8 ff ff
    15603     jmp short 0a0cch                          ; eb 02
     15589    jmp short 0a11ch                          ; eb 02
    1560415590    xor ax, ax                                ; 31 c0
    1560515591    test ax, ax                               ; 85 c0
    15606     jnl short 0a0eeh                          ; 7d 1e
     15592    jnl short 0a13eh                          ; 7d 1e
    1560715593    lds bx, [bp-00ch]                         ; c5 5e f4
    1560815594    mov ax, word [bx]                         ; 8b 07
     
    1561415600    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1561515601    mov word [bx], strict word 00000h         ; c7 07 00 00
    15616     jmp short 0a082h                          ; eb 94
    15617     jne short 0a105h                          ; 75 15
     15602    jmp short 0a0d2h                          ; eb 94
     15603    jne short 0a155h                          ; 75 15
    1561815604    mov ds, [bp-008h]                         ; 8e 5e f8
    1561915605    mov word [di+002h], ax                    ; 89 45 02
     
    1562215608    mov word [bx], strict word 00001h         ; c7 07 01 00
    1562315609    mov word [bx+002h], ax                    ; 89 47 02
    15624     jmp near 0a28dh                           ; e9 88 01
     15610    jmp near 0a2ddh                           ; e9 88 01
    1562515611    lds bx, [bp-00ch]                         ; c5 5e f4
    1562615612    mov ax, word [bx+002h]                    ; 8b 47 02
    1562715613    test ax, ax                               ; 85 c0
    15628     je short 0a120h                           ; 74 11
     15614    je short 0a170h                           ; 74 11
    1562915615    push ax                                   ; 50
    1563015616    mov ax, 0f000h                            ; b8 00 f0
    1563115617    mov ds, ax                                ; 8e d8
    15632     call 0a2a0h                               ; e8 88 01
     15618    call 0a2f0h                               ; e8 88 01
    1563315619    add sp, strict byte 00002h                ; 83 c4 02
    1563415620    add ax, strict word 00010h                ; 05 10 00
    15635     jmp short 0a12dh                          ; eb 0d
     15621    jmp short 0a17dh                          ; eb 0d
    1563615622    push word [bx]                            ; ff 37
    1563715623    mov ax, 0f000h                            ; b8 00 f0
    1563815624    mov ds, ax                                ; 8e d8
    15639     call 0a2a0h                               ; e8 76 01
     15625    call 0a2f0h                               ; e8 76 01
    1564015626    add sp, strict byte 00002h                ; 83 c4 02
    1564115627    mov word [bp-014h], ax                    ; 89 46 ec
     
    1564315629    mov ax, word [si+002h]                    ; 8b 44 02
    1564415630    test ax, ax                               ; 85 c0
    15645     je short 0a14bh                           ; 74 11
     15631    je short 0a19bh                           ; 74 11
    1564615632    push ax                                   ; 50
    1564715633    mov ax, 0f000h                            ; b8 00 f0
    1564815634    mov ds, ax                                ; 8e d8
    15649     call 0a2a0h                               ; e8 5d 01
     15635    call 0a2f0h                               ; e8 5d 01
    1565015636    add sp, strict byte 00002h                ; 83 c4 02
    1565115637    add ax, strict word 00010h                ; 05 10 00
    15652     jmp short 0a158h                          ; eb 0d
     15638    jmp short 0a1a8h                          ; eb 0d
    1565315639    push word [si]                            ; ff 34
    1565415640    mov ax, 0f000h                            ; b8 00 f0
    1565515641    mov ds, ax                                ; 8e d8
    15656     call 0a2a0h                               ; e8 4b 01
     15642    call 0a2f0h                               ; e8 4b 01
    1565715643    add sp, strict byte 00002h                ; 83 c4 02
    1565815644    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1566515651    mov word [bp-016h], ax                    ; 89 46 ea
    1566615652    test dx, dx                               ; 85 d2
    15667     je short 0a1c8h                           ; 74 56
     15653    je short 0a218h                           ; 74 56
    1566815654    mov cx, dx                                ; 89 d1
    1566915655    xor ch, dh                                ; 30 f5
     
    1567115657    mov ax, word [si]                         ; 8b 04
    1567215658    mov dx, word [si+002h]                    ; 8b 54 02
    15673     jcxz 0a186h                               ; e3 06
     15659    jcxz 0a1d6h                               ; e3 06
    1567415660    sal ax, 1                                 ; d1 e0
    1567515661    rcl dx, 1                                 ; d1 d2
    15676     loop 0a180h                               ; e2 fa
     15662    loop 0a1d0h                               ; e2 fa
    1567715663    mov word [bp-018h], ax                    ; 89 46 e8
    1567815664    mov word [bp-016h], dx                    ; 89 56 ea
     
    1568015666    lds bx, [bp-00ch]                         ; c5 5e f4
    1568115667    cmp ax, word [bx+002h]                    ; 3b 47 02
    15682     jnbe short 0a1a6h                         ; 77 0f
     15668    jnbe short 0a1f6h                         ; 77 0f
    1568315669    mov ax, word [bp-016h]                    ; 8b 46 ea
    1568415670    cmp ax, word [bx+002h]                    ; 3b 47 02
    15685     jne short 0a1aah                          ; 75 0b
     15671    jne short 0a1fah                          ; 75 0b
    1568615672    mov ax, word [bp-018h]                    ; 8b 46 e8
    1568715673    cmp ax, word [bx]                         ; 3b 07
    15688     jbe short 0a1aah                          ; 76 04
     15674    jbe short 0a1fah                          ; 76 04
    1568915675    mov AL, strict byte 001h                  ; b0 01
    15690     jmp short 0a1ach                          ; eb 02
     15676    jmp short 0a1fch                          ; eb 02
    1569115677    xor al, al                                ; 30 c0
    1569215678    test al, al                               ; 84 c0
    15693     je short 0a1d3h                           ; 74 23
     15679    je short 0a223h                           ; 74 23
    1569415680    shr word [bp-016h], 1                     ; d1 6e ea
    1569515681    rcr word [bp-018h], 1                     ; d1 5e e8
    1569615682    dec word [bp-012h]                        ; ff 4e ee
    15697     jmp short 0a1d3h                          ; eb 18
     15683    jmp short 0a223h                          ; eb 18
    1569815684    mov cx, strict word 0001fh                ; b9 1f 00
    1569915685    sal word [bp-018h], 1                     ; d1 66 e8
    1570015686    rcl word [bp-016h], 1                     ; d1 56 ea
    15701     loop 0a1beh                               ; e2 f8
    15702     jmp short 0a1b6h                          ; eb ee
     15687    loop 0a20eh                               ; e2 f8
     15688    jmp short 0a206h                          ; eb ee
    1570315689    mov ax, word [si]                         ; 8b 04
    1570415690    mov word [bp-018h], ax                    ; 89 46 e8
     
    1571715703    mov ds, [bp-006h]                         ; 8e 5e fa
    1571815704    cmp ax, word [si+002h]                    ; 3b 44 02
    15719     jnbe short 0a1ffh                         ; 77 06
    15720     jne short 0a203h                          ; 75 08
     15705    jnbe short 0a24fh                         ; 77 06
     15706    jne short 0a253h                          ; 75 08
    1572115707    cmp dx, word [si]                         ; 3b 14
    15722     jc short 0a203h                           ; 72 04
     15708    jc short 0a253h                           ; 72 04
    1572315709    mov AL, strict byte 001h                  ; b0 01
    15724     jmp short 0a205h                          ; eb 02
     15710    jmp short 0a255h                          ; eb 02
    1572515711    xor al, al                                ; 30 c0
    1572615712    test al, al                               ; 84 c0
    15727     je short 0a26ah                           ; 74 61
     15713    je short 0a2bah                           ; 74 61
    1572815714    mov ds, [bp-008h]                         ; 8e 5e f8
    1572915715    mov ax, word [di+002h]                    ; 8b 45 02
    1573015716    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15731     jnbe short 0a220h                         ; 77 0c
     15717    jnbe short 0a270h                         ; 77 0c
    1573215718    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15733     jne short 0a224h                          ; 75 0b
     15719    jne short 0a274h                          ; 75 0b
    1573415720    mov ax, word [di]                         ; 8b 05
    1573515721    cmp ax, word [bp-018h]                    ; 3b 46 e8
    15736     jc short 0a224h                           ; 72 04
     15722    jc short 0a274h                           ; 72 04
    1573715723    mov AL, strict byte 001h                  ; b0 01
    15738     jmp short 0a226h                          ; eb 02
     15724    jmp short 0a276h                          ; eb 02
    1573915725    xor al, al                                ; 30 c0
    1574015726    test al, al                               ; 84 c0
    15741     je short 0a250h                           ; 74 26
     15727    je short 0a2a0h                           ; 74 26
    1574215728    mov ax, word [bp-018h]                    ; 8b 46 e8
    1574315729    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1574815734    xor dx, dx                                ; 31 d2
    1574915735    mov cx, word [bp-012h]                    ; 8b 4e ee
    15750     jcxz 0a248h                               ; e3 06
     15736    jcxz 0a298h                               ; e3 06
    1575115737    sal ax, 1                                 ; d1 e0
    1575215738    rcl dx, 1                                 ; d1 d2
    15753     loop 0a242h                               ; e2 fa
     15739    loop 0a292h                               ; e2 fa
    1575415740    lds bx, [bp-010h]                         ; c5 5e f0
    1575515741    or word [bx], ax                          ; 09 07
     
    1576015746    mov ds, [bp-006h]                         ; 8e 5e fa
    1576115747    cmp ax, word [si+002h]                    ; 3b 44 02
    15762     jc short 0a266h                           ; 72 06
    15763     jne short 0a26ch                          ; 75 0a
     15748    jc short 0a2b6h                           ; 72 06
     15749    jne short 0a2bch                          ; 75 0a
    1576415750    cmp dx, word [si]                         ; 3b 14
    15765     jnc short 0a26ch                          ; 73 06
     15751    jnc short 0a2bch                          ; 73 06
    1576615752    mov AL, strict byte 001h                  ; b0 01
    15767     jmp short 0a26eh                          ; eb 04
    15768     jmp short 0a28dh                          ; eb 21
     15753    jmp short 0a2beh                          ; eb 04
     15754    jmp short 0a2ddh                          ; eb 21
    1576915755    xor al, al                                ; 30 c0
    1577015756    test al, al                               ; 84 c0
    15771     je short 0a281h                           ; 74 0f
    15772     jmp short 0a28dh                          ; eb 19
     15757    je short 0a2d1h                           ; 74 0f
     15758    jmp short 0a2ddh                          ; eb 19
    1577315759    mov cx, strict word 0001fh                ; b9 1f 00
    1577415760    sal word [bp-018h], 1                     ; d1 66 e8
    1577515761    rcl word [bp-016h], 1                     ; d1 56 ea
    15776     loop 0a277h                               ; e2 f8
    15777     jmp short 0a287h                          ; eb 06
     15762    loop 0a2c7h                               ; e2 f8
     15763    jmp short 0a2d7h                          ; eb 06
    1577815764    shr word [bp-016h], 1                     ; d1 6e ea
    1577915765    rcr word [bp-018h], 1                     ; d1 5e e8
    1578015766    dec word [bp-012h]                        ; ff 4e ee
    15781     jmp near 0a209h                           ; e9 7c ff
     15767    jmp near 0a259h                           ; e9 7c ff
    1578215768    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1578315769    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1578815774    retn                                      ; c3
    1578915775    times 0x6 db 0
    15790 _ASMBitLastSetU16:                           ; 0xfa2a0 LB 0x18
     15776_ASMBitLastSetU16:                           ; 0xfa2f0 LB 0x18
    1579115777    push bp                                   ; 55
    1579215778    db  08bh, 0ech
     
    1579415780    mov cx, word [bp+004h]                    ; 8b 4e 04
    1579515781    test cx, cx                               ; 85 c9
    15796     je short 0a2b4h                           ; 74 0a
     15782    je short 0a304h                           ; 74 0a
    1579715783    mov ax, strict word 00010h                ; b8 10 00
    1579815784    sal cx, 1                                 ; d1 e1
    15799     jc short 0a2b6h                           ; 72 05
     15785    jc short 0a306h                           ; 72 05
    1580015786    dec ax                                    ; 48
    15801     jmp short 0a2adh                          ; eb f9
     15787    jmp short 0a2fdh                          ; eb f9
    1580215788    db  033h, 0c0h
    1580315789    ; xor ax, ax                                ; 33 c0
     
    1580515791    retn                                      ; c3
    1580615792
    15807   ; Padding 0x3748 bytes at 0xfa2b8
    15808   times 14152 db 0
     15793  ; Padding 0x36f8 bytes at 0xfa308
     15794  times 14072 db 0
    1580915795
    1581015796section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1585315839    add bp, strict byte 00008h                ; 83 c5 08
    1585415840    push ebp                                  ; 66 55
    15855     mov bp, 0a026h                            ; bd 26 a0
     15841    mov bp, 0a076h                            ; bd 76 a0
    1585615842    add byte [bx+si], al                      ; 00 00
    1585715843    push ebp                                  ; 66 55
     
    1646216448    mov dx, 0c800h                            ; ba 00 c8
    1646316449    call 01600h                               ; e8 ea 33
    16464     call 04e57h                               ; e8 3e 6c
     16450    call 04eabh                               ; e8 92 6c
    1646516451    pop DS                                    ; 1f
    1646616452    mov ax, 0ff53h                            ; b8 53 ff
     
    1657916565    call 01c9fh                               ; e8 63 39
    1658016566    call 02118h                               ; e8 d9 3d
    16581     call 09869h                               ; e8 27 b5
    16582     call 086f4h                               ; e8 af a3
     16567    call 098bdh                               ; e8 7b b5
     16568    call 08748h                               ; e8 03 a4
    1658316569    call 0ed2fh                               ; e8 e7 09
    1658416570    call 0e2d2h                               ; e8 87 ff
     
    1659016576    call 01600h                               ; e8 a9 32
    1659116577    call 0178dh                               ; e8 33 34
    16592     call 03acfh                               ; e8 72 57
     16578    call 03b23h                               ; e8 c6 57
    1659316579    sti                                       ; fb
    1659416580    int 019h                                  ; cd 19
     
    1669216678    pop DS                                    ; 1f
    1669316679    cld                                       ; fc
    16694     call 063bch                               ; e8 7a 7c
     16680    call 06410h                               ; e8 ce 7c
    1669516681    popaw                                     ; 61
    1669616682    pop ES                                    ; 07
     
    1676816754    pop DS                                    ; 1f
    1676916755    cld                                       ; fc
    16770     call 05687h                               ; e8 45 6e
     16756    call 056dbh                               ; e8 99 6e
    1677116757    popaw                                     ; 61
    1677216758    pop DS                                    ; 1f
     
    1678516771    pop DS                                    ; 1f
    1678616772    cld                                       ; fc
    16787     call 05687h                               ; e8 27 6e
     16773    call 056dbh                               ; e8 7b 6e
    1678816774    popaw                                     ; 61
    1678916775    pop DS                                    ; 1f
     
    1683016816    pop DS                                    ; 1f
    1683116817    cld                                       ; fc
    16832     call 0515fh                               ; e8 96 67
     16818    call 051b3h                               ; e8 ea 67
    1683316819    pop ES                                    ; 07
    1683416820    popaw                                     ; 61
     
    1684616832    pop DS                                    ; 1f
    1684716833    cld                                       ; fc
    16848     call 06e63h                               ; e8 84 84
     16834    call 06eb7h                               ; e8 d8 84
    1684916835    pop DS                                    ; 1f
    1685016836    pop ES                                    ; 07
     
    1686816854    cld                                       ; fc
    1686916855    push 0ece9h                               ; 68 e9 ec
    16870     jmp near 03b13h                           ; e9 a2 4e
     16856    jmp near 03b67h                           ; e9 f6 4e
    1687116857    push ES                                   ; 06
    1687216858    push ax                                   ; 50
     
    1687416860    push cx                                   ; 51
    1687516861    push dx                                   ; 52
    16876     call 03ae7h                               ; e8 6e 4e
     16862    call 03b3bh                               ; e8 c2 4e
    1687716863    cmp AL, strict byte 000h                  ; 3c 00
    1687816864    je short 0ecabh                           ; 74 2e
    16879     call 03afdh                               ; e8 7d 4e
     16865    call 03b51h                               ; e8 d1 4e
    1688016866    pop dx                                    ; 5a
    1688116867    push dx                                   ; 52
     
    1689516881    cld                                       ; fc
    1689616882    push 0ece9h                               ; 68 e9 ec
    16897     jmp near 0410ch                           ; e9 75 54
     16883    jmp near 04160h                           ; e9 c9 54
    1689816884    and dl, 0e0h                              ; 80 e2 e0
    1689916885    db  03ah, 0c2h
     
    1693516921    jne short 0ecc8h                          ; 75 06
    1693616922    push 0ece9h                               ; 68 e9 ec
    16937     jmp near 0315ah                           ; e9 92 44
     16923    jmp near 03178h                           ; e9 b0 44
    1693816924int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1693916925    cmp dl, 0e0h                              ; 80 fa e0
     
    1694116927    shr ebx, 010h                             ; 66 c1 eb 10
    1694216928    push bx                                   ; 53
    16943     call 0454eh                               ; e8 79 58
     16929    call 045a2h                               ; e8 cd 58
    1694416930    pop bx                                    ; 5b
    1694516931    sal ebx, 010h                             ; 66 c1 e3 10
     
    1694816934    cmp ah, 040h                              ; 80 fc 40
    1694916935    jnbe short 0ece6h                         ; 77 05
    16950     call 05a5eh                               ; e8 7a 6d
     16936    call 05ab2h                               ; e8 ce 6d
    1695116937    jmp short 0ece9h                          ; eb 03
    16952     call 05eadh                               ; e8 c4 71
     16938    call 05f01h                               ; e8 18 72
    1695316939int13_out:                                   ; 0xfece9 LB 0x4
    1695416940    pop DS                                    ; 1f
     
    1716417150    pop DS                                    ; 1f
    1716517151    cld                                       ; fc
    17166     call 07801h                               ; e8 24 88
     17152    call 07855h                               ; e8 78 88
    1716717153    popaw                                     ; 61
    1716817154    pop ES                                    ; 07
     
    1721517201    mov ax, strict word 00001h                ; b8 01 00
    1721617202    push ax                                   ; 50
    17217     call 04bd3h                               ; e8 03 5b
     17203    call 04c27h                               ; e8 57 5b
    1721817204    inc sp                                    ; 44
    1721917205    inc sp                                    ; 44
     
    1722217208    mov ax, strict word 00002h                ; b8 02 00
    1722317209    push ax                                   ; 50
    17224     call 04bd3h                               ; e8 f6 5a
     17210    call 04c27h                               ; e8 4a 5b
    1722517211    inc sp                                    ; 44
    1722617212    inc sp                                    ; 44
     
    1722917215    mov ax, strict word 00003h                ; b8 03 00
    1723017216    push ax                                   ; 50
    17231     call 04bd3h                               ; e8 e9 5a
     17217    call 04c27h                               ; e8 3d 5b
    1723217218    inc sp                                    ; 44
    1723317219    inc sp                                    ; 44
     
    1723617222    mov ax, strict word 00004h                ; b8 04 00
    1723717223    push ax                                   ; 50
    17238     call 04bd3h                               ; e8 dc 5a
     17224    call 04c27h                               ; e8 30 5b
    1723917225    inc sp                                    ; 44
    1724017226    inc sp                                    ; 44
     
    1752017506    pop DS                                    ; 1f
    1752117507    cld                                       ; fc
    17522     call 06cd9h                               ; e8 72 74
     17508    call 06d2dh                               ; e8 c6 74
    1752317509    pop DS                                    ; 1f
    1752417510    pop ES                                    ; 07
     
    1754217528    cmp ah, 0c2h                              ; 80 fc c2
    1754317529    je short 0f899h                           ; 74 0e
    17544     call 06613h                               ; e8 85 6d
     17530    call 06667h                               ; e8 d9 6d
    1754517531    popaw                                     ; 61
    1754617532    pop ES                                    ; 07
     
    1754817534    popfw                                     ; 9d
    1754917535    jmp short 0f8a5h                          ; eb 11
    17550     call 099bbh                               ; e8 24 a1
     17536    call 09a0fh                               ; e8 78 a1
    1755117537    jmp short 0f88eh                          ; eb f5
    1755217538int15_handler_mouse:                         ; 0xff899 LB 0x5
    17553     call 07474h                               ; e8 d8 7b
     17539    call 074c8h                               ; e8 2c 7c
    1755417540    jmp short 0f88eh                          ; eb f0
    1755517541int15_handler32:                             ; 0xff89e LB 0x7
    1755617542    pushaw                                    ; 60
    17557     call 0694fh                               ; e8 ad 70
     17543    call 069a3h                               ; e8 01 71
    1755817544    popaw                                     ; 61
    1755917545    jmp short 0f88fh                          ; eb ea
     
    1758717573    pop DS                                    ; 1f
    1758817574    cld                                       ; fc
    17589     call 073a2h                               ; e8 d8 7a
     17575    call 073f6h                               ; e8 2c 7b
    1759017576    pop cx                                    ; 59
    1759117577    jcxz 0f8d9h                               ; e3 0c
     
    1761917605    pop DS                                    ; 1f
    1762017606    cld                                       ; fc
    17621     call 07047h                               ; e8 48 77
     17607    call 0709bh                               ; e8 9c 77
    1762217608    popaw                                     ; 61
    1762317609    pop DS                                    ; 1f
     
    1770817694    pop DS                                    ; 1f
    1770917695    cld                                       ; fc
    17710     call 07106h                               ; e8 8f 72
     17696    call 0715ah                               ; e8 e3 72
    1771117697    popaw                                     ; 61
    1771217698    pop DS                                    ; 1f
     
    1781317799cpu_reset:                                   ; 0xffff0 LB 0x10
    1781417800    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17815     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0c9h
     17801    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 089h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum

    r62178 r62406  
    1 373ec368a219608acb12fe2707c27727 *VBoxPcBios286.rom
     15f745a736014b416ef1fa17602a68a12 *VBoxPcBios286.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm

    r62178 r62406  
    951951    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    952952_pktacc:                                     ; 0xf006a LB 0xc
    953     db  000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 0dfh, 080h, 006h, 090h
     953    db  000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 00fh, 081h, 036h, 090h
    954954_softrst:                                    ; 0xf0076 LB 0xc
    955     db  000h, 000h, 000h, 000h, 000h, 000h, 0b4h, 02eh, 091h, 03bh, 091h, 03bh
     955    db  000h, 000h, 000h, 000h, 000h, 000h, 0b4h, 02eh, 0c1h, 03bh, 0c1h, 03bh
    956956_dskacc:                                     ; 0xf0082 LB 0x2e
    957957    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0bch, 02ah, 071h, 02bh, 000h, 000h, 000h, 000h
    958     db  029h, 07fh, 004h, 080h, 0dch, 08eh, 082h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     958    db  059h, 07fh, 034h, 080h, 00ch, 08fh, 0b2h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    959959    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    960960
     
    10791079section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
    10801080_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
    1081     db  'VirtualBox 5.1.0', 000h, 000h
     1081    db  'VirtualBox 5.1.2', 000h, 000h
    10821082_bios_prefix_string:                         ; 0xf0da0 LB 0x8
    10831083    db  'BIOS: ', 000h, 000h
     
    11531153  times 1144 db 0
    11541154
    1155 section _TEXT progbits vstart=0x1600 align=1 ; size=0x89b5 class=CODE group=AUTO
     1155section _TEXT progbits vstart=0x1600 align=1 ; size=0x89e5 class=CODE group=AUTO
    11561156rom_scan_:                                   ; 0xf1600 LB 0x50
    11571157    push bp                                   ; 55
     
    14581458    int 010h                                  ; cd 10
    14591459    jmp short 01829h                          ; eb 03
    1460     call 07af4h                               ; e8 cb 62
     1460    call 07b24h                               ; e8 fb 62
    14611461    mov sp, bp                                ; 89 ec
    14621462    pop bp                                    ; 5d
     
    16041604    mov bx, strict word 0000ah                ; bb 0a 00
    16051605    xor cx, cx                                ; 31 c9
    1606     call 09ec0h                               ; e8 7f 85
     1606    call 09ef0h                               ; e8 af 85
    16071607    mov word [bp-008h], ax                    ; 89 46 f8
    16081608    mov cx, dx                                ; 89 d1
     
    18301830    mov dx, word [bp-026h]                    ; 8b 56 da
    18311831    mov si, word [bp-01eh]                    ; 8b 76 e2
    1832     call 09f00h                               ; e8 8d 83
     1832    call 09f30h                               ; e8 bd 83
    18331833    mov ax, dx                                ; 89 d0
    18341834    xor ah, dh                                ; 30 f4
     
    22722272    mov dx, word [es:si]                      ; 26 8b 14
    22732273    mov si, strict word 00018h                ; be 18 00
    2274     call 09f00h                               ; e8 31 7f
     2274    call 09f30h                               ; e8 61 7f
    22752275    xor dh, dh                                ; 30 f6
    22762276    mov word [bp-016h], dx                    ; 89 56 ea
     
    22822282    mov dx, word [es:si]                      ; 26 8b 14
    22832283    mov si, strict word 00020h                ; be 20 00
    2284     call 09f00h                               ; e8 11 7f
     2284    call 09f30h                               ; e8 41 7f
    22852285    mov bx, dx                                ; 89 d3
    22862286    mov ax, word [bp-01eh]                    ; 8b 46 e2
     
    23132313    mov dx, word [es:si]                      ; 26 8b 14
    23142314    mov si, strict word 00008h                ; be 08 00
    2315     call 09f00h                               ; e8 c0 7e
     2315    call 09f30h                               ; e8 f0 7e
    23162316    mov word [bp-014h], dx                    ; 89 56 ec
    23172317    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    23222322    mov dx, word [es:si]                      ; 26 8b 14
    23232323    mov si, strict word 00018h                ; be 18 00
    2324     call 09f00h                               ; e8 a2 7e
     2324    call 09f30h                               ; e8 d2 7e
    23252325    and dx, strict byte 0000fh                ; 83 e2 0f
    23262326    or dl, 040h                               ; 80 ca 40
     
    27152715    mov dx, ss                                ; 8c d2
    27162716    lea ax, [bp-03ah]                         ; 8d 46 c6
    2717     call 059a6h                               ; e8 66 35
     2717    call 059d6h                               ; e8 96 35
    27182718    mov bx, 00da0h                            ; bb a0 0d
    27192719    mov cx, ds                                ; 8c d9
     
    28782878    mov dx, word [es:si+036h]                 ; 26 8b 54 36
    28792879    mov si, strict word 0000bh                ; be 0b 00
    2880     call 09f00h                               ; e8 da 78
     2880    call 09f30h                               ; e8 0a 79
    28812881    mov word [bp-030h], dx                    ; 89 56 d0
    28822882    mov word [bp-02eh], cx                    ; 89 4e d2
     
    31493149    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31503150    mov si, strict word 00018h                ; be 18 00
    3151     call 09f00h                               ; e8 04 76
     3151    call 09f30h                               ; e8 34 76
    31523152    xor dh, dh                                ; 30 f6
    31533153    mov word [bp-01ch], dx                    ; 89 56 e4
     
    31573157    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31583158    mov si, strict word 00020h                ; be 20 00
    3159     call 09f00h                               ; e8 ed 75
     3159    call 09f30h                               ; e8 1d 76
    31603160    mov bx, dx                                ; 89 d3
    31613161    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    31913191    mov dx, word [bp-01eh]                    ; 8b 56 e2
    31923192    mov si, strict word 00008h                ; be 08 00
    3193     call 09f00h                               ; e8 99 75
     3193    call 09f30h                               ; e8 c9 75
    31943194    mov word [bp-010h], ax                    ; 89 46 f0
    31953195    mov word [bp-014h], bx                    ; 89 5e ec
     
    31983198    mov word [bp-026h], dx                    ; 89 56 da
    31993199    mov si, strict word 00010h                ; be 10 00
    3200     call 09f00h                               ; e8 84 75
     3200    call 09f30h                               ; e8 b4 75
    32013201    mov word [bp-01eh], dx                    ; 89 56 e2
    32023202    mov ax, dx                                ; 89 d0
     
    39043904    pop bp                                    ; 5d
    39053905    retn                                      ; c3
    3906 floppy_reset_controller_:                    ; 0xf2fe0 LB 0x2b
     3906floppy_reset_controller_:                    ; 0xf2fe0 LB 0x48
    39073907    push bp                                   ; 55
    39083908    mov bp, sp                                ; 89 e5
    39093909    push bx                                   ; 53
     3910    push cx                                   ; 51
    39103911    push dx                                   ; 52
     3912    mov bx, ax                                ; 89 c3
    39113913    mov dx, 003f2h                            ; ba f2 03
    39123914    in AL, DX                                 ; ec
    39133915    db  02ah, 0e4h
    39143916    ; sub ah, ah                                ; 2a e4
    3915     mov bx, ax                                ; 89 c3
    3916     movzx ax, bl                              ; 0f b6 c3
     3917    mov cx, ax                                ; 89 c1
     3918    movzx ax, cl                              ; 0f b6 c1
    39173919    and AL, strict byte 0fbh                  ; 24 fb
    39183920    out DX, AL                                ; ee
    3919     mov al, bl                                ; 88 d8
     3921    mov al, cl                                ; 88 c8
    39203922    or AL, strict byte 004h                   ; 0c 04
    39213923    out DX, AL                                ; ee
     
    39263928    and AL, strict byte 0c0h                  ; 24 c0
    39273929    cmp AL, strict byte 080h                  ; 3c 80
    3928     jne short 02ff8h                          ; 75 f4
    3929     lea sp, [bp-004h]                         ; 8d 66 fc
     3930    jne short 02ffbh                          ; 75 f4
     3931    lea cx, [bx+00090h]                       ; 8d 8f 90 00
     3932    mov dx, cx                                ; 89 ca
     3933    mov ax, strict word 00040h                ; b8 40 00
     3934    call 016b8h                               ; e8 a5 e6
     3935    and AL, strict byte 0efh                  ; 24 ef
     3936    movzx bx, al                              ; 0f b6 d8
     3937    mov dx, cx                                ; 89 ca
     3938    mov ax, strict word 00040h                ; b8 40 00
     3939    call 016c6h                               ; e8 a6 e6
     3940    lea sp, [bp-006h]                         ; 8d 66 fa
    39303941    pop dx                                    ; 5a
     3942    pop cx                                    ; 59
    39313943    pop bx                                    ; 5b
    39323944    pop bp                                    ; 5d
    39333945    retn                                      ; c3
    3934 floppy_prepare_controller_:                  ; 0xf300b LB 0x81
     3946floppy_prepare_controller_:                  ; 0xf3028 LB 0x81
    39353947    push bp                                   ; 55
    39363948    mov bp, sp                                ; 89 e5
     
    39423954    mov dx, strict word 0003eh                ; ba 3e 00
    39433955    mov ax, strict word 00040h                ; b8 40 00
    3944     call 016b8h                               ; e8 9b e6
     3956    call 016b8h                               ; e8 7e e6
    39453957    and AL, strict byte 07fh                  ; 24 7f
    39463958    movzx bx, al                              ; 0f b6 d8
    39473959    mov dx, strict word 0003eh                ; ba 3e 00
    39483960    mov ax, strict word 00040h                ; b8 40 00
    3949     call 016c6h                               ; e8 9b e6
     3961    call 016c6h                               ; e8 7e e6
    39503962    mov dx, 003f2h                            ; ba f2 03
    39513963    in AL, DX                                 ; ec
     
    39553967    mov byte [bp-008h], al                    ; 88 46 f8
    39563968    test cx, cx                               ; 85 c9
    3957     je short 0303eh                           ; 74 04
     3969    je short 0305bh                           ; 74 04
    39583970    mov AL, strict byte 020h                  ; b0 20
    3959     jmp short 03040h                          ; eb 02
     3971    jmp short 0305dh                          ; eb 02
    39603972    mov AL, strict byte 010h                  ; b0 10
    39613973    or AL, strict byte 00ch                   ; 0c 0c
     
    39663978    mov dx, strict word 00040h                ; ba 40 00
    39673979    mov ax, dx                                ; 89 d0
    3968     call 016c6h                               ; e8 73 e6
     3980    call 016c6h                               ; e8 56 e6
    39693981    mov dx, 0008bh                            ; ba 8b 00
    39703982    mov ax, strict word 00040h                ; b8 40 00
    3971     call 016b8h                               ; e8 5c e6
     3983    call 016b8h                               ; e8 3f e6
    39723984    shr al, 006h                              ; c0 e8 06
    39733985    mov dx, 003f7h                            ; ba f7 03
     
    39793991    and AL, strict byte 0c0h                  ; 24 c0
    39803992    cmp AL, strict byte 080h                  ; 3c 80
    3981     jne short 03063h                          ; 75 f4
     3993    jne short 03080h                          ; 75 f4
    39823994    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    3983     jne short 03084h                          ; 75 0f
    3984     call 02f79h                               ; e8 01 ff
     3995    jne short 030a1h                          ; 75 0f
     3996    call 02f79h                               ; e8 e4 fe
    39853997    movzx bx, al                              ; 0f b6 d8
    39863998    mov dx, strict word 0003eh                ; ba 3e 00
    39873999    mov ax, strict word 00040h                ; b8 40 00
    3988     call 016c6h                               ; e8 42 e6
     4000    call 016c6h                               ; e8 25 e6
    39894001    lea sp, [bp-006h]                         ; 8d 66 fa
    39904002    pop dx                                    ; 5a
     
    39934005    pop bp                                    ; 5d
    39944006    retn                                      ; c3
    3995 floppy_media_known_:                         ; 0xf308c LB 0x43
     4007floppy_media_known_:                         ; 0xf30a9 LB 0x43
    39964008    push bp                                   ; 55
    39974009    mov bp, sp                                ; 89 e5
     
    40014013    mov dx, strict word 0003eh                ; ba 3e 00
    40024014    mov ax, strict word 00040h                ; b8 40 00
    4003     call 016b8h                               ; e8 1c e6
     4015    call 016b8h                               ; e8 ff e5
    40044016    mov ah, al                                ; 88 c4
    40054017    test bx, bx                               ; 85 db
    4006     je short 030a4h                           ; 74 02
     4018    je short 030c1h                           ; 74 02
    40074019    shr al, 1                                 ; d0 e8
    40084020    and AL, strict byte 001h                  ; 24 01
    4009     jne short 030ach                          ; 75 04
     4021    jne short 030c9h                          ; 75 04
    40104022    xor ah, ah                                ; 30 e4
    4011     jmp short 030c8h                          ; eb 1c
     4023    jmp short 030e5h                          ; eb 1c
    40124024    mov dx, 00090h                            ; ba 90 00
    40134025    test bx, bx                               ; 85 db
    4014     je short 030b6h                           ; 74 03
     4026    je short 030d3h                           ; 74 03
    40154027    mov dx, 00091h                            ; ba 91 00
    40164028    mov ax, strict word 00040h                ; b8 40 00
    4017     call 016b8h                               ; e8 fc e5
     4029    call 016b8h                               ; e8 df e5
    40184030    xor ah, ah                                ; 30 e4
    40194031    sar ax, 004h                              ; c1 f8 04
    40204032    and AL, strict byte 001h                  ; 24 01
    4021     je short 030a8h                           ; 74 e3
     4033    je short 030c5h                           ; 74 e3
    40224034    mov ax, strict word 00001h                ; b8 01 00
    40234035    lea sp, [bp-004h]                         ; 8d 66 fc
     
    40264038    pop bp                                    ; 5d
    40274039    retn                                      ; c3
    4028 floppy_read_id_:                             ; 0xf30cf LB 0x40
     4040floppy_read_id_:                             ; 0xf30ec LB 0x40
    40294041    push bp                                   ; 55
    40304042    mov bp, sp                                ; 89 e5
     
    40344046    sub sp, strict byte 00008h                ; 83 ec 08
    40354047    mov bx, ax                                ; 89 c3
    4036     call 0300bh                               ; e8 2e ff
     4048    call 03028h                               ; e8 2e ff
    40374049    mov AL, strict byte 04ah                  ; b0 4a
    40384050    mov dx, 003f5h                            ; ba f5 03
     
    40404052    mov al, bl                                ; 88 d8
    40414053    out DX, AL                                ; ee
    4042     call 02f79h                               ; e8 90 fe
     4054    call 02f79h                               ; e8 73 fe
    40434055    xor si, si                                ; 31 f6
    4044     jmp short 030f2h                          ; eb 05
     4056    jmp short 0310fh                          ; eb 05
    40454057    cmp si, strict byte 00007h                ; 83 fe 07
    4046     jnl short 030feh                          ; 7d 0c
     4058    jnl short 0311bh                          ; 7d 0c
    40474059    mov dx, 003f5h                            ; ba f5 03
    40484060    in AL, DX                                 ; ec
     
    40514063    mov byte [bp+si-00eh], al                 ; 88 42 f2
    40524064    inc si                                    ; 46
    4053     jmp short 030edh                          ; eb ef
     4065    jmp short 0310ah                          ; eb ef
    40544066    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    40554067    db  00fh, 094h, 0c0h
     
    40624074    pop bp                                    ; 5d
    40634075    retn                                      ; c3
    4064 floppy_drive_recal_:                         ; 0xf310f LB 0x48
     4076floppy_drive_recal_:                         ; 0xf312c LB 0x48
    40654077    push bp                                   ; 55
    40664078    mov bp, sp                                ; 89 e5
     
    40694081    push dx                                   ; 52
    40704082    mov bx, ax                                ; 89 c3
    4071     call 0300bh                               ; e8 f1 fe
     4083    call 03028h                               ; e8 f1 fe
    40724084    mov AL, strict byte 007h                  ; b0 07
    40734085    mov dx, 003f5h                            ; ba f5 03
     
    40754087    mov al, bl                                ; 88 d8
    40764088    out DX, AL                                ; ee
    4077     call 02f79h                               ; e8 53 fe
     4089    call 02f79h                               ; e8 36 fe
    40784090    test bx, bx                               ; 85 db
    4079     je short 03131h                           ; 74 07
     4091    je short 0314eh                           ; 74 07
    40804092    or AL, strict byte 002h                   ; 0c 02
    40814093    mov cx, 00095h                            ; b9 95 00
    4082     jmp short 03136h                          ; eb 05
     4094    jmp short 03153h                          ; eb 05
    40834095    or AL, strict byte 001h                   ; 0c 01
    40844096    mov cx, 00094h                            ; b9 94 00
     
    40864098    mov dx, strict word 0003eh                ; ba 3e 00
    40874099    mov ax, strict word 00040h                ; b8 40 00
    4088     call 016c6h                               ; e8 84 e5
     4100    call 016c6h                               ; e8 67 e5
    40894101    xor bx, bx                                ; 31 db
    40904102    mov dx, cx                                ; 89 ca
    40914103    mov ax, strict word 00040h                ; b8 40 00
    4092     call 016c6h                               ; e8 7a e5
     4104    call 016c6h                               ; e8 5d e5
    40934105    mov ax, strict word 00001h                ; b8 01 00
    40944106    lea sp, [bp-006h]                         ; 8d 66 fa
     
    40984110    pop bp                                    ; 5d
    40994111    retn                                      ; c3
    4100 floppy_media_sense_:                         ; 0xf3157 LB 0xf0
     4112floppy_media_sense_:                         ; 0xf3174 LB 0xf0
    41014113    push bp                                   ; 55
    41024114    mov bp, sp                                ; 89 e5
     
    41074119    push di                                   ; 57
    41084120    mov di, ax                                ; 89 c7
    4109     call 0310fh                               ; e8 ab ff
     4121    call 0312ch                               ; e8 ab ff
    41104122    test ax, ax                               ; 85 c0
    4111     jne short 0316dh                          ; 75 05
     4123    jne short 0318ah                          ; 75 05
    41124124    xor cx, cx                                ; 31 c9
    4113     jmp near 0323bh                           ; e9 ce 00
     4125    jmp near 03258h                           ; e9 ce 00
    41144126    mov ax, strict word 00010h                ; b8 10 00
    4115     call 01714h                               ; e8 a1 e5
     4127    call 01714h                               ; e8 84 e5
    41164128    test di, di                               ; 85 ff
    4117     jne short 0317eh                          ; 75 07
     4129    jne short 0319bh                          ; 75 07
    41184130    mov cl, al                                ; 88 c1
    41194131    shr cl, 004h                              ; c0 e9 04
    4120     jmp short 03183h                          ; eb 05
     4132    jmp short 031a0h                          ; eb 05
    41214133    mov cl, al                                ; 88 c1
    41224134    and cl, 00fh                              ; 80 e1 0f
    41234135    cmp cl, 001h                              ; 80 f9 01
    4124     jne short 03191h                          ; 75 09
     4136    jne short 031aeh                          ; 75 09
    41254137    xor cl, cl                                ; 30 c9
    41264138    mov CH, strict byte 015h                  ; b5 15
    41274139    mov si, strict word 00001h                ; be 01 00
    4128     jmp short 031cfh                          ; eb 3e
     4140    jmp short 031ech                          ; eb 3e
    41294141    cmp cl, 002h                              ; 80 f9 02
    4130     jne short 0319ch                          ; 75 06
     4142    jne short 031b9h                          ; 75 06
    41314143    xor cl, cl                                ; 30 c9
    41324144    mov CH, strict byte 035h                  ; b5 35
    4133     jmp short 0318ch                          ; eb f0
     4145    jmp short 031a9h                          ; eb f0
    41344146    cmp cl, 003h                              ; 80 f9 03
    4135     jne short 031a7h                          ; 75 06
     4147    jne short 031c4h                          ; 75 06
    41364148    xor cl, cl                                ; 30 c9
    41374149    mov CH, strict byte 017h                  ; b5 17
    4138     jmp short 0318ch                          ; eb e5
     4150    jmp short 031a9h                          ; eb e5
    41394151    cmp cl, 004h                              ; 80 f9 04
    4140     jne short 031b2h                          ; 75 06
     4152    jne short 031cfh                          ; 75 06
    41414153    xor cl, cl                                ; 30 c9
    41424154    mov CH, strict byte 017h                  ; b5 17
    4143     jmp short 0318ch                          ; eb da
     4155    jmp short 031a9h                          ; eb da
    41444156    cmp cl, 005h                              ; 80 f9 05
    4145     jne short 031bdh                          ; 75 06
     4157    jne short 031dah                          ; 75 06
    41464158    mov CL, strict byte 0cch                  ; b1 cc
    41474159    mov CH, strict byte 0d7h                  ; b5 d7
    4148     jmp short 0318ch                          ; eb cf
     4160    jmp short 031a9h                          ; eb cf
    41494161    cmp cl, 00eh                              ; 80 f9 0e
    4150     je short 031c7h                           ; 74 05
     4162    je short 031e4h                           ; 74 05
    41514163    cmp cl, 00fh                              ; 80 f9 0f
    4152     jne short 031c9h                          ; 75 02
    4153     jmp short 031b7h                          ; eb ee
     4164    jne short 031e6h                          ; 75 02
     4165    jmp short 031d4h                          ; eb ee
    41544166    xor cl, cl                                ; 30 c9
    41554167    xor ch, ch                                ; 30 ed
     
    41584170    mov dx, 0008bh                            ; ba 8b 00
    41594171    mov ax, strict word 00040h                ; b8 40 00
    4160     call 016c6h                               ; e8 eb e4
     4172    call 016c6h                               ; e8 ce e4
    41614173    mov ax, di                                ; 89 f8
    4162     call 030cfh                               ; e8 ef fe
     4174    call 030ech                               ; e8 ef fe
    41634175    test ax, ax                               ; 85 c0
    4164     jne short 03216h                          ; 75 32
     4176    jne short 03233h                          ; 75 32
    41654177    mov al, cl                                ; 88 c8
    41664178    and AL, strict byte 0c0h                  ; 24 c0
    41674179    cmp AL, strict byte 080h                  ; 3c 80
    4168     je short 03216h                           ; 74 2a
     4180    je short 03233h                           ; 74 2a
    41694181    mov al, cl                                ; 88 c8
    41704182    and AL, strict byte 0c0h                  ; 24 c0
    41714183    cmp AL, strict byte 0c0h                  ; 3c c0
    4172     je short 03203h                           ; 74 0f
     4184    je short 03220h                           ; 74 0f
    41734185    mov ah, cl                                ; 88 cc
    41744186    and ah, 03fh                              ; 80 e4 3f
    41754187    cmp AL, strict byte 040h                  ; 3c 40
    4176     je short 0320fh                           ; 74 12
     4188    je short 0322ch                           ; 74 12
    41774189    test al, al                               ; 84 c0
    4178     je short 03208h                           ; 74 07
    4179     jmp short 031cfh                          ; eb cc
     4190    je short 03225h                           ; 74 07
     4191    jmp short 031ech                          ; eb cc
    41804192    and cl, 03fh                              ; 80 e1 3f
    4181     jmp short 031cfh                          ; eb c7
     4193    jmp short 031ech                          ; eb c7
    41824194    mov cl, ah                                ; 88 e1
    41834195    or cl, 040h                               ; 80 c9 40
    4184     jmp short 031cfh                          ; eb c0
     4196    jmp short 031ech                          ; eb c0
    41854197    mov cl, ah                                ; 88 e1
    41864198    or cl, 080h                               ; 80 c9 80
    4187     jmp short 031cfh                          ; eb b9
     4199    jmp short 031ech                          ; eb b9
    41884200    test di, di                               ; 85 ff
    41894201    db  00fh, 095h, 0c0h
     
    41944206    mov dx, 0008bh                            ; ba 8b 00
    41954207    mov ax, strict word 00040h                ; b8 40 00
    4196     call 016c6h                               ; e8 98 e4
     4208    call 016c6h                               ; e8 7b e4
    41974209    movzx bx, ch                              ; 0f b6 dd
    41984210    mov dx, di                                ; 89 fa
    41994211    mov ax, strict word 00040h                ; b8 40 00
    4200     call 016c6h                               ; e8 8d e4
     4212    call 016c6h                               ; e8 70 e4
    42014213    mov cx, si                                ; 89 f1
    42024214    mov ax, cx                                ; 89 c8
     
    42094221    pop bp                                    ; 5d
    42104222    retn                                      ; c3
    4211 floppy_drive_exists_:                        ; 0xf3247 LB 0x24
     4223floppy_drive_exists_:                        ; 0xf3264 LB 0x24
    42124224    push bp                                   ; 55
    42134225    mov bp, sp                                ; 89 e5
     
    42154227    mov dx, ax                                ; 89 c2
    42164228    mov ax, strict word 00010h                ; b8 10 00
    4217     call 01714h                               ; e8 c1 e4
     4229    call 01714h                               ; e8 a4 e4
    42184230    test dx, dx                               ; 85 d2
    4219     jne short 0325ch                          ; 75 05
     4231    jne short 03279h                          ; 75 05
    42204232    shr al, 004h                              ; c0 e8 04
    4221     jmp short 0325eh                          ; eb 02
     4233    jmp short 0327bh                          ; eb 02
    42224234    and AL, strict byte 00fh                  ; 24 0f
    42234235    test al, al                               ; 84 c0
     
    42294241    pop bp                                    ; 5d
    42304242    retn                                      ; c3
    4231 _int13_diskette_function:                    ; 0xf326b LB 0x8f7
     4243_int13_diskette_function:                    ; 0xf3288 LB 0x90a
    42324244    push bp                                   ; 55
    42334245    mov bp, sp                                ; 89 e5
     
    42374249    mov bx, word [bp+016h]                    ; 8b 5e 16
    42384250    shr bx, 008h                              ; c1 eb 08
    4239     mov byte [bp-006h], bl                    ; 88 5e fa
     4251    mov byte [bp-008h], bl                    ; 88 5e f8
    42404252    mov si, word [bp+016h]                    ; 8b 76 16
    42414253    and si, 000ffh                            ; 81 e6 ff 00
     
    42454257    mov dx, word [bp+014h]                    ; 8b 56 14
    42464258    shr dx, 008h                              ; c1 ea 08
    4247     mov word [bp-010h], dx                    ; 89 56 f0
     4259    mov word [bp-012h], dx                    ; 89 56 ee
    42484260    cmp bl, 008h                              ; 80 fb 08
    4249     jc short 032d2h                           ; 72 38
     4261    jc short 032efh                           ; 72 38
    42504262    mov dx, word [bp+01ch]                    ; 8b 56 1c
    42514263    or dl, 001h                               ; 80 ca 01
    42524264    cmp bl, 008h                              ; 80 fb 08
    4253     jbe near 03828h                           ; 0f 86 81 05
     4265    jbe near 03856h                           ; 0f 86 92 05
    42544266    cmp bl, 016h                              ; 80 fb 16
    4255     jc short 032c8h                           ; 72 1c
     4267    jc short 032e5h                           ; 72 1c
    42564268    or si, 00100h                             ; 81 ce 00 01
    42574269    cmp bl, 016h                              ; 80 fb 16
    4258     jbe near 0395ch                           ; 0f 86 a5 06
     4270    jbe near 0398ch                           ; 0f 86 b8 06
    42594271    cmp bl, 018h                              ; 80 fb 18
    4260     je near 039f2h                            ; 0f 84 34 07
     4272    je near 03a22h                            ; 0f 84 47 07
    42614273    cmp bl, 017h                              ; 80 fb 17
    4262     je near 03980h                            ; 0f 84 bb 06
    4263     jmp near 03b3fh                           ; e9 77 08
     4274    je near 039b0h                            ; 0f 84 ce 06
     4275    jmp near 03b6fh                           ; e9 8a 08
    42644276    cmp bl, 015h                              ; 80 fb 15
    4265     je near 03918h                            ; 0f 84 49 06
    4266     jmp near 03b3fh                           ; e9 6d 08
     4277    je near 03948h                            ; 0f 84 5c 06
     4278    jmp near 03b6fh                           ; e9 80 08
    42674279    cmp bl, 001h                              ; 80 fb 01
    4268     jc short 032ech                           ; 72 15
    4269     jbe near 03365h                           ; 0f 86 8a 00
     4280    jc short 03309h                           ; 72 15
     4281    jbe near 03382h                           ; 0f 86 8a 00
    42704282    cmp bl, 005h                              ; 80 fb 05
    4271     je near 036a2h                            ; 0f 84 c0 03
     4283    je near 036cch                            ; 0f 84 cd 03
    42724284    cmp bl, 004h                              ; 80 fb 04
    4273     jbe near 03383h                           ; 0f 86 9a 00
    4274     jmp near 03b3fh                           ; e9 53 08
     4285    jbe near 033a0h                           ; 0f 86 9a 00
     4286    jmp near 03b6fh                           ; e9 66 08
    42754287    test bl, bl                               ; 84 db
    4276     jne near 03b3fh                           ; 0f 85 4d 08
     4288    jne near 03b6fh                           ; 0f 85 60 08
    42774289    mov al, byte [bp+00eh]                    ; 8a 46 0e
    4278     mov byte [bp-008h], al                    ; 88 46 f8
     4290    mov byte [bp-00ch], al                    ; 88 46 f4
    42794291    cmp AL, strict byte 001h                  ; 3c 01
    4280     jbe short 03310h                          ; 76 14
     4292    jbe short 0332dh                          ; 76 14
    42814293    mov ax, word [bp+016h]                    ; 8b 46 16
    42824294    xor ah, ah                                ; 30 e4
     
    42844296    mov word [bp+016h], ax                    ; 89 46 16
    42854297    mov ax, strict word 00001h                ; b8 01 00
    4286     call 02f34h                               ; e8 27 fc
    4287     jmp near 0367eh                           ; e9 6e 03
     4298    call 02f34h                               ; e8 0a fc
     4299    jmp near 036a8h                           ; e9 7b 03
    42884300    mov ax, strict word 00010h                ; b8 10 00
    4289     call 01714h                               ; e8 fe e3
    4290     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4291     jne short 03323h                          ; 75 07
     4301    call 01714h                               ; e8 e1 e3
     4302    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     4303    jne short 03340h                          ; 75 07
    42924304    mov cl, al                                ; 88 c1
    42934305    shr cl, 004h                              ; c0 e9 04
    4294     jmp short 03328h                          ; eb 05
     4306    jmp short 03345h                          ; eb 05
    42954307    mov cl, al                                ; 88 c1
    42964308    and cl, 00fh                              ; 80 e1 0f
    42974309    test cl, cl                               ; 84 c9
    4298     jne short 0333ch                          ; 75 10
     4310    jne short 03359h                          ; 75 10
    42994311    mov ax, word [bp+016h]                    ; 8b 46 16
    43004312    xor ah, ah                                ; 30 e4
     
    43024314    mov word [bp+016h], ax                    ; 89 46 16
    43034315    mov ax, 00080h                            ; b8 80 00
    4304     jmp short 0330ah                          ; eb ce
     4316    jmp short 03327h                          ; eb ce
    43054317    xor bx, bx                                ; 31 db
    43064318    mov dx, strict word 0003eh                ; ba 3e 00
    43074319    mov ax, strict word 00040h                ; b8 40 00
    4308     call 016c6h                               ; e8 7f e3
     4320    call 016c6h                               ; e8 62 e3
    43094321    xor al, al                                ; 30 c0
    43104322    mov byte [bp+017h], al                    ; 88 46 17
    43114323    xor ah, ah                                ; 30 e4
    4312     call 02f34h                               ; e8 e3 fb
     4324    call 02f34h                               ; e8 c6 fb
    43134325    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4314     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4326    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    43154327    xor dx, dx                                ; 31 d2
    4316     call 02f4ch                               ; e8 ee fb
     4328    call 02f4ch                               ; e8 d1 fb
    43174329    lea sp, [bp-004h]                         ; 8d 66 fc
    43184330    pop di                                    ; 5f
     
    43234335    mov dx, 00441h                            ; ba 41 04
    43244336    xor ax, ax                                ; 31 c0
    4325     call 016b8h                               ; e8 47 e3
     4337    call 016b8h                               ; e8 2a e3
    43264338    movzx dx, al                              ; 0f b6 d0
    43274339    sal dx, 008h                              ; c1 e2 08
     
    43294341    mov word [bp+016h], si                    ; 89 76 16
    43304342    test al, al                               ; 84 c0
    4331     je short 0335eh                           ; 74 de
    4332     jmp near 0367eh                           ; e9 fb 02
     4343    je short 0337bh                           ; 74 de
     4344    jmp near 036a8h                           ; e9 08 03
    43334345    mov ch, cl                                ; 88 cd
    4334     mov dl, byte [bp-010h]                    ; 8a 56 f0
    4335     mov byte [bp-00ch], dl                    ; 88 56 f4
    4336     mov byte [bp-00ah], ah                    ; 88 66 f6
     4346    mov dl, byte [bp-012h]                    ; 8a 56 ee
     4347    mov byte [bp-00ah], dl                    ; 88 56 f6
     4348    mov byte [bp-006h], ah                    ; 88 66 fa
    43374349    mov dx, word [bp+012h]                    ; 8b 56 12
    43384350    shr dx, 008h                              ; c1 ea 08
    43394351    mov byte [bp-00eh], dl                    ; 88 56 f2
    4340     mov byte [bp-008h], al                    ; 88 46 f8
     4352    mov byte [bp-00ch], al                    ; 88 46 f4
    43414353    cmp AL, strict byte 001h                  ; 3c 01
    4342     jnbe short 033ach                         ; 77 0e
     4354    jnbe short 033c9h                         ; 77 0e
    43434355    cmp dl, 001h                              ; 80 fa 01
    4344     jnbe short 033ach                         ; 77 09
     4356    jnbe short 033c9h                         ; 77 09
    43454357    test cl, cl                               ; 84 c9
    4346     je short 033ach                           ; 74 05
     4358    je short 033c9h                           ; 74 05
    43474359    cmp cl, 048h                              ; 80 f9 48
    4348     jbe short 033d6h                          ; 76 2a
     4360    jbe short 033f3h                          ; 76 2a
    43494361    mov bx, 00da0h                            ; bb a0 0d
    43504362    mov cx, ds                                ; 8c d9
    43514363    mov ax, strict word 00004h                ; b8 04 00
    4352     call 01999h                               ; e8 e2 e5
     4364    call 01999h                               ; e8 c5 e5
    43534365    push 00275h                               ; 68 75 02
    43544366    push 0028dh                               ; 68 8d 02
    43554367    push strict byte 00004h                   ; 6a 04
    4356     call 019dah                               ; e8 18 e6
     4368    call 019dah                               ; e8 fb e5
    43574369    add sp, strict byte 00006h                ; 83 c4 06
    43584370    mov ax, word [bp+016h]                    ; 8b 46 16
     
    43614373    mov word [bp+016h], ax                    ; 89 46 16
    43624374    mov ax, strict word 00001h                ; b8 01 00
    4363     jmp near 0344ch                           ; e9 76 00
    4364     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4365     call 03247h                               ; e8 6a fe
     4375    jmp near 03469h                           ; e9 76 00
     4376    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4377    call 03264h                               ; e8 6a fe
    43664378    test ax, ax                               ; 85 c0
    4367     je near 034dfh                            ; 0f 84 fc 00
    4368     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     4379    je near 03500h                            ; 0f 84 00 01
     4380    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    43694381    mov ax, dx                                ; 89 d0
    4370     call 0308ch                               ; e8 a0 fc
     4382    call 030a9h                               ; e8 a0 fc
    43714383    test ax, ax                               ; 85 c0
    4372     jne short 03409h                          ; 75 19
     4384    jne short 03426h                          ; 75 19
    43734385    mov ax, dx                                ; 89 d0
    4374     call 03157h                               ; e8 62 fd
     4386    call 03174h                               ; e8 62 fd
    43754387    test ax, ax                               ; 85 c0
    4376     jne short 03409h                          ; 75 10
     4388    jne short 03426h                          ; 75 10
    43774389    mov ax, word [bp+016h]                    ; 8b 46 16
    43784390    xor ah, ah                                ; 30 e4
     
    43804392    mov word [bp+016h], ax                    ; 89 46 16
    43814393    mov ax, strict word 0000ch                ; b8 0c 00
    4382     jmp short 0344ch                          ; eb 43
    4383     cmp byte [bp-006h], 002h                  ; 80 7e fa 02
    4384     jne near 03571h                           ; 0f 85 60 01
     4394    jmp short 03469h                          ; eb 43
     4395    cmp byte [bp-008h], 002h                  ; 80 7e f8 02
     4396    jne near 03599h                           ; 0f 85 6b 01
    43854397    mov ax, word [bp+006h]                    ; 8b 46 06
    43864398    shr ax, 00ch                              ; c1 e8 0c
     
    43904402    mov bx, word [bp+010h]                    ; 8b 5e 10
    43914403    add bx, dx                                ; 01 d3
    4392     mov word [bp-012h], bx                    ; 89 5e ee
     4404    mov word [bp-010h], bx                    ; 89 5e f0
    43934405    cmp dx, bx                                ; 39 da
    4394     jbe short 0342dh                          ; 76 02
     4406    jbe short 0344ah                          ; 76 02
    43954407    db  0feh, 0c1h
    43964408    ; inc cl                                    ; fe c1
     
    43984410    sal bx, 009h                              ; c1 e3 09
    43994411    dec bx                                    ; 4b
    4400     mov ax, word [bp-012h]                    ; 8b 46 ee
     4412    mov ax, word [bp-010h]                    ; 8b 46 f0
    44014413    add ax, bx                                ; 01 d8
    4402     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4403     jnc short 03456h                          ; 73 18
     4414    cmp ax, word [bp-010h]                    ; 3b 46 f0
     4415    jnc short 03473h                          ; 73 18
    44044416    mov ax, word [bp+016h]                    ; 8b 46 16
    44054417    xor ah, ah                                ; 30 e4
     
    44074419    mov word [bp+016h], ax                    ; 89 46 16
    44084420    mov ax, strict word 00009h                ; b8 09 00
    4409     call 02f34h                               ; e8 e5 fa
     4421    call 02f34h                               ; e8 c8 fa
    44104422    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4411     jmp near 0367eh                           ; e9 28 02
     4423    jmp near 036a8h                           ; e9 35 02
    44124424    mov AL, strict byte 006h                  ; b0 06
    44134425    mov dx, strict word 0000ah                ; ba 0a 00
     
    44164428    mov dx, strict word 0000ch                ; ba 0c 00
    44174429    out DX, AL                                ; ee
    4418     mov al, byte [bp-012h]                    ; 8a 46 ee
     4430    mov al, byte [bp-010h]                    ; 8a 46 f0
    44194431    mov dx, strict word 00004h                ; ba 04 00
    44204432    out DX, AL                                ; ee
    4421     mov ax, word [bp-012h]                    ; 8b 46 ee
     4433    mov ax, word [bp-010h]                    ; 8b 46 f0
    44224434    shr ax, 008h                              ; c1 e8 08
    44234435    out DX, AL                                ; ee
     
    44404452    mov dx, strict word 0000ah                ; ba 0a 00
    44414453    out DX, AL                                ; ee
    4442     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4443     call 0300bh                               ; e8 70 fb
     4454    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     4455    mov ax, bx                                ; 89 d8
     4456    call 03028h                               ; e8 6e fb
    44444457    mov AL, strict byte 0e6h                  ; b0 e6
    44454458    mov dx, 003f5h                            ; ba f5 03
    44464459    out DX, AL                                ; ee
    4447     movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    4448     sal dx, 002h                              ; c1 e2 02
    4449     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4460    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4461    sal ax, 002h                              ; c1 e0 02
     4462    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    44504463    or ax, dx                                 ; 09 d0
    44514464    mov dx, 003f5h                            ; ba f5 03
    44524465    out DX, AL                                ; ee
    4453     mov al, byte [bp-00ch]                    ; 8a 46 f4
     4466    mov al, byte [bp-00ah]                    ; 8a 46 f6
    44544467    out DX, AL                                ; ee
    44554468    mov al, byte [bp-00eh]                    ; 8a 46 f2
    44564469    out DX, AL                                ; ee
    4457     mov al, byte [bp-00ah]                    ; 8a 46 f6
     4470    mov al, byte [bp-006h]                    ; 8a 46 fa
    44584471    out DX, AL                                ; ee
    44594472    mov AL, strict byte 002h                  ; b0 02
    44604473    out DX, AL                                ; ee
    4461     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     4474    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    44624475    movzx ax, ch                              ; 0f b6 c5
    44634476    add ax, dx                                ; 01 d0
     
    44694482    mov AL, strict byte 0ffh                  ; b0 ff
    44704483    out DX, AL                                ; ee
    4471     call 02f9ah                               ; e8 c2 fa
     4484    call 02f9ah                               ; e8 a3 fa
    44724485    test al, al                               ; 84 c0
    4473     jne short 034f0h                          ; 75 14
    4474     call 02fe0h                               ; e8 01 fb
     4486    jne short 03511h                          ; 75 16
     4487    mov ax, bx                                ; 89 d8
     4488    call 02fe0h                               ; e8 e0 fa
    44754489    mov ax, word [bp+016h]                    ; 8b 46 16
    44764490    xor ah, ah                                ; 30 e4
     
    44784492    mov word [bp+016h], ax                    ; 89 46 16
    44794493    mov ax, 00080h                            ; b8 80 00
    4480     jmp near 0344ch                           ; e9 5c ff
     4494    jmp near 03469h                           ; e9 58 ff
    44814495    mov dx, 003f4h                            ; ba f4 03
    44824496    in AL, DX                                 ; ec
     
    44854499    and AL, strict byte 0c0h                  ; 24 c0
    44864500    cmp AL, strict byte 0c0h                  ; 3c c0
    4487     je short 0350ah                           ; 74 0e
     4501    je short 0352bh                           ; 74 0e
    44884502    push 00275h                               ; 68 75 02
    44894503    push 002a8h                               ; 68 a8 02
    44904504    push strict byte 00007h                   ; 6a 07
    4491     call 019dah                               ; e8 d3 e4
     4505    call 019dah                               ; e8 b2 e4
    44924506    add sp, strict byte 00006h                ; 83 c4 06
    44934507    xor si, si                                ; 31 f6
    4494     jmp short 03513h                          ; eb 05
     4508    jmp short 03534h                          ; eb 05
    44954509    cmp si, strict byte 00007h                ; 83 fe 07
    4496     jnl short 0352bh                          ; 7d 18
     4510    jnl short 0354ch                          ; 7d 18
    44974511    mov dx, 003f5h                            ; ba f5 03
    44984512    in AL, DX                                 ; ec
     
    45034517    lea dx, [si+042h]                         ; 8d 54 42
    45044518    mov ax, strict word 00040h                ; b8 40 00
    4505     call 016c6h                               ; e8 9e e1
     4519    call 016c6h                               ; e8 7d e1
    45064520    inc si                                    ; 46
    4507     jmp short 0350eh                          ; eb e3
     4521    jmp short 0352fh                          ; eb e3
    45084522    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4509     je short 03542h                           ; 74 11
     4523    je short 0356ah                           ; 74 18
     4524    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4525    call 02fe0h                               ; e8 87 fa
    45104526    mov ax, word [bp+016h]                    ; 8b 46 16
    45114527    xor ah, ah                                ; 30 e4
     
    45134529    mov word [bp+016h], ax                    ; 89 46 16
    45144530    mov ax, strict word 00020h                ; b8 20 00
    4515     jmp near 0344ch                           ; e9 0a ff
     4531    jmp near 03469h                           ; e9 ff fe
    45164532    movzx ax, ch                              ; 0f b6 c5
    45174533    sal ax, 009h                              ; c1 e0 09
     
    45294545    rep movsw                                 ; f3 a5
    45304546    pop DS                                    ; 1f
    4531     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    4532     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4533     call 02f4ch                               ; e8 e2 f9
     4547    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     4548    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4549    call 02f4ch                               ; e8 ba f9
    45344550    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4535     jmp near 039ebh                           ; e9 7a 04
    4536     cmp byte [bp-006h], 003h                  ; 80 7e fa 03
    4537     jne near 0368ch                           ; 0f 85 13 01
     4551    jmp near 03a1bh                           ; e9 82 04
     4552    cmp byte [bp-008h], 003h                  ; 80 7e f8 03
     4553    jne near 036b6h                           ; 0f 85 15 01
    45384554    mov ax, word [bp+006h]                    ; 8b 46 06
    45394555    shr ax, 00ch                              ; c1 e8 0c
     
    45434559    mov bx, word [bp+010h]                    ; 8b 5e 10
    45444560    add bx, dx                                ; 01 d3
    4545     mov word [bp-012h], bx                    ; 89 5e ee
     4561    mov word [bp-010h], bx                    ; 89 5e f0
    45464562    cmp dx, bx                                ; 39 da
    4547     jbe short 03595h                          ; 76 02
     4563    jbe short 035bdh                          ; 76 02
    45484564    db  0feh, 0c1h
    45494565    ; inc cl                                    ; fe c1
     
    45514567    sal bx, 009h                              ; c1 e3 09
    45524568    dec bx                                    ; 4b
    4553     mov ax, word [bp-012h]                    ; 8b 46 ee
     4569    mov ax, word [bp-010h]                    ; 8b 46 f0
    45544570    add ax, bx                                ; 01 d8
    4555     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4556     jc near 0343eh                            ; 0f 82 96 fe
     4571    cmp ax, word [bp-010h]                    ; 3b 46 f0
     4572    jc near 0345bh                            ; 0f 82 8b fe
    45574573    mov AL, strict byte 006h                  ; b0 06
    45584574    mov dx, strict word 0000ah                ; ba 0a 00
     
    45614577    mov dx, strict word 0000ch                ; ba 0c 00
    45624578    out DX, AL                                ; ee
    4563     mov al, byte [bp-012h]                    ; 8a 46 ee
     4579    mov al, byte [bp-010h]                    ; 8a 46 f0
    45644580    mov dx, strict word 00004h                ; ba 04 00
    45654581    out DX, AL                                ; ee
    4566     mov ax, word [bp-012h]                    ; 8b 46 ee
     4582    mov ax, word [bp-010h]                    ; 8b 46 f0
    45674583    shr ax, 008h                              ; c1 e8 08
    45684584    out DX, AL                                ; ee
     
    45854601    mov dx, strict word 0000ah                ; ba 0a 00
    45864602    out DX, AL                                ; ee
    4587     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4588     call 0300bh                               ; e8 1e fa
     4603    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     4604    mov ax, bx                                ; 89 d8
     4605    call 03028h                               ; e8 11 fa
    45894606    mov AL, strict byte 0c5h                  ; b0 c5
    45904607    mov dx, 003f5h                            ; ba f5 03
     
    45924609    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
    45934610    sal dx, 002h                              ; c1 e2 02
    4594     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4611    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    45954612    or ax, dx                                 ; 09 d0
    45964613    mov dx, 003f5h                            ; ba f5 03
    45974614    out DX, AL                                ; ee
    4598     mov al, byte [bp-00ch]                    ; 8a 46 f4
     4615    mov al, byte [bp-00ah]                    ; 8a 46 f6
    45994616    out DX, AL                                ; ee
    46004617    mov al, byte [bp-00eh]                    ; 8a 46 f2
    46014618    out DX, AL                                ; ee
    4602     mov al, byte [bp-00ah]                    ; 8a 46 f6
     4619    mov al, byte [bp-006h]                    ; 8a 46 fa
    46034620    out DX, AL                                ; ee
    46044621    mov AL, strict byte 002h                  ; b0 02
    46054622    out DX, AL                                ; ee
    4606     movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     4623    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
    46074624    movzx ax, ch                              ; 0f b6 c5
    46084625    add ax, dx                                ; 01 d0
     
    46144631    mov AL, strict byte 0ffh                  ; b0 ff
    46154632    out DX, AL                                ; ee
    4616     call 02f9ah                               ; e8 70 f9
     4633    call 02f9ah                               ; e8 46 f9
    46174634    test al, al                               ; 84 c0
    4618     je near 034dch                            ; 0f 84 ac fe
     4635    je near 034fbh                            ; 0f 84 a1 fe
    46194636    mov dx, 003f4h                            ; ba f4 03
    46204637    in AL, DX                                 ; ec
     
    46234640    and AL, strict byte 0c0h                  ; 24 c0
    46244641    cmp AL, strict byte 0c0h                  ; 3c c0
    4625     je short 0364ah                           ; 74 0e
     4642    je short 03674h                           ; 74 0e
    46264643    push 00275h                               ; 68 75 02
    46274644    push 002a8h                               ; 68 a8 02
    46284645    push strict byte 00007h                   ; 6a 07
    4629     call 019dah                               ; e8 93 e3
     4646    call 019dah                               ; e8 69 e3
    46304647    add sp, strict byte 00006h                ; 83 c4 06
    46314648    xor si, si                                ; 31 f6
    4632     jmp short 03653h                          ; eb 05
     4649    jmp short 0367dh                          ; eb 05
    46334650    cmp si, strict byte 00007h                ; 83 fe 07
    4634     jnl short 0366bh                          ; 7d 18
     4651    jnl short 03695h                          ; 7d 18
    46354652    mov dx, 003f5h                            ; ba f5 03
    46364653    in AL, DX                                 ; ec
     
    46414658    lea dx, [si+042h]                         ; 8d 54 42
    46424659    mov ax, strict word 00040h                ; b8 40 00
    4643     call 016c6h                               ; e8 5e e0
     4660    call 016c6h                               ; e8 34 e0
    46444661    inc si                                    ; 46
    4645     jmp short 0364eh                          ; eb e3
     4662    jmp short 03678h                          ; eb e3
    46464663    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4647     je near 0355fh                            ; 0f 84 ec fe
     4664    je near 03587h                            ; 0f 84 ea fe
    46484665    test byte [bp-019h], 002h                 ; f6 46 e7 02
    4649     je short 03685h                           ; 74 0c
     4666    je short 036afh                           ; 74 0c
    46504667    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    46514668    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4652     jmp near 0335eh                           ; e9 d9 fc
     4669    jmp near 0337bh                           ; e9 cc fc
    46534670    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4654     jmp short 0367eh                          ; eb f2
    4655     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    4656     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4657     call 02f4ch                               ; e8 b5 f8
     4671    jmp short 036a8h                          ; eb f2
     4672    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
     4673    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4674    call 02f4ch                               ; e8 8b f8
    46584675    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    46594676    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4660     jmp near 0335eh                           ; e9 bc fc
     4677    jmp near 0337bh                           ; e9 af fc
    46614678    mov ch, byte [bp+016h]                    ; 8a 6e 16
    46624679    mov ax, word [bp+014h]                    ; 8b 46 14
    46634680    shr ax, 008h                              ; c1 e8 08
    4664     mov byte [bp-00ch], al                    ; 88 46 f4
     4681    mov byte [bp-00ah], al                    ; 88 46 f6
    46654682    mov dx, word [bp+012h]                    ; 8b 56 12
    46664683    shr dx, 008h                              ; c1 ea 08
    46674684    mov byte [bp-00eh], dl                    ; 88 56 f2
    46684685    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    4669     mov byte [bp-008h], bl                    ; 88 5e f8
     4686    mov byte [bp-00ch], bl                    ; 88 5e f4
    46704687    cmp bl, 001h                              ; 80 fb 01
    4671     jnbe short 036d4h                         ; 77 12
     4688    jnbe short 036feh                         ; 77 12
    46724689    cmp dl, 001h                              ; 80 fa 01
    4673     jnbe short 036d4h                         ; 77 0d
     4690    jnbe short 036feh                         ; 77 0d
    46744691    cmp AL, strict byte 04fh                  ; 3c 4f
    4675     jnbe short 036d4h                         ; 77 09
     4692    jnbe short 036feh                         ; 77 09
    46764693    test ch, ch                               ; 84 ed
    4677     je short 036d4h                           ; 74 05
     4694    je short 036feh                           ; 74 05
    46784695    cmp ch, 012h                              ; 80 fd 12
    4679     jbe short 036e9h                          ; 76 15
     4696    jbe short 03713h                          ; 76 15
    46804697    mov ax, word [bp+016h]                    ; 8b 46 16
    46814698    xor ah, ah                                ; 30 e4
     
    46834700    mov word [bp+016h], ax                    ; 89 46 16
    46844701    mov ax, strict word 00001h                ; b8 01 00
    4685     call 02f34h                               ; e8 4f f8
     4702    call 02f34h                               ; e8 25 f8
    46864703    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4687     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4688     call 03247h                               ; e8 57 fb
     4704    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4705    call 03264h                               ; e8 4a fb
    46894706    test ax, ax                               ; 85 c0
    4690     je near 0332ch                            ; 0f 84 36 fc
    4691     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     4707    je near 03349h                            ; 0f 84 29 fc
     4708    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    46924709    mov ax, dx                                ; 89 d0
    4693     call 0308ch                               ; e8 8d f9
     4710    call 030a9h                               ; e8 80 f9
    46944711    test ax, ax                               ; 85 c0
    4695     jne short 0370eh                          ; 75 0b
     4712    jne short 03738h                          ; 75 0b
    46964713    mov ax, dx                                ; 89 d0
    4697     call 03157h                               ; e8 4f fa
     4714    call 03174h                               ; e8 42 fa
    46984715    test ax, ax                               ; 85 c0
    4699     je near 033f9h                            ; 0f 84 eb fc
     4716    je near 03416h                            ; 0f 84 de fc
    47004717    mov ax, word [bp+006h]                    ; 8b 46 06
    47014718    shr ax, 00ch                              ; c1 e8 0c
     
    47054722    mov bx, word [bp+010h]                    ; 8b 5e 10
    47064723    add bx, dx                                ; 01 d3
    4707     mov word [bp-012h], bx                    ; 89 5e ee
     4724    mov word [bp-010h], bx                    ; 89 5e f0
    47084725    cmp dx, bx                                ; 39 da
    4709     jbe short 0372ah                          ; 76 02
     4726    jbe short 03754h                          ; 76 02
    47104727    db  0feh, 0c1h
    47114728    ; inc cl                                    ; fe c1
     
    47134730    sal bx, 002h                              ; c1 e3 02
    47144731    dec bx                                    ; 4b
    4715     mov ax, word [bp-012h]                    ; 8b 46 ee
     4732    mov ax, word [bp-010h]                    ; 8b 46 f0
    47164733    add ax, bx                                ; 01 d8
    4717     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4718     jc near 0343eh                            ; 0f 82 01 fd
     4734    cmp ax, word [bp-010h]                    ; 3b 46 f0
     4735    jc near 0345bh                            ; 0f 82 f4 fc
    47194736    mov AL, strict byte 006h                  ; b0 06
    47204737    mov dx, strict word 0000ah                ; ba 0a 00
     
    47234740    mov dx, strict word 0000ch                ; ba 0c 00
    47244741    out DX, AL                                ; ee
    4725     mov al, byte [bp-012h]                    ; 8a 46 ee
     4742    mov al, byte [bp-010h]                    ; 8a 46 f0
    47264743    mov dx, strict word 00004h                ; ba 04 00
    47274744    out DX, AL                                ; ee
    4728     mov ax, word [bp-012h]                    ; 8b 46 ee
     4745    mov ax, word [bp-010h]                    ; 8b 46 f0
    47294746    shr ax, 008h                              ; c1 e8 08
    47304747    out DX, AL                                ; ee
     
    47474764    mov dx, strict word 0000ah                ; ba 0a 00
    47484765    out DX, AL                                ; ee
    4749     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4750     call 0300bh                               ; e8 89 f8
     4766    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     4767    mov ax, si                                ; 89 f0
     4768    call 03028h                               ; e8 7a f8
    47514769    mov AL, strict byte 00fh                  ; b0 0f
    47524770    mov dx, 003f5h                            ; ba f5 03
    47534771    out DX, AL                                ; ee
    4754     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    4755     sal bx, 002h                              ; c1 e3 02
    4756     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4772    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
     4773    sal ax, 002h                              ; c1 e0 02
     4774    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    47574775    or bx, ax                                 ; 09 c3
    47584776    mov al, bl                                ; 88 d8
    47594777    out DX, AL                                ; ee
    4760     mov al, byte [bp-00ch]                    ; 8a 46 f4
     4778    mov al, byte [bp-00ah]                    ; 8a 46 f6
    47614779    out DX, AL                                ; ee
    47624780    mov AL, strict byte 04dh                  ; b0 4d
     
    47724790    mov AL, strict byte 0f6h                  ; b0 f6
    47734791    out DX, AL                                ; ee
    4774     call 02f9ah                               ; e8 e9 f7
     4792    call 02f9ah                               ; e8 bd f7
    47754793    test al, al                               ; 84 c0
    4776     jne short 037bbh                          ; 75 06
    4777     call 02fe0h                               ; e8 28 f8
    4778     jmp near 0332ch                           ; e9 71 fb
     4794    jne short 037e9h                          ; 75 08
     4795    mov ax, si                                ; 89 f0
     4796    call 02fe0h                               ; e8 fa f7
     4797    jmp near 03349h                           ; e9 60 fb
    47794798    mov dx, 003f4h                            ; ba f4 03
    47804799    in AL, DX                                 ; ec
     
    47834802    and AL, strict byte 0c0h                  ; 24 c0
    47844803    cmp AL, strict byte 0c0h                  ; 3c c0
    4785     je short 037d5h                           ; 74 0e
     4804    je short 03803h                           ; 74 0e
    47864805    push 00275h                               ; 68 75 02
    47874806    push 002a8h                               ; 68 a8 02
    47884807    push strict byte 00007h                   ; 6a 07
    4789     call 019dah                               ; e8 08 e2
     4808    call 019dah                               ; e8 da e1
    47904809    add sp, strict byte 00006h                ; 83 c4 06
    47914810    xor si, si                                ; 31 f6
    4792     jmp short 037deh                          ; eb 05
     4811    jmp short 0380ch                          ; eb 05
    47934812    cmp si, strict byte 00007h                ; 83 fe 07
    4794     jnl short 037f6h                          ; 7d 18
     4813    jnl short 03824h                          ; 7d 18
    47954814    mov dx, 003f5h                            ; ba f5 03
    47964815    in AL, DX                                 ; ec
     
    48014820    lea dx, [si+042h]                         ; 8d 54 42
    48024821    mov ax, strict word 00040h                ; b8 40 00
    4803     call 016c6h                               ; e8 d3 de
     4822    call 016c6h                               ; e8 a5 de
    48044823    inc si                                    ; 46
    4805     jmp short 037d9h                          ; eb e3
     4824    jmp short 03807h                          ; eb e3
    48064825    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
    4807     je short 03812h                           ; 74 16
     4826    je short 03840h                           ; 74 16
    48084827    test byte [bp-019h], 002h                 ; f6 46 e7 02
    4809     jne near 03679h                           ; 0f 85 75 fe
     4828    jne near 036a3h                           ; 0f 85 71 fe
    48104829    push 00275h                               ; 68 75 02
    48114830    push 002bch                               ; 68 bc 02
    48124831    push strict byte 00007h                   ; 6a 07
    4813     call 019dah                               ; e8 cb e1
     4832    call 019dah                               ; e8 9d e1
    48144833    add sp, strict byte 00006h                ; 83 c4 06
    48154834    xor al, al                                ; 30 c0
    48164835    mov byte [bp+017h], al                    ; 88 46 17
    48174836    xor ah, ah                                ; 30 e4
    4818     call 02f34h                               ; e8 18 f7
    4819     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     4837    call 02f34h                               ; e8 ea f6
     4838    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    48204839    xor dx, dx                                ; 31 d2
    4821     call 02f4ch                               ; e8 27 f7
    4822     jmp near 039ebh                           ; e9 c3 01
    4823     mov byte [bp-008h], al                    ; 88 46 f8
     4840    call 02f4ch                               ; e8 f9 f6
     4841    jmp near 03a1bh                           ; e9 c5 01
     4842    mov byte [bp-00ch], al                    ; 88 46 f4
    48244843    cmp AL, strict byte 001h                  ; 3c 01
    4825     jbe short 0384ch                          ; 76 1d
     4844    jbe short 0387ah                          ; 76 1d
    48264845    xor ax, ax                                ; 31 c0
    48274846    mov word [bp+016h], ax                    ; 89 46 16
     
    48334852    movzx ax, ch                              ; 0f b6 c5
    48344853    mov word [bp+012h], ax                    ; 89 46 12
    4835     jmp near 03969h                           ; e9 1d 01
     4854    jmp near 03999h                           ; e9 1f 01
    48364855    mov ax, strict word 00010h                ; b8 10 00
    4837     call 01714h                               ; e8 c2 de
     4856    call 01714h                               ; e8 94 de
    48384857    mov cl, al                                ; 88 c1
    48394858    xor ch, ch                                ; 30 ed
    48404859    test AL, strict byte 0f0h                 ; a8 f0
    4841     je short 0385ch                           ; 74 02
     4860    je short 0388ah                           ; 74 02
    48424861    mov CH, strict byte 001h                  ; b5 01
    48434862    test cl, 00fh                             ; f6 c1 0f
    4844     je short 03863h                           ; 74 02
     4863    je short 03891h                           ; 74 02
    48454864    db  0feh, 0c5h
    48464865    ; inc ch                                    ; fe c5
    4847     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4848     jne short 0386eh                          ; 75 05
     4866    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     4867    jne short 0389ch                          ; 75 05
    48494868    shr cl, 004h                              ; c0 e9 04
    4850     jmp short 03871h                          ; eb 03
     4869    jmp short 0389fh                          ; eb 03
    48514870    and cl, 00fh                              ; 80 e1 0f
    48524871    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    48544873    mov word [bp+010h], ax                    ; 89 46 10
    48554874    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    4856     mov ax, word [bp+012h]                    ; 8b 46 12
    4857     xor al, al                                ; 30 c0
    4858     movzx dx, ch                              ; 0f b6 d5
    4859     or ax, dx                                 ; 09 d0
    4860     mov word [bp+012h], ax                    ; 89 46 12
    4861     xor ah, ah                                ; 30 e4
     4875    mov dx, word [bp+012h]                    ; 8b 56 12
     4876    xor dl, dl                                ; 30 d2
     4877    movzx ax, ch                              ; 0f b6 c5
     4878    or dx, ax                                 ; 09 c2
     4879    mov word [bp+012h], dx                    ; 89 56 12
     4880    mov ax, dx                                ; 89 d0
     4881    xor ah, dh                                ; 30 f4
    48624882    or ah, 001h                               ; 80 cc 01
    48634883    mov word [bp+012h], ax                    ; 89 46 12
    48644884    cmp cl, 003h                              ; 80 f9 03
    4865     jc short 038afh                           ; 72 15
    4866     jbe short 038d6h                          ; 76 3a
     4885    jc short 038dfh                           ; 72 15
     4886    jbe short 03906h                          ; 76 3a
    48674887    cmp cl, 005h                              ; 80 f9 05
    4868     jc short 038ddh                           ; 72 3c
    4869     jbe short 038e4h                          ; 76 41
     4888    jc short 0390dh                           ; 72 3c
     4889    jbe short 03914h                          ; 76 41
    48704890    cmp cl, 00fh                              ; 80 f9 0f
    4871     je short 038f2h                           ; 74 4a
     4891    je short 03922h                           ; 74 4a
    48724892    cmp cl, 00eh                              ; 80 f9 0e
    4873     je short 038ebh                           ; 74 3e
    4874     jmp short 038f9h                          ; eb 4a
     4893    je short 0391bh                           ; 74 3e
     4894    jmp short 03929h                          ; eb 4a
    48754895    cmp cl, 002h                              ; 80 f9 02
    4876     je short 038cfh                           ; 74 1b
     4896    je short 038ffh                           ; 74 1b
    48774897    cmp cl, 001h                              ; 80 f9 01
    4878     je short 038c8h                           ; 74 0f
     4898    je short 038f8h                           ; 74 0f
    48794899    test cl, cl                               ; 84 c9
    4880     jne short 038f9h                          ; 75 3c
     4900    jne short 03929h                          ; 75 3c
    48814901    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    48824902    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4883     jmp short 03907h                          ; eb 3f
     4903    jmp short 03937h                          ; eb 3f
    48844904    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    4885     jmp short 03907h                          ; eb 38
     4905    jmp short 03937h                          ; eb 38
    48864906    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    4887     jmp short 03907h                          ; eb 31
     4907    jmp short 03937h                          ; eb 31
    48884908    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    4889     jmp short 03907h                          ; eb 2a
     4909    jmp short 03937h                          ; eb 2a
    48904910    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    4891     jmp short 03907h                          ; eb 23
     4911    jmp short 03937h                          ; eb 23
    48924912    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    4893     jmp short 03907h                          ; eb 1c
     4913    jmp short 03937h                          ; eb 1c
    48944914    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    4895     jmp short 03907h                          ; eb 15
     4915    jmp short 03937h                          ; eb 15
    48964916    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    4897     jmp short 03907h                          ; eb 0e
     4917    jmp short 03937h                          ; eb 0e
    48984918    push 00275h                               ; 68 75 02
    48994919    push 002cdh                               ; 68 cd 02
    49004920    push strict byte 00007h                   ; 6a 07
    4901     call 019dah                               ; e8 d6 e0
     4921    call 019dah                               ; e8 a6 e0
    49024922    add sp, strict byte 00006h                ; 83 c4 06
    49034923    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    49044924    movzx ax, cl                              ; 0f b6 c1
    4905     call 03b62h                               ; e8 50 02
     4925    call 03b92h                               ; e8 50 02
    49064926    mov word [bp+008h], ax                    ; 89 46 08
    4907     jmp near 039ebh                           ; e9 d3 00
    4908     mov byte [bp-008h], al                    ; 88 46 f8
     4927    jmp near 03a1bh                           ; e9 d3 00
     4928    mov byte [bp-00ch], al                    ; 88 46 f4
    49094929    cmp AL, strict byte 001h                  ; 3c 01
    4910     jbe short 03924h                          ; 76 05
     4930    jbe short 03954h                          ; 76 05
    49114931    mov word [bp+016h], si                    ; 89 76 16
    4912     jmp short 03969h                          ; eb 45
     4932    jmp short 03999h                          ; eb 45
    49134933    mov ax, strict word 00010h                ; b8 10 00
    4914     call 01714h                               ; e8 ea dd
    4915     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4916     jne short 03937h                          ; 75 07
     4934    call 01714h                               ; e8 ba dd
     4935    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     4936    jne short 03967h                          ; 75 07
    49174937    mov cl, al                                ; 88 c1
    49184938    shr cl, 004h                              ; c0 e9 04
    4919     jmp short 0393ch                          ; eb 05
     4939    jmp short 0396ch                          ; eb 05
    49204940    mov cl, al                                ; 88 c1
    49214941    and cl, 00fh                              ; 80 e1 0f
     
    49244944    xor dh, dh                                ; 30 f6
    49254945    test cl, cl                               ; 84 c9
    4926     je short 03956h                           ; 74 0d
     4946    je short 03986h                           ; 74 0d
    49274947    cmp cl, 001h                              ; 80 f9 01
    4928     jbe short 03953h                          ; 76 05
     4948    jbe short 03983h                          ; 76 05
    49294949    or dh, 002h                               ; 80 ce 02
    4930     jmp short 03956h                          ; eb 03
     4950    jmp short 03986h                          ; eb 03
    49314951    or dh, 001h                               ; 80 ce 01
    49324952    mov word [bp+016h], dx                    ; 89 56 16
    4933     jmp near 0335eh                           ; e9 02 fa
     4953    jmp near 0337bh                           ; e9 ef f9
    49344954    cmp AL, strict byte 001h                  ; 3c 01
    4935     jbe short 0396fh                          ; 76 0f
     4955    jbe short 0399fh                          ; 76 0f
    49364956    mov word [bp+016h], si                    ; 89 76 16
    49374957    mov ax, strict word 00001h                ; b8 01 00
    4938     call 02f34h                               ; e8 cb f5
     4958    call 02f34h                               ; e8 9b f5
    49394959    mov word [bp+01ch], dx                    ; 89 56 1c
    4940     jmp near 0335eh                           ; e9 ef f9
     4960    jmp near 0337bh                           ; e9 dc f9
    49414961    mov ax, word [bp+016h]                    ; 8b 46 16
    49424962    xor ah, ah                                ; 30 e4
     
    49444964    mov word [bp+016h], ax                    ; 89 46 16
    49454965    mov ax, strict word 00006h                ; b8 06 00
    4946     jmp near 0330ah                           ; e9 8a f9
    4947     mov byte [bp-008h], al                    ; 88 46 f8
     4966    jmp near 03327h                           ; e9 77 f9
     4967    mov byte [bp-00ch], al                    ; 88 46 f4
    49484968    mov bl, cl                                ; 88 cb
    49494969    cmp AL, strict byte 001h                  ; 3c 01
    4950     jnbe short 03960h                         ; 77 d7
    4951     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    4952     call 03247h                               ; e8 b7 f8
     4970    jnbe short 03990h                         ; 77 d7
     4971    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     4972    call 03264h                               ; e8 a4 f8
    49534973    test ax, ax                               ; 85 c0
    4954     je near 0332ch                            ; 0f 84 96 f9
    4955     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     4974    je near 03349h                            ; 0f 84 83 f9
     4975    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    49564976    db  00fh, 095h, 0c0h
    49574977    ; setne al                                  ; 0f 95 c0
    49584978    movzx dx, al                              ; 0f b6 d0
    49594979    add dx, 00090h                            ; 81 c2 90 00
    4960     mov word [bp-012h], dx                    ; 89 56 ee
     4980    mov word [bp-010h], dx                    ; 89 56 f0
    49614981    mov ax, strict word 00040h                ; b8 40 00
    4962     call 016b8h                               ; e8 0b dd
     4982    call 016b8h                               ; e8 db dc
    49634983    and AL, strict byte 00fh                  ; 24 0f
    49644984    cmp bl, 002h                              ; 80 fb 02
    4965     jc short 039c3h                           ; 72 0f
    4966     jbe short 039cfh                          ; 76 19
     4985    jc short 039f3h                           ; 72 0f
     4986    jbe short 039ffh                          ; 76 19
    49674987    cmp bl, 004h                              ; 80 fb 04
    4968     je short 039cbh                           ; 74 10
     4988    je short 039fbh                           ; 74 10
    49694989    cmp bl, 003h                              ; 80 fb 03
    4970     je short 039d3h                           ; 74 13
    4971     jmp near 032fch                           ; e9 39 f9
     4990    je short 03a03h                           ; 74 13
     4991    jmp near 03319h                           ; e9 26 f9
    49724992    cmp bl, 001h                              ; 80 fb 01
    4973     je short 039cbh                           ; 74 03
    4974     jmp near 032fch                           ; e9 31 f9
     4993    je short 039fbh                           ; 74 03
     4994    jmp near 03319h                           ; e9 1e f9
    49754995    or AL, strict byte 090h                   ; 0c 90
    4976     jmp short 039d5h                          ; eb 06
     4996    jmp short 03a05h                          ; eb 06
    49774997    or AL, strict byte 070h                   ; 0c 70
    4978     jmp short 039d5h                          ; eb 02
     4998    jmp short 03a05h                          ; eb 02
    49794999    or AL, strict byte 010h                   ; 0c 10
    49805000    movzx bx, al                              ; 0f b6 d8
    4981     mov dx, word [bp-012h]                    ; 8b 56 ee
     5001    mov dx, word [bp-010h]                    ; 8b 56 f0
    49825002    mov ax, strict word 00040h                ; b8 40 00
    4983     call 016c6h                               ; e8 e5 dc
     5003    call 016c6h                               ; e8 b5 dc
    49845004    xor al, al                                ; 30 c0
    49855005    mov byte [bp+017h], al                    ; 88 46 17
    49865006    xor ah, ah                                ; 30 e4
    4987     call 02f34h                               ; e8 49 f5
     5007    call 02f34h                               ; e8 19 f5
    49885008    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4989     jmp near 0335eh                           ; e9 6c f9
    4990     mov byte [bp-008h], al                    ; 88 46 f8
     5009    jmp near 0337bh                           ; e9 59 f9
     5010    mov byte [bp-00ch], al                    ; 88 46 f4
    49915011    mov ch, ah                                ; 88 e5
    49925012    and ch, 03fh                              ; 80 e5 3f
     
    49945014    sar bx, 006h                              ; c1 fb 06
    49955015    sal bx, 008h                              ; c1 e3 08
    4996     add bx, word [bp-010h]                    ; 03 5e f0
    4997     mov byte [bp-00ch], bl                    ; 88 5e f4
     5016    add bx, word [bp-012h]                    ; 03 5e ee
     5017    mov byte [bp-00ah], bl                    ; 88 5e f6
    49985018    cmp AL, strict byte 001h                  ; 3c 01
    4999     jnbe near 03960h                          ; 0f 87 51 ff
    5000     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    5001     call 03247h                               ; e8 31 f8
     5019    jnbe near 03990h                          ; 0f 87 51 ff
     5020    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     5021    call 03264h                               ; e8 1e f8
    50025022    test ax, ax                               ; 85 c0
    5003     je near 0332ch                            ; 0f 84 10 f9
    5004     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     5023    je near 03349h                            ; 0f 84 fd f8
     5024    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    50055025    mov ax, dx                                ; 89 d0
    5006     call 0308ch                               ; e8 67 f6
     5026    call 030a9h                               ; e8 54 f6
    50075027    test ax, ax                               ; 85 c0
    5008     jne short 03a43h                          ; 75 1a
     5028    jne short 03a73h                          ; 75 1a
    50095029    mov ax, dx                                ; 89 d0
    5010     call 03157h                               ; e8 29 f7
     5030    call 03174h                               ; e8 16 f7
    50115031    test ax, ax                               ; 85 c0
    5012     jne short 03a43h                          ; 75 11
     5032    jne short 03a73h                          ; 75 11
    50135033    mov ax, word [bp+016h]                    ; 8b 46 16
    50145034    xor ah, ah                                ; 30 e4
     
    50165036    mov word [bp+016h], ax                    ; 89 46 16
    50175037    mov ax, strict word 0000ch                ; b8 0c 00
    5018     jmp near 0330ah                           ; e9 c7 f8
     5038    jmp near 03327h                           ; e9 b4 f8
    50195039    mov ax, strict word 00010h                ; b8 10 00
    5020     call 01714h                               ; e8 cb dc
    5021     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    5022     jne short 03a56h                          ; 75 07
     5040    call 01714h                               ; e8 9b dc
     5041    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
     5042    jne short 03a86h                          ; 75 07
    50235043    mov cl, al                                ; 88 c1
    50245044    shr cl, 004h                              ; c0 e9 04
    5025     jmp short 03a5bh                          ; eb 05
     5045    jmp short 03a8bh                          ; eb 05
    50265046    mov cl, al                                ; 88 c1
    50275047    and cl, 00fh                              ; 80 e1 0f
    5028     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
     5048    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    50295049    db  00fh, 095h, 0c0h
    50305050    ; setne al                                  ; 0f 95 c0
    50315051    movzx dx, al                              ; 0f b6 d0
    50325052    add dx, 00090h                            ; 81 c2 90 00
    5033     mov word [bp-012h], dx                    ; 89 56 ee
     5053    mov word [bp-010h], dx                    ; 89 56 f0
    50345054    mov ax, strict word 00040h                ; b8 40 00
    5035     call 016b8h                               ; e8 46 dc
     5055    call 016b8h                               ; e8 16 dc
    50365056    and AL, strict byte 00fh                  ; 24 0f
    50375057    cmp cl, 003h                              ; 80 f9 03
    5038     jc short 03a97h                           ; 72 1e
     5058    jc short 03ac7h                           ; 72 1e
    50395059    mov dl, al                                ; 88 c2
    50405060    or dl, 090h                               ; 80 ca 90
    50415061    cmp cl, 003h                              ; 80 f9 03
    5042     jbe short 03ad5h                          ; 76 52
     5062    jbe short 03b05h                          ; 76 52
    50435063    mov ah, al                                ; 88 c4
    50445064    or ah, 010h                               ; 80 cc 10
    50455065    cmp cl, 005h                              ; 80 f9 05
    5046     je near 03afah                            ; 0f 84 6b 00
     5066    je near 03b2ah                            ; 0f 84 6b 00
    50475067    cmp cl, 004h                              ; 80 f9 04
    5048     je short 03ae4h                           ; 74 50
    5049     jmp near 03b15h                           ; e9 7e 00
     5068    je short 03b14h                           ; 74 50
     5069    jmp near 03b45h                           ; e9 7e 00
    50505070    cmp cl, 002h                              ; 80 f9 02
    5051     je short 03ab7h                           ; 74 1b
     5071    je short 03ae7h                           ; 74 1b
    50525072    cmp cl, 001h                              ; 80 f9 01
    5053     jne near 03b15h                           ; 0f 85 72 00
    5054     cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
    5055     jne near 03b15h                           ; 0f 85 6a 00
     5073    jne near 03b45h                           ; 0f 85 72 00
     5074    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
     5075    jne near 03b45h                           ; 0f 85 6a 00
    50565076    cmp ch, 009h                              ; 80 fd 09
    5057     jne near 03b15h                           ; 0f 85 63 00
     5077    jne near 03b45h                           ; 0f 85 63 00
    50585078    or AL, strict byte 090h                   ; 0c 90
    5059     jmp near 03b15h                           ; e9 5e 00
    5060     cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
    5061     jne short 03ac6h                          ; 75 09
     5079    jmp near 03b45h                           ; e9 5e 00
     5080    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
     5081    jne short 03af6h                          ; 75 09
    50625082    cmp ch, 009h                              ; 80 fd 09
    5063     jne short 03ac6h                          ; 75 04
     5083    jne short 03af6h                          ; 75 04
    50645084    or AL, strict byte 070h                   ; 0c 70
    5065     jmp short 03b15h                          ; eb 4f
    5066     cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    5067     jne short 03b15h                          ; 75 49
     5085    jmp short 03b45h                          ; eb 4f
     5086    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
     5087    jne short 03b45h                          ; 75 49
    50685088    cmp ch, 00fh                              ; 80 fd 0f
    5069     jne short 03b15h                          ; 75 44
     5089    jne short 03b45h                          ; 75 44
    50705090    or AL, strict byte 010h                   ; 0c 10
    5071     jmp short 03b15h                          ; eb 40
    5072     cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    5073     jne short 03b15h                          ; 75 3a
     5091    jmp short 03b45h                          ; eb 40
     5092    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
     5093    jne short 03b45h                          ; 75 3a
    50745094    cmp ch, 009h                              ; 80 fd 09
    5075     jne short 03b15h                          ; 75 35
     5095    jne short 03b45h                          ; 75 35
    50765096    mov al, dl                                ; 88 d0
    5077     jmp short 03b15h                          ; eb 31
    5078     cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    5079     jne short 03b15h                          ; 75 2b
     5097    jmp short 03b45h                          ; eb 31
     5098    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
     5099    jne short 03b45h                          ; 75 2b
    50805100    cmp ch, 009h                              ; 80 fd 09
    5081     jne short 03af1h                          ; 75 02
    5082     jmp short 03ae0h                          ; eb ef
     5101    jne short 03b21h                          ; 75 02
     5102    jmp short 03b10h                          ; eb ef
    50835103    cmp ch, 012h                              ; 80 fd 12
    5084     jne short 03b15h                          ; 75 1f
     5104    jne short 03b45h                          ; 75 1f
    50855105    mov al, ah                                ; 88 e0
    5086     jmp short 03b15h                          ; eb 1b
    5087     cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
    5088     jne short 03b15h                          ; 75 15
     5106    jmp short 03b45h                          ; eb 1b
     5107    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
     5108    jne short 03b45h                          ; 75 15
    50895109    cmp ch, 009h                              ; 80 fd 09
    5090     jne short 03b07h                          ; 75 02
    5091     jmp short 03ae0h                          ; eb d9
     5110    jne short 03b37h                          ; 75 02
     5111    jmp short 03b10h                          ; eb d9
    50925112    cmp ch, 012h                              ; 80 fd 12
    5093     jne short 03b0eh                          ; 75 02
    5094     jmp short 03af6h                          ; eb e8
     5113    jne short 03b3eh                          ; 75 02
     5114    jmp short 03b26h                          ; eb e8
    50955115    cmp ch, 024h                              ; 80 fd 24
    5096     jne short 03b15h                          ; 75 02
     5116    jne short 03b45h                          ; 75 02
    50975117    or AL, strict byte 0d0h                   ; 0c d0
    50985118    movzx dx, al                              ; 0f b6 d0
    50995119    sar dx, 004h                              ; c1 fa 04
    51005120    test dl, 001h                             ; f6 c2 01
    5101     je near 03a32h                            ; 0f 84 10 ff
     5121    je near 03a62h                            ; 0f 84 10 ff
    51025122    movzx bx, al                              ; 0f b6 d8
    5103     mov dx, word [bp-012h]                    ; 8b 56 ee
     5123    mov dx, word [bp-010h]                    ; 8b 56 f0
    51045124    mov ax, strict word 00040h                ; b8 40 00
    5105     call 016c6h                               ; e8 98 db
     5125    call 016c6h                               ; e8 68 db
    51065126    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    51075127    movzx ax, cl                              ; 0f b6 c1
    5108     call 03b62h                               ; e8 29 00
     5128    call 03b92h                               ; e8 29 00
    51095129    mov word [bp+008h], ax                    ; 89 46 08
    5110     jmp near 039e1h                           ; e9 a2 fe
     5130    jmp near 03a11h                           ; e9 a2 fe
    51115131    mov bx, 00da0h                            ; bb a0 0d
    51125132    mov cx, ds                                ; 8c d9
    51135133    mov ax, strict word 00004h                ; b8 04 00
    5114     call 01999h                               ; e8 4f de
     5134    call 01999h                               ; e8 1f de
    51155135    mov ax, word [bp+016h]                    ; 8b 46 16
    51165136    shr ax, 008h                              ; c1 e8 08
     
    51195139    push 002e2h                               ; 68 e2 02
    51205140    push strict byte 00004h                   ; 6a 04
    5121     call 019dah                               ; e8 7e de
     5141    call 019dah                               ; e8 4e de
    51225142    add sp, strict byte 00008h                ; 83 c4 08
    5123     jmp near 032fch                           ; e9 9a f7
    5124 get_floppy_dpt_:                             ; 0xf3b62 LB 0x2f
     5143    jmp near 03319h                           ; e9 87 f7
     5144get_floppy_dpt_:                             ; 0xf3b92 LB 0x2f
    51255145    push bx                                   ; 53
    51265146    push dx                                   ; 52
     
    51295149    mov dl, al                                ; 88 c2
    51305150    xor ax, ax                                ; 31 c0
    5131     jmp short 03b73h                          ; eb 06
     5151    jmp short 03ba3h                          ; eb 06
    51325152    inc ax                                    ; 40
    51335153    cmp ax, strict word 00007h                ; 3d 07 00
    5134     jnc short 03b8ah                          ; 73 17
     5154    jnc short 03bbah                          ; 73 17
    51355155    mov bx, ax                                ; 89 c3
    51365156    add bx, ax                                ; 01 c3
    51375157    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5138     jne short 03b6dh                          ; 75 f0
     5158    jne short 03b9dh                          ; 75 f0
    51395159    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
    51405160    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    51415161    add ax, strict word 00000h                ; 05 00 00
    5142     jmp short 03b8dh                          ; eb 03
     5162    jmp short 03bbdh                          ; eb 03
    51435163    mov ax, strict word 00041h                ; b8 41 00
    51445164    pop bp                                    ; 5d
     
    51465166    pop bx                                    ; 5b
    51475167    retn                                      ; c3
    5148 dummy_soft_reset_:                           ; 0xf3b91 LB 0x7
     5168dummy_soft_reset_:                           ; 0xf3bc1 LB 0x7
    51495169    push bp                                   ; 55
    51505170    mov bp, sp                                ; 89 e5
     
    51525172    pop bp                                    ; 5d
    51535173    retn                                      ; c3
    5154 _cdemu_init:                                 ; 0xf3b98 LB 0x18
     5174_cdemu_init:                                 ; 0xf3bc8 LB 0x18
    51555175    push bp                                   ; 55
    51565176    mov bp, sp                                ; 89 e5
    51575177    mov dx, strict word 0000eh                ; ba 0e 00
    51585178    mov ax, strict word 00040h                ; b8 40 00
    5159     call 016d4h                               ; e8 30 db
     5179    call 016d4h                               ; e8 00 db
    51605180    xor bx, bx                                ; 31 db
    51615181    mov dx, 00366h                            ; ba 66 03
    5162     call 016c6h                               ; e8 1a db
     5182    call 016c6h                               ; e8 ea da
    51635183    mov sp, bp                                ; 89 ec
    51645184    pop bp                                    ; 5d
    51655185    retn                                      ; c3
    5166 _cdemu_isactive:                             ; 0xf3bb0 LB 0x16
     5186_cdemu_isactive:                             ; 0xf3be0 LB 0x16
    51675187    push bp                                   ; 55
    51685188    mov bp, sp                                ; 89 e5
    51695189    mov dx, strict word 0000eh                ; ba 0e 00
    51705190    mov ax, strict word 00040h                ; b8 40 00
    5171     call 016d4h                               ; e8 18 db
     5191    call 016d4h                               ; e8 e8 da
    51725192    mov dx, 00366h                            ; ba 66 03
    5173     call 016b8h                               ; e8 f6 da
     5193    call 016b8h                               ; e8 c6 da
    51745194    mov sp, bp                                ; 89 ec
    51755195    pop bp                                    ; 5d
    51765196    retn                                      ; c3
    5177 _cdemu_emulated_drive:                       ; 0xf3bc6 LB 0x16
     5197_cdemu_emulated_drive:                       ; 0xf3bf6 LB 0x16
    51785198    push bp                                   ; 55
    51795199    mov bp, sp                                ; 89 e5
    51805200    mov dx, strict word 0000eh                ; ba 0e 00
    51815201    mov ax, strict word 00040h                ; b8 40 00
    5182     call 016d4h                               ; e8 02 db
     5202    call 016d4h                               ; e8 d2 da
    51835203    mov dx, 00368h                            ; ba 68 03
    5184     call 016b8h                               ; e8 e0 da
     5204    call 016b8h                               ; e8 b0 da
    51855205    mov sp, bp                                ; 89 ec
    51865206    pop bp                                    ; 5d
    51875207    retn                                      ; c3
    5188 _int13_eltorito:                             ; 0xf3bdc LB 0x189
     5208_int13_eltorito:                             ; 0xf3c0c LB 0x189
    51895209    push bp                                   ; 55
    51905210    mov bp, sp                                ; 89 e5
     
    51935213    mov dx, strict word 0000eh                ; ba 0e 00
    51945214    mov ax, strict word 00040h                ; b8 40 00
    5195     call 016d4h                               ; e8 ea da
     5215    call 016d4h                               ; e8 ba da
    51965216    mov si, 00366h                            ; be 66 03
    51975217    mov di, ax                                ; 89 c7
     
    51995219    shr ax, 008h                              ; c1 e8 08
    52005220    cmp ax, strict word 0004bh                ; 3d 4b 00
    5201     jc short 03c04h                           ; 72 0a
    5202     jbe short 03c2ah                          ; 76 2e
     5221    jc short 03c34h                           ; 72 0a
     5222    jbe short 03c5ah                          ; 76 2e
    52035223    cmp ax, strict word 0004dh                ; 3d 4d 00
    5204     jbe short 03c0bh                          ; 76 0a
    5205     jmp near 03d29h                           ; e9 25 01
     5224    jbe short 03c3bh                          ; 76 0a
     5225    jmp near 03d59h                           ; e9 25 01
    52065226    cmp ax, strict word 0004ah                ; 3d 4a 00
    5207     jne near 03d29h                           ; 0f 85 1e 01
     5227    jne near 03d59h                           ; 0f 85 1e 01
    52085228    mov bx, 00da0h                            ; bb a0 0d
    52095229    mov cx, ds                                ; 8c d9
    52105230    mov ax, strict word 00004h                ; b8 04 00
    5211     call 01999h                               ; e8 83 dd
     5231    call 01999h                               ; e8 53 dd
    52125232    push word [bp+016h]                       ; ff 76 16
    52135233    push 002fch                               ; 68 fc 02
    52145234    push 0030bh                               ; 68 0b 03
    52155235    push strict byte 00004h                   ; 6a 04
    5216     call 019dah                               ; e8 b6 dd
     5236    call 019dah                               ; e8 86 dd
    52175237    add sp, strict byte 00008h                ; 83 c4 08
    5218     jmp near 03d44h                           ; e9 1a 01
     5238    jmp near 03d74h                           ; e9 1a 01
    52195239    mov dx, word [bp+00ah]                    ; 8b 56 0a
    52205240    mov ax, word [bp+004h]                    ; 8b 46 04
    52215241    mov bx, strict word 00013h                ; bb 13 00
    5222     call 016c6h                               ; e8 90 da
     5242    call 016c6h                               ; e8 60 da
    52235243    mov es, di                                ; 8e c7
    52245244    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    52265246    inc dx                                    ; 42
    52275247    mov ax, word [bp+004h]                    ; 8b 46 04
    5228     call 016c6h                               ; e8 7f da
     5248    call 016c6h                               ; e8 4f da
    52295249    mov es, di                                ; 8e c7
    52305250    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    52335253    inc dx                                    ; 42
    52345254    mov ax, word [bp+004h]                    ; 8b 46 04
    5235     call 016c6h                               ; e8 6d da
     5255    call 016c6h                               ; e8 3d da
    52365256    mov es, di                                ; 8e c7
    52375257    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    52395259    add dx, strict byte 00003h                ; 83 c2 03
    52405260    mov ax, word [bp+004h]                    ; 8b 46 04
    5241     call 016c6h                               ; e8 5a da
     5261    call 016c6h                               ; e8 2a da
    52425262    mov es, di                                ; 8e c7
    52435263    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    52465266    add dx, strict byte 00004h                ; 83 c2 04
    52475267    mov ax, word [bp+004h]                    ; 8b 46 04
    5248     call 01702h                               ; e8 80 da
     5268    call 01702h                               ; e8 50 da
    52495269    mov es, di                                ; 8e c7
    52505270    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    52525272    add dx, strict byte 00008h                ; 83 c2 08
    52535273    mov ax, word [bp+004h]                    ; 8b 46 04
    5254     call 016e2h                               ; e8 4e da
     5274    call 016e2h                               ; e8 1e da
    52555275    mov es, di                                ; 8e c7
    52565276    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    52585278    add dx, strict byte 0000ah                ; 83 c2 0a
    52595279    mov ax, word [bp+004h]                    ; 8b 46 04
    5260     call 016e2h                               ; e8 3c da
     5280    call 016e2h                               ; e8 0c da
    52615281    mov es, di                                ; 8e c7
    52625282    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    52645284    add dx, strict byte 0000ch                ; 83 c2 0c
    52655285    mov ax, word [bp+004h]                    ; 8b 46 04
    5266     call 016e2h                               ; e8 2a da
     5286    call 016e2h                               ; e8 fa d9
    52675287    mov es, di                                ; 8e c7
    52685288    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    52705290    add dx, strict byte 0000eh                ; 83 c2 0e
    52715291    mov ax, word [bp+004h]                    ; 8b 46 04
    5272     call 016e2h                               ; e8 18 da
     5292    call 016e2h                               ; e8 e8 d9
    52735293    mov es, di                                ; 8e c7
    52745294    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    52765296    add dx, strict byte 00010h                ; 83 c2 10
    52775297    mov ax, word [bp+004h]                    ; 8b 46 04
    5278     call 016c6h                               ; e8 e9 d9
     5298    call 016c6h                               ; e8 b9 d9
    52795299    mov es, di                                ; 8e c7
    52805300    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    52825302    add dx, strict byte 00011h                ; 83 c2 11
    52835303    mov ax, word [bp+004h]                    ; 8b 46 04
    5284     call 016c6h                               ; e8 d6 d9
     5304    call 016c6h                               ; e8 a6 d9
    52855305    mov es, di                                ; 8e c7
    52865306    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    52885308    add dx, strict byte 00012h                ; 83 c2 12
    52895309    mov ax, word [bp+004h]                    ; 8b 46 04
    5290     call 016c6h                               ; e8 c3 d9
     5310    call 016c6h                               ; e8 93 d9
    52915311    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5292     jne short 03d0fh                          ; 75 06
     5312    jne short 03d3fh                          ; 75 06
    52935313    mov es, di                                ; 8e c7
    52945314    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    52975317    mov dx, strict word 00074h                ; ba 74 00
    52985318    mov ax, strict word 00040h                ; b8 40 00
    5299     call 016c6h                               ; e8 a8 d9
     5319    call 016c6h                               ; e8 78 d9
    53005320    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    53015321    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53075327    mov cx, ds                                ; 8c d9
    53085328    mov ax, strict word 00004h                ; b8 04 00
    5309     call 01999h                               ; e8 65 dc
     5329    call 01999h                               ; e8 35 dc
    53105330    mov ax, word [bp+016h]                    ; 8b 46 16
    53115331    shr ax, 008h                              ; c1 e8 08
     
    53135333    push 002fch                               ; 68 fc 02
    53145334    push 00333h                               ; 68 33 03
    5315     jmp near 03c1fh                           ; e9 db fe
     5335    jmp near 03c4fh                           ; e9 db fe
    53165336    mov ax, word [bp+016h]                    ; 8b 46 16
    53175337    xor ah, ah                                ; 30 e4
     
    53235343    mov dx, strict word 00074h                ; ba 74 00
    53245344    mov ax, strict word 00040h                ; b8 40 00
    5325     call 016c6h                               ; e8 67 d9
     5345    call 016c6h                               ; e8 37 d9
    53265346    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5327     jmp short 03d22h                          ; eb bd
    5328 device_is_cdrom_:                            ; 0xf3d65 LB 0x35
     5347    jmp short 03d52h                          ; eb bd
     5348device_is_cdrom_:                            ; 0xf3d95 LB 0x35
    53295349    push bp                                   ; 55
    53305350    mov bp, sp                                ; 89 e5
     
    53345354    mov dx, strict word 0000eh                ; ba 0e 00
    53355355    mov ax, strict word 00040h                ; b8 40 00
    5336     call 016d4h                               ; e8 5f d9
     5356    call 016d4h                               ; e8 2f d9
    53375357    cmp bl, 010h                              ; 80 fb 10
    5338     jc short 03d7eh                           ; 72 04
     5358    jc short 03daeh                           ; 72 04
    53395359    xor ax, ax                                ; 31 c0
    5340     jmp short 03d93h                          ; eb 15
     5360    jmp short 03dc3h                          ; eb 15
    53415361    xor bh, bh                                ; 30 ff
    53425362    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    53445364    add bx, 00122h                            ; 81 c3 22 01
    53455365    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5346     jne short 03d7ah                          ; 75 ea
     5366    jne short 03daah                          ; 75 ea
    53475367    mov ax, strict word 00001h                ; b8 01 00
    53485368    lea sp, [bp-004h]                         ; 8d 66 fc
     
    53515371    pop bp                                    ; 5d
    53525372    retn                                      ; c3
    5353 cdrom_boot_:                                 ; 0xf3d9a LB 0x416
     5373cdrom_boot_:                                 ; 0xf3dca LB 0x416
    53545374    push bp                                   ; 55
    53555375    mov bp, sp                                ; 89 e5
     
    53625382    mov dx, strict word 0000eh                ; ba 0e 00
    53635383    mov ax, strict word 00040h                ; b8 40 00
    5364     call 016d4h                               ; e8 25 d9
     5384    call 016d4h                               ; e8 f5 d8
    53655385    mov word [bp-018h], ax                    ; 89 46 e8
    53665386    mov si, 00366h                            ; be 66 03
     
    53695389    mov word [bp-012h], ax                    ; 89 46 ee
    53705390    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5371     jmp short 03dcfh                          ; eb 09
     5391    jmp short 03dffh                          ; eb 09
    53725392    inc byte [bp-00ch]                        ; fe 46 f4
    53735393    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5374     jnc short 03ddah                          ; 73 0b
     5394    jnc short 03e0ah                          ; 73 0b
    53755395    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    5376     call 03d65h                               ; e8 8f ff
     5396    call 03d95h                               ; e8 8f ff
    53775397    test ax, ax                               ; 85 c0
    5378     je short 03dc6h                           ; 74 ec
     5398    je short 03df6h                           ; 74 ec
    53795399    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5380     jc short 03de6h                           ; 72 06
     5400    jc short 03e16h                           ; 72 06
    53815401    mov ax, strict word 00002h                ; b8 02 00
    5382     jmp near 0414dh                           ; e9 67 03
     5402    jmp near 0417dh                           ; e9 67 03
    53835403    mov cx, strict word 0000ch                ; b9 0c 00
    53845404    xor bx, bx                                ; 31 db
    53855405    mov dx, ss                                ; 8c d2
    53865406    lea ax, [bp-026h]                         ; 8d 46 da
    5387     call 09f20h                               ; e8 2d 61
     5407    call 09f50h                               ; e8 2d 61
    53885408    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    53895409    mov ax, strict word 00011h                ; b8 11 00
     
    54015421    ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
    54025422    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5403     jmp short 03e2bh                          ; eb 09
     5423    jmp short 03e5bh                          ; eb 09
    54045424    inc byte [bp-00eh]                        ; fe 46 f2
    54055425    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5406     jnbe short 03e62h                         ; 77 37
     5426    jnbe short 03e92h                         ; 77 37
    54075427    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
    54085428    imul di, di, strict byte 0001ch           ; 6b ff 1c
     
    54245444    call word [word di+0006ah]                ; ff 95 6a 00
    54255445    test ax, ax                               ; 85 c0
    5426     jne short 03e22h                          ; 75 c0
     5446    jne short 03e52h                          ; 75 c0
    54275447    test ax, ax                               ; 85 c0
    5428     je short 03e6ch                           ; 74 06
     5448    je short 03e9ch                           ; 74 06
    54295449    mov ax, strict word 00003h                ; b8 03 00
    5430     jmp near 0414dh                           ; e9 e1 02
     5450    jmp near 0417dh                           ; e9 e1 02
    54315451    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5432     je short 03e79h                           ; 74 06
     5452    je short 03ea9h                           ; 74 06
    54335453    mov ax, strict word 00004h                ; b8 04 00
    5434     jmp near 0414dh                           ; e9 d4 02
     5454    jmp near 0417dh                           ; e9 d4 02
    54355455    xor di, di                                ; 31 ff
    5436     jmp short 03e83h                          ; eb 06
     5456    jmp short 03eb3h                          ; eb 06
    54375457    inc di                                    ; 47
    54385458    cmp di, strict byte 00005h                ; 83 ff 05
    5439     jnc short 03e93h                          ; 73 10
     5459    jnc short 03ec3h                          ; 73 10
    54405460    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    54415461    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5442     je short 03e7dh                           ; 74 f0
     5462    je short 03eadh                           ; 74 f0
    54435463    mov ax, strict word 00005h                ; b8 05 00
    5444     jmp near 0414dh                           ; e9 ba 02
     5464    jmp near 0417dh                           ; e9 ba 02
    54455465    xor di, di                                ; 31 ff
    5446     jmp short 03e9dh                          ; eb 06
     5466    jmp short 03ecdh                          ; eb 06
    54475467    inc di                                    ; 47
    54485468    cmp di, strict byte 00017h                ; 83 ff 17
    5449     jnc short 03eadh                          ; 73 10
     5469    jnc short 03eddh                          ; 73 10
    54505470    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    54515471    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5452     je short 03e97h                           ; 74 f0
     5472    je short 03ec7h                           ; 74 f0
    54535473    mov ax, strict word 00006h                ; b8 06 00
    5454     jmp near 0414dh                           ; e9 a0 02
     5474    jmp near 0417dh                           ; e9 a0 02
    54555475    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    54565476    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    54835503    call word [word di+0006ah]                ; ff 95 6a 00
    54845504    test ax, ax                               ; 85 c0
    5485     je short 03f0ah                           ; 74 06
     5505    je short 03f3ah                           ; 74 06
    54865506    mov ax, strict word 00007h                ; b8 07 00
    5487     jmp near 0414dh                           ; e9 43 02
     5507    jmp near 0417dh                           ; e9 43 02
    54885508    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5489     je short 03f17h                           ; 74 06
     5509    je short 03f47h                           ; 74 06
    54905510    mov ax, strict word 00008h                ; b8 08 00
    5491     jmp near 0414dh                           ; e9 36 02
     5511    jmp near 0417dh                           ; e9 36 02
    54925512    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5493     je short 03f24h                           ; 74 06
     5513    je short 03f54h                           ; 74 06
    54945514    mov ax, strict word 00009h                ; b8 09 00
    5495     jmp near 0414dh                           ; e9 29 02
     5515    jmp near 0417dh                           ; e9 29 02
    54965516    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5497     je short 03f31h                           ; 74 06
     5517    je short 03f61h                           ; 74 06
    54985518    mov ax, strict word 0000ah                ; b8 0a 00
    5499     jmp near 0414dh                           ; e9 1c 02
     5519    jmp near 0417dh                           ; e9 1c 02
    55005520    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5501     jne short 03f2bh                          ; 75 f3
     5521    jne short 03f5bh                          ; 75 f3
    55025522    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5503     je short 03f45h                           ; 74 06
     5523    je short 03f75h                           ; 74 06
    55045524    mov ax, strict word 0000bh                ; b8 0b 00
    5505     jmp near 0414dh                           ; e9 08 02
     5525    jmp near 0417dh                           ; e9 08 02
    55065526    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    55075527    mov es, [bp-010h]                         ; 8e 46 f0
    55085528    mov byte [es:si+001h], al                 ; 26 88 44 01
    55095529    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5510     jne short 03f5eh                          ; 75 07
     5530    jne short 03f8eh                          ; 75 07
    55115531    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5512     jmp short 03f71h                          ; eb 13
     5532    jmp short 03fa1h                          ; eb 13
    55135533    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5514     jnc short 03f6ch                          ; 73 07
     5534    jnc short 03f9ch                          ; 73 07
    55155535    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5516     jmp short 03f71h                          ; eb 05
     5536    jmp short 03fa1h                          ; eb 05
    55175537    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    55185538    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    55325552    mov word [bp-016h], ax                    ; 89 46 ea
    55335553    test ax, ax                               ; 85 c0
    5534     jne short 03f9fh                          ; 75 05
     5554    jne short 03fcfh                          ; 75 05
    55355555    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    55365556    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    55415561    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    55425562    test di, di                               ; 85 ff
    5543     je short 03fc1h                           ; 74 06
     5563    je short 03ff1h                           ; 74 06
    55445564    cmp di, 00400h                            ; 81 ff 00 04
    5545     jbe short 03fc7h                          ; 76 06
     5565    jbe short 03ff7h                          ; 76 06
    55465566    mov ax, strict word 0000ch                ; b8 0c 00
    5547     jmp near 0414dh                           ; e9 86 01
     5567    jmp near 0417dh                           ; e9 86 01
    55485568    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    55495569    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    55855605    sal ax, 1                                 ; d1 e0
    55865606    rcl di, 1                                 ; d1 d7
    5587     loop 04035h                               ; e2 fa
     5607    loop 04065h                               ; e2 fa
    55885608    push di                                   ; 57
    55895609    push ax                                   ; 50
     
    55985618    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    55995619    test ax, ax                               ; 85 c0
    5600     je short 04065h                           ; 74 06
     5620    je short 04095h                           ; 74 06
    56015621    mov ax, strict word 0000dh                ; b8 0d 00
    5602     jmp near 0414dh                           ; e9 e8 00
     5622    jmp near 0417dh                           ; e9 e8 00
    56035623    mov es, [bp-010h]                         ; 8e 46 f0
    56045624    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    56055625    cmp AL, strict byte 002h                  ; 3c 02
    5606     jc short 0407dh                           ; 72 0d
    5607     jbe short 04095h                          ; 76 23
     5626    jc short 040adh                           ; 72 0d
     5627    jbe short 040c5h                          ; 76 23
    56085628    cmp AL, strict byte 004h                  ; 3c 04
    5609     je short 040abh                           ; 74 35
     5629    je short 040dbh                           ; 74 35
    56105630    cmp AL, strict byte 003h                  ; 3c 03
    5611     je short 040a0h                           ; 74 26
    5612     jmp near 040f6h                           ; e9 79 00
     5631    je short 040d0h                           ; 74 26
     5632    jmp near 04126h                           ; e9 79 00
    56135633    cmp AL, strict byte 001h                  ; 3c 01
    5614     jne short 040f6h                          ; 75 75
     5634    jne short 04126h                          ; 75 75
    56155635    mov es, [bp-010h]                         ; 8e 46 f0
    56165636    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    56175637    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    56185638    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5619     jmp short 040f6h                          ; eb 61
     5639    jmp short 04126h                          ; eb 61
    56205640    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    56215641    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    5622     jmp short 0408dh                          ; eb ed
     5642    jmp short 040bdh                          ; eb ed
    56235643    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    56245644    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    5625     jmp short 0408dh                          ; eb e2
     5645    jmp short 040bdh                          ; eb e2
    56265646    mov dx, 001c4h                            ; ba c4 01
    56275647    mov ax, word [bp-016h]                    ; 8b 46 ea
    5628     call 016b8h                               ; e8 04 d6
     5648    call 016b8h                               ; e8 d4 d5
    56295649    and AL, strict byte 03fh                  ; 24 3f
    56305650    xor ah, ah                                ; 30 e4
     
    56335653    mov dx, 001c4h                            ; ba c4 01
    56345654    mov ax, word [bp-016h]                    ; 8b 46 ea
    5635     call 016b8h                               ; e8 f0 d5
     5655    call 016b8h                               ; e8 c0 d5
    56365656    movzx bx, al                              ; 0f b6 d8
    56375657    sal bx, 002h                              ; c1 e3 02
    56385658    mov dx, 001c5h                            ; ba c5 01
    56395659    mov ax, word [bp-016h]                    ; 8b 46 ea
    5640     call 016b8h                               ; e8 e1 d5
     5660    call 016b8h                               ; e8 b1 d5
    56415661    xor ah, ah                                ; 30 e4
    56425662    add ax, bx                                ; 01 d8
     
    56465666    mov dx, 001c3h                            ; ba c3 01
    56475667    mov ax, word [bp-016h]                    ; 8b 46 ea
    5648     call 016b8h                               ; e8 cc d5
     5668    call 016b8h                               ; e8 9c d5
    56495669    xor ah, ah                                ; 30 e4
    56505670    inc ax                                    ; 40
     
    56535673    mov es, [bp-010h]                         ; 8e 46 f0
    56545674    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5655     je short 04134h                           ; 74 34
     5675    je short 04164h                           ; 74 34
    56565676    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5657     jne short 0411dh                          ; 75 16
     5677    jne short 0414dh                          ; 75 16
    56585678    mov dx, strict word 00010h                ; ba 10 00
    56595679    mov ax, strict word 00040h                ; b8 40 00
    5660     call 016b8h                               ; e8 a8 d5
     5680    call 016b8h                               ; e8 78 d5
    56615681    or AL, strict byte 041h                   ; 0c 41
    56625682    movzx bx, al                              ; 0f b6 d8
    56635683    mov dx, strict word 00010h                ; ba 10 00
    56645684    mov ax, strict word 00040h                ; b8 40 00
    5665     jmp short 04131h                          ; eb 14
     5685    jmp short 04161h                          ; eb 14
    56665686    mov dx, 00304h                            ; ba 04 03
    56675687    mov ax, word [bp-018h]                    ; 8b 46 e8
    5668     call 016b8h                               ; e8 92 d5
     5688    call 016b8h                               ; e8 62 d5
    56695689    db  0feh, 0c0h
    56705690    ; inc al                                    ; fe c0
     
    56725692    mov dx, 00304h                            ; ba 04 03
    56735693    mov ax, word [bp-018h]                    ; 8b 46 e8
    5674     call 016c6h                               ; e8 92 d5
     5694    call 016c6h                               ; e8 62 d5
    56755695    mov es, [bp-010h]                         ; 8e 46 f0
    56765696    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5677     je short 04142h                           ; 74 04
     5697    je short 04172h                           ; 74 04
    56785698    mov byte [es:si], 001h                    ; 26 c6 04 01
    56795699    mov es, [bp-010h]                         ; 8e 46 f0
     
    56895709    retn                                      ; c3
    56905710    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5691     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 048h, 045h, 056h
    5692     db  042h, 0a0h, 042h, 0c8h, 042h, 095h, 042h, 0c8h, 042h, 095h, 042h, 09eh, 044h, 07bh, 042h, 048h
    5693     db  045h, 048h, 045h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 03fh, 045h, 07bh
    5694     db  042h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h
    5695     db  045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h
    5696 _int13_cdemu:                                ; 0xf41b0 LB 0x434
     5711    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 078h, 045h, 086h
     5712    db  042h, 0d0h, 042h, 0f8h, 042h, 0c5h, 042h, 0f8h, 042h, 0c5h, 042h, 0ceh, 044h, 0abh, 042h, 078h
     5713    db  045h, 078h, 045h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 06fh, 045h, 0abh
     5714    db  042h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h
     5715    db  045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h
     5716_int13_cdemu:                                ; 0xf41e0 LB 0x434
    56975717    push bp                                   ; 55
    56985718    mov bp, sp                                ; 89 e5
     
    57025722    mov dx, strict word 0000eh                ; ba 0e 00
    57035723    mov ax, strict word 00040h                ; b8 40 00
    5704     call 016d4h                               ; e8 13 d5
     5724    call 016d4h                               ; e8 e3 d4
    57055725    mov di, 00366h                            ; bf 66 03
    57065726    mov cx, ax                                ; 89 c1
     
    57185738    mov dx, strict word 00074h                ; ba 74 00
    57195739    mov ax, strict word 00040h                ; b8 40 00
    5720     call 016c6h                               ; e8 d6 d4
     5740    call 016c6h                               ; e8 a6 d4
    57215741    mov es, cx                                ; 8e c1
    57225742    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5723     je short 04206h                           ; 74 0e
     5743    je short 04236h                           ; 74 0e
    57245744    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    57255745    mov ax, word [bp+012h]                    ; 8b 46 12
    57265746    xor ah, ah                                ; 30 e4
    57275747    cmp dx, ax                                ; 39 c2
    5728     je short 0422fh                           ; 74 29
     5748    je short 0425fh                           ; 74 29
    57295749    mov bx, 00da0h                            ; bb a0 0d
    57305750    mov cx, ds                                ; 8c d9
    57315751    mov ax, strict word 00004h                ; b8 04 00
    5732     call 01999h                               ; e8 88 d7
     5752    call 01999h                               ; e8 58 d7
    57335753    mov ax, word [bp+012h]                    ; 8b 46 12
    57345754    xor ah, ah                                ; 30 e4
     
    57405760    push 00358h                               ; 68 58 03
    57415761    push strict byte 00004h                   ; 6a 04
    5742     call 019dah                               ; e8 b1 d7
     5762    call 019dah                               ; e8 81 d7
    57435763    add sp, strict byte 0000ah                ; 83 c4 0a
    5744     jmp near 04568h                           ; e9 39 03
     5764    jmp near 04598h                           ; e9 39 03
    57455765    mov ax, word [bp+016h]                    ; 8b 46 16
    57465766    shr ax, 008h                              ; c1 e8 08
    57475767    cmp ax, strict word 00050h                ; 3d 50 00
    5748     jnbe near 04548h                          ; 0f 87 0c 03
     5768    jnbe near 04578h                          ; 0f 87 0c 03
    57495769    push CS                                   ; 0e
    57505770    pop ES                                    ; 07
    57515771    mov cx, strict word 0001eh                ; b9 1e 00
    5752     mov di, 04157h                            ; bf 57 41
     5772    mov di, 04187h                            ; bf 87 41
    57535773    repne scasb                               ; f2 ae
    57545774    sal cx, 1                                 ; d1 e1
    57555775    mov di, cx                                ; 89 cf
    5756     mov ax, word [cs:di+04174h]               ; 2e 8b 85 74 41
     5776    mov ax, word [cs:di+041a4h]               ; 2e 8b 85 a4 41
    57575777    mov bx, word [bp+016h]                    ; 8b 5e 16
    57585778    xor bh, bh                                ; 30 ff
     
    57655785    add bx, bx                                ; 01 db
    57665786    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5767     je near 0427bh                            ; 0f 84 08 00
     5787    je near 042abh                            ; 0f 84 08 00
    57685788    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    57695789    call word [word bx+00076h]                ; ff 97 76 00
     
    57725792    mov dx, strict word 00074h                ; ba 74 00
    57735793    mov ax, strict word 00040h                ; b8 40 00
    5774     call 016c6h                               ; e8 3c d4
     5794    call 016c6h                               ; e8 0c d4
    57755795    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    57765796    lea sp, [bp-004h]                         ; 8d 66 fc
     
    57825802    xor ah, ah                                ; 30 e4
    57835803    or ah, 003h                               ; 80 cc 03
    5784     jmp near 04570h                           ; e9 d0 02
     5804    jmp near 045a0h                           ; e9 d0 02
    57855805    mov dx, strict word 00074h                ; ba 74 00
    57865806    mov ax, strict word 00040h                ; b8 40 00
    5787     call 016b8h                               ; e8 0f d4
     5807    call 016b8h                               ; e8 df d3
    57885808    mov cl, al                                ; 88 c1
    57895809    movzx ax, cl                              ; 0f b6 c1
     
    57945814    mov dx, strict word 00074h                ; ba 74 00
    57955815    mov ax, strict word 00040h                ; b8 40 00
    5796     call 016c6h                               ; e8 05 d4
     5816    call 016c6h                               ; e8 d5 d3
    57975817    test cl, cl                               ; 84 c9
    5798     je short 0427fh                           ; 74 ba
    5799     jmp near 04584h                           ; e9 bc 02
     5818    je short 042afh                           ; 74 ba
     5819    jmp near 045b4h                           ; e9 bc 02
    58005820    mov es, [bp-008h]                         ; 8e 46 f8
    58015821    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    58215841    mov word [bp-00ah], cx                    ; 89 4e f6
    58225842    test cx, cx                               ; 85 c9
    5823     jne short 04315h                          ; 75 03
    5824     jmp near 0427bh                           ; e9 66 ff
     5843    jne short 04345h                          ; 75 03
     5844    jmp near 042abh                           ; e9 66 ff
    58255845    cmp di, word [bp-010h]                    ; 3b 7e f0
    5826     jc near 04568h                            ; 0f 82 4c 02
     5846    jc near 04598h                            ; 0f 82 4c 02
    58275847    cmp ax, dx                                ; 39 d0
    5828     jnc near 04568h                           ; 0f 83 46 02
     5848    jnc near 04598h                           ; 0f 83 46 02
    58295849    cmp si, bx                                ; 39 de
    5830     jnc near 04568h                           ; 0f 83 40 02
     5850    jnc near 04598h                           ; 0f 83 40 02
    58315851    mov dx, word [bp+016h]                    ; 8b 56 16
    58325852    shr dx, 008h                              ; c1 ea 08
    58335853    cmp dx, strict byte 00004h                ; 83 fa 04
    5834     jne short 04336h                          ; 75 03
    5835     jmp near 0427bh                           ; e9 45 ff
     5854    jne short 04366h                          ; 75 03
     5855    jmp near 042abh                           ; e9 45 ff
    58365856    mov dx, word [bp+010h]                    ; 8b 56 10
    58375857    shr dx, 004h                              ; c1 ea 04
     
    58445864    xor dl, dl                                ; 30 d2
    58455865    xor cx, cx                                ; 31 c9
    5846     call 09e80h                               ; e8 2c 5b
     5866    call 09eb0h                               ; e8 2c 5b
    58475867    xor bx, bx                                ; 31 db
    58485868    add ax, si                                ; 01 f0
     
    58505870    mov bx, di                                ; 89 fb
    58515871    xor cx, cx                                ; 31 c9
    5852     call 09e80h                               ; e8 1f 5b
     5872    call 09eb0h                               ; e8 1f 5b
    58535873    mov bx, ax                                ; 89 c3
    58545874    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    58855905    mov dx, ss                                ; 8c d2
    58865906    lea ax, [bp-02eh]                         ; 8d 46 d2
    5887     call 09f20h                               ; e8 68 5b
     5907    call 09f50h                               ; e8 68 5b
    58885908    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    58895909    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    59335953    sal si, 1                                 ; d1 e6
    59345954    rcl di, 1                                 ; d1 d7
    5935     loop 04438h                               ; e2 fa
     5955    loop 04468h                               ; e2 fa
    59365956    push di                                   ; 57
    59375957    push si                                   ; 56
     
    59485968    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
    59495969    test al, al                               ; 84 c0
    5950     je near 0427bh                            ; 0f 84 13 fe
     5970    je near 042abh                            ; 0f 84 13 fe
    59515971    mov bx, 00da0h                            ; bb a0 0d
    59525972    mov cx, ds                                ; 8c d9
    59535973    mov ax, strict word 00004h                ; b8 04 00
    5954     call 01999h                               ; e8 26 d5
     5974    call 01999h                               ; e8 f6 d4
    59555975    movzx ax, dl                              ; 0f b6 c2
    59565976    push ax                                   ; 50
     
    59615981    push 0038eh                               ; 68 8e 03
    59625982    push strict byte 00004h                   ; 6a 04
    5963     call 019dah                               ; e8 51 d5
     5983    call 019dah                               ; e8 21 d5
    59645984    add sp, strict byte 0000ah                ; 83 c4 0a
    59655985    mov ax, word [bp+016h]                    ; 8b 46 16
     
    59685988    mov word [bp+016h], ax                    ; 89 46 16
    59695989    mov byte [bp+016h], 000h                  ; c6 46 16 00
    5970     jmp near 04573h                           ; e9 d5 00
     5990    jmp near 045a3h                           ; e9 d5 00
    59715991    mov es, [bp-008h]                         ; 8e 46 f8
    59725992    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    60076027    mov word [bp+010h], ax                    ; 89 46 10
    60086028    cmp dl, 003h                              ; 80 fa 03
    6009     je short 04522h                           ; 74 1a
     6029    je short 04552h                           ; 74 1a
    60106030    cmp dl, 002h                              ; 80 fa 02
    6011     je short 0451eh                           ; 74 11
     6031    je short 0454eh                           ; 74 11
    60126032    cmp dl, 001h                              ; 80 fa 01
    6013     jne short 04526h                          ; 75 14
     6033    jne short 04556h                          ; 75 14
    60146034    mov ax, word [bp+010h]                    ; 8b 46 10
    60156035    xor al, al                                ; 30 c0
    60166036    or AL, strict byte 002h                   ; 0c 02
    60176037    mov word [bp+010h], ax                    ; 89 46 10
    6018     jmp short 04526h                          ; eb 08
     6038    jmp short 04556h                          ; eb 08
    60196039    or AL, strict byte 004h                   ; 0c 04
    6020     jmp short 04519h                          ; eb f7
     6040    jmp short 04549h                          ; eb f7
    60216041    or AL, strict byte 005h                   ; 0c 05
    6022     jmp short 04519h                          ; eb f3
     6042    jmp short 04549h                          ; eb f3
    60236043    mov es, [bp-008h]                         ; 8e 46 f8
    60246044    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6025     jnc near 0427bh                           ; 0f 83 49 fd
     6045    jnc near 042abh                           ; 0f 83 49 fd
    60266046    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    60276047    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6028     jmp near 0427bh                           ; e9 3c fd
     6048    jmp near 042abh                           ; e9 3c fd
    60296049    or bh, 003h                               ; 80 cf 03
    60306050    mov word [bp+016h], bx                    ; 89 5e 16
    6031     jmp near 0427fh                           ; e9 37 fd
     6051    jmp near 042afh                           ; e9 37 fd
    60326052    mov bx, 00da0h                            ; bb a0 0d
    60336053    mov cx, ds                                ; 8c d9
    60346054    mov ax, strict word 00004h                ; b8 04 00
    6035     call 01999h                               ; e8 46 d4
     6055    call 01999h                               ; e8 16 d4
    60366056    mov ax, word [bp+016h]                    ; 8b 46 16
    60376057    shr ax, 008h                              ; c1 e8 08
     
    60406060    push 003afh                               ; 68 af 03
    60416061    push strict byte 00004h                   ; 6a 04
    6042     call 019dah                               ; e8 75 d4
     6062    call 019dah                               ; e8 45 d4
    60436063    add sp, strict byte 00008h                ; 83 c4 08
    60446064    mov ax, word [bp+016h]                    ; 8b 46 16
     
    60516071    mov dx, strict word 00074h                ; ba 74 00
    60526072    mov ax, strict word 00040h                ; b8 40 00
    6053     call 016c6h                               ; e8 42 d1
     6073    call 016c6h                               ; e8 12 d1
    60546074    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6055     jmp near 0428eh                           ; e9 03 fd
     6075    jmp near 042beh                           ; e9 03 fd
    60566076    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6057     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 029h, 04bh, 0a5h
    6058     db  048h, 091h, 046h, 029h, 04bh, 086h, 046h, 029h, 04bh, 086h, 046h, 029h, 04bh, 0a5h, 048h, 029h
    6059     db  04bh, 029h, 04bh, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0bbh, 046h, 0a5h
    6060     db  048h, 029h, 04bh, 0c4h, 046h, 0d7h, 046h, 086h, 046h, 0d7h, 046h, 005h, 048h, 0bfh, 048h, 0d7h
    6061     db  046h, 0e6h, 048h, 0e2h, 04ah, 0eah, 04ah, 029h, 04bh
    6062 _int13_cdrom:                                ; 0xf45e4 LB 0x562
     6077    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 059h, 04bh, 0d5h
     6078    db  048h, 0c1h, 046h, 059h, 04bh, 0b6h, 046h, 059h, 04bh, 0b6h, 046h, 059h, 04bh, 0d5h, 048h, 059h
     6079    db  04bh, 059h, 04bh, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0ebh, 046h, 0d5h
     6080    db  048h, 059h, 04bh, 0f4h, 046h, 007h, 047h, 0b6h, 046h, 007h, 047h, 035h, 048h, 0efh, 048h, 007h
     6081    db  047h, 016h, 049h, 012h, 04bh, 01ah, 04bh, 059h, 04bh
     6082_int13_cdrom:                                ; 0xf4614 LB 0x562
    60636083    push bp                                   ; 55
    60646084    mov bp, sp                                ; 89 e5
     
    60686088    mov dx, strict word 0000eh                ; ba 0e 00
    60696089    mov ax, strict word 00040h                ; b8 40 00
    6070     call 016d4h                               ; e8 df d0
     6090    call 016d4h                               ; e8 af d0
    60716091    mov word [bp-01ah], ax                    ; 89 46 e6
    60726092    mov si, 00122h                            ; be 22 01
     
    60756095    mov dx, strict word 00074h                ; ba 74 00
    60766096    mov ax, strict word 00040h                ; b8 40 00
    6077     call 016c6h                               ; e8 bd d0
     6097    call 016c6h                               ; e8 8d d0
    60786098    mov ax, word [bp+010h]                    ; 8b 46 10
    60796099    xor ah, ah                                ; 30 e4
    60806100    cmp ax, 000e0h                            ; 3d e0 00
    6081     jc short 04618h                           ; 72 05
     6101    jc short 04648h                           ; 72 05
    60826102    cmp ax, 000f0h                            ; 3d f0 00
    6083     jc short 04636h                           ; 72 1e
     6103    jc short 04666h                           ; 72 1e
    60846104    mov ax, word [bp+010h]                    ; 8b 46 10
    60856105    xor ah, ah                                ; 30 e4
     
    60916111    push 003ebh                               ; 68 eb 03
    60926112    push strict byte 00004h                   ; 6a 04
    6093     call 019dah                               ; e8 aa d3
     6113    call 019dah                               ; e8 7a d3
    60946114    add sp, strict byte 0000ah                ; 83 c4 0a
    6095     jmp near 04b06h                           ; e9 d0 04
     6115    jmp near 04b36h                           ; e9 d0 04
    60966116    mov ax, word [bp+010h]                    ; 8b 46 10
    60976117    xor ah, ah                                ; 30 e4
     
    61026122    mov byte [bp-008h], dl                    ; 88 56 f8
    61036123    cmp dl, 010h                              ; 80 fa 10
    6104     jc short 0465fh                           ; 72 10
     6124    jc short 0468fh                           ; 72 10
    61056125    push ax                                   ; 50
    61066126    mov ax, word [bp+018h]                    ; 8b 46 18
     
    61096129    push 003dfh                               ; 68 df 03
    61106130    push 00416h                               ; 68 16 04
    6111     jmp short 0462bh                          ; eb cc
     6131    jmp short 0465bh                          ; eb cc
    61126132    mov ax, word [bp+018h]                    ; 8b 46 18
    61136133    shr ax, 008h                              ; c1 e8 08
    61146134    cmp ax, strict word 00050h                ; 3d 50 00
    6115     jnbe near 04b29h                          ; 0f 87 bd 04
     6135    jnbe near 04b59h                          ; 0f 87 bd 04
    61166136    push CS                                   ; 0e
    61176137    pop ES                                    ; 07
    61186138    mov cx, strict word 0001eh                ; b9 1e 00
    6119     mov di, 0458bh                            ; bf 8b 45
     6139    mov di, 045bbh                            ; bf bb 45
    61206140    repne scasb                               ; f2 ae
    61216141    sal cx, 1                                 ; d1 e1
    61226142    mov di, cx                                ; 89 cf
    6123     mov ax, word [cs:di+045a8h]               ; 2e 8b 85 a8 45
     6143    mov ax, word [cs:di+045d8h]               ; 2e 8b 85 d8 45
    61246144    mov bx, word [bp+018h]                    ; 8b 5e 18
    61256145    xor bh, bh                                ; 30 ff
     
    61286148    xor ah, ah                                ; 30 e4
    61296149    or ah, 003h                               ; 80 cc 03
    6130     jmp near 04b0eh                           ; e9 7d 04
     6150    jmp near 04b3eh                           ; e9 7d 04
    61316151    mov dx, strict word 00074h                ; ba 74 00
    61326152    mov ax, strict word 00040h                ; b8 40 00
    6133     call 016b8h                               ; e8 1e d0
     6153    call 016b8h                               ; e8 ee cf
    61346154    mov cl, al                                ; 88 c1
    61356155    movzx ax, cl                              ; 0f b6 c1
     
    61406160    mov dx, strict word 00074h                ; ba 74 00
    61416161    mov ax, strict word 00040h                ; b8 40 00
    6142     call 016c6h                               ; e8 14 d0
     6162    call 016c6h                               ; e8 e4 cf
    61436163    test cl, cl                               ; 84 c9
    6144     je near 048a9h                            ; 0f 84 f1 01
    6145     jmp near 04b22h                           ; e9 67 04
     6164    je near 048d9h                            ; 0f 84 f1 01
     6165    jmp near 04b52h                           ; e9 67 04
    61466166    or bh, 002h                               ; 80 cf 02
    61476167    mov word [bp+018h], bx                    ; 89 5e 18
    6148     jmp near 04b11h                           ; e9 4d 04
     6168    jmp near 04b41h                           ; e9 4d 04
    61496169    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    61506170    or bh, 030h                               ; 80 cf 30
    61516171    mov word [bp+018h], bx                    ; 89 5e 18
    61526172    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6153     jmp near 048a9h                           ; e9 d2 01
     6173    jmp near 048d9h                           ; e9 d2 01
    61546174    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    61556175    mov es, [bp+006h]                         ; 8e 46 06
     
    61666186    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    61676187    or di, ax                                 ; 09 c7
    6168     je short 0471fh                           ; 74 18
     6188    je short 0474fh                           ; 74 18
    61696189    mov ax, word [bp+018h]                    ; 8b 46 18
    61706190    shr ax, 008h                              ; c1 e8 08
     
    61736193    push 00448h                               ; 68 48 04
    61746194    push strict byte 00007h                   ; 6a 07
    6175     call 019dah                               ; e8 c1 d2
     6195    call 019dah                               ; e8 91 d2
    61766196    add sp, strict byte 00008h                ; 83 c4 08
    6177     jmp near 04b06h                           ; e9 e7 03
     6197    jmp near 04b36h                           ; e9 e7 03
    61786198    les bx, [bp-014h]                         ; c4 5e ec
    61796199    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    61856205    mov word [bp-016h], ax                    ; 89 46 ea
    61866206    cmp ax, strict word 00044h                ; 3d 44 00
    6187     je near 048a5h                            ; 0f 84 66 01
     6207    je near 048d5h                            ; 0f 84 66 01
    61886208    cmp ax, strict word 00047h                ; 3d 47 00
    6189     je near 048a5h                            ; 0f 84 5f 01
     6209    je near 048d5h                            ; 0f 84 5f 01
    61906210    mov cx, strict word 0000ch                ; b9 0c 00
    61916211    xor bx, bx                                ; 31 db
    61926212    mov dx, ss                                ; 8c d2
    61936213    lea ax, [bp-02ch]                         ; 8d 46 d4
    6194     call 09f20h                               ; e8 cd 57
     6214    call 09f50h                               ; e8 cd 57
    61956215    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    61966216    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    62206240    sal ax, 1                                 ; d1 e0
    62216241    rcl bx, 1                                 ; d1 d3
    6222     loop 0479dh                               ; e2 fa
     6242    loop 047cdh                               ; e2 fa
    62236243    push bx                                   ; 53
    62246244    push ax                                   ; 50
     
    62366256    shr di, 1                                 ; d1 ef
    62376257    rcr ax, 1                                 ; d1 d8
    6238     loop 047c7h                               ; e2 fa
     6258    loop 047f7h                               ; e2 fa
    62396259    les bx, [bp-014h]                         ; c4 5e ec
    62406260    mov word [es:bx+002h], ax                 ; 26 89 47 02
    62416261    test dl, dl                               ; 84 d2
    6242     je near 048a5h                            ; 0f 84 cb 00
     6262    je near 048d5h                            ; 0f 84 cb 00
    62436263    mov bx, 00da0h                            ; bb a0 0d
    62446264    mov cx, ds                                ; 8c d9
    62456265    mov ax, strict word 00004h                ; b8 04 00
    6246     call 01999h                               ; e8 b4 d1
     6266    call 01999h                               ; e8 84 d1
    62476267    movzx ax, dl                              ; 0f b6 c2
    62486268    push ax                                   ; 50
     
    62516271    push 00471h                               ; 68 71 04
    62526272    push strict byte 00004h                   ; 6a 04
    6253     call 019dah                               ; e8 e3 d1
     6273    call 019dah                               ; e8 b3 d1
    62546274    add sp, strict byte 0000ah                ; 83 c4 0a
    62556275    mov ax, word [bp+018h]                    ; 8b 46 18
    62566276    xor ah, ah                                ; 30 e4
    62576277    or ah, 00ch                               ; 80 cc 0c
    6258     jmp near 04b0eh                           ; e9 09 03
     6278    jmp near 04b3eh                           ; e9 09 03
    62596279    cmp bx, strict byte 00002h                ; 83 fb 02
    6260     jnbe near 04b06h                          ; 0f 87 fa 02
     6280    jnbe near 04b36h                          ; 0f 87 fa 02
    62616281    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    62626282    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    62666286    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    62676287    cmp bx, strict byte 00002h                ; 83 fb 02
    6268     je short 04896h                           ; 74 73
     6288    je short 048c6h                           ; 74 73
    62696289    cmp bx, strict byte 00001h                ; 83 fb 01
    6270     je short 04863h                           ; 74 3b
     6290    je short 04893h                           ; 74 3b
    62716291    test bx, bx                               ; 85 db
    6272     jne near 048a5h                           ; 0f 85 77 00
     6292    jne near 048d5h                           ; 0f 85 77 00
    62736293    cmp AL, strict byte 0ffh                  ; 3c ff
    6274     jne short 04844h                          ; 75 12
     6294    jne short 04874h                          ; 75 12
    62756295    mov ax, word [bp+018h]                    ; 8b 46 18
    62766296    xor ah, ah                                ; 30 e4
     
    62796299    xor al, al                                ; 30 c0
    62806300    or AL, strict byte 001h                   ; 0c 01
    6281     jmp near 04b0eh                           ; e9 ca 02
     6301    jmp near 04b3eh                           ; e9 ca 02
    62826302    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    62836303    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    62916311    or AL, strict byte 001h                   ; 0c 01
    62926312    mov word [bp+018h], ax                    ; 89 46 18
    6293     jmp near 048a5h                           ; e9 42 00
     6313    jmp near 048d5h                           ; e9 42 00
    62946314    test al, al                               ; 84 c0
    6295     jne short 04873h                          ; 75 0c
     6315    jne short 048a3h                          ; 75 0c
    62966316    or bh, 0b0h                               ; 80 cf b0
    62976317    mov word [bp+018h], bx                    ; 89 5e 18
    62986318    mov byte [bp+018h], al                    ; 88 46 18
    6299     jmp near 04b11h                           ; e9 9e 02
     6319    jmp near 04b41h                           ; e9 9e 02
    63006320    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    63016321    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    63126332    xor al, al                                ; 30 c0
    63136333    or ax, dx                                 ; 09 d0
    6314     jmp short 0485dh                          ; eb c7
     6334    jmp short 0488dh                          ; eb c7
    63156335    test al, al                               ; 84 c0
    63166336    db  00fh, 095h, 0c0h
     
    63246344    mov dx, strict word 00074h                ; ba 74 00
    63256345    mov ax, strict word 00040h                ; b8 40 00
    6326     call 016c6h                               ; e8 12 ce
     6346    call 016c6h                               ; e8 e2 cd
    63276347    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    63286348    lea sp, [bp-004h]                         ; 8d 66 fc
     
    63376357    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    63386358    test al, al                               ; 84 c0
    6339     je short 048d9h                           ; 74 06
     6359    je short 04909h                           ; 74 06
    63406360    or bh, 0b1h                               ; 80 cf b1
    6341     jmp near 046beh                           ; e9 e5 fd
    6342     je short 048a5h                           ; 74 ca
     6361    jmp near 046eeh                           ; e9 e5 fd
     6362    je short 048d5h                           ; 74 ca
    63436363    mov ax, word [bp+018h]                    ; 8b 46 18
    63446364    xor ah, ah                                ; 30 e4
    63456365    or ah, 0b1h                               ; 80 cc b1
    6346     jmp near 04b0eh                           ; e9 28 02
     6366    jmp near 04b3eh                           ; e9 28 02
    63476367    mov dx, word [bp+00ch]                    ; 8b 56 0c
    63486368    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    63546374    mov word [bp-00eh], ax                    ; 89 46 f2
    63556375    cmp ax, strict word 0001ah                ; 3d 1a 00
    6356     jc near 04b06h                            ; 0f 82 04 02
    6357     jc short 04953h                           ; 72 4f
     6376    jc near 04b36h                            ; 0f 82 04 02
     6377    jc short 04983h                           ; 72 4f
    63586378    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    63596379    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    63786398    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    63796399    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    6380     jc near 04a2ah                            ; 0f 82 cf 00
     6400    jc near 04a5ah                            ; 0f 82 cf 00
    63816401    mov es, [bp-00ah]                         ; 8e 46 f6
    63826402    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    64306450    xor cl, cl                                ; 30 c9
    64316451    xor ch, ch                                ; 30 ed
    6432     jmp short 04a0dh                          ; eb 05
     6452    jmp short 04a3dh                          ; eb 05
    64336453    cmp ch, 00fh                              ; 80 fd 0f
    6434     jnc short 04a20h                          ; 73 13
     6454    jnc short 04a50h                          ; 73 13
    64356455    movzx dx, ch                              ; 0f b6 d5
    64366456    add dx, 00356h                            ; 81 c2 56 03
    64376457    mov ax, word [bp-01ah]                    ; 8b 46 e6
    6438     call 016b8h                               ; e8 9e cc
     6458    call 016b8h                               ; e8 6e cc
    64396459    add cl, al                                ; 00 c1
    64406460    db  0feh, 0c5h
    64416461    ; inc ch                                    ; fe c5
    6442     jmp short 04a08h                          ; eb e8
     6462    jmp short 04a38h                          ; eb e8
    64436463    neg cl                                    ; f6 d9
    64446464    mov es, [bp-00ch]                         ; 8e 46 f4
    64456465    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    64466466    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    6447     jc near 048a5h                            ; 0f 82 73 fe
     6467    jc near 048d5h                            ; 0f 82 73 fe
    64486468    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    64496469    cwd                                       ; 99
     
    64636483    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    64646484    test al, al                               ; 84 c0
    6465     jne short 04a73h                          ; 75 09
     6485    jne short 04aa3h                          ; 75 09
    64666486    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    64676487    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    64726492    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    64736493    test al, al                               ; 84 c0
    6474     jne short 04a9fh                          ; 75 13
     6494    jne short 04acfh                          ; 75 13
    64756495    mov word [es:bx+030h], dx                 ; 26 89 57 30
    64766496    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    64876507    xor al, al                                ; 30 c0
    64886508    mov AH, strict byte 01eh                  ; b4 1e
    6489     jmp short 04ac7h                          ; eb 05
     6509    jmp short 04af7h                          ; eb 05
    64906510    cmp ah, 040h                              ; 80 fc 40
    6491     jnc short 04ad6h                          ; 73 0f
     6511    jnc short 04b06h                          ; 73 0f
    64926512    movzx si, ah                              ; 0f b6 f4
    64936513    mov es, [bp-00ah]                         ; 8e 46 f6
     
    64966516    db  0feh, 0c4h
    64976517    ; inc ah                                    ; fe c4
    6498     jmp short 04ac2h                          ; eb ec
     6518    jmp short 04af2h                          ; eb ec
    64996519    neg al                                    ; f6 d8
    65006520    mov es, [bp-00ah]                         ; 8e 46 f6
    65016521    mov byte [es:bx+041h], al                 ; 26 88 47 41
    6502     jmp near 048a5h                           ; e9 c3 fd
     6522    jmp near 048d5h                           ; e9 c3 fd
    65036523    or bh, 006h                               ; 80 cf 06
    65046524    mov word [bp+018h], bx                    ; 89 5e 18
    6505     jmp short 04b22h                          ; eb 38
     6525    jmp short 04b52h                          ; eb 38
    65066526    cmp bx, strict byte 00006h                ; 83 fb 06
    6507     je near 048a5h                            ; 0f 84 b4 fd
     6527    je near 048d5h                            ; 0f 84 b4 fd
    65086528    cmp bx, strict byte 00001h                ; 83 fb 01
    6509     jc short 04b06h                           ; 72 10
    6510     jbe near 048a5h                           ; 0f 86 ab fd
     6529    jc short 04b36h                           ; 72 10
     6530    jbe near 048d5h                           ; 0f 86 ab fd
    65116531    cmp bx, strict byte 00003h                ; 83 fb 03
    6512     jc short 04b06h                           ; 72 07
     6532    jc short 04b36h                           ; 72 07
    65136533    cmp bx, strict byte 00004h                ; 83 fb 04
    6514     jbe near 048a5h                           ; 0f 86 9f fd
     6534    jbe near 048d5h                           ; 0f 86 9f fd
    65156535    mov ax, word [bp+018h]                    ; 8b 46 18
    65166536    xor ah, ah                                ; 30 e4
     
    65226542    mov dx, strict word 00074h                ; ba 74 00
    65236543    mov ax, strict word 00040h                ; b8 40 00
    6524     call 016c6h                               ; e8 a4 cb
     6544    call 016c6h                               ; e8 74 cb
    65256545    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6526     jmp near 048b8h                           ; e9 8f fd
     6546    jmp near 048e8h                           ; e9 8f fd
    65276547    mov bx, 00da0h                            ; bb a0 0d
    65286548    mov cx, ds                                ; 8c d9
    65296549    mov ax, strict word 00004h                ; b8 04 00
    6530     call 01999h                               ; e8 65 ce
     6550    call 01999h                               ; e8 35 ce
    65316551    mov ax, word [bp+018h]                    ; 8b 46 18
    65326552    shr ax, 008h                              ; c1 e8 08
     
    65356555    push 00333h                               ; 68 33 03
    65366556    push strict byte 00004h                   ; 6a 04
    6537     jmp near 04716h                           ; e9 d0 fb
    6538 print_boot_device_:                          ; 0xf4b46 LB 0x4b
     6557    jmp near 04746h                           ; e9 d0 fb
     6558print_boot_device_:                          ; 0xf4b76 LB 0x4b
    65396559    push bp                                   ; 55
    65406560    mov bp, sp                                ; 89 e5
    65416561    push cx                                   ; 51
    65426562    test al, al                               ; 84 c0
    6543     je short 04b53h                           ; 74 05
     6563    je short 04b83h                           ; 74 05
    65446564    mov dx, strict word 00002h                ; ba 02 00
    6545     jmp short 04b6dh                          ; eb 1a
     6565    jmp short 04b9dh                          ; eb 1a
    65466566    test dl, dl                               ; 84 d2
    6547     je short 04b5ch                           ; 74 05
     6567    je short 04b8ch                           ; 74 05
    65486568    mov dx, strict word 00003h                ; ba 03 00
    6549     jmp short 04b6dh                          ; eb 11
     6569    jmp short 04b9dh                          ; eb 11
    65506570    test bl, 080h                             ; f6 c3 80
    6551     jne short 04b65h                          ; 75 04
     6571    jne short 04b95h                          ; 75 04
    65526572    xor dh, dh                                ; 30 f6
    6553     jmp short 04b6dh                          ; eb 08
     6573    jmp short 04b9dh                          ; eb 08
    65546574    test bl, 080h                             ; f6 c3 80
    6555     je short 04b8bh                           ; 74 21
     6575    je short 04bbbh                           ; 74 21
    65566576    mov dx, strict word 00001h                ; ba 01 00
    65576577    mov bx, 00da0h                            ; bb a0 0d
    65586578    mov cx, ds                                ; 8c d9
    65596579    mov ax, strict word 00004h                ; b8 04 00
    6560     call 01999h                               ; e8 21 ce
     6580    call 01999h                               ; e8 f1 cd
    65616581    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    65626582    add dx, 00dc6h                            ; 81 c2 c6 0d
     
    65646584    push 00494h                               ; 68 94 04
    65656585    push strict byte 00004h                   ; 6a 04
    6566     call 019dah                               ; e8 52 ce
     6586    call 019dah                               ; e8 22 ce
    65676587    add sp, strict byte 00006h                ; 83 c4 06
    65686588    lea sp, [bp-002h]                         ; 8d 66 fe
     
    65706590    pop bp                                    ; 5d
    65716591    retn                                      ; c3
    6572 print_boot_failure_:                         ; 0xf4b91 LB 0x93
     6592print_boot_failure_:                         ; 0xf4bc1 LB 0x93
    65736593    push bp                                   ; 55
    65746594    mov bp, sp                                ; 89 e5
     
    65796599    movzx si, ah                              ; 0f b6 f4
    65806600    test al, al                               ; 84 c0
    6581     je short 04bbeh                           ; 74 1b
     6601    je short 04beeh                           ; 74 1b
    65826602    mov bx, 00da0h                            ; bb a0 0d
    65836603    mov cx, ds                                ; 8c d9
    65846604    mov ax, strict word 00004h                ; b8 04 00
    6585     call 01999h                               ; e8 eb cd
     6605    call 01999h                               ; e8 bb cd
    65866606    push 00ddah                               ; 68 da 0d
    65876607    push 004a8h                               ; 68 a8 04
    65886608    push strict byte 00004h                   ; 6a 04
    6589     call 019dah                               ; e8 21 ce
     6609    call 019dah                               ; e8 f1 cd
    65906610    add sp, strict byte 00006h                ; 83 c4 06
    6591     jmp short 04c02h                          ; eb 44
     6611    jmp short 04c32h                          ; eb 44
    65926612    test dl, dl                               ; 84 d2
    6593     je short 04bd2h                           ; 74 10
     6613    je short 04c02h                           ; 74 10
    65946614    mov bx, 00da0h                            ; bb a0 0d
    65956615    mov cx, ds                                ; 8c d9
    65966616    mov ax, strict word 00004h                ; b8 04 00
    6597     call 01999h                               ; e8 cc cd
     6617    call 01999h                               ; e8 9c cd
    65986618    push 00de4h                               ; 68 e4 0d
    6599     jmp short 04bb1h                          ; eb df
     6619    jmp short 04be1h                          ; eb df
    66006620    test bl, 080h                             ; f6 c3 80
    6601     je short 04be8h                           ; 74 11
     6621    je short 04c18h                           ; 74 11
    66026622    mov bx, 00da0h                            ; bb a0 0d
    66036623    mov cx, ds                                ; 8c d9
    66046624    mov ax, strict word 00004h                ; b8 04 00
    6605     call 01999h                               ; e8 b7 cd
     6625    call 01999h                               ; e8 87 cd
    66066626    push si                                   ; 56
    66076627    push 00dd0h                               ; 68 d0 0d
    6608     jmp short 04bf7h                          ; eb 0f
     6628    jmp short 04c27h                          ; eb 0f
    66096629    mov bx, 00da0h                            ; bb a0 0d
    66106630    mov cx, ds                                ; 8c d9
    66116631    mov ax, strict word 00004h                ; b8 04 00
    6612     call 01999h                               ; e8 a6 cd
     6632    call 01999h                               ; e8 76 cd
    66136633    push si                                   ; 56
    66146634    push 00dc6h                               ; 68 c6 0d
    66156635    push 004bdh                               ; 68 bd 04
    66166636    push strict byte 00004h                   ; 6a 04
    6617     call 019dah                               ; e8 db cd
     6637    call 019dah                               ; e8 ab cd
    66186638    add sp, strict byte 00008h                ; 83 c4 08
    66196639    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6620     jne short 04c1ch                          ; 75 14
     6640    jne short 04c4ch                          ; 75 14
    66216641    test dh, dh                               ; 84 f6
    6622     jne short 04c11h                          ; 75 05
     6642    jne short 04c41h                          ; 75 05
    66236643    push 004d5h                               ; 68 d5 04
    6624     jmp short 04c14h                          ; eb 03
     6644    jmp short 04c44h                          ; eb 03
    66256645    push 004ffh                               ; 68 ff 04
    66266646    push strict byte 00007h                   ; 6a 07
    6627     call 019dah                               ; e8 c1 cd
     6647    call 019dah                               ; e8 91 cd
    66286648    add sp, strict byte 00004h                ; 83 c4 04
    66296649    lea sp, [bp-002h]                         ; 8d 66 fe
     
    66316651    pop bp                                    ; 5d
    66326652    retn 00002h                               ; c2 02 00
    6633 print_cdromboot_failure_:                    ; 0xf4c24 LB 0x27
     6653print_cdromboot_failure_:                    ; 0xf4c54 LB 0x27
    66346654    push bp                                   ; 55
    66356655    mov bp, sp                                ; 89 e5
     
    66416661    mov cx, ds                                ; 8c d9
    66426662    mov ax, strict word 00004h                ; b8 04 00
    6643     call 01999h                               ; e8 62 cd
     6663    call 01999h                               ; e8 32 cd
    66446664    push dx                                   ; 52
    66456665    push 00534h                               ; 68 34 05
    66466666    push strict byte 00004h                   ; 6a 04
    6647     call 019dah                               ; e8 9a cd
     6667    call 019dah                               ; e8 6a cd
    66486668    add sp, strict byte 00006h                ; 83 c4 06
    66496669    lea sp, [bp-006h]                         ; 8d 66 fa
     
    66536673    pop bp                                    ; 5d
    66546674    retn                                      ; c3
    6655 _int19_function:                             ; 0xf4c4b LB 0x256
     6675_int19_function:                             ; 0xf4c7b LB 0x256
    66566676    push bp                                   ; 55
    66576677    mov bp, sp                                ; 89 e5
     
    66616681    mov dx, strict word 0000eh                ; ba 0e 00
    66626682    mov ax, strict word 00040h                ; b8 40 00
    6663     call 016d4h                               ; e8 78 ca
     6683    call 016d4h                               ; e8 48 ca
    66646684    mov bx, ax                                ; 89 c3
    66656685    mov word [bp-00eh], ax                    ; 89 46 f2
    66666686    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    66676687    mov ax, strict word 0003dh                ; b8 3d 00
    6668     call 01714h                               ; e8 a9 ca
     6688    call 01714h                               ; e8 79 ca
    66696689    movzx si, al                              ; 0f b6 f0
    66706690    mov ax, strict word 00038h                ; b8 38 00
    6671     call 01714h                               ; e8 a0 ca
     6691    call 01714h                               ; e8 70 ca
    66726692    and AL, strict byte 0f0h                  ; 24 f0
    66736693    xor ah, ah                                ; 30 e4
     
    66756695    or si, ax                                 ; 09 c6
    66766696    mov ax, strict word 0003ch                ; b8 3c 00
    6677     call 01714h                               ; e8 91 ca
     6697    call 01714h                               ; e8 61 ca
    66786698    and AL, strict byte 00fh                  ; 24 0f
    66796699    xor ah, ah                                ; 30 e4
     
    66826702    mov dx, 0037dh                            ; ba 7d 03
    66836703    mov ax, bx                                ; 89 d8
    6684     call 016b8h                               ; e8 24 ca
     6704    call 016b8h                               ; e8 f4 c9
    66856705    test al, al                               ; 84 c0
    6686     je short 04ca3h                           ; 74 0b
     6706    je short 04cd3h                           ; 74 0b
    66876707    mov dx, 0037dh                            ; ba 7d 03
    66886708    mov ax, bx                                ; 89 d8
    6689     call 016b8h                               ; e8 18 ca
     6709    call 016b8h                               ; e8 e8 c9
    66906710    movzx si, al                              ; 0f b6 f0
    66916711    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6692     jne short 04cb9h                          ; 75 10
     6712    jne short 04ce9h                          ; 75 10
    66936713    mov ax, strict word 0003ch                ; b8 3c 00
    6694     call 01714h                               ; e8 65 ca
     6714    call 01714h                               ; e8 35 ca
    66956715    and AL, strict byte 0f0h                  ; 24 f0
    66966716    xor ah, ah                                ; 30 e4
    66976717    sar ax, 004h                              ; c1 f8 04
    6698     call 07d18h                               ; e8 5f 30
     6718    call 07d48h                               ; e8 5f 30
    66996719    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6700     jne short 04cc2h                          ; 75 03
     6720    jne short 04cf2h                          ; 75 03
    67016721    shr si, 004h                              ; c1 ee 04
    67026722    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6703     jne short 04ccbh                          ; 75 03
     6723    jne short 04cfbh                          ; 75 03
    67046724    shr si, 008h                              ; c1 ee 08
    67056725    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6706     jne short 04cd4h                          ; 75 03
     6726    jne short 04d04h                          ; 75 03
    67076727    shr si, 00ch                              ; c1 ee 0c
    67086728    cmp si, strict byte 00010h                ; 83 fe 10
    6709     jnc short 04cddh                          ; 73 04
     6729    jnc short 04d0dh                          ; 73 04
    67106730    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    67116731    xor al, al                                ; 30 c0
     
    67166736    mov cx, ds                                ; 8c d9
    67176737    mov ax, strict word 00004h                ; b8 04 00
    6718     call 01999h                               ; e8 a6 cc
     6738    call 01999h                               ; e8 76 cc
    67196739    push si                                   ; 56
    67206740    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    67226742    push 00554h                               ; 68 54 05
    67236743    push strict byte 00004h                   ; 6a 04
    6724     call 019dah                               ; e8 d9 cc
     6744    call 019dah                               ; e8 a9 cc
    67256745    add sp, strict byte 00008h                ; 83 c4 08
    67266746    and si, strict byte 0000fh                ; 83 e6 0f
    67276747    cmp si, strict byte 00002h                ; 83 fe 02
    6728     jc short 04d1ah                           ; 72 0e
    6729     jbe short 04d29h                          ; 76 1b
     6748    jc short 04d4ah                           ; 72 0e
     6749    jbe short 04d59h                          ; 76 1b
    67306750    cmp si, strict byte 00004h                ; 83 fe 04
    6731     je short 04d47h                           ; 74 34
     6751    je short 04d77h                           ; 74 34
    67326752    cmp si, strict byte 00003h                ; 83 fe 03
    6733     je short 04d3dh                           ; 74 25
    6734     jmp short 04d74h                          ; eb 5a
     6753    je short 04d6dh                           ; 74 25
     6754    jmp short 04da4h                          ; eb 5a
    67356755    cmp si, strict byte 00001h                ; 83 fe 01
    6736     jne short 04d74h                          ; 75 55
     6756    jne short 04da4h                          ; 75 55
    67376757    xor al, al                                ; 30 c0
    67386758    mov byte [bp-006h], al                    ; 88 46 fa
    67396759    mov byte [bp-00ah], al                    ; 88 46 f6
    6740     jmp short 04d8ch                          ; eb 63
     6760    jmp short 04dbch                          ; eb 63
    67416761    mov dx, 0037ch                            ; ba 7c 03
    67426762    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6743     call 016b8h                               ; e8 86 c9
     6763    call 016b8h                               ; e8 56 c9
    67446764    add AL, strict byte 080h                  ; 04 80
    67456765    mov byte [bp-006h], al                    ; 88 46 fa
    67466766    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6747     jmp short 04d8ch                          ; eb 4f
     6767    jmp short 04dbch                          ; eb 4f
    67486768    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    67496769    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6750     jmp short 04d51h                          ; eb 0a
     6770    jmp short 04d81h                          ; eb 0a
    67516771    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    67526772    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6753     je short 04d8ch                           ; 74 3b
    6754     call 03d9ah                               ; e8 46 f0
     6773    je short 04dbch                           ; 74 3b
     6774    call 03dcah                               ; e8 46 f0
    67556775    mov bx, ax                                ; 89 c3
    67566776    test AL, strict byte 0ffh                 ; a8 ff
    6757     je short 04d7bh                           ; 74 21
    6758     call 04c24h                               ; e8 c7 fe
     6777    je short 04dabh                           ; 74 21
     6778    call 04c54h                               ; e8 c7 fe
    67596779    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    67606780    push ax                                   ; 50
     
    67636783    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    67646784    mov cx, strict word 00001h                ; b9 01 00
    6765     call 04b91h                               ; e8 1d fe
     6785    call 04bc1h                               ; e8 1d fe
    67666786    xor ax, ax                                ; 31 c0
    67676787    xor dx, dx                                ; 31 d2
    6768     jmp near 04e9ah                           ; e9 1f 01
     6788    jmp near 04ecah                           ; e9 1f 01
    67696789    mov dx, 00372h                            ; ba 72 03
    67706790    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6771     call 016d4h                               ; e8 50 c9
     6791    call 016d4h                               ; e8 20 c9
    67726792    mov di, ax                                ; 89 c7
    67736793    shr bx, 008h                              ; c1 eb 08
    67746794    mov byte [bp-006h], bl                    ; 88 5e fa
    67756795    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6776     jne near 04e08h                           ; 0f 85 74 00
     6796    jne near 04e38h                           ; 0f 85 74 00
    67776797    xor si, si                                ; 31 f6
    67786798    mov ax, 0e200h                            ; b8 00 e2
    67796799    mov es, ax                                ; 8e c0
    67806800    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6781     jne short 04d5dh                          ; 75 bb
     6801    jne short 04d8dh                          ; 75 bb
    67826802    mov cx, ax                                ; 89 c1
    67836803    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    67846804    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6785     jne short 04d5dh                          ; 75 ad
     6805    jne short 04d8dh                          ; 75 ad
    67866806    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6787     jne short 04d5dh                          ; 75 a6
     6807    jne short 04d8dh                          ; 75 a6
    67886808    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    67896809    mov dx, word [es:di]                      ; 26 8b 15
    67906810    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    67916811    cmp ax, 06568h                            ; 3d 68 65
    6792     jne short 04de6h                          ; 75 1f
     6812    jne short 04e16h                          ; 75 1f
    67936813    cmp dx, 07445h                            ; 81 fa 45 74
    6794     jne short 04de6h                          ; 75 19
     6814    jne short 04e16h                          ; 75 19
    67956815    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    67966816    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    67976817    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6798     call 04b46h                               ; e8 6a fd
     6818    call 04b76h                               ; e8 6a fd
    67996819    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    68006820    mov word [bp-010h], cx                    ; 89 4e f0
    6801     jmp short 04e02h                          ; eb 1c
     6821    jmp short 04e32h                          ; eb 1c
    68026822    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    68036823    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    68046824    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6805     call 04b46h                               ; e8 51 fd
     6825    call 04b76h                               ; e8 51 fd
    68066826    sti                                       ; fb
    68076827    mov word [bp-010h], cx                    ; 89 4e f0
     
    68106830    mov word [bp-012h], ax                    ; 89 46 ee
    68116831    call far [bp-012h]                        ; ff 5e ee
    6812     jmp near 04d5dh                           ; e9 55 ff
     6832    jmp near 04d8dh                           ; e9 55 ff
    68136833    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6814     jne short 04e34h                          ; 75 26
     6834    jne short 04e64h                          ; 75 26
    68156835    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6816     jne short 04e34h                          ; 75 20
     6836    jne short 04e64h                          ; 75 20
    68176837    mov di, 007c0h                            ; bf c0 07
    68186838    mov es, di                                ; 8e c7
     
    68276847    sbb ax, strict byte 00000h                ; 83 d8 00
    68286848    test ax, ax                               ; 85 c0
    6829     jne near 04d5dh                           ; 0f 85 29 ff
     6849    jne near 04d8dh                           ; 0f 85 29 ff
    68306850    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    68316851    db  00fh, 094h, 0c1h
    68326852    ; sete cl                                   ; 0f 94 c1
    68336853    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6834     je short 04e43h                           ; 74 02
     6854    je short 04e73h                           ; 74 02
    68356855    mov CL, strict byte 001h                  ; b1 01
    68366856    xor dx, dx                                ; 31 d2
    68376857    mov ax, di                                ; 89 f8
    6838     call 016d4h                               ; e8 8a c8
     6858    call 016d4h                               ; e8 5a c8
    68396859    mov bx, ax                                ; 89 c3
    68406860    mov dx, strict word 00002h                ; ba 02 00
    68416861    mov ax, di                                ; 89 f8
    6842     call 016d4h                               ; e8 80 c8
     6862    call 016d4h                               ; e8 50 c8
    68436863    cmp bx, ax                                ; 39 c3
    6844     je short 04e69h                           ; 74 11
     6864    je short 04e99h                           ; 74 11
    68456865    test cl, cl                               ; 84 c9
    6846     jne short 04e7fh                          ; 75 23
     6866    jne short 04eafh                          ; 75 23
    68476867    mov dx, 001feh                            ; ba fe 01
    68486868    mov ax, di                                ; 89 f8
    6849     call 016d4h                               ; e8 70 c8
     6869    call 016d4h                               ; e8 40 c8
    68506870    cmp ax, 0aa55h                            ; 3d 55 aa
    6851     je short 04e7fh                           ; 74 16
     6871    je short 04eafh                           ; 74 16
    68526872    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    68536873    push ax                                   ; 50
     
    68566876    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    68576877    xor cx, cx                                ; 31 c9
    6858     jmp near 04d71h                           ; e9 f2 fe
     6878    jmp near 04da1h                           ; e9 f2 fe
    68596879    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    68606880    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    68616881    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6862     call 04b46h                               ; e8 b8 fc
     6882    call 04b76h                               ; e8 b8 fc
    68636883    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    68646884    xor dx, dx                                ; 31 d2
     
    68716891    pop bp                                    ; 5d
    68726892    retn                                      ; c3
    6873 keyboard_panic_:                             ; 0xf4ea1 LB 0x13
     6893keyboard_panic_:                             ; 0xf4ed1 LB 0x13
    68746894    push bp                                   ; 55
    68756895    mov bp, sp                                ; 89 e5
     
    68776897    push 00574h                               ; 68 74 05
    68786898    push strict byte 00007h                   ; 6a 07
    6879     call 019dah                               ; e8 2d cb
     6899    call 019dah                               ; e8 fd ca
    68806900    add sp, strict byte 00006h                ; 83 c4 06
    68816901    mov sp, bp                                ; 89 ec
    68826902    pop bp                                    ; 5d
    68836903    retn                                      ; c3
    6884 _keyboard_init:                              ; 0xf4eb4 LB 0x26a
     6904_keyboard_init:                              ; 0xf4ee4 LB 0x26a
    68856905    push bp                                   ; 55
    68866906    mov bp, sp                                ; 89 e5
     
    68946914    ; sub ah, ah                                ; 2a e4
    68956915    test AL, strict byte 002h                 ; a8 02
    6896     je short 04ed7h                           ; 74 0d
     6916    je short 04f07h                           ; 74 0d
    68976917    dec bx                                    ; 4b
    68986918    test bx, bx                               ; 85 db
    6899     jbe short 04ed7h                          ; 76 08
     6919    jbe short 04f07h                          ; 76 08
    69006920    xor al, al                                ; 30 c0
    69016921    mov dx, 00080h                            ; ba 80 00
    69026922    out DX, AL                                ; ee
    6903     jmp short 04ec0h                          ; eb e9
     6923    jmp short 04ef0h                          ; eb e9
    69046924    test bx, bx                               ; 85 db
    6905     jne short 04ee0h                          ; 75 05
     6925    jne short 04f10h                          ; 75 05
    69066926    xor ax, ax                                ; 31 c0
    6907     call 04ea1h                               ; e8 c1 ff
     6927    call 04ed1h                               ; e8 c1 ff
    69086928    mov bx, strict word 0ffffh                ; bb ff ff
    69096929    mov dx, strict word 00064h                ; ba 64 00
     
    69126932    ; sub ah, ah                                ; 2a e4
    69136933    test AL, strict byte 001h                 ; a8 01
    6914     jne short 04efah                          ; 75 0d
     6934    jne short 04f2ah                          ; 75 0d
    69156935    dec bx                                    ; 4b
    69166936    test bx, bx                               ; 85 db
    6917     jbe short 04efah                          ; 76 08
     6937    jbe short 04f2ah                          ; 76 08
    69186938    mov AL, strict byte 001h                  ; b0 01
    69196939    mov dx, 00080h                            ; ba 80 00
    69206940    out DX, AL                                ; ee
    6921     jmp short 04ee3h                          ; eb e9
     6941    jmp short 04f13h                          ; eb e9
    69226942    test bx, bx                               ; 85 db
    6923     jne short 04f04h                          ; 75 06
     6943    jne short 04f34h                          ; 75 06
    69246944    mov ax, strict word 00001h                ; b8 01 00
    6925     call 04ea1h                               ; e8 9d ff
     6945    call 04ed1h                               ; e8 9d ff
    69266946    mov dx, strict word 00060h                ; ba 60 00
    69276947    in AL, DX                                 ; ec
     
    69296949    ; sub ah, ah                                ; 2a e4
    69306950    cmp ax, strict word 00055h                ; 3d 55 00
    6931     je short 04f15h                           ; 74 06
     6951    je short 04f45h                           ; 74 06
    69326952    mov ax, 003dfh                            ; b8 df 03
    6933     call 04ea1h                               ; e8 8c ff
     6953    call 04ed1h                               ; e8 8c ff
    69346954    mov AL, strict byte 0abh                  ; b0 ab
    69356955    mov dx, strict word 00064h                ; ba 64 00
     
    69416961    ; sub ah, ah                                ; 2a e4
    69426962    test AL, strict byte 002h                 ; a8 02
    6943     je short 04f35h                           ; 74 0d
     6963    je short 04f65h                           ; 74 0d
    69446964    dec bx                                    ; 4b
    69456965    test bx, bx                               ; 85 db
    6946     jbe short 04f35h                          ; 76 08
     6966    jbe short 04f65h                          ; 76 08
    69476967    mov AL, strict byte 010h                  ; b0 10
    69486968    mov dx, 00080h                            ; ba 80 00
    69496969    out DX, AL                                ; ee
    6950     jmp short 04f1eh                          ; eb e9
     6970    jmp short 04f4eh                          ; eb e9
    69516971    test bx, bx                               ; 85 db
    6952     jne short 04f3fh                          ; 75 06
     6972    jne short 04f6fh                          ; 75 06
    69536973    mov ax, strict word 0000ah                ; b8 0a 00
    6954     call 04ea1h                               ; e8 62 ff
     6974    call 04ed1h                               ; e8 62 ff
    69556975    mov bx, strict word 0ffffh                ; bb ff ff
    69566976    mov dx, strict word 00064h                ; ba 64 00
     
    69596979    ; sub ah, ah                                ; 2a e4
    69606980    test AL, strict byte 001h                 ; a8 01
    6961     jne short 04f59h                          ; 75 0d
     6981    jne short 04f89h                          ; 75 0d
    69626982    dec bx                                    ; 4b
    69636983    test bx, bx                               ; 85 db
    6964     jbe short 04f59h                          ; 76 08
     6984    jbe short 04f89h                          ; 76 08
    69656985    mov AL, strict byte 011h                  ; b0 11
    69666986    mov dx, 00080h                            ; ba 80 00
    69676987    out DX, AL                                ; ee
    6968     jmp short 04f42h                          ; eb e9
     6988    jmp short 04f72h                          ; eb e9
    69696989    test bx, bx                               ; 85 db
    6970     jne short 04f63h                          ; 75 06
     6990    jne short 04f93h                          ; 75 06
    69716991    mov ax, strict word 0000bh                ; b8 0b 00
    6972     call 04ea1h                               ; e8 3e ff
     6992    call 04ed1h                               ; e8 3e ff
    69736993    mov dx, strict word 00060h                ; ba 60 00
    69746994    in AL, DX                                 ; ec
     
    69766996    ; sub ah, ah                                ; 2a e4
    69776997    test ax, ax                               ; 85 c0
    6978     je short 04f73h                           ; 74 06
     6998    je short 04fa3h                           ; 74 06
    69796999    mov ax, 003e0h                            ; b8 e0 03
    6980     call 04ea1h                               ; e8 2e ff
     7000    call 04ed1h                               ; e8 2e ff
    69817001    mov AL, strict byte 0ffh                  ; b0 ff
    69827002    mov dx, strict word 00060h                ; ba 60 00
     
    69887008    ; sub ah, ah                                ; 2a e4
    69897009    test AL, strict byte 002h                 ; a8 02
    6990     je short 04f93h                           ; 74 0d
     7010    je short 04fc3h                           ; 74 0d
    69917011    dec bx                                    ; 4b
    69927012    test bx, bx                               ; 85 db
    6993     jbe short 04f93h                          ; 76 08
     7013    jbe short 04fc3h                          ; 76 08
    69947014    mov AL, strict byte 020h                  ; b0 20
    69957015    mov dx, 00080h                            ; ba 80 00
    69967016    out DX, AL                                ; ee
    6997     jmp short 04f7ch                          ; eb e9
     7017    jmp short 04fach                          ; eb e9
    69987018    test bx, bx                               ; 85 db
    6999     jne short 04f9dh                          ; 75 06
     7019    jne short 04fcdh                          ; 75 06
    70007020    mov ax, strict word 00014h                ; b8 14 00
    7001     call 04ea1h                               ; e8 04 ff
     7021    call 04ed1h                               ; e8 04 ff
    70027022    mov bx, strict word 0ffffh                ; bb ff ff
    70037023    mov dx, strict word 00064h                ; ba 64 00
     
    70067026    ; sub ah, ah                                ; 2a e4
    70077027    test AL, strict byte 001h                 ; a8 01
    7008     jne short 04fb7h                          ; 75 0d
     7028    jne short 04fe7h                          ; 75 0d
    70097029    dec bx                                    ; 4b
    70107030    test bx, bx                               ; 85 db
    7011     jbe short 04fb7h                          ; 76 08
     7031    jbe short 04fe7h                          ; 76 08
    70127032    mov AL, strict byte 021h                  ; b0 21
    70137033    mov dx, 00080h                            ; ba 80 00
    70147034    out DX, AL                                ; ee
    7015     jmp short 04fa0h                          ; eb e9
     7035    jmp short 04fd0h                          ; eb e9
    70167036    test bx, bx                               ; 85 db
    7017     jne short 04fc1h                          ; 75 06
     7037    jne short 04ff1h                          ; 75 06
    70187038    mov ax, strict word 00015h                ; b8 15 00
    7019     call 04ea1h                               ; e8 e0 fe
     7039    call 04ed1h                               ; e8 e0 fe
    70207040    mov dx, strict word 00060h                ; ba 60 00
    70217041    in AL, DX                                 ; ec
     
    70237043    ; sub ah, ah                                ; 2a e4
    70247044    cmp ax, 000fah                            ; 3d fa 00
    7025     je short 04fd2h                           ; 74 06
     7045    je short 05002h                           ; 74 06
    70267046    mov ax, 003e1h                            ; b8 e1 03
    7027     call 04ea1h                               ; e8 cf fe
     7047    call 04ed1h                               ; e8 cf fe
    70287048    mov dx, strict word 00064h                ; ba 64 00
    70297049    in AL, DX                                 ; ec
     
    70317051    ; sub ah, ah                                ; 2a e4
    70327052    test AL, strict byte 001h                 ; a8 01
    7033     jne short 04fe4h                          ; 75 08
     7053    jne short 05014h                          ; 75 08
    70347054    mov AL, strict byte 031h                  ; b0 31
    70357055    mov dx, 00080h                            ; ba 80 00
    70367056    out DX, AL                                ; ee
    7037     jmp short 04fd2h                          ; eb ee
     7057    jmp short 05002h                          ; eb ee
    70387058    mov dx, strict word 00060h                ; ba 60 00
    70397059    in AL, DX                                 ; ec
     
    70417061    ; sub ah, ah                                ; 2a e4
    70427062    cmp ax, 000aah                            ; 3d aa 00
    7043     je short 04ffdh                           ; 74 0e
     7063    je short 0502dh                           ; 74 0e
    70447064    in AL, DX                                 ; ec
    70457065    db  02ah, 0e4h
    70467066    ; sub ah, ah                                ; 2a e4
    70477067    cmp ax, 000aah                            ; 3d aa 00
    7048     je short 04ffdh                           ; 74 06
     7068    je short 0502dh                           ; 74 06
    70497069    mov ax, 003e2h                            ; b8 e2 03
    7050     call 04ea1h                               ; e8 a4 fe
     7070    call 04ed1h                               ; e8 a4 fe
    70517071    mov AL, strict byte 0f5h                  ; b0 f5
    70527072    mov dx, strict word 00060h                ; ba 60 00
     
    70587078    ; sub ah, ah                                ; 2a e4
    70597079    test AL, strict byte 002h                 ; a8 02
    7060     je short 0501dh                           ; 74 0d
     7080    je short 0504dh                           ; 74 0d
    70617081    dec bx                                    ; 4b
    70627082    test bx, bx                               ; 85 db
    7063     jbe short 0501dh                          ; 76 08
     7083    jbe short 0504dh                          ; 76 08
    70647084    mov AL, strict byte 040h                  ; b0 40
    70657085    mov dx, 00080h                            ; ba 80 00
    70667086    out DX, AL                                ; ee
    7067     jmp short 05006h                          ; eb e9
     7087    jmp short 05036h                          ; eb e9
    70687088    test bx, bx                               ; 85 db
    7069     jne short 05027h                          ; 75 06
     7089    jne short 05057h                          ; 75 06
    70707090    mov ax, strict word 00028h                ; b8 28 00
    7071     call 04ea1h                               ; e8 7a fe
     7091    call 04ed1h                               ; e8 7a fe
    70727092    mov bx, strict word 0ffffh                ; bb ff ff
    70737093    mov dx, strict word 00064h                ; ba 64 00
     
    70767096    ; sub ah, ah                                ; 2a e4
    70777097    test AL, strict byte 001h                 ; a8 01
    7078     jne short 05041h                          ; 75 0d
     7098    jne short 05071h                          ; 75 0d
    70797099    dec bx                                    ; 4b
    70807100    test bx, bx                               ; 85 db
    7081     jbe short 05041h                          ; 76 08
     7101    jbe short 05071h                          ; 76 08
    70827102    mov AL, strict byte 041h                  ; b0 41
    70837103    mov dx, 00080h                            ; ba 80 00
    70847104    out DX, AL                                ; ee
    7085     jmp short 0502ah                          ; eb e9
     7105    jmp short 0505ah                          ; eb e9
    70867106    test bx, bx                               ; 85 db
    7087     jne short 0504bh                          ; 75 06
     7107    jne short 0507bh                          ; 75 06
    70887108    mov ax, strict word 00029h                ; b8 29 00
    7089     call 04ea1h                               ; e8 56 fe
     7109    call 04ed1h                               ; e8 56 fe
    70907110    mov dx, strict word 00060h                ; ba 60 00
    70917111    in AL, DX                                 ; ec
     
    70937113    ; sub ah, ah                                ; 2a e4
    70947114    cmp ax, 000fah                            ; 3d fa 00
    7095     je short 0505ch                           ; 74 06
     7115    je short 0508ch                           ; 74 06
    70967116    mov ax, 003e3h                            ; b8 e3 03
    7097     call 04ea1h                               ; e8 45 fe
     7117    call 04ed1h                               ; e8 45 fe
    70987118    mov AL, strict byte 060h                  ; b0 60
    70997119    mov dx, strict word 00064h                ; ba 64 00
     
    71057125    ; sub ah, ah                                ; 2a e4
    71067126    test AL, strict byte 002h                 ; a8 02
    7107     je short 0507ch                           ; 74 0d
     7127    je short 050ach                           ; 74 0d
    71087128    dec bx                                    ; 4b
    71097129    test bx, bx                               ; 85 db
    7110     jbe short 0507ch                          ; 76 08
     7130    jbe short 050ach                          ; 76 08
    71117131    mov AL, strict byte 050h                  ; b0 50
    71127132    mov dx, 00080h                            ; ba 80 00
    71137133    out DX, AL                                ; ee
    7114     jmp short 05065h                          ; eb e9
     7134    jmp short 05095h                          ; eb e9
    71157135    test bx, bx                               ; 85 db
    7116     jne short 05086h                          ; 75 06
     7136    jne short 050b6h                          ; 75 06
    71177137    mov ax, strict word 00032h                ; b8 32 00
    7118     call 04ea1h                               ; e8 1b fe
     7138    call 04ed1h                               ; e8 1b fe
    71197139    mov AL, strict byte 065h                  ; b0 65
    71207140    mov dx, strict word 00060h                ; ba 60 00
     
    71267146    ; sub ah, ah                                ; 2a e4
    71277147    test AL, strict byte 002h                 ; a8 02
    7128     je short 050a6h                           ; 74 0d
     7148    je short 050d6h                           ; 74 0d
    71297149    dec bx                                    ; 4b
    71307150    test bx, bx                               ; 85 db
    7131     jbe short 050a6h                          ; 76 08
     7151    jbe short 050d6h                          ; 76 08
    71327152    mov AL, strict byte 060h                  ; b0 60
    71337153    mov dx, 00080h                            ; ba 80 00
    71347154    out DX, AL                                ; ee
    7135     jmp short 0508fh                          ; eb e9
     7155    jmp short 050bfh                          ; eb e9
    71367156    test bx, bx                               ; 85 db
    7137     jne short 050b0h                          ; 75 06
     7157    jne short 050e0h                          ; 75 06
    71387158    mov ax, strict word 0003ch                ; b8 3c 00
    7139     call 04ea1h                               ; e8 f1 fd
     7159    call 04ed1h                               ; e8 f1 fd
    71407160    mov AL, strict byte 0f4h                  ; b0 f4
    71417161    mov dx, strict word 00060h                ; ba 60 00
     
    71477167    ; sub ah, ah                                ; 2a e4
    71487168    test AL, strict byte 002h                 ; a8 02
    7149     je short 050d0h                           ; 74 0d
     7169    je short 05100h                           ; 74 0d
    71507170    dec bx                                    ; 4b
    71517171    test bx, bx                               ; 85 db
    7152     jbe short 050d0h                          ; 76 08
     7172    jbe short 05100h                          ; 76 08
    71537173    mov AL, strict byte 070h                  ; b0 70
    71547174    mov dx, 00080h                            ; ba 80 00
    71557175    out DX, AL                                ; ee
    7156     jmp short 050b9h                          ; eb e9
     7176    jmp short 050e9h                          ; eb e9
    71577177    test bx, bx                               ; 85 db
    7158     jne short 050dah                          ; 75 06
     7178    jne short 0510ah                          ; 75 06
    71597179    mov ax, strict word 00046h                ; b8 46 00
    7160     call 04ea1h                               ; e8 c7 fd
     7180    call 04ed1h                               ; e8 c7 fd
    71617181    mov bx, strict word 0ffffh                ; bb ff ff
    71627182    mov dx, strict word 00064h                ; ba 64 00
     
    71657185    ; sub ah, ah                                ; 2a e4
    71667186    test AL, strict byte 001h                 ; a8 01
    7167     jne short 050f4h                          ; 75 0d
     7187    jne short 05124h                          ; 75 0d
    71687188    dec bx                                    ; 4b
    71697189    test bx, bx                               ; 85 db
    7170     jbe short 050f4h                          ; 76 08
     7190    jbe short 05124h                          ; 76 08
    71717191    mov AL, strict byte 071h                  ; b0 71
    71727192    mov dx, 00080h                            ; ba 80 00
    71737193    out DX, AL                                ; ee
    7174     jmp short 050ddh                          ; eb e9
     7194    jmp short 0510dh                          ; eb e9
    71757195    test bx, bx                               ; 85 db
    7176     jne short 050feh                          ; 75 06
     7196    jne short 0512eh                          ; 75 06
    71777197    mov ax, strict word 00046h                ; b8 46 00
    7178     call 04ea1h                               ; e8 a3 fd
     7198    call 04ed1h                               ; e8 a3 fd
    71797199    mov dx, strict word 00060h                ; ba 60 00
    71807200    in AL, DX                                 ; ec
     
    71827202    ; sub ah, ah                                ; 2a e4
    71837203    cmp ax, 000fah                            ; 3d fa 00
    7184     je short 0510fh                           ; 74 06
     7204    je short 0513fh                           ; 74 06
    71857205    mov ax, 003e4h                            ; b8 e4 03
    7186     call 04ea1h                               ; e8 92 fd
     7206    call 04ed1h                               ; e8 92 fd
    71877207    mov AL, strict byte 0a8h                  ; b0 a8
    71887208    mov dx, strict word 00064h                ; ba 64 00
    71897209    out DX, AL                                ; ee
    71907210    xor ax, ax                                ; 31 c0
    7191     call 06566h                               ; e8 4c 14
     7211    call 06596h                               ; e8 4c 14
    71927212    mov sp, bp                                ; 89 ec
    71937213    pop bp                                    ; 5d
    71947214    retn                                      ; c3
    7195 enqueue_key_:                                ; 0xf511e LB 0x99
     7215enqueue_key_:                                ; 0xf514e LB 0x99
    71967216    push bp                                   ; 55
    71977217    mov bp, sp                                ; 89 e5
     
    72057225    mov dx, strict word 0001ah                ; ba 1a 00
    72067226    mov ax, strict word 00040h                ; b8 40 00
    7207     call 016d4h                               ; e8 a0 c5
     7227    call 016d4h                               ; e8 70 c5
    72087228    mov di, ax                                ; 89 c7
    72097229    mov dx, strict word 0001ch                ; ba 1c 00
    72107230    mov ax, strict word 00040h                ; b8 40 00
    7211     call 016d4h                               ; e8 95 c5
     7231    call 016d4h                               ; e8 65 c5
    72127232    mov si, ax                                ; 89 c6
    72137233    lea cx, [si+002h]                         ; 8d 4c 02
    72147234    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7215     jc short 0514ch                           ; 72 03
     7235    jc short 0517ch                           ; 72 03
    72167236    mov cx, strict word 0001eh                ; b9 1e 00
    72177237    cmp cx, di                                ; 39 f9
    7218     jne short 05154h                          ; 75 04
     7238    jne short 05184h                          ; 75 04
    72197239    xor ax, ax                                ; 31 c0
    7220     jmp short 05179h                          ; eb 25
     7240    jmp short 051a9h                          ; eb 25
    72217241    xor bh, bh                                ; 30 ff
    72227242    mov dx, si                                ; 89 f2
    72237243    mov ax, strict word 00040h                ; b8 40 00
    7224     call 016c6h                               ; e8 68 c5
     7244    call 016c6h                               ; e8 38 c5
    72257245    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    72267246    lea dx, [si+001h]                         ; 8d 54 01
    72277247    mov ax, strict word 00040h                ; b8 40 00
    7228     call 016c6h                               ; e8 5b c5
     7248    call 016c6h                               ; e8 2b c5
    72297249    mov bx, cx                                ; 89 cb
    72307250    mov dx, strict word 0001ch                ; ba 1c 00
    72317251    mov ax, strict word 00040h                ; b8 40 00
    7232     call 016e2h                               ; e8 6c c5
     7252    call 016e2h                               ; e8 3c c5
    72337253    mov ax, strict word 00001h                ; b8 01 00
    72347254    lea sp, [bp-008h]                         ; 8d 66 f8
     
    72397259    pop bp                                    ; 5d
    72407260    retn                                      ; c3
    7241     aam 0c6h                                  ; d4 c6
    7242     lds di, [bp+si-04948h]                    ; c5 ba b8 b6
    7243     stosb                                     ; aa
    7244     popfw                                     ; 9d
    7245     push sp                                   ; 54
    7246     push bx                                   ; 53
    7247     inc si                                    ; 46
    7248     inc bp                                    ; 45
    7249     cmp bh, byte [bx+si]                      ; 3a 38
    7250     sub bl, byte [ss:di]                      ; 36 2a 1d
    7251     fist word [si-058h]                       ; df 54 a8
    7252     push dx                                   ; 52
    7253     push ax                                   ; 50
    7254     push dx                                   ; 52
    7255     push ax                                   ; 50
    7256     push dx                                   ; 52
    7257     xor word [bp+di+026h], dx                 ; 31 53 26
    7258     push dx                                   ; 52
    7259     scasw                                     ; af
    7260     push bx                                   ; 53
    7261     sbb ax, 0c554h                            ; 1d 54 c5
    7262     push sp                                   ; 54
    7263     mov ax, word [0ec54h]                     ; a1 54 ec
    7264     push dx                                   ; 52
    7265     push ax                                   ; 50
    7266     push dx                                   ; 52
    7267     push ax                                   ; 50
    7268     push dx                                   ; 52
    7269     jo short 05202h                           ; 70 53
    7270     inc dx                                    ; 42
    7271     push dx                                   ; 52
    7272     db  0feh
    7273     push bx                                   ; 53
    7274     db  082h, 054h, 0beh, 054h
    7275     ; adc byte [si-042h], 054h                  ; 82 54 be 54
    7276 _int09_function:                             ; 0xf51b7 LB 0x474
     7261    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
     7262    db  01dh, 00fh, 055h, 0d8h, 052h, 080h, 052h, 080h, 052h, 061h, 053h, 056h, 052h, 0dfh, 053h, 04dh
     7263    db  054h, 0f5h, 054h, 0d1h, 054h, 01ch, 053h, 080h, 052h, 080h, 052h, 0a0h, 053h, 072h, 052h, 02eh
     7264    db  054h, 0b2h, 054h, 0eeh, 054h
     7265_int09_function:                             ; 0xf51e7 LB 0x474
    72777266    push bp                                   ; 55
    72787267    mov bp, sp                                ; 89 e5
     
    72827271    mov byte [bp-00ch], al                    ; 88 46 f4
    72837272    test al, al                               ; 84 c0
    7284     jne short 051e1h                          ; 75 19
     7273    jne short 05211h                          ; 75 19
    72857274    mov bx, 00da0h                            ; bb a0 0d
    72867275    mov cx, ds                                ; 8c d9
    72877276    mov ax, strict word 00004h                ; b8 04 00
    7288     call 01999h                               ; e8 c6 c7
     7277    call 01999h                               ; e8 96 c7
    72897278    push 00587h                               ; 68 87 05
    72907279    push strict byte 00004h                   ; 6a 04
    7291     call 019dah                               ; e8 ff c7
     7280    call 019dah                               ; e8 cf c7
    72927281    add sp, strict byte 00004h                ; 83 c4 04
    7293     jmp near 052a2h                           ; e9 c1 00
     7282    jmp near 052d2h                           ; e9 c1 00
    72947283    mov dx, strict word 00018h                ; ba 18 00
    72957284    mov ax, strict word 00040h                ; b8 40 00
    7296     call 016b8h                               ; e8 ce c4
     7285    call 016b8h                               ; e8 9e c4
    72977286    mov byte [bp-006h], al                    ; 88 46 fa
    72987287    mov byte [bp-00ah], al                    ; 88 46 f6
    72997288    mov dx, 00096h                            ; ba 96 00
    73007289    mov ax, strict word 00040h                ; b8 40 00
    7301     call 016b8h                               ; e8 bf c4
     7290    call 016b8h                               ; e8 8f c4
    73027291    mov byte [bp-00eh], al                    ; 88 46 f2
    73037292    mov byte [bp-004h], al                    ; 88 46 fc
    73047293    mov dx, strict word 00017h                ; ba 17 00
    73057294    mov ax, strict word 00040h                ; b8 40 00
    7306     call 016b8h                               ; e8 b0 c4
     7295    call 016b8h                               ; e8 80 c4
    73077296    mov byte [bp-010h], al                    ; 88 46 f0
    73087297    mov byte [bp-008h], al                    ; 88 46 f8
     
    73117300    pop ES                                    ; 07
    73127301    mov cx, strict word 00012h                ; b9 12 00
    7313     mov di, 05182h                            ; bf 82 51
     7302    mov di, 051b2h                            ; bf b2 51
    73147303    repne scasb                               ; f2 ae
    73157304    sal cx, 1                                 ; d1 e1
    73167305    mov di, cx                                ; 89 cf
    7317     mov ax, word [cs:di+05193h]               ; 2e 8b 85 93 51
     7306    mov ax, word [cs:di+051c3h]               ; 2e 8b 85 c3 51
    73187307    jmp ax                                    ; ff e0
    73197308    xor byte [bp-008h], 040h                  ; 80 76 f8 40
     
    73217310    mov dx, strict word 00017h                ; ba 17 00
    73227311    mov ax, strict word 00040h                ; b8 40 00
    7323     call 016c6h                               ; e8 8f c4
     7312    call 016c6h                               ; e8 5f c4
    73247313    or byte [bp-00ah], 040h                   ; 80 4e f6 40
    73257314    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    7326     jmp near 054b2h                           ; e9 70 02
     7315    jmp near 054e2h                           ; e9 70 02
    73277316    mov al, byte [bp-006h]                    ; 8a 46 fa
    73287317    and AL, strict byte 0bfh                  ; 24 bf
    73297318    mov byte [bp-00ah], al                    ; 88 46 f6
    73307319    movzx bx, al                              ; 0f b6 d8
    7331     jmp near 054b2h                           ; e9 62 02
     7320    jmp near 054e2h                           ; e9 62 02
    73327321    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7333     jne near 05284h                           ; 0f 85 2c 00
     7322    jne near 052b4h                           ; 0f 85 2c 00
    73347323    mov al, byte [bp-00ch]                    ; 8a 46 f4
    73357324    and AL, strict byte 07fh                  ; 24 7f
     
    73417330    mov dl, al                                ; 88 c2
    73427331    test byte [bp-00ch], 080h                 ; f6 46 f4 80
    7343     je short 05274h                           ; 74 07
     7332    je short 052a4h                           ; 74 07
    73447333    not al                                    ; f6 d0
    73457334    and byte [bp-008h], al                    ; 20 46 f8
    7346     jmp short 05277h                          ; eb 03
     7335    jmp short 052a7h                          ; eb 03
    73477336    or byte [bp-008h], al                     ; 08 46 f8
    73487337    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    73497338    mov dx, strict word 00017h                ; ba 17 00
    73507339    mov ax, strict word 00040h                ; b8 40 00
    7351     call 016c6h                               ; e8 42 c4
     7340    call 016c6h                               ; e8 12 c4
    73527341    mov al, byte [bp-00ch]                    ; 8a 46 f4
    73537342    and AL, strict byte 07fh                  ; 24 7f
    73547343    cmp AL, strict byte 01dh                  ; 3c 1d
    7355     je short 05291h                           ; 74 04
     7344    je short 052c1h                           ; 74 04
    73567345    and byte [bp-004h], 0feh                  ; 80 66 fc fe
    73577346    and byte [bp-004h], 0fdh                  ; 80 66 fc fd
     
    73597348    mov dx, 00096h                            ; ba 96 00
    73607349    mov ax, strict word 00040h                ; b8 40 00
    7361     call 016c6h                               ; e8 24 c4
     7350    call 016c6h                               ; e8 f4 c3
    73627351    lea sp, [bp-002h]                         ; 8d 66 fe
    73637352    pop di                                    ; 5f
     
    73657354    retn                                      ; c3
    73667355    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7367     jne short 05284h                          ; 75 d6
     7356    jne short 052b4h                          ; 75 d6
    73687357    mov al, byte [bp-010h]                    ; 8a 46 f0
    73697358    or AL, strict byte 004h                   ; 0c 04
     
    73727361    mov dx, strict word 00017h                ; ba 17 00
    73737362    mov ax, strict word 00040h                ; b8 40 00
    7374     call 016c6h                               ; e8 04 c4
     7363    call 016c6h                               ; e8 d4 c3
    73757364    mov al, byte [bp-00eh]                    ; 8a 46 f2
    73767365    test AL, strict byte 002h                 ; a8 02
    7377     je short 052d6h                           ; 74 0d
     7366    je short 05306h                           ; 74 0d
    73787367    or AL, strict byte 004h                   ; 0c 04
    73797368    mov byte [bp-004h], al                    ; 88 46 fc
    73807369    movzx bx, al                              ; 0f b6 d8
    73817370    mov dx, 00096h                            ; ba 96 00
    7382     jmp short 052e4h                          ; eb 0e
     7371    jmp short 05314h                          ; eb 0e
    73837372    mov al, byte [bp-006h]                    ; 8a 46 fa
    73847373    or AL, strict byte 001h                   ; 0c 01
     
    73877376    mov dx, strict word 00018h                ; ba 18 00
    73887377    mov ax, strict word 00040h                ; b8 40 00
    7389     call 016c6h                               ; e8 dc c3
    7390     jmp short 05284h                          ; eb 98
     7378    call 016c6h                               ; e8 ac c3
     7379    jmp short 052b4h                          ; eb 98
    73917380    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7392     jne short 05284h                          ; 75 92
     7381    jne short 052b4h                          ; 75 92
    73937382    mov al, byte [bp-010h]                    ; 8a 46 f0
    73947383    and AL, strict byte 0fbh                  ; 24 fb
     
    73977386    mov dx, strict word 00017h                ; ba 17 00
    73987387    mov ax, strict word 00040h                ; b8 40 00
    7399     call 016c6h                               ; e8 c0 c3
     7388    call 016c6h                               ; e8 90 c3
    74007389    mov al, byte [bp-00eh]                    ; 8a 46 f2
    74017390    test AL, strict byte 002h                 ; a8 02
    7402     je short 0531ah                           ; 74 0d
     7391    je short 0534ah                           ; 74 0d
    74037392    and AL, strict byte 0fbh                  ; 24 fb
    74047393    mov byte [bp-004h], al                    ; 88 46 fc
    74057394    movzx bx, al                              ; 0f b6 d8
    74067395    mov dx, 00096h                            ; ba 96 00
    7407     jmp short 05328h                          ; eb 0e
     7396    jmp short 05358h                          ; eb 0e
    74087397    mov al, byte [bp-006h]                    ; 8a 46 fa
    74097398    and AL, strict byte 0feh                  ; 24 fe
     
    74127401    mov dx, strict word 00018h                ; ba 18 00
    74137402    mov ax, strict word 00040h                ; b8 40 00
    7414     call 016c6h                               ; e8 98 c3
    7415     jmp near 05284h                           ; e9 53 ff
     7403    call 016c6h                               ; e8 68 c3
     7404    jmp near 052b4h                           ; e9 53 ff
    74167405    mov al, byte [bp-010h]                    ; 8a 46 f0
    74177406    or AL, strict byte 008h                   ; 0c 08
     
    74207409    mov dx, strict word 00017h                ; ba 17 00
    74217410    mov ax, strict word 00040h                ; b8 40 00
    7422     call 016c6h                               ; e8 81 c3
     7411    call 016c6h                               ; e8 51 c3
    74237412    mov al, byte [bp-00eh]                    ; 8a 46 f2
    74247413    test AL, strict byte 002h                 ; a8 02
    7425     je short 05359h                           ; 74 0d
     7414    je short 05389h                           ; 74 0d
    74267415    or AL, strict byte 008h                   ; 0c 08
    74277416    mov byte [bp-004h], al                    ; 88 46 fc
    74287417    movzx bx, al                              ; 0f b6 d8
    74297418    mov dx, 00096h                            ; ba 96 00
    7430     jmp short 05367h                          ; eb 0e
     7419    jmp short 05397h                          ; eb 0e
    74317420    mov al, byte [bp-006h]                    ; 8a 46 fa
    74327421    or AL, strict byte 002h                   ; 0c 02
     
    74357424    mov dx, strict word 00018h                ; ba 18 00
    74367425    mov ax, strict word 00040h                ; b8 40 00
    7437     call 016c6h                               ; e8 59 c3
    7438     jmp near 05284h                           ; e9 14 ff
     7426    call 016c6h                               ; e8 29 c3
     7427    jmp near 052b4h                           ; e9 14 ff
    74397428    mov al, byte [bp-010h]                    ; 8a 46 f0
    74407429    and AL, strict byte 0f7h                  ; 24 f7
     
    74437432    mov dx, strict word 00017h                ; ba 17 00
    74447433    mov ax, strict word 00040h                ; b8 40 00
    7445     call 016c6h                               ; e8 42 c3
     7434    call 016c6h                               ; e8 12 c3
    74467435    mov al, byte [bp-00eh]                    ; 8a 46 f2
    74477436    test AL, strict byte 002h                 ; a8 02
    7448     je short 05398h                           ; 74 0d
     7437    je short 053c8h                           ; 74 0d
    74497438    and AL, strict byte 0f7h                  ; 24 f7
    74507439    mov byte [bp-004h], al                    ; 88 46 fc
    74517440    movzx bx, al                              ; 0f b6 d8
    74527441    mov dx, 00096h                            ; ba 96 00
    7453     jmp short 053a6h                          ; eb 0e
     7442    jmp short 053d6h                          ; eb 0e
    74547443    mov al, byte [bp-006h]                    ; 8a 46 fa
    74557444    and AL, strict byte 0fdh                  ; 24 fd
     
    74587447    mov dx, strict word 00018h                ; ba 18 00
    74597448    mov ax, strict word 00040h                ; b8 40 00
    7460     call 016c6h                               ; e8 1a c3
    7461     jmp near 05284h                           ; e9 d5 fe
     7449    call 016c6h                               ; e8 ea c2
     7450    jmp near 052b4h                           ; e9 d5 fe
    74627451    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7463     jne short 053d1h                          ; 75 1c
     7452    jne short 05401h                          ; 75 1c
    74647453    mov al, byte [bp-006h]                    ; 8a 46 fa
    74657454    or AL, strict byte 020h                   ; 0c 20
     
    74687457    mov dx, strict word 00018h                ; ba 18 00
    74697458    mov ax, strict word 00040h                ; b8 40 00
    7470     call 016c6h                               ; e8 fd c2
     7459    call 016c6h                               ; e8 cd c2
    74717460    mov al, byte [bp-010h]                    ; 8a 46 f0
    74727461    xor AL, strict byte 020h                  ; 34 20
    7473     jmp near 05470h                           ; e9 9f 00
     7462    jmp near 054a0h                           ; e9 9f 00
    74747463    mov al, byte [bp-006h]                    ; 8a 46 fa
    74757464    or AL, strict byte 008h                   ; 0c 08
     
    74787467    mov dx, strict word 00018h                ; ba 18 00
    74797468    mov ax, strict word 00040h                ; b8 40 00
    7480     call 016c6h                               ; e8 e1 c2
     7469    call 016c6h                               ; e8 b1 c2
    74817470    mov AL, strict byte 0aeh                  ; b0 ae
    74827471    mov dx, strict word 00064h                ; ba 64 00
    74837472    out DX, AL                                ; ee
    7484     call 0e034h                               ; e8 46 8c
     7473    call 0e034h                               ; e8 16 8c
    74857474    mov dx, strict word 00018h                ; ba 18 00
    74867475    mov ax, strict word 00040h                ; b8 40 00
    7487     call 016b8h                               ; e8 c1 c2
     7476    call 016b8h                               ; e8 91 c2
    74887477    test AL, strict byte 008h                 ; a8 08
    7489     jne short 053eeh                          ; 75 f3
    7490     jmp near 05284h                           ; e9 86 fe
     7478    jne short 0541eh                          ; 75 f3
     7479    jmp near 052b4h                           ; e9 86 fe
    74917480    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7492     jne near 05284h                           ; 0f 85 7e fe
     7481    jne near 052b4h                           ; 0f 85 7e fe
    74937482    mov al, byte [bp-006h]                    ; 8a 46 fa
    74947483    and AL, strict byte 0dfh                  ; 24 df
     
    74977486    mov dx, strict word 00018h                ; ba 18 00
    74987487    mov ax, strict word 00040h                ; b8 40 00
    7499     call 016c6h                               ; e8 ac c2
    7500     jmp near 05284h                           ; e9 67 fe
     7488    call 016c6h                               ; e8 7c c2
     7489    jmp near 052b4h                           ; e9 67 fe
    75017490    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7502     je short 05457h                           ; 74 34
     7491    je short 05487h                           ; 74 34
    75037492    mov dx, strict word 0001ah                ; ba 1a 00
    75047493    mov ax, strict word 00040h                ; b8 40 00
    7505     call 016d4h                               ; e8 a8 c2
     7494    call 016d4h                               ; e8 78 c2
    75067495    mov bx, ax                                ; 89 c3
    75077496    mov dx, strict word 0001ch                ; ba 1c 00
    75087497    mov ax, strict word 00040h                ; b8 40 00
    7509     call 016e2h                               ; e8 ab c2
     7498    call 016e2h                               ; e8 7b c2
    75107499    mov bx, 00080h                            ; bb 80 00
    75117500    mov dx, strict word 00071h                ; ba 71 00
    75127501    mov ax, strict word 00040h                ; b8 40 00
    7513     call 016c6h                               ; e8 83 c2
     7502    call 016c6h                               ; e8 53 c2
    75147503    mov AL, strict byte 0aeh                  ; b0 ae
    75157504    mov dx, strict word 00064h                ; ba 64 00
     
    75207509    xor dx, dx                                ; 31 d2
    75217510    xor ax, ax                                ; 31 c0
    7522     call 0511eh                               ; e8 ca fc
    7523     jmp near 05284h                           ; e9 2d fe
     7511    call 0514eh                               ; e8 ca fc
     7512    jmp near 052b4h                           ; e9 2d fe
    75247513    mov al, byte [bp-006h]                    ; 8a 46 fa
    75257514    or AL, strict byte 010h                   ; 0c 10
     
    75287517    mov dx, strict word 00018h                ; ba 18 00
    75297518    mov ax, strict word 00040h                ; b8 40 00
    7530     call 016c6h                               ; e8 5b c2
     7519    call 016c6h                               ; e8 2b c2
    75317520    mov al, byte [bp-010h]                    ; 8a 46 f0
    75327521    xor AL, strict byte 010h                  ; 34 10
     
    75357524    mov dx, strict word 00017h                ; ba 17 00
    75367525    mov ax, strict word 00040h                ; b8 40 00
    7537     call 016c6h                               ; e8 47 c2
    7538     jmp near 05284h                           ; e9 02 fe
     7526    call 016c6h                               ; e8 17 c2
     7527    jmp near 052b4h                           ; e9 02 fe
    75397528    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7540     jne near 05284h                           ; 0f 85 fa fd
     7529    jne near 052b4h                           ; 0f 85 fa fd
    75417530    mov al, byte [bp-006h]                    ; 8a 46 fa
    75427531    and AL, strict byte 0efh                  ; 24 ef
     
    75457534    mov dx, strict word 00018h                ; ba 18 00
    75467535    mov ax, strict word 00040h                ; b8 40 00
    7547     call 016c6h                               ; e8 28 c2
    7548     jmp near 05284h                           ; e9 e3 fd
     7536    call 016c6h                               ; e8 f8 c1
     7537    jmp near 052b4h                           ; e9 e3 fd
    75497538    mov al, byte [bp-006h]                    ; 8a 46 fa
    75507539    test AL, strict byte 004h                 ; a8 04
    7551     jne near 05284h                           ; 0f 85 da fd
     7540    jne near 052b4h                           ; 0f 85 da fd
    75527541    or AL, strict byte 004h                   ; 0c 04
    75537542    mov byte [bp-00ah], al                    ; 88 46 f6
     
    75557544    mov dx, strict word 00018h                ; ba 18 00
    75567545    mov ax, strict word 00040h                ; b8 40 00
    7557     call 016c6h                               ; e8 0b c2
    7558     jmp near 05284h                           ; e9 c6 fd
     7546    call 016c6h                               ; e8 db c1
     7547    jmp near 052b4h                           ; e9 c6 fd
    75597548    mov al, byte [bp-006h]                    ; 8a 46 fa
    75607549    and AL, strict byte 0fbh                  ; 24 fb
    7561     jmp short 054ach                          ; eb e7
     7550    jmp short 054dch                          ; eb e7
    75627551    mov al, byte [bp-010h]                    ; 8a 46 f0
    75637552    and AL, strict byte 00ch                  ; 24 0c
    75647553    cmp AL, strict byte 00ch                  ; 3c 0c
    7565     jne short 054dfh                          ; 75 11
     7554    jne short 0550fh                          ; 75 11
    75667555    mov bx, 01234h                            ; bb 34 12
    75677556    mov dx, strict word 00072h                ; ba 72 00
    75687557    mov ax, strict word 00040h                ; b8 40 00
    7569     call 016e2h                               ; e8 08 c2
     7558    call 016e2h                               ; e8 d8 c1
    75707559    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    75717560    test byte [bp-00ah], 008h                 ; f6 46 f6 08
    7572     je short 054f3h                           ; 74 0e
     7561    je short 05523h                           ; 74 0e
    75737562    and byte [bp-00ah], 0f7h                  ; 80 66 f6 f7
    75747563    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    75757564    mov dx, strict word 00018h                ; ba 18 00
    7576     jmp near 0529ch                           ; e9 a9 fd
     7565    jmp near 052cch                           ; e9 a9 fd
    75777566    mov al, byte [bp-00ch]                    ; 8a 46 f4
    75787567    test AL, strict byte 080h                 ; a8 80
    7579     je short 05531h                           ; 74 37
     7568    je short 05561h                           ; 74 37
    75807569    cmp AL, strict byte 0fah                  ; 3c fa
    7581     jne short 0550eh                          ; 75 10
     7570    jne short 0553eh                          ; 75 10
    75827571    mov dx, 00097h                            ; ba 97 00
    75837572    mov ax, strict word 00040h                ; b8 40 00
    7584     call 016b8h                               ; e8 b1 c1
     7573    call 016b8h                               ; e8 81 c1
    75857574    mov dl, al                                ; 88 c2
    75867575    or dl, 010h                               ; 80 ca 10
    7587     jmp short 05522h                          ; eb 14
     7576    jmp short 05552h                          ; eb 14
    75887577    cmp AL, strict byte 0feh                  ; 3c fe
    7589     jne near 05284h                           ; 0f 85 70 fd
     7578    jne near 052b4h                           ; 0f 85 70 fd
    75907579    mov dx, 00097h                            ; ba 97 00
    75917580    mov ax, strict word 00040h                ; b8 40 00
    7592     call 016b8h                               ; e8 9b c1
     7581    call 016b8h                               ; e8 6b c1
    75937582    mov dl, al                                ; 88 c2
    75947583    or dl, 020h                               ; 80 ca 20
     
    75967585    mov dx, 00097h                            ; ba 97 00
    75977586    mov ax, strict word 00040h                ; b8 40 00
    7598     call 016c6h                               ; e8 98 c1
    7599     jmp near 05284h                           ; e9 53 fd
     7587    call 016c6h                               ; e8 68 c1
     7588    jmp near 052b4h                           ; e9 53 fd
    76007589    cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
    7601     jbe short 05555h                          ; 76 1e
     7590    jbe short 05585h                          ; 76 1e
    76027591    mov bx, 00da0h                            ; bb a0 0d
    76037592    mov cx, ds                                ; 8c d9
    76047593    mov ax, strict word 00004h                ; b8 04 00
    7605     call 01999h                               ; e8 57 c4
     7594    call 01999h                               ; e8 27 c4
    76067595    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    76077596    push ax                                   ; 50
    76087597    push 005a1h                               ; 68 a1 05
    76097598    push strict byte 00004h                   ; 6a 04
    7610     call 019dah                               ; e8 8b c4
     7599    call 019dah                               ; e8 5b c4
    76117600    add sp, strict byte 00006h                ; 83 c4 06
    7612     jmp near 052a2h                           ; e9 4d fd
     7601    jmp near 052d2h                           ; e9 4d fd
    76137602    mov al, byte [bp-008h]                    ; 8a 46 f8
    76147603    test AL, strict byte 008h                 ; a8 08
    7615     je short 0556eh                           ; 74 12
     7604    je short 0559eh                           ; 74 12
    76167605    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76177606    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    76187607    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
    76197608    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
    7620     jmp near 055fch                           ; e9 8e 00
     7609    jmp near 0562ch                           ; e9 8e 00
    76217610    test AL, strict byte 004h                 ; a8 04
    7622     je short 05584h                           ; 74 12
     7611    je short 055b4h                           ; 74 12
    76237612    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76247613    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    76257614    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
    76267615    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
    7627     jmp near 055fch                           ; e9 78 00
     7616    jmp near 0562ch                           ; e9 78 00
    76287617    mov al, byte [bp-004h]                    ; 8a 46 fc
    76297618    and AL, strict byte 002h                  ; 24 02
    76307619    test al, al                               ; 84 c0
    7631     jbe short 055a2h                          ; 76 15
     7620    jbe short 055d2h                          ; 76 15
    76327621    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76337622    cmp AL, strict byte 047h                  ; 3c 47
    7634     jc short 055a2h                           ; 72 0e
     7623    jc short 055d2h                           ; 72 0e
    76357624    cmp AL, strict byte 053h                  ; 3c 53
    7636     jnbe short 055a2h                         ; 77 0a
     7625    jnbe short 055d2h                         ; 77 0a
    76377626    mov DL, strict byte 0e0h                  ; b2 e0
    76387627    movzx bx, al                              ; 0f b6 d8
    76397628    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7640     jmp short 055f8h                          ; eb 56
     7629    jmp short 05628h                          ; eb 56
    76417630    test byte [bp-008h], 003h                 ; f6 46 f8 03
    7642     je short 055d6h                           ; 74 2e
     7631    je short 05606h                           ; 74 2e
    76437632    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76447633    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     
    76467635    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    76477636    test dx, ax                               ; 85 c2
    7648     je short 055c6h                           ; 74 0a
     7637    je short 055f6h                           ; 74 0a
    76497638    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    76507639    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
    7651     jmp short 055ceh                          ; eb 08
     7640    jmp short 055feh                          ; eb 08
    76527641    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    76537642    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    76547643    shr ax, 008h                              ; c1 e8 08
    76557644    mov byte [bp-00ch], al                    ; 88 46 f4
    7656     jmp short 05602h                          ; eb 2c
     7645    jmp short 05632h                          ; eb 2c
    76577646    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    76587647    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     
    76607649    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    76617650    test dx, ax                               ; 85 c2
    7662     je short 055f4h                           ; 74 0a
     7651    je short 05624h                           ; 74 0a
    76637652    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
    76647653    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
    7665     jmp short 055fch                          ; eb 08
     7654    jmp short 0562ch                          ; eb 08
    76667655    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
    76677656    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     
    76697658    mov byte [bp-00ch], al                    ; 88 46 f4
    76707659    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    7671     jne short 05622h                          ; 75 1a
     7660    jne short 05652h                          ; 75 1a
    76727661    test dl, dl                               ; 84 d2
    7673     jne short 05622h                          ; 75 16
     7662    jne short 05652h                          ; 75 16
    76747663    mov bx, 00da0h                            ; bb a0 0d
    76757664    mov cx, ds                                ; 8c d9
    76767665    mov ax, strict word 00004h                ; b8 04 00
    7677     call 01999h                               ; e8 82 c3
     7666    call 01999h                               ; e8 52 c3
    76787667    push 005d8h                               ; 68 d8 05
    76797668    push strict byte 00004h                   ; 6a 04
    7680     call 019dah                               ; e8 bb c3
     7669    call 019dah                               ; e8 8b c3
    76817670    add sp, strict byte 00004h                ; 83 c4 04
    76827671    xor dh, dh                                ; 30 f6
    76837672    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    7684     jmp near 05451h                           ; e9 26 fe
    7685 dequeue_key_:                                ; 0xf562b LB 0x94
     7673    jmp near 05481h                           ; e9 26 fe
     7674dequeue_key_:                                ; 0xf565b LB 0x94
    76867675    push bp                                   ; 55
    76877676    mov bp, sp                                ; 89 e5
     
    76967685    mov dx, strict word 0001ah                ; ba 1a 00
    76977686    mov ax, strict word 00040h                ; b8 40 00
    7698     call 016d4h                               ; e8 8f c0
     7687    call 016d4h                               ; e8 5f c0
    76997688    mov bx, ax                                ; 89 c3
    77007689    mov dx, strict word 0001ch                ; ba 1c 00
    77017690    mov ax, strict word 00040h                ; b8 40 00
    7702     call 016d4h                               ; e8 84 c0
     7691    call 016d4h                               ; e8 54 c0
    77037692    cmp bx, ax                                ; 39 c3
    7704     je short 05691h                           ; 74 3d
     7693    je short 056c1h                           ; 74 3d
    77057694    mov dx, bx                                ; 89 da
    77067695    mov ax, strict word 00040h                ; b8 40 00
    7707     call 016b8h                               ; e8 5c c0
     7696    call 016b8h                               ; e8 2c c0
    77087697    mov cl, al                                ; 88 c1
    77097698    lea dx, [bx+001h]                         ; 8d 57 01
    77107699    mov ax, strict word 00040h                ; b8 40 00
    7711     call 016b8h                               ; e8 51 c0
     7700    call 016b8h                               ; e8 21 c0
    77127701    mov es, [bp-008h]                         ; 8e 46 f8
    77137702    mov byte [es:si], cl                      ; 26 88 0c
     
    77157704    mov byte [es:di], al                      ; 26 88 05
    77167705    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7717     je short 0568ch                           ; 74 13
     7706    je short 056bch                           ; 74 13
    77187707    inc bx                                    ; 43
    77197708    inc bx                                    ; 43
    77207709    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7721     jc short 05683h                           ; 72 03
     7710    jc short 056b3h                           ; 72 03
    77227711    mov bx, strict word 0001eh                ; bb 1e 00
    77237712    mov dx, strict word 0001ah                ; ba 1a 00
    77247713    mov ax, strict word 00040h                ; b8 40 00
    7725     call 016e2h                               ; e8 56 c0
     7714    call 016e2h                               ; e8 26 c0
    77267715    mov ax, strict word 00001h                ; b8 01 00
    7727     jmp short 05693h                          ; eb 02
     7716    jmp short 056c3h                          ; eb 02
    77287717    xor ax, ax                                ; 31 c0
    77297718    lea sp, [bp-004h]                         ; 8d 66 fc
     
    77367725    or cl, byte [bx+di]                       ; 0a 09
    77377726    add ax, 00102h                            ; 05 02 01
    7738     add byte [di+059h], bl                    ; 00 5d 59
    7739     jnc short 05702h                          ; 73 57
    7740     mov dx, 00657h                            ; ba 57 06
     7727    add byte [di-05ca7h], cl                  ; 00 8d 59 a3
     7728    push di                                   ; 57
     7729    jmp far 04658h:03657h                     ; ea 57 36 58 46
    77417730    pop ax                                    ; 58
    7742     push SS                                   ; 16
    7743     pop ax                                    ; 58
    7744     inc ax                                    ; 40
    7745     pop ax                                    ; 58
    7746     dec cx                                    ; 49
    7747     pop ax                                    ; 58
    7748     mov dx, 0eb58h                            ; ba 58 eb
    7749     pop ax                                    ; 58
    7750     sbb byte [bx+di+052h], bl                 ; 18 59 52
     7731    jo short 0573bh                           ; 70 58
     7732    jns short 0573dh                          ; 79 58
     7733    jmp far 04859h:01b58h                     ; ea 58 1b 59 48
    77517734    pop cx                                    ; 59
    7752     db  0a0h
    7753     pop cx                                    ; 59
    7754 _int16_function:                             ; 0xf56bf LB 0x2e7
     7735    db  082h, 059h, 0d0h, 059h
     7736    ; sbb byte [bx+di-030h], 059h               ; 82 59 d0 59
     7737_int16_function:                             ; 0xf56ef LB 0x2e7
    77557738    push bp                                   ; 55
    77567739    mov bp, sp                                ; 89 e5
     
    77597742    mov dx, strict word 00017h                ; ba 17 00
    77607743    mov ax, strict word 00040h                ; b8 40 00
    7761     call 016b8h                               ; e8 e9 bf
     7744    call 016b8h                               ; e8 b9 bf
    77627745    mov cl, al                                ; 88 c1
    77637746    mov bh, al                                ; 88 c7
    77647747    mov dx, 00097h                            ; ba 97 00
    77657748    mov ax, strict word 00040h                ; b8 40 00
    7766     call 016b8h                               ; e8 dc bf
     7749    call 016b8h                               ; e8 ac bf
    77677750    mov bl, al                                ; 88 c3
    77687751    movzx dx, cl                              ; 0f b6 d1
     
    77737756    xor al, dl                                ; 30 d0
    77747757    test ax, ax                               ; 85 c0
    7775     je short 05751h                           ; 74 60
     7758    je short 05781h                           ; 74 60
    77767759    cli                                       ; fa
    77777760    mov AL, strict byte 0edh                  ; b0 ed
     
    77837766    ; sub ah, ah                                ; 2a e4
    77847767    test AL, strict byte 001h                 ; a8 01
    7785     jne short 0570ah                          ; 75 08
     7768    jne short 0573ah                          ; 75 08
    77867769    mov AL, strict byte 021h                  ; b0 21
    77877770    mov dx, 00080h                            ; ba 80 00
    77887771    out DX, AL                                ; ee
    7789     jmp short 056f8h                          ; eb ee
     7772    jmp short 05728h                          ; eb ee
    77907773    mov dx, strict word 00060h                ; ba 60 00
    77917774    in AL, DX                                 ; ec
     
    77937776    ; sub ah, ah                                ; 2a e4
    77947777    cmp ax, 000fah                            ; 3d fa 00
    7795     jne short 05750h                          ; 75 3b
     7778    jne short 05780h                          ; 75 3b
    77967779    and bl, 0c8h                              ; 80 e3 c8
    77977780    movzx ax, bh                              ; 0f b6 c7
     
    78097792    ; sub ah, ah                                ; 2a e4
    78107793    test AL, strict byte 001h                 ; a8 01
    7811     jne short 0573fh                          ; 75 08
     7794    jne short 0576fh                          ; 75 08
    78127795    mov AL, strict byte 021h                  ; b0 21
    78137796    mov dx, 00080h                            ; ba 80 00
    78147797    out DX, AL                                ; ee
    7815     jmp short 0572dh                          ; eb ee
     7798    jmp short 0575dh                          ; eb ee
    78167799    mov dx, strict word 00060h                ; ba 60 00
    78177800    in AL, DX                                 ; ec
     
    78217804    mov dx, 00097h                            ; ba 97 00
    78227805    mov ax, strict word 00040h                ; b8 40 00
    7823     call 016c6h                               ; e8 76 bf
     7806    call 016c6h                               ; e8 46 bf
    78247807    sti                                       ; fb
    78257808    mov ax, word [bp+012h]                    ; 8b 46 12
    78267809    shr ax, 008h                              ; c1 e8 08
    78277810    cmp ax, 000a2h                            ; 3d a2 00
    7828     jnbe near 0595dh                          ; 0f 87 ff 01
     7811    jnbe near 0598dh                          ; 0f 87 ff 01
    78297812    push CS                                   ; 0e
    78307813    pop ES                                    ; 07
    78317814    mov cx, strict word 0000ch                ; b9 0c 00
    7832     mov di, 0569ch                            ; bf 9c 56
     7815    mov di, 056cch                            ; bf cc 56
    78337816    repne scasb                               ; f2 ae
    78347817    sal cx, 1                                 ; d1 e1
    78357818    mov di, cx                                ; 89 cf
    7836     mov ax, word [cs:di+056a7h]               ; 2e 8b 85 a7 56
     7819    mov ax, word [cs:di+056d7h]               ; 2e 8b 85 d7 56
    78377820    jmp ax                                    ; ff e0
    78387821    push strict byte 00001h                   ; 6a 01
     
    78417824    mov dx, ss                                ; 8c d2
    78427825    lea ax, [bp-006h]                         ; 8d 46 fa
    7843     call 0562bh                               ; e8 a9 fe
     7826    call 0565bh                               ; e8 a9 fe
    78447827    test ax, ax                               ; 85 c0
    7845     jne short 05791h                          ; 75 0b
     7828    jne short 057c1h                          ; 75 0b
    78467829    push 0060fh                               ; 68 0f 06
    78477830    push strict byte 00007h                   ; 6a 07
    7848     call 019dah                               ; e8 4c c2
     7831    call 019dah                               ; e8 1c c2
    78497832    add sp, strict byte 00004h                ; 83 c4 04
    78507833    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7851     je short 0579dh                           ; 74 06
     7834    je short 057cdh                           ; 74 06
    78527835    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7853     je short 057a3h                           ; 74 06
     7836    je short 057d3h                           ; 74 06
    78547837    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7855     jne short 057a7h                          ; 75 04
     7838    jne short 057d7h                          ; 75 04
    78567839    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    78577840    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    78607843    or dx, ax                                 ; 09 c2
    78617844    mov word [bp+012h], dx                    ; 89 56 12
    7862     jmp near 059a0h                           ; e9 e6 01
     7845    jmp near 059d0h                           ; e9 e6 01
    78637846    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    78647847    push strict byte 00000h                   ; 6a 00
     
    78677850    mov dx, ss                                ; 8c d2
    78687851    lea ax, [bp-006h]                         ; 8d 46 fa
    7869     call 0562bh                               ; e8 5d fe
     7852    call 0565bh                               ; e8 5d fe
    78707853    test ax, ax                               ; 85 c0
    7871     jne short 057d9h                          ; 75 07
     7854    jne short 05809h                          ; 75 07
    78727855    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7873     jmp near 059a0h                           ; e9 c7 01
     7856    jmp near 059d0h                           ; e9 c7 01
    78747857    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7875     je short 057e5h                           ; 74 06
     7858    je short 05815h                           ; 74 06
    78767859    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7877     je short 057ebh                           ; 74 06
     7860    je short 0581bh                           ; 74 06
    78787861    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7879     jne short 057efh                          ; 75 04
     7862    jne short 0581fh                          ; 75 04
    78807863    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    78817864    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    78857868    mov word [bp+012h], dx                    ; 89 56 12
    78867869    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7887     jmp near 059a0h                           ; e9 9a 01
     7870    jmp near 059d0h                           ; e9 9a 01
    78887871    mov dx, strict word 00017h                ; ba 17 00
    78897872    mov ax, strict word 00040h                ; b8 40 00
    7890     call 016b8h                               ; e8 a9 be
     7873    call 016b8h                               ; e8 79 be
    78917874    mov dx, word [bp+012h]                    ; 8b 56 12
    78927875    mov dl, al                                ; 88 c2
    7893     jmp short 057b4h                          ; eb 9e
     7876    jmp short 057e4h                          ; eb 9e
    78947877    mov al, byte [bp+010h]                    ; 8a 46 10
    78957878    movzx dx, al                              ; 0f b6 d0
     
    78977880    shr ax, 008h                              ; c1 e8 08
    78987881    xor ah, ah                                ; 30 e4
    7899     call 0511eh                               ; e8 f7 f8
     7882    call 0514eh                               ; e8 f7 f8
    79007883    test ax, ax                               ; 85 c0
    7901     jne short 05838h                          ; 75 0d
     7884    jne short 05868h                          ; 75 0d
    79027885    mov ax, word [bp+012h]                    ; 8b 46 12
    79037886    xor al, al                                ; 30 c0
    79047887    or AL, strict byte 001h                   ; 0c 01
    79057888    mov word [bp+012h], ax                    ; 89 46 12
    7906     jmp near 059a0h                           ; e9 68 01
     7889    jmp near 059d0h                           ; e9 68 01
    79077890    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    7908     jmp near 059a0h                           ; e9 60 01
     7891    jmp near 059d0h                           ; e9 60 01
    79097892    mov ax, word [bp+012h]                    ; 8b 46 12
    79107893    xor al, al                                ; 30 c0
    79117894    or AL, strict byte 030h                   ; 0c 30
    7912     jmp short 05832h                          ; eb e9
     7895    jmp short 05862h                          ; eb e9
    79137896    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    79147897    xor cx, cx                                ; 31 c9
     
    79237906    ; sub ah, ah                                ; 2a e4
    79247907    test AL, strict byte 001h                 ; a8 01
    7925     jne short 05870h                          ; 75 0d
     7908    jne short 058a0h                          ; 75 0d
    79267909    dec bx                                    ; 4b
    79277910    test bx, bx                               ; 85 db
    7928     jbe short 05870h                          ; 76 08
     7911    jbe short 058a0h                          ; 76 08
    79297912    mov dx, 00080h                            ; ba 80 00
    79307913    in AL, DX                                 ; ec
    79317914    db  02ah, 0e4h
    79327915    ; sub ah, ah                                ; 2a e4
    7933     jmp short 05859h                          ; eb e9
     7916    jmp short 05889h                          ; eb e9
    79347917    test bx, bx                               ; 85 db
    7935     jbe short 058b4h                          ; 76 40
     7918    jbe short 058e4h                          ; 76 40
    79367919    mov dx, strict word 00060h                ; ba 60 00
    79377920    in AL, DX                                 ; ec
     
    79397922    ; sub ah, ah                                ; 2a e4
    79407923    cmp ax, 000fah                            ; 3d fa 00
    7941     jne short 058b4h                          ; 75 35
     7924    jne short 058e4h                          ; 75 35
    79427925    mov bx, strict word 0ffffh                ; bb ff ff
    79437926    mov dx, strict word 00064h                ; ba 64 00
     
    79467929    ; sub ah, ah                                ; 2a e4
    79477930    test AL, strict byte 001h                 ; a8 01
    7948     jne short 05899h                          ; 75 0d
     7931    jne short 058c9h                          ; 75 0d
    79497932    dec bx                                    ; 4b
    79507933    test bx, bx                               ; 85 db
    7951     jbe short 05899h                          ; 76 08
     7934    jbe short 058c9h                          ; 76 08
    79527935    mov dx, 00080h                            ; ba 80 00
    79537936    in AL, DX                                 ; ec
    79547937    db  02ah, 0e4h
    79557938    ; sub ah, ah                                ; 2a e4
    7956     jmp short 05882h                          ; eb e9
     7939    jmp short 058b2h                          ; eb e9
    79577940    test bx, bx                               ; 85 db
    7958     jbe short 058abh                          ; 76 0e
     7941    jbe short 058dbh                          ; 76 0e
    79597942    shr cx, 008h                              ; c1 e9 08
    79607943    mov dx, strict word 00060h                ; ba 60 00
     
    79667949    dec byte [bp-004h]                        ; fe 4e fc
    79677950    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    7968     jnbe short 0587fh                         ; 77 cb
     7951    jnbe short 058afh                         ; 77 cb
    79697952    mov word [bp+00ch], cx                    ; 89 4e 0c
    7970     jmp near 059a0h                           ; e9 e6 00
     7953    jmp near 059d0h                           ; e9 e6 00
    79717954    push strict byte 00001h                   ; 6a 01
    79727955    mov cx, ss                                ; 8c d1
     
    79747957    mov dx, ss                                ; 8c d2
    79757958    lea ax, [bp-006h]                         ; 8d 46 fa
    7976     call 0562bh                               ; e8 62 fd
     7959    call 0565bh                               ; e8 62 fd
    79777960    test ax, ax                               ; 85 c0
    7978     jne short 058d8h                          ; 75 0b
     7961    jne short 05908h                          ; 75 0b
    79797962    push 0060fh                               ; 68 0f 06
    79807963    push strict byte 00007h                   ; 6a 07
    7981     call 019dah                               ; e8 05 c1
     7964    call 019dah                               ; e8 d5 c0
    79827965    add sp, strict byte 00004h                ; 83 c4 04
    79837966    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7984     je near 057a7h                            ; 0f 84 c7 fe
     7967    je near 057d7h                            ; 0f 84 c7 fe
    79857968    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7986     je near 057a3h                            ; 0f 84 bb fe
    7987     jmp near 057a7h                           ; e9 bc fe
     7969    je near 057d3h                            ; 0f 84 bb fe
     7970    jmp near 057d7h                           ; e9 bc fe
    79887971    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    79897972    push strict byte 00000h                   ; 6a 00
     
    79927975    mov dx, ss                                ; 8c d2
    79937976    lea ax, [bp-006h]                         ; 8d 46 fa
    7994     call 0562bh                               ; e8 2c fd
     7977    call 0565bh                               ; e8 2c fd
    79957978    test ax, ax                               ; 85 c0
    7996     je near 057d2h                            ; 0f 84 cd fe
     7979    je near 05802h                            ; 0f 84 cd fe
    79977980    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7998     je near 057efh                            ; 0f 84 e2 fe
     7981    je near 0581fh                            ; 0f 84 e2 fe
    79997982    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8000     je near 057ebh                            ; 0f 84 d6 fe
    8001     jmp near 057efh                           ; e9 d7 fe
     7983    je near 0581bh                            ; 0f 84 d6 fe
     7984    jmp near 0581fh                           ; e9 d7 fe
    80027985    mov dx, strict word 00017h                ; ba 17 00
    80037986    mov ax, strict word 00040h                ; b8 40 00
    8004     call 016b8h                               ; e8 97 bd
     7987    call 016b8h                               ; e8 67 bd
    80057988    mov dx, word [bp+012h]                    ; 8b 56 12
    80067989    mov dl, al                                ; 88 c2
     
    80087991    mov dx, strict word 00018h                ; ba 18 00
    80097992    mov ax, strict word 00040h                ; b8 40 00
    8010     call 016b8h                               ; e8 86 bd
     7993    call 016b8h                               ; e8 56 bd
    80117994    mov bh, al                                ; 88 c7
    80127995    and bh, 073h                              ; 80 e7 73
    80137996    mov dx, 00096h                            ; ba 96 00
    80147997    mov ax, strict word 00040h                ; b8 40 00
    8015     call 016b8h                               ; e8 78 bd
     7998    call 016b8h                               ; e8 48 bd
    80167999    and AL, strict byte 00ch                  ; 24 0c
    80178000    or bh, al                                 ; 08 c7
     
    80208003    movzx ax, bh                              ; 0f b6 c7
    80218004    sal ax, 008h                              ; c1 e0 08
    8022     jmp near 057b2h                           ; e9 60 fe
     8005    jmp near 057e2h                           ; e9 60 fe
    80238006    mov ax, word [bp+012h]                    ; 8b 46 12
    80248007    xor ah, ah                                ; 30 e4
    80258008    or ah, 080h                               ; 80 cc 80
    8026     jmp near 05832h                           ; e9 d5 fe
     8009    jmp near 05862h                           ; e9 d5 fe
    80278010    mov bx, 00da0h                            ; bb a0 0d
    80288011    mov cx, ds                                ; 8c d9
    80298012    mov ax, strict word 00004h                ; b8 04 00
    8030     call 01999h                               ; e8 31 c0
     8013    call 01999h                               ; e8 01 c0
    80318014    mov ax, word [bp+012h]                    ; 8b 46 12
    80328015    shr ax, 008h                              ; c1 e8 08
     
    80348017    push 00633h                               ; 68 33 06
    80358018    push strict byte 00004h                   ; 6a 04
    8036     call 019dah                               ; e8 63 c0
     8019    call 019dah                               ; e8 33 c0
    80378020    add sp, strict byte 00006h                ; 83 c4 06
    80388021    mov bx, 00da0h                            ; bb a0 0d
    80398022    mov cx, ds                                ; 8c d9
    80408023    mov ax, strict word 00004h                ; b8 04 00
    8041     call 01999h                               ; e8 14 c0
     8024    call 01999h                               ; e8 e4 bf
    80428025    mov ax, word [bp+00eh]                    ; 8b 46 0e
    80438026    push ax                                   ; 50
     
    80508033    push 0065bh                               ; 68 5b 06
    80518034    push strict byte 00004h                   ; 6a 04
    8052     call 019dah                               ; e8 3d c0
     8035    call 019dah                               ; e8 0d c0
    80538036    add sp, strict byte 0000ch                ; 83 c4 0c
    80548037    lea sp, [bp-002h]                         ; 8d 66 fe
     
    80568039    pop bp                                    ; 5d
    80578040    retn                                      ; c3
    8058 set_geom_lba_:                               ; 0xf59a6 LB 0xe5
     8041set_geom_lba_:                               ; 0xf59d6 LB 0xe5
    80598042    push bx                                   ; 53
    80608043    push cx                                   ; 51
     
    80718054    mov dx, word [bp+00ch]                    ; 8b 56 0c
    80728055    mov si, strict word 00020h                ; be 20 00
    8073     call 09f00h                               ; e8 2f 45
     8056    call 09f30h                               ; e8 2f 45
    80748057    test ax, ax                               ; 85 c0
    8075     jne short 059e1h                          ; 75 0c
     8058    jne short 05a11h                          ; 75 0c
    80768059    test bx, bx                               ; 85 db
    8077     jne short 059e1h                          ; 75 08
     8060    jne short 05a11h                          ; 75 08
    80788061    test cx, cx                               ; 85 c9
    8079     jne short 059e1h                          ; 75 04
     8062    jne short 05a11h                          ; 75 04
    80808063    test dx, dx                               ; 85 d2
    8081     je short 059e8h                           ; 74 07
     8064    je short 05a18h                           ; 74 07
    80828065    mov bx, strict word 0ffffh                ; bb ff ff
    80838066    mov si, bx                                ; 89 de
    8084     jmp short 059eeh                          ; eb 06
     8067    jmp short 05a1eh                          ; eb 06
    80858068    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    80868069    mov si, word [bp+00eh]                    ; 8b 76 0e
    80878070    mov word [bp-004h], bx                    ; 89 5e fc
    80888071    xor bx, bx                                ; 31 db
    8089     jmp short 059fah                          ; eb 05
     8072    jmp short 05a2ah                          ; eb 05
    80908073    cmp bx, strict byte 00004h                ; 83 fb 04
    8091     jnl short 05a1dh                          ; 7d 23
     8074    jnl short 05a4dh                          ; 7d 23
    80928075    mov ax, word [bp-006h]                    ; 8b 46 fa
    80938076    cmp si, ax                                ; 39 c6
    8094     jc short 05a0bh                           ; 72 0a
    8095     jne short 05a14h                          ; 75 11
     8077    jc short 05a3bh                           ; 72 0a
     8078    jne short 05a44h                          ; 75 11
    80968079    mov ax, word [bp-004h]                    ; 8b 46 fc
    80978080    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8098     jnbe short 05a14h                         ; 77 09
     8081    jnbe short 05a44h                         ; 77 09
    80998082    mov ax, word [bp-002h]                    ; 8b 46 fe
    81008083    inc ax                                    ; 40
     
    81048087    rcr word [bp-008h], 1                     ; d1 5e f8
    81058088    inc bx                                    ; 43
    8106     jmp short 059f5h                          ; eb d8
     8089    jmp short 05a25h                          ; eb d8
    81078090    mov ax, word [bp-002h]                    ; 8b 46 fe
    81088091    xor dx, dx                                ; 31 d2
    81098092    mov bx, strict word 0003fh                ; bb 3f 00
    81108093    xor cx, cx                                ; 31 c9
    8111     call 09e80h                               ; e8 56 44
     8094    call 09eb0h                               ; e8 56 44
    81128095    mov bx, ax                                ; 89 c3
    81138096    mov cx, dx                                ; 89 d1
    81148097    mov ax, word [bp-004h]                    ; 8b 46 fc
    81158098    mov dx, si                                ; 89 f2
    8116     call 09ec0h                               ; e8 8a 44
     8099    call 09ef0h                               ; e8 8a 44
    81178100    mov word [es:di+002h], ax                 ; 26 89 45 02
    81188101    cmp ax, 00400h                            ; 3d 00 04
    8119     jbe short 05a45h                          ; 76 06
     8102    jbe short 05a75h                          ; 76 06
    81208103    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    81218104    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    81288111    pop bx                                    ; 5b
    81298112    retn 00008h                               ; c2 08 00
    8130     adc ax, 03b5bh                            ; 15 5b 3b
     8113    inc bp                                    ; 45
    81318114    pop bx                                    ; 5b
    8132     push 0685bh                               ; 68 5b 68
     8115    imul bx, word [bp+di-068h], strict byte 0005bh ; 6b 5b 98 5b
     8116    cbw                                       ; 98
    81338117    pop bx                                    ; 5b
    8134     push 0495bh                               ; 68 5b 49
     8118    cbw                                       ; 98
     8119    pop bx                                    ; 5b
     8120    jns short 05af2h                          ; 79 5d
     8121    cmpsw                                     ; a7
     8122    pop si                                    ; 5e
     8123    cmpsw                                     ; a7
     8124    pop si                                    ; 5e
     8125    xchg dx, ax                               ; 92
    81358126    pop bp                                    ; 5d
    8136     jnbe short 05ac5h                         ; 77 5e
    8137     jnbe short 05ac7h                         ; 77 5e
    8138     bound bx, [di+054h]                       ; 62 5d 54
     8127    test byte [bp-059h], bl                   ; 84 5e a7
    81398128    pop si                                    ; 5e
    8140     jnbe short 05acdh                         ; 77 5e
    8141     jnbe short 05acfh                         ; 77 5e
    8142     push sp                                   ; 54
     8129    cmpsw                                     ; a7
    81438130    pop si                                    ; 5e
    8144     push sp                                   ; 54
     8131    test byte [bp-07ch], bl                   ; 84 5e 84
    81458132    pop si                                    ; 5e
    8146     jnbe short 05ad5h                         ; 77 5e
    8147     jnbe short 05ad7h                         ; 77 5e
    8148     fcomp dword [di+054h]                     ; d8 5d 54
     8133    cmpsw                                     ; a7
    81498134    pop si                                    ; 5e
    8150     jnbe short 05addh                         ; 77 5e
    8151     jnbe short 05adfh                         ; 77 5e
    8152     push sp                                   ; 54
     8135    cmpsw                                     ; a7
    81538136    pop si                                    ; 5e
    8154     or byte [bp+077h], bl                     ; 08 5e 77
     8137    or byte [bp-07ch], bl                     ; 08 5e 84
    81558138    pop si                                    ; 5e
    8156     jnbe short 05ae7h                         ; 77 5e
    8157     jnbe short 05ae9h                         ; 77 5e
    8158 _int13_harddisk:                             ; 0xf5a8b LB 0x44a
     8139    cmpsw                                     ; a7
     8140    pop si                                    ; 5e
     8141    cmpsw                                     ; a7
     8142    pop si                                    ; 5e
     8143    test byte [bp+038h], bl                   ; 84 5e 38
     8144    pop si                                    ; 5e
     8145    cmpsw                                     ; a7
     8146    pop si                                    ; 5e
     8147    cmpsw                                     ; a7
     8148    pop si                                    ; 5e
     8149    cmpsw                                     ; a7
     8150    pop si                                    ; 5e
     8151_int13_harddisk:                             ; 0xf5abb LB 0x44a
    81598152    push bp                                   ; 55
    81608153    mov bp, sp                                ; 89 e5
     
    81628155    mov dx, strict word 0000eh                ; ba 0e 00
    81638156    mov ax, strict word 00040h                ; b8 40 00
    8164     call 016d4h                               ; e8 3a bc
     8157    call 016d4h                               ; e8 0a bc
    81658158    mov si, 00122h                            ; be 22 01
    81668159    mov word [bp-004h], ax                    ; 89 46 fc
     
    81688161    mov dx, 0008eh                            ; ba 8e 00
    81698162    mov ax, strict word 00040h                ; b8 40 00
    8170     call 016c6h                               ; e8 1b bc
     8163    call 016c6h                               ; e8 eb bb
    81718164    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81728165    xor ah, ah                                ; 30 e4
    81738166    cmp ax, 00080h                            ; 3d 80 00
    8174     jc short 05abah                           ; 72 05
     8167    jc short 05aeah                           ; 72 05
    81758168    cmp ax, 00090h                            ; 3d 90 00
    8176     jc short 05ad8h                           ; 72 1e
     8169    jc short 05b08h                           ; 72 1e
    81778170    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81788171    xor ah, ah                                ; 30 e4
     
    81848177    push 0068dh                               ; 68 8d 06
    81858178    push strict byte 00004h                   ; 6a 04
    8186     call 019dah                               ; e8 08 bf
     8179    call 019dah                               ; e8 d8 be
    81878180    add sp, strict byte 0000ah                ; 83 c4 0a
    8188     jmp near 05e92h                           ; e9 ba 03
     8181    jmp near 05ec2h                           ; e9 ba 03
    81898182    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81908183    xor ah, ah                                ; 30 e4
     
    81958188    mov byte [bp-002h], dl                    ; 88 56 fe
    81968189    cmp dl, 010h                              ; 80 fa 10
    8197     jc short 05b01h                           ; 72 10
     8190    jc short 05b31h                           ; 72 10
    81988191    push ax                                   ; 50
    81998192    mov ax, word [bp+016h]                    ; 8b 46 16
     
    82028195    push 0067eh                               ; 68 7e 06
    82038196    push 006b8h                               ; 68 b8 06
    8204     jmp short 05acdh                          ; eb cc
     8197    jmp short 05afdh                          ; eb cc
    82058198    mov bx, word [bp+016h]                    ; 8b 5e 16
    82068199    shr bx, 008h                              ; c1 eb 08
    82078200    cmp bx, strict byte 00018h                ; 83 fb 18
    8208     jnbe near 05e77h                          ; 0f 87 69 03
     8201    jnbe near 05ea7h                          ; 0f 87 69 03
    82098202    add bx, bx                                ; 01 db
    8210     jmp word [cs:bx+05a59h]                   ; 2e ff a7 59 5a
     8203    jmp word [cs:bx+05a89h]                   ; 2e ff a7 89 5a
    82118204    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8212     jnc near 05b24h                           ; 0f 83 07 00
     8205    jnc near 05b54h                           ; 0f 83 07 00
    82138206    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    8214     call 01de4h                               ; e8 c0 c2
     8207    call 01de4h                               ; e8 90 c2
    82158208    mov byte [bp+017h], 000h                  ; c6 46 17 00
    82168209    xor bx, bx                                ; 31 db
    82178210    mov dx, strict word 00074h                ; ba 74 00
    82188211    mov ax, strict word 00040h                ; b8 40 00
    8219     call 016c6h                               ; e8 93 bb
     8212    call 016c6h                               ; e8 63 bb
    82208213    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    82218214    mov sp, bp                                ; 89 ec
     
    82248217    mov dx, strict word 00074h                ; ba 74 00
    82258218    mov ax, strict word 00040h                ; b8 40 00
    8226     call 016b8h                               ; e8 74 bb
     8219    call 016b8h                               ; e8 44 bb
    82278220    mov cl, al                                ; 88 c1
    82288221    mov dx, word [bp+016h]                    ; 8b 56 16
     
    82358228    mov dx, strict word 00074h                ; ba 74 00
    82368229    mov ax, strict word 00040h                ; b8 40 00
    8237     call 016c6h                               ; e8 65 bb
     8230    call 016c6h                               ; e8 35 bb
    82388231    test cl, cl                               ; 84 c9
    8239     je short 05b28h                           ; 74 c3
    8240     jmp near 05eaeh                           ; e9 46 03
     8232    je short 05b58h                           ; 74 c3
     8233    jmp near 05edeh                           ; e9 46 03
    82418234    mov ax, word [bp+016h]                    ; 8b 46 16
    82428235    xor ah, ah                                ; 30 e4
     
    82588251    mov ax, word [bp-00ch]                    ; 8b 46 f4
    82598252    cmp ax, 00080h                            ; 3d 80 00
    8260     jnbe short 05ba3h                         ; 77 04
     8253    jnbe short 05bd3h                         ; 77 04
    82618254    test ax, ax                               ; 85 c0
    8262     jne short 05bc6h                          ; 75 23
     8255    jne short 05bf6h                          ; 75 23
    82638256    mov bx, 00da0h                            ; bb a0 0d
    82648257    mov cx, ds                                ; 8c d9
    82658258    mov ax, strict word 00004h                ; b8 04 00
    8266     call 01999h                               ; e8 eb bd
     8259    call 01999h                               ; e8 bb bd
    82678260    mov ax, word [bp+016h]                    ; 8b 46 16
    82688261    shr ax, 008h                              ; c1 e8 08
     
    82718264    push 006eah                               ; 68 ea 06
    82728265    push strict byte 00004h                   ; 6a 04
    8273     call 019dah                               ; e8 1a be
     8266    call 019dah                               ; e8 ea bd
    82748267    add sp, strict byte 00008h                ; 83 c4 08
    8275     jmp near 05e92h                           ; e9 cc 02
     8268    jmp near 05ec2h                           ; e9 cc 02
    82768269    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    82778270    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    82848277    mov word [bp-00ah], dx                    ; 89 56 f6
    82858278    cmp di, ax                                ; 39 c7
    8286     jnc short 05bf3h                          ; 73 0c
     8279    jnc short 05c23h                          ; 73 0c
    82878280    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8288     jbe short 05bf3h                          ; 76 07
     8281    jbe short 05c23h                          ; 76 07
    82898282    mov ax, word [bp-006h]                    ; 8b 46 fa
    82908283    cmp ax, dx                                ; 39 d0
    8291     jbe short 05c21h                          ; 76 2e
     8284    jbe short 05c51h                          ; 76 2e
    82928285    mov bx, 00da0h                            ; bb a0 0d
    82938286    mov cx, ds                                ; 8c d9
    82948287    mov ax, strict word 00004h                ; b8 04 00
    8295     call 01999h                               ; e8 9b bd
     8288    call 01999h                               ; e8 6b bd
    82968289    push dword [bp-008h]                      ; 66 ff 76 f8
    82978290    push di                                   ; 57
     
    83058298    push 00712h                               ; 68 12 07
    83068299    push strict byte 00004h                   ; 6a 04
    8307     call 019dah                               ; e8 bf bd
     8300    call 019dah                               ; e8 8f bd
    83088301    add sp, strict byte 00010h                ; 83 c4 10
    8309     jmp near 05e92h                           ; e9 71 02
     8302    jmp near 05ec2h                           ; e9 71 02
    83108303    mov ax, word [bp+016h]                    ; 8b 46 16
    83118304    shr ax, 008h                              ; c1 e8 08
    83128305    cmp ax, strict word 00004h                ; 3d 04 00
    8313     jne short 05c2fh                          ; 75 03
    8314     jmp near 05b24h                           ; e9 f5 fe
     8306    jne short 05c5fh                          ; 75 03
     8307    jmp near 05b54h                           ; e9 f5 fe
    83158308    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    83168309    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    83188311    add bx, si                                ; 01 f3
    83198312    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8320     jne short 05c50h                          ; 75 0f
     8313    jne short 05c80h                          ; 75 0f
    83218314    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    83228315    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8323     jne short 05c50h                          ; 75 06
     8316    jne short 05c80h                          ; 75 06
    83248317    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8325     jc short 05c80h                           ; 72 30
     8318    jc short 05cb0h                           ; 72 30
    83268319    mov ax, di                                ; 89 f8
    83278320    xor dx, dx                                ; 31 d2
    83288321    mov bx, cx                                ; 89 cb
    83298322    xor cx, cx                                ; 31 c9
    8330     call 09e80h                               ; e8 25 42
     8323    call 09eb0h                               ; e8 25 42
    83318324    xor bx, bx                                ; 31 db
    83328325    add ax, word [bp-008h]                    ; 03 46 f8
     
    83348327    mov bx, word [bp-00ah]                    ; 8b 5e f6
    83358328    xor cx, cx                                ; 31 c9
    8336     call 09e80h                               ; e8 16 42
     8329    call 09eb0h                               ; e8 16 42
    83378330    xor bx, bx                                ; 31 db
    83388331    add ax, word [bp-006h]                    ; 03 46 fa
     
    83898382    mov word [bp+016h], bx                    ; 89 5e 16
    83908383    test dl, dl                               ; 84 d2
    8391     je near 05b24h                            ; 0f 84 0a fe
     8384    je near 05b54h                            ; 0f 84 0a fe
    83928385    mov bx, 00da0h                            ; bb a0 0d
    83938386    mov cx, ds                                ; 8c d9
    83948387    mov ax, strict word 00004h                ; b8 04 00
    8395     call 01999h                               ; e8 74 bc
     8388    call 01999h                               ; e8 44 bc
    83968389    movzx ax, dl                              ; 0f b6 c2
    83978390    push ax                                   ; 50
     
    84028395    push 00759h                               ; 68 59 07
    84038396    push strict byte 00004h                   ; 6a 04
    8404     call 019dah                               ; e8 9f bc
     8397    call 019dah                               ; e8 6f bc
    84058398    add sp, strict byte 0000ah                ; 83 c4 0a
    84068399    mov ax, word [bp+016h]                    ; 8b 46 16
    84078400    xor ah, ah                                ; 30 e4
    84088401    or ah, 00ch                               ; 80 cc 0c
    8409     jmp near 05e9ah                           ; e9 51 01
     8402    jmp near 05ecah                           ; e9 51 01
    84108403    mov bx, 00da0h                            ; bb a0 0d
    84118404    mov cx, ds                                ; 8c d9
    84128405    mov ax, strict word 00004h                ; b8 04 00
    8413     call 01999h                               ; e8 45 bc
     8406    call 01999h                               ; e8 15 bc
    84148407    push 0077ah                               ; 68 7a 07
    84158408    push strict byte 00004h                   ; 6a 04
    8416     call 019dah                               ; e8 7e bc
     8409    call 019dah                               ; e8 4e bc
    84178410    add sp, strict byte 00004h                ; 83 c4 04
    8418     jmp near 05b24h                           ; e9 c2 fd
     8411    jmp near 05b54h                           ; e9 c2 fd
    84198412    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    84208413    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    84598452    or dx, ax                                 ; 09 c2
    84608453    mov word [bp+012h], dx                    ; 89 56 12
    8461     jmp near 05b24h                           ; e9 4c fd
     8454    jmp near 05b54h                           ; e9 4c fd
    84628455    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    84638456    cwd                                       ; 99
     
    84758468    and AL, strict byte 0c0h                  ; 24 c0
    84768469    cmp AL, strict byte 040h                  ; 3c 40
    8477     jne short 05dfdh                          ; 75 03
    8478     jmp near 05b24h                           ; e9 27 fd
     8470    jne short 05e2dh                          ; 75 03
     8471    jmp near 05b54h                           ; e9 27 fd
    84798472    mov ax, word [bp+016h]                    ; 8b 46 16
    84808473    xor ah, ah                                ; 30 e4
    84818474    or ah, 0aah                               ; 80 cc aa
    8482     jmp near 05e9ah                           ; e9 92 00
     8475    jmp near 05ecah                           ; e9 92 00
    84838476    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    84848477    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    84948487    mov bx, word [bp-008h]                    ; 8b 5e f8
    84958488    xor cx, cx                                ; 31 c9
    8496     call 09e80h                               ; e8 4e 40
     8489    call 09eb0h                               ; e8 4e 40
    84978490    mov bx, word [bp-006h]                    ; 8b 5e fa
    84988491    xor cx, cx                                ; 31 c9
    8499     call 09e80h                               ; e8 46 40
     8492    call 09eb0h                               ; e8 46 40
    85008493    mov word [bp-010h], ax                    ; 89 46 f0
    85018494    mov word [bp-00eh], dx                    ; 89 56 f2
     
    85068499    or ah, 003h                               ; 80 cc 03
    85078500    mov word [bp+016h], ax                    ; 89 46 16
    8508     jmp near 05b28h                           ; e9 d4 fc
     8501    jmp near 05b58h                           ; e9 d4 fc
    85098502    mov bx, 00da0h                            ; bb a0 0d
    85108503    mov cx, ds                                ; 8c d9
    85118504    mov ax, strict word 00004h                ; b8 04 00
    8512     call 01999h                               ; e8 3a bb
     8505    call 01999h                               ; e8 0a bb
    85138506    mov ax, word [bp+016h]                    ; 8b 46 16
    85148507    shr ax, 008h                              ; c1 e8 08
     
    85178510    push 00794h                               ; 68 94 07
    85188511    push strict byte 00004h                   ; 6a 04
    8519     call 019dah                               ; e8 69 bb
     8512    call 019dah                               ; e8 39 bb
    85208513    add sp, strict byte 00008h                ; 83 c4 08
    8521     jmp near 05b24h                           ; e9 ad fc
     8514    jmp near 05b54h                           ; e9 ad fc
    85228515    mov bx, 00da0h                            ; bb a0 0d
    85238516    mov cx, ds                                ; 8c d9
    85248517    mov ax, strict word 00004h                ; b8 04 00
    8525     call 01999h                               ; e8 17 bb
     8518    call 01999h                               ; e8 e7 ba
    85268519    mov ax, word [bp+016h]                    ; 8b 46 16
    85278520    shr ax, 008h                              ; c1 e8 08
     
    85298522    push 0067eh                               ; 68 7e 06
    85308523    push 007c7h                               ; 68 c7 07
    8531     jmp near 05bbbh                           ; e9 29 fd
     8524    jmp near 05bebh                           ; e9 29 fd
    85328525    mov ax, word [bp+016h]                    ; 8b 46 16
    85338526    xor ah, ah                                ; 30 e4
     
    85398532    mov dx, strict word 00074h                ; ba 74 00
    85408533    mov ax, strict word 00040h                ; b8 40 00
    8541     call 016c6h                               ; e8 18 b8
     8534    call 016c6h                               ; e8 e8 b7
    85428535    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8543     jmp near 05b37h                           ; e9 82 fc
    8544     jnc short 05f16h                          ; 73 5f
    8545     mov bx, word [bx-075h]                    ; 8b 5f 8b
     8536    jmp near 05b67h                           ; e9 82 fc
     8537    mov word [0bb5fh], ax                     ; a3 5f bb
    85468538    pop di                                    ; 5f
    8547     mov bx, word [bx+05fh]                    ; 8b 5f 5f
    8548     arpl ax, sp                               ; 63 e0
    8549     pushaw                                    ; 60
    8550     mov bx, word [bx-01ah]                    ; 8b 5f e6
    8551     pushaw                                    ; 60
     8539    mov bx, 0bb5fh                            ; bb 5f bb
    85528540    pop di                                    ; 5f
    8553     arpl [bp-0519dh], bp                      ; 63 ae 63 ae
    8554     arpl [bp-0519dh], bp                      ; 63 ae 63 ae
    8555     arpl [bp+063h], si                        ; 63 76 63
    8556     scasb                                     ; ae
     8541    db  08fh, 063h, 010h
     8542    ; pop word [bp+di+010h]                     ; 8f 63 10
     8543    popaw                                     ; 61
     8544    mov bx, 0165fh                            ; bb 5f 16
     8545    popaw                                     ; 61
     8546    db  08fh, 063h, 0deh
     8547    ; pop word [bp+di-022h]                     ; 8f 63 de
     8548    arpl si, bx                               ; 63 de
     8549    arpl si, bx                               ; 63 de
     8550    arpl si, bx                               ; 63 de
     8551    arpl [bp-0219dh], sp                      ; 63 a6 63 de
     8552    arpl si, bx                               ; 63 de
    85578553    db  063h
    8558     scasb                                     ; ae
    8559     db  063h
    8560 _int13_harddisk_ext:                         ; 0xf5ed5 LB 0x4f4
     8554_int13_harddisk_ext:                         ; 0xf5f05 LB 0x4f4
    85618555    push bp                                   ; 55
    85628556    mov bp, sp                                ; 89 e5
     
    85648558    mov dx, strict word 0000eh                ; ba 0e 00
    85658559    mov ax, strict word 00040h                ; b8 40 00
    8566     call 016d4h                               ; e8 f0 b7
     8560    call 016d4h                               ; e8 c0 b7
    85678561    mov word [bp-014h], ax                    ; 89 46 ec
    85688562    mov dx, strict word 0000eh                ; ba 0e 00
    85698563    mov ax, strict word 00040h                ; b8 40 00
    8570     call 016d4h                               ; e8 e4 b7
     8564    call 016d4h                               ; e8 b4 b7
    85718565    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    85728566    mov word [bp-006h], ax                    ; 89 46 fa
     
    85748568    mov dx, 0008eh                            ; ba 8e 00
    85758569    mov ax, strict word 00040h                ; b8 40 00
    8576     call 016c6h                               ; e8 c3 b7
     8570    call 016c6h                               ; e8 93 b7
    85778571    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85788572    xor ah, ah                                ; 30 e4
    85798573    cmp ax, 00080h                            ; 3d 80 00
    8580     jc short 05f12h                           ; 72 05
     8574    jc short 05f42h                           ; 72 05
    85818575    cmp ax, 00090h                            ; 3d 90 00
    8582     jc short 05f30h                           ; 72 1e
     8576    jc short 05f60h                           ; 72 1e
    85838577    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85848578    xor ah, ah                                ; 30 e4
     
    85908584    push 0068dh                               ; 68 8d 06
    85918585    push strict byte 00004h                   ; 6a 04
    8592     call 019dah                               ; e8 b0 ba
     8586    call 019dah                               ; e8 80 ba
    85938587    add sp, strict byte 0000ah                ; 83 c4 0a
    8594     jmp near 0638ch                           ; e9 5c 04
     8588    jmp near 063bch                           ; e9 5c 04
    85958589    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85968590    xor ah, ah                                ; 30 e4
     
    86008594    mov byte [bp-004h], dl                    ; 88 56 fc
    86018595    cmp dl, 010h                              ; 80 fa 10
    8602     jc short 05f57h                           ; 72 10
     8596    jc short 05f87h                           ; 72 10
    86038597    push ax                                   ; 50
    86048598    mov ax, word [bp+016h]                    ; 8b 46 16
     
    86078601    push 007f5h                               ; 68 f5 07
    86088602    push 006b8h                               ; 68 b8 06
    8609     jmp short 05f25h                          ; eb ce
     8603    jmp short 05f55h                          ; eb ce
    86108604    mov bx, word [bp+016h]                    ; 8b 5e 16
    86118605    shr bx, 008h                              ; c1 eb 08
    86128606    sub bx, strict byte 00041h                ; 83 eb 41
    86138607    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8614     jnbe near 063aeh                          ; 0f 87 47 04
     8608    jnbe near 063deh                          ; 0f 87 47 04
    86158609    add bx, bx                                ; 01 db
    86168610    mov ax, word [bp+016h]                    ; 8b 46 16
    86178611    xor ah, ah                                ; 30 e4
    8618     jmp word [cs:bx+05eb5h]                   ; 2e ff a7 b5 5e
     8612    jmp word [cs:bx+05ee5h]                   ; 2e ff a7 e5 5e
    86198613    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    86208614    mov ax, word [bp+016h]                    ; 8b 46 16
     
    86238617    mov word [bp+016h], ax                    ; 89 46 16
    86248618    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8625     jmp near 06363h                           ; e9 d8 03
     8619    jmp near 06393h                           ; e9 d8 03
    86268620    mov di, word [bp+00ah]                    ; 8b 7e 0a
    86278621    mov es, [bp+004h]                         ; 8e 46 04
     
    86398633    xor bx, bx                                ; 31 db
    86408634    mov si, strict word 00020h                ; be 20 00
    8641     call 09f10h                               ; e8 52 3f
     8635    call 09f40h                               ; e8 52 3f
    86428636    mov word [bp-00eh], bx                    ; 89 5e f2
    86438637    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
     
    86518645    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
    86528646    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
    8653     jnbe short 06005h                         ; 77 22
    8654     jne short 06028h                          ; 75 43
     8647    jnbe short 06035h                         ; 77 22
     8648    jne short 06058h                          ; 75 43
    86558649    mov si, word [bp-00eh]                    ; 8b 76 f2
    86568650    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8657     jnbe short 06005h                         ; 77 17
     8651    jnbe short 06035h                         ; 77 17
    86588652    mov si, word [bp-00eh]                    ; 8b 76 f2
    86598653    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8660     jne short 06028h                          ; 75 31
     8654    jne short 06058h                          ; 75 31
    86618655    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
    8662     jnbe short 06005h                         ; 77 08
    8663     jne short 06028h                          ; 75 29
     8656    jnbe short 06035h                         ; 77 08
     8657    jne short 06058h                          ; 75 29
    86648658    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
    8665     jc short 06028h                           ; 72 23
     8659    jc short 06058h                           ; 72 23
    86668660    mov bx, 00da0h                            ; bb a0 0d
    86678661    mov cx, ds                                ; 8c d9
    86688662    mov ax, strict word 00004h                ; b8 04 00
    8669     call 01999h                               ; e8 89 b9
     8663    call 01999h                               ; e8 59 b9
    86708664    mov ax, word [bp+016h]                    ; 8b 46 16
    86718665    shr ax, 008h                              ; c1 e8 08
     
    86748668    push 00808h                               ; 68 08 08
    86758669    push strict byte 00004h                   ; 6a 04
    8676     call 019dah                               ; e8 b8 b9
     8670    call 019dah                               ; e8 88 b9
    86778671    add sp, strict byte 00008h                ; 83 c4 08
    8678     jmp near 0638ch                           ; e9 64 03
     8672    jmp near 063bch                           ; e9 64 03
    86798673    mov di, word [bp+016h]                    ; 8b 7e 16
    86808674    shr di, 008h                              ; c1 ef 08
    86818675    cmp di, strict byte 00044h                ; 83 ff 44
    8682     je near 0635fh                            ; 0f 84 2a 03
     8676    je near 0638fh                            ; 0f 84 2a 03
    86838677    cmp di, strict byte 00047h                ; 83 ff 47
    8684     je near 0635fh                            ; 0f 84 23 03
     8678    je near 0638fh                            ; 0f 84 23 03
    86858679    les si, [bp-008h]                         ; c4 76 f8
    86868680    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
     
    87198713    mov word [es:bx+002h], ax                 ; 26 89 47 02
    87208714    test dl, dl                               ; 84 d2
    8721     je near 0635fh                            ; 0f 84 a8 02
     8715    je near 0638fh                            ; 0f 84 a8 02
    87228716    mov bx, 00da0h                            ; bb a0 0d
    87238717    mov cx, ds                                ; 8c d9
    87248718    mov ax, strict word 00004h                ; b8 04 00
    8725     call 01999h                               ; e8 d7 b8
     8719    call 01999h                               ; e8 a7 b8
    87268720    movzx ax, dl                              ; 0f b6 c2
    87278721    push ax                                   ; 50
     
    87308724    push 00759h                               ; 68 59 07
    87318725    push strict byte 00004h                   ; 6a 04
    8732     call 019dah                               ; e8 08 b9
     8726    call 019dah                               ; e8 d8 b8
    87338727    add sp, strict byte 0000ah                ; 83 c4 0a
    87348728    mov ax, word [bp+016h]                    ; 8b 46 16
    87358729    xor ah, ah                                ; 30 e4
    87368730    or ah, 00ch                               ; 80 cc 0c
    8737     jmp near 06394h                           ; e9 b4 02
     8731    jmp near 063c4h                           ; e9 b4 02
    87388732    or ah, 0b2h                               ; 80 cc b2
    8739     jmp near 06394h                           ; e9 ae 02
     8733    jmp near 063c4h                           ; e9 ae 02
    87408734    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    87418735    mov ax, word [bp+004h]                    ; 8b 46 04
     
    87478741    mov word [bp-010h], ax                    ; 89 46 f0
    87488742    cmp ax, strict word 0001ah                ; 3d 1a 00
    8749     jc near 0638ch                            ; 0f 82 89 02
    8750     jc near 061a2h                            ; 0f 82 9b 00
     8743    jc near 063bch                            ; 0f 82 89 02
     8744    jc near 061d2h                            ; 0f 82 9b 00
    87518745    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    87528746    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    87908784    mov bx, word [bp-00eh]                    ; 8b 5e f2
    87918785    mov si, strict word 00020h                ; be 20 00
    8792     call 09f00h                               ; e8 68 3d
     8786    call 09f30h                               ; e8 68 3d
    87938787    mov bx, di                                ; 89 fb
    87948788    mov word [es:bx+014h], dx                 ; 26 89 57 14
    87958789    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    87968790    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
    8797     jc near 062a7h                            ; 0f 82 fd 00
     8791    jc near 062d7h                            ; 0f 82 fd 00
    87988792    mov es, [bp-00ah]                         ; 8e 46 f6
    87998793    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    88218815    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    88228816    test al, al                               ; 84 c0
    8823     jne short 06201h                          ; 75 04
     8817    jne short 06231h                          ; 75 04
    88248818    xor bx, bx                                ; 31 db
    8825     jmp short 06204h                          ; eb 03
     8819    jmp short 06234h                          ; eb 03
    88268820    mov bx, strict word 00008h                ; bb 08 00
    88278821    or bl, 010h                               ; 80 cb 10
     
    88378831    or bx, cx                                 ; 09 cb
    88388832    cmp AL, strict byte 003h                  ; 3c 03
    8839     jne short 06225h                          ; 75 05
     8833    jne short 06255h                          ; 75 05
    88408834    mov ax, strict word 00003h                ; b8 03 00
    8841     jmp short 06227h                          ; eb 02
     8835    jmp short 06257h                          ; eb 02
    88428836    xor ax, ax                                ; 31 c0
    88438837    or bx, ax                                 ; 09 c3
     
    88658859    xor bl, bl                                ; 30 db
    88668860    xor bh, bh                                ; 30 ff
    8867     jmp short 0628ah                          ; eb 05
     8861    jmp short 062bah                          ; eb 05
    88688862    cmp bh, 00fh                              ; 80 ff 0f
    8869     jnc short 0629dh                          ; 73 13
     8863    jnc short 062cdh                          ; 73 13
    88708864    movzx dx, bh                              ; 0f b6 d7
    88718865    add dx, 00356h                            ; 81 c2 56 03
    88728866    mov ax, word [bp-014h]                    ; 8b 46 ec
    8873     call 016b8h                               ; e8 21 b4
     8867    call 016b8h                               ; e8 f1 b3
    88748868    add bl, al                                ; 00 c3
    88758869    db  0feh, 0c7h
    88768870    ; inc bh                                    ; fe c7
    8877     jmp short 06285h                          ; eb e8
     8871    jmp short 062b5h                          ; eb e8
    88788872    neg bl                                    ; f6 db
    88798873    les si, [bp-008h]                         ; c4 76 f8
    88808874    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    88818875    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
    8882     jc near 0635fh                            ; 0f 82 b0 00
     8876    jc near 0638fh                            ; 0f 82 b0 00
    88838877    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    88848878    cwd                                       ; 99
     
    88988892    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    88998893    test al, al                               ; 84 c0
    8900     jne short 062f0h                          ; 75 09
     8894    jne short 06320h                          ; 75 09
    89018895    db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
    89028896    ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
     
    89078901    ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
    89088902    test al, al                               ; 84 c0
    8909     jne short 0631ch                          ; 75 13
     8903    jne short 0634ch                          ; 75 13
    89108904    mov word [es:di+030h], dx                 ; 26 89 55 30
    89118905    db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
     
    89228916    xor bl, bl                                ; 30 db
    89238917    mov BH, strict byte 01eh                  ; b7 1e
    8924     jmp short 06344h                          ; eb 05
     8918    jmp short 06374h                          ; eb 05
    89258919    cmp bh, 040h                              ; 80 ff 40
    8926     jnc short 06356h                          ; 73 12
     8920    jnc short 06386h                          ; 73 12
    89278921    movzx dx, bh                              ; 0f b6 d7
    89288922    add dx, word [bp+00ah]                    ; 03 56 0a
    89298923    mov ax, word [bp+004h]                    ; 8b 46 04
    8930     call 016b8h                               ; e8 68 b3
     8924    call 016b8h                               ; e8 38 b3
    89318925    add bl, al                                ; 00 c3
    89328926    db  0feh, 0c7h
    89338927    ; inc bh                                    ; fe c7
    8934     jmp short 0633fh                          ; eb e9
     8928    jmp short 0636fh                          ; eb e9
    89358929    neg bl                                    ; f6 db
    89368930    mov es, [bp-00ah]                         ; 8e 46 f6
     
    89408934    mov dx, strict word 00074h                ; ba 74 00
    89418935    mov ax, strict word 00040h                ; b8 40 00
    8942     call 016c6h                               ; e8 58 b3
     8936    call 016c6h                               ; e8 28 b3
    89438937    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    89448938    mov sp, bp                                ; 89 ec
     
    89468940    retn                                      ; c3
    89478941    cmp ax, strict word 00006h                ; 3d 06 00
    8948     je short 0635fh                           ; 74 e4
     8942    je short 0638fh                           ; 74 e4
    89498943    cmp ax, strict word 00001h                ; 3d 01 00
    8950     jc short 0638ch                           ; 72 0c
    8951     jbe short 0635fh                          ; 76 dd
     8944    jc short 063bch                           ; 72 0c
     8945    jbe short 0638fh                          ; 76 dd
    89528946    cmp ax, strict word 00003h                ; 3d 03 00
    8953     jc short 0638ch                           ; 72 05
     8947    jc short 063bch                           ; 72 05
    89548948    cmp ax, strict word 00004h                ; 3d 04 00
    8955     jbe short 0635fh                          ; 76 d3
     8949    jbe short 0638fh                          ; 76 d3
    89568950    mov ax, word [bp+016h]                    ; 8b 46 16
    89578951    xor ah, ah                                ; 30 e4
     
    89638957    mov dx, strict word 00074h                ; ba 74 00
    89648958    mov ax, strict word 00040h                ; b8 40 00
    8965     call 016c6h                               ; e8 1e b3
     8959    call 016c6h                               ; e8 ee b2
    89668960    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8967     jmp short 06372h                          ; eb c4
     8961    jmp short 063a2h                          ; eb c4
    89688962    mov bx, 00da0h                            ; bb a0 0d
    89698963    mov cx, ds                                ; 8c d9
    89708964    mov ax, strict word 00004h                ; b8 04 00
    8971     call 01999h                               ; e8 e0 b5
     8965    call 01999h                               ; e8 b0 b5
    89728966    mov ax, word [bp+016h]                    ; 8b 46 16
    89738967    shr ax, 008h                              ; c1 e8 08
     
    89758969    push 007f5h                               ; 68 f5 07
    89768970    push 007c7h                               ; 68 c7 07
    8977     jmp near 0601dh                           ; e9 54 fc
    8978 _int14_function:                             ; 0xf63c9 LB 0x15a
     8971    jmp near 0604dh                           ; e9 54 fc
     8972_int14_function:                             ; 0xf63f9 LB 0x15a
    89798973    push bp                                   ; 55
    89808974    mov bp, sp                                ; 89 e5
     
    89848978    add dx, dx                                ; 01 d2
    89858979    mov ax, strict word 00040h                ; b8 40 00
    8986     call 016d4h                               ; e8 fb b2
     8980    call 016d4h                               ; e8 cb b2
    89878981    mov si, ax                                ; 89 c6
    89888982    mov bx, ax                                ; 89 c3
     
    89908984    add dx, strict byte 0007ch                ; 83 c2 7c
    89918985    mov ax, strict word 00040h                ; b8 40 00
    8992     call 016b8h                               ; e8 cf b2
     8986    call 016b8h                               ; e8 9f b2
    89938987    mov cl, al                                ; 88 c1
    89948988    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    8995     jnc near 06519h                           ; 0f 83 26 01
     8989    jnc near 06549h                           ; 0f 83 26 01
    89968990    test si, si                               ; 85 f6
    8997     jbe near 06519h                           ; 0f 86 20 01
     8991    jbe near 06549h                           ; 0f 86 20 01
    89988992    mov al, byte [bp+013h]                    ; 8a 46 13
    89998993    cmp AL, strict byte 001h                  ; 3c 01
    9000     jc short 06411h                           ; 72 11
    9001     jbe short 0646ah                          ; 76 68
     8994    jc short 06441h                           ; 72 11
     8995    jbe short 0649ah                          ; 76 68
    90028996    cmp AL, strict byte 003h                  ; 3c 03
    9003     je near 06502h                            ; 0f 84 fa 00
     8997    je near 06532h                            ; 0f 84 fa 00
    90048998    cmp AL, strict byte 002h                  ; 3c 02
    9005     je near 064b8h                            ; 0f 84 aa 00
    9006     jmp near 06513h                           ; e9 02 01
     8999    je near 064e8h                            ; 0f 84 aa 00
     9000    jmp near 06543h                           ; e9 02 01
    90079001    test al, al                               ; 84 c0
    9008     jne near 06513h                           ; 0f 85 fc 00
     9002    jne near 06543h                           ; 0f 85 fc 00
    90099003    lea dx, [bx+003h]                         ; 8d 57 03
    90109004    in AL, DX                                 ; ec
     
    90169010    mov al, byte [bp+012h]                    ; 8a 46 12
    90179011    test AL, strict byte 0e0h                 ; a8 e0
    9018     jne short 06436h                          ; 75 0c
     9012    jne short 06466h                          ; 75 0c
    90199013    mov AL, strict byte 017h                  ; b0 17
    90209014    mov dx, bx                                ; 89 da
     
    90239017    mov dx, si                                ; 89 f2
    90249018    out DX, AL                                ; ee
    9025     jmp short 0644ch                          ; eb 16
     9019    jmp short 0647ch                          ; eb 16
    90269020    and AL, strict byte 0e0h                  ; 24 e0
    90279021    movzx cx, al                              ; 0f b6 c8
     
    90489042    ; sub ah, ah                                ; 2a e4
    90499043    mov byte [bp+012h], al                    ; 88 46 12
    9050     jmp near 064f4h                           ; e9 8a 00
     9044    jmp near 06524h                           ; e9 8a 00
    90519045    mov dx, strict word 0006ch                ; ba 6c 00
    90529046    mov ax, strict word 00040h                ; b8 40 00
    9053     call 016d4h                               ; e8 61 b2
     9047    call 016d4h                               ; e8 31 b2
    90549048    mov si, ax                                ; 89 c6
    90559049    lea dx, [bx+005h]                         ; 8d 57 05
     
    90599053    and ax, strict word 00060h                ; 25 60 00
    90609054    cmp ax, strict word 00060h                ; 3d 60 00
    9061     je short 0649ah                           ; 74 17
     9055    je short 064cah                           ; 74 17
    90629056    test cl, cl                               ; 84 c9
    9063     je short 0649ah                           ; 74 13
     9057    je short 064cah                           ; 74 13
    90649058    mov dx, strict word 0006ch                ; ba 6c 00
    90659059    mov ax, strict word 00040h                ; b8 40 00
    9066     call 016d4h                               ; e8 44 b2
     9060    call 016d4h                               ; e8 14 b2
    90679061    cmp ax, si                                ; 39 f0
    9068     je short 06475h                           ; 74 e1
     9062    je short 064a5h                           ; 74 e1
    90699063    mov si, ax                                ; 89 c6
    90709064    db  0feh, 0c9h
    90719065    ; dec cl                                    ; fe c9
    9072     jmp short 06475h                          ; eb db
     9066    jmp short 064a5h                          ; eb db
    90739067    test cl, cl                               ; 84 c9
    9074     je short 064a4h                           ; 74 06
     9068    je short 064d4h                           ; 74 06
    90759069    mov al, byte [bp+012h]                    ; 8a 46 12
    90769070    mov dx, bx                                ; 89 da
     
    90829076    mov byte [bp+013h], al                    ; 88 46 13
    90839077    test cl, cl                               ; 84 c9
    9084     jne short 064f4h                          ; 75 43
     9078    jne short 06524h                          ; 75 43
    90859079    or AL, strict byte 080h                   ; 0c 80
    90869080    mov byte [bp+013h], al                    ; 88 46 13
    9087     jmp short 064f4h                          ; eb 3c
     9081    jmp short 06524h                          ; eb 3c
    90889082    mov dx, strict word 0006ch                ; ba 6c 00
    90899083    mov ax, strict word 00040h                ; b8 40 00
    9090     call 016d4h                               ; e8 13 b2
     9084    call 016d4h                               ; e8 e3 b1
    90919085    mov si, ax                                ; 89 c6
    90929086    lea dx, [bx+005h]                         ; 8d 57 05
     
    90959089    ; sub ah, ah                                ; 2a e4
    90969090    test AL, strict byte 001h                 ; a8 01
    9097     jne short 064e4h                          ; 75 17
     9091    jne short 06514h                          ; 75 17
    90989092    test cl, cl                               ; 84 c9
    9099     je short 064e4h                           ; 74 13
     9093    je short 06514h                           ; 74 13
    91009094    mov dx, strict word 0006ch                ; ba 6c 00
    91019095    mov ax, strict word 00040h                ; b8 40 00
    9102     call 016d4h                               ; e8 fa b1
     9096    call 016d4h                               ; e8 ca b1
    91039097    cmp ax, si                                ; 39 f0
    9104     je short 064c3h                           ; 74 e5
     9098    je short 064f3h                           ; 74 e5
    91059099    mov si, ax                                ; 89 c6
    91069100    db  0feh, 0c9h
    91079101    ; dec cl                                    ; fe c9
    9108     jmp short 064c3h                          ; eb df
     9102    jmp short 064f3h                          ; eb df
    91099103    test cl, cl                               ; 84 c9
    9110     je short 064fah                           ; 74 12
     9104    je short 0652ah                           ; 74 12
    91119105    mov byte [bp+013h], 000h                  ; c6 46 13 00
    91129106    mov dx, bx                                ; 89 da
     
    91169110    mov byte [bp+012h], al                    ; 88 46 12
    91179111    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9118     jmp short 0651dh                          ; eb 23
     9112    jmp short 0654dh                          ; eb 23
    91199113    lea dx, [bx+005h]                         ; 8d 57 05
    91209114    in AL, DX                                 ; ec
    91219115    db  02ah, 0e4h
    91229116    ; sub ah, ah                                ; 2a e4
    9123     jmp short 064b3h                          ; eb b1
     9117    jmp short 064e3h                          ; eb b1
    91249118    lea dx, [si+005h]                         ; 8d 54 05
    91259119    in AL, DX                                 ; ec
     
    91319125    db  02ah, 0e4h
    91329126    ; sub ah, ah                                ; 2a e4
    9133     jmp short 064f1h                          ; eb de
     9127    jmp short 06521h                          ; eb de
    91349128    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9135     jmp short 0651dh                          ; eb 04
     9129    jmp short 0654dh                          ; eb 04
    91369130    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    91379131    lea sp, [bp-002h]                         ; 8d 66 fe
     
    91399133    pop bp                                    ; 5d
    91409134    retn                                      ; c3
    9141 timer_wait_:                                 ; 0xf6523 LB 0x43
     9135timer_wait_:                                 ; 0xf6553 LB 0x43
    91429136    push bp                                   ; 55
    91439137    mov bp, sp                                ; 89 e5
     
    91479141    mov bx, strict word 0000fh                ; bb 0f 00
    91489142    xor cx, cx                                ; 31 c9
    9149     call 09ec0h                               ; e8 8f 39
     9143    call 09ef0h                               ; e8 8f 39
    91509144    mov cx, ax                                ; 89 c1
    91519145    mov bx, dx                                ; 89 d3
     
    91599153    adc bx, strict byte 0ffffh                ; 83 d3 ff
    91609154    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9161     jne short 06550h                          ; 75 05
     9155    jne short 06580h                          ; 75 05
    91629156    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9163     je short 0655fh                           ; 74 0f
     9157    je short 0658fh                           ; 74 0f
    91649158    mov dx, strict word 00061h                ; ba 61 00
    91659159    in AL, DX                                 ; ec
     
    91689162    and AL, strict byte 010h                  ; 24 10
    91699163    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9170     jne short 06550h                          ; 75 f3
    9171     jmp short 06540h                          ; eb e1
     9164    jne short 06580h                          ; 75 f3
     9165    jmp short 06570h                          ; eb e1
    91729166    lea sp, [bp-004h]                         ; 8d 66 fc
    91739167    pop cx                                    ; 59
     
    91759169    pop bp                                    ; 5d
    91769170    retn                                      ; c3
    9177 set_enable_a20_:                             ; 0xf6566 LB 0x2c
     9171set_enable_a20_:                             ; 0xf6596 LB 0x2c
    91789172    push bp                                   ; 55
    91799173    mov bp, sp                                ; 89 e5
     
    91889182    mov cl, al                                ; 88 c1
    91899183    test bx, bx                               ; 85 db
    9190     je short 0657fh                           ; 74 05
     9184    je short 065afh                           ; 74 05
    91919185    or AL, strict byte 002h                   ; 0c 02
    91929186    out DX, AL                                ; ee
    9193     jmp short 06582h                          ; eb 03
     9187    jmp short 065b2h                          ; eb 03
    91949188    and AL, strict byte 0fdh                  ; 24 fd
    91959189    out DX, AL                                ; ee
     
    92049198    pop bp                                    ; 5d
    92059199    retn                                      ; c3
    9206 set_e820_range_:                             ; 0xf6592 LB 0x89
     9200set_e820_range_:                             ; 0xf65c2 LB 0x89
    92079201    push si                                   ; 56
    92089202    push bp                                   ; 55
     
    92339227    retn 0000ah                               ; c2 0a 00
    92349228    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9235     db  01fh, 069h, 058h, 066h, 06bh, 066h, 000h, 067h, 006h, 067h, 00bh, 067h, 010h, 067h, 0b2h, 067h
    9236     db  0dch, 067h, 0f9h, 066h, 0f9h, 066h, 0a9h, 068h, 0d1h, 068h, 0e4h, 068h, 0f3h, 068h, 000h, 067h
    9237     db  0fah, 068h
    9238 _int15_function:                             ; 0xf661b LB 0x336
     9229    db  04fh, 069h, 088h, 066h, 09bh, 066h, 030h, 067h, 036h, 067h, 03bh, 067h, 040h, 067h, 0e2h, 067h
     9230    db  00ch, 068h, 029h, 067h, 029h, 067h, 0d9h, 068h, 001h, 069h, 014h, 069h, 023h, 069h, 030h, 067h
     9231    db  02ah, 069h
     9232_int15_function:                             ; 0xf664b LB 0x336
    92399233    push bp                                   ; 55
    92409234    mov bp, sp                                ; 89 e5
     
    92449238    shr ax, 008h                              ; c1 e8 08
    92459239    cmp ax, 000ech                            ; 3d ec 00
    9246     jnbe near 0691fh                          ; 0f 87 f2 02
     9240    jnbe near 0694fh                          ; 0f 87 f2 02
    92479241    push CS                                   ; 0e
    92489242    pop ES                                    ; 07
    92499243    mov cx, strict word 00011h                ; b9 11 00
    9250     mov di, 065e9h                            ; bf e9 65
     9244    mov di, 06619h                            ; bf 19 66
    92519245    repne scasb                               ; f2 ae
    92529246    sal cx, 1                                 ; d1 e1
    92539247    mov di, cx                                ; 89 cf
    9254     mov si, word [cs:di+065f9h]               ; 2e 8b b5 f9 65
     9248    mov si, word [cs:di+06629h]               ; 2e 8b b5 29 66
    92559249    mov ax, word [bp+012h]                    ; 8b 46 12
    92569250    xor ah, ah                                ; 30 e4
     
    92659259    xor ah, ah                                ; 30 e4
    92669260    cmp ax, 000c0h                            ; 3d c0 00
    9267     jne near 0691fh                           ; 0f 85 bb 02
     9261    jne near 0694fh                           ; 0f 85 bb 02
    92689262    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9269     jmp near 068c8h                           ; e9 5d 02
     9263    jmp near 068f8h                           ; e9 5d 02
    92709264    mov dx, ax                                ; 89 c2
    92719265    cmp ax, strict word 00001h                ; 3d 01 00
    9272     jc short 06680h                           ; 72 0e
    9273     jbe short 06694h                          ; 76 20
     9266    jc short 066b0h                           ; 72 0e
     9267    jbe short 066c4h                          ; 76 20
    92749268    cmp ax, strict word 00003h                ; 3d 03 00
    9275     je short 066c1h                           ; 74 48
     9269    je short 066f1h                           ; 74 48
    92769270    cmp ax, strict word 00002h                ; 3d 02 00
    9277     je short 066a4h                           ; 74 26
    9278     jmp short 066ceh                          ; eb 4e
     9271    je short 066d4h                           ; 74 26
     9272    jmp short 066feh                          ; eb 4e
    92799273    test ax, ax                               ; 85 c0
    9280     jne short 066ceh                          ; 75 4a
     9274    jne short 066feh                          ; 75 4a
    92819275    xor ax, ax                                ; 31 c0
    9282     call 06566h                               ; e8 dd fe
     9276    call 06596h                               ; e8 dd fe
    92839277    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92849278    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9285     jmp near 066f9h                           ; e9 65 00
     9279    jmp near 06729h                           ; e9 65 00
    92869280    mov ax, strict word 00001h                ; b8 01 00
    9287     call 06566h                               ; e8 cc fe
     9281    call 06596h                               ; e8 cc fe
    92889282    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    92899283    mov byte [bp+013h], dh                    ; 88 76 13
    9290     jmp near 066f9h                           ; e9 55 00
     9284    jmp near 06729h                           ; e9 55 00
    92919285    mov dx, 00092h                            ; ba 92 00
    92929286    in AL, DX                                 ; ec
     
    93009294    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93019295    mov byte [bp+013h], ah                    ; 88 66 13
    9302     jmp near 066f9h                           ; e9 38 00
     9296    jmp near 06729h                           ; e9 38 00
    93039297    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93049298    mov byte [bp+013h], ah                    ; 88 66 13
    93059299    mov word [bp+00ch], ax                    ; 89 46 0c
    9306     jmp near 066f9h                           ; e9 2b 00
     9300    jmp near 06729h                           ; e9 2b 00
    93079301    mov bx, 00da0h                            ; bb a0 0d
    93089302    mov cx, ds                                ; 8c d9
    93099303    mov ax, strict word 00004h                ; b8 04 00
    9310     call 01999h                               ; e8 c0 b2
     9304    call 01999h                               ; e8 90 b2
    93119305    mov ax, word [bp+012h]                    ; 8b 46 12
    93129306    xor ah, ah                                ; 30 e4
     
    93149308    push 0082eh                               ; 68 2e 08
    93159309    push strict byte 00004h                   ; 6a 04
    9316     call 019dah                               ; e8 f3 b2
     9310    call 019dah                               ; e8 c3 b2
    93179311    add sp, strict byte 00006h                ; 83 c4 06
    93189312    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    93279321    retn                                      ; c3
    93289322    mov word [bp+018h], bx                    ; 89 5e 18
    9329     jmp near 067ach                           ; e9 a6 00
     9323    jmp near 067dch                           ; e9 a6 00
    93309324    mov word [bp+018h], bx                    ; 89 5e 18
    9331     jmp short 066f9h                          ; eb ee
     9325    jmp short 06729h                          ; eb ee
    93329326    mov word [bp+018h], cx                    ; 89 4e 18
    9333     jmp short 066f6h                          ; eb e6
     9327    jmp short 06726h                          ; eb e6
    93349328    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9335     jne short 06782h                          ; 75 6c
     9329    jne short 067b2h                          ; 75 6c
    93369330    mov dx, 000a0h                            ; ba a0 00
    93379331    mov ax, strict word 00040h                ; b8 40 00
    9338     call 016b8h                               ; e8 99 af
     9332    call 016b8h                               ; e8 69 af
    93399333    test AL, strict byte 001h                 ; a8 01
    9340     jne near 068bfh                           ; 0f 85 9a 01
     9334    jne near 068efh                           ; 0f 85 9a 01
    93419335    mov bx, strict word 00001h                ; bb 01 00
    93429336    mov dx, 000a0h                            ; ba a0 00
    93439337    mov ax, strict word 00040h                ; b8 40 00
    9344     call 016c6h                               ; e8 95 af
     9338    call 016c6h                               ; e8 65 af
    93459339    mov bx, word [bp+014h]                    ; 8b 5e 14
    93469340    mov dx, 00098h                            ; ba 98 00
    93479341    mov ax, strict word 00040h                ; b8 40 00
    9348     call 016e2h                               ; e8 a5 af
     9342    call 016e2h                               ; e8 75 af
    93499343    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    93509344    mov dx, 0009ah                            ; ba 9a 00
    93519345    mov ax, strict word 00040h                ; b8 40 00
    9352     call 016e2h                               ; e8 99 af
     9346    call 016e2h                               ; e8 69 af
    93539347    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    93549348    mov dx, 0009ch                            ; ba 9c 00
    93559349    mov ax, strict word 00040h                ; b8 40 00
    9356     call 016e2h                               ; e8 8d af
     9350    call 016e2h                               ; e8 5d af
    93579351    mov bx, word [bp+010h]                    ; 8b 5e 10
    93589352    mov dx, 0009eh                            ; ba 9e 00
    93599353    mov ax, strict word 00040h                ; b8 40 00
    9360     call 016e2h                               ; e8 81 af
     9354    call 016e2h                               ; e8 51 af
    93619355    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93629356    mov dx, 000a1h                            ; ba a1 00
     
    93679361    out DX, AL                                ; ee
    93689362    mov ax, strict word 0000bh                ; b8 0b 00
    9369     call 01714h                               ; e8 a0 af
     9363    call 01714h                               ; e8 70 af
    93709364    or AL, strict byte 040h                   ; 0c 40
    93719365    movzx dx, al                              ; 0f b6 d0
    93729366    mov ax, strict word 0000bh                ; b8 0b 00
    9373     call 01731h                               ; e8 b2 af
    9374     jmp near 066f9h                           ; e9 77 ff
     9367    call 01731h                               ; e8 82 af
     9368    jmp near 06729h                           ; e9 77 ff
    93759369    cmp ax, strict word 00001h                ; 3d 01 00
    9376     jne short 067a0h                          ; 75 19
     9370    jne short 067d0h                          ; 75 19
    93779371    xor bx, bx                                ; 31 db
    93789372    mov dx, 000a0h                            ; ba a0 00
    93799373    mov ax, strict word 00040h                ; b8 40 00
    9380     call 016c6h                               ; e8 34 af
     9374    call 016c6h                               ; e8 04 af
    93819375    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    93829376    mov ax, strict word 0000bh                ; b8 0b 00
    9383     call 01714h                               ; e8 78 af
     9377    call 01714h                               ; e8 48 af
    93849378    and AL, strict byte 0bfh                  ; 24 bf
    9385     jmp short 06776h                          ; eb d6
     9379    jmp short 067a6h                          ; eb d6
    93869380    mov word [bp+018h], bx                    ; 89 5e 18
    93879381    mov ax, dx                                ; 89 d0
     
    93919385    or dx, ax                                 ; 09 c2
    93929386    mov word [bp+012h], dx                    ; 89 56 12
    9393     jmp near 066f9h                           ; e9 47 ff
     9387    jmp near 06729h                           ; e9 47 ff
    93949388    mov ax, strict word 00031h                ; b8 31 00
    9395     call 01714h                               ; e8 5c af
     9389    call 01714h                               ; e8 2c af
    93969390    movzx dx, al                              ; 0f b6 d0
    93979391    sal dx, 008h                              ; c1 e2 08
    93989392    mov ax, strict word 00030h                ; b8 30 00
    9399     call 01714h                               ; e8 50 af
     9393    call 01714h                               ; e8 20 af
    94009394    xor ah, ah                                ; 30 e4
    94019395    or dx, ax                                 ; 09 c2
    94029396    mov word [bp+012h], dx                    ; 89 56 12
    94039397    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9404     jbe short 067d5h                          ; 76 05
     9398    jbe short 06805h                          ; 76 05
    94059399    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    94069400    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9407     jmp near 066f9h                           ; e9 1d ff
     9401    jmp near 06729h                           ; e9 1d ff
    94089402    cli                                       ; fa
    94099403    mov ax, strict word 00001h                ; b8 01 00
    9410     call 06566h                               ; e8 83 fd
     9404    call 06596h                               ; e8 83 fd
    94119405    mov dx, word [bp+006h]                    ; 8b 56 06
    94129406    add dx, strict byte 00038h                ; 83 c2 38
    94139407    mov ax, word [bp+014h]                    ; 8b 46 14
    94149408    mov bx, strict word 0ffffh                ; bb ff ff
    9415     call 016e2h                               ; e8 f0 ae
     9409    call 016e2h                               ; e8 c0 ae
    94169410    mov dx, word [bp+006h]                    ; 8b 56 06
    94179411    add dx, strict byte 0003ah                ; 83 c2 3a
    94189412    mov ax, word [bp+014h]                    ; 8b 46 14
    94199413    xor bx, bx                                ; 31 db
    9420     call 016e2h                               ; e8 e2 ae
     9414    call 016e2h                               ; e8 b2 ae
    94219415    mov dx, word [bp+006h]                    ; 8b 56 06
    94229416    add dx, strict byte 0003ch                ; 83 c2 3c
    94239417    mov ax, word [bp+014h]                    ; 8b 46 14
    94249418    mov bx, strict word 0000fh                ; bb 0f 00
    9425     call 016c6h                               ; e8 b7 ae
     9419    call 016c6h                               ; e8 87 ae
    94269420    mov dx, word [bp+006h]                    ; 8b 56 06
    94279421    add dx, strict byte 0003dh                ; 83 c2 3d
    94289422    mov ax, word [bp+014h]                    ; 8b 46 14
    94299423    mov bx, 0009bh                            ; bb 9b 00
    9430     call 016c6h                               ; e8 a8 ae
     9424    call 016c6h                               ; e8 78 ae
    94319425    mov dx, word [bp+006h]                    ; 8b 56 06
    94329426    add dx, strict byte 0003eh                ; 83 c2 3e
    94339427    mov ax, word [bp+014h]                    ; 8b 46 14
    94349428    xor bx, bx                                ; 31 db
    9435     call 016e2h                               ; e8 b6 ae
     9429    call 016e2h                               ; e8 86 ae
    94369430    mov AL, strict byte 011h                  ; b0 11
    94379431    mov dx, strict word 00020h                ; ba 20 00
     
    94639457    out DX, AL                                ; ee
    94649458    mov si, word [bp+006h]                    ; 8b 76 06
    9465     call 0686dh                               ; e8 00 00
     9459    call 0689dh                               ; e8 00 00
    94669460    pop di                                    ; 5f
    94679461    add di, strict byte 00018h                ; 83 c7 18
     
    94919485    push cx                                   ; 51
    94929486    retf                                      ; cb
    9493     jmp near 066f9h                           ; e9 50 fe
     9487    jmp near 06729h                           ; e9 50 fe
    94949488    mov bx, 00da0h                            ; bb a0 0d
    94959489    mov cx, ds                                ; 8c d9
    94969490    mov ax, strict word 00004h                ; b8 04 00
    9497     call 01999h                               ; e8 e5 b0
     9491    call 01999h                               ; e8 b5 b0
    94989492    push 0086eh                               ; 68 6e 08
    94999493    push strict byte 00004h                   ; 6a 04
    9500     call 019dah                               ; e8 1e b1
     9494    call 019dah                               ; e8 ee b0
    95019495    add sp, strict byte 00004h                ; 83 c4 04
    95029496    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    95059499    or ah, 086h                               ; 80 cc 86
    95069500    mov word [bp+012h], ax                    ; 89 46 12
    9507     jmp near 066f9h                           ; e9 28 fe
     9501    jmp near 06729h                           ; e9 28 fe
    95089502    mov word [bp+018h], cx                    ; 89 4e 18
    95099503    mov word [bp+012h], ax                    ; 89 46 12
    95109504    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    95119505    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9512     jmp near 066f9h                           ; e9 15 fe
     9506    jmp near 06729h                           ; e9 15 fe
    95139507    mov dx, strict word 0000eh                ; ba 0e 00
    95149508    mov ax, strict word 00040h                ; b8 40 00
    9515     call 016d4h                               ; e8 e7 ad
     9509    call 016d4h                               ; e8 b7 ad
    95169510    mov word [bp+014h], ax                    ; 89 46 14
    9517     jmp near 067d5h                           ; e9 e2 fe
     9511    jmp near 06805h                           ; e9 e2 fe
    95189512    push 0089dh                               ; 68 9d 08
    95199513    push strict byte 00008h                   ; 6a 08
    9520     jmp short 068b9h                          ; eb bf
     9514    jmp short 068e9h                          ; eb bf
    95219515    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9522     jne short 0691fh                          ; 75 1f
     9516    jne short 0694fh                          ; 75 1f
    95239517    mov word [bp+012h], ax                    ; 89 46 12
    95249518    mov ax, word [bp+00ch]                    ; 8b 46 0c
    95259519    xor ah, ah                                ; 30 e4
    95269520    cmp ax, strict word 00001h                ; 3d 01 00
    9527     jc short 06918h                           ; 72 0b
     9521    jc short 06948h                           ; 72 0b
    95289522    cmp ax, strict word 00003h                ; 3d 03 00
    9529     jnbe short 06918h                         ; 77 06
     9523    jnbe short 06948h                         ; 77 06
    95309524    mov word [bp+018h], cx                    ; 89 4e 18
    9531     jmp near 066f9h                           ; e9 e1 fd
     9525    jmp near 06729h                           ; e9 e1 fd
    95329526    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9533     jmp near 066f9h                           ; e9 da fd
     9527    jmp near 06729h                           ; e9 da fd
    95349528    mov bx, 00da0h                            ; bb a0 0d
    95359529    mov cx, ds                                ; 8c d9
    95369530    mov ax, strict word 00004h                ; b8 04 00
    9537     call 01999h                               ; e8 6f b0
     9531    call 01999h                               ; e8 3f b0
    95389532    push word [bp+00ch]                       ; ff 76 0c
    95399533    push word [bp+012h]                       ; ff 76 12
    95409534    push 008b4h                               ; 68 b4 08
    95419535    push strict byte 00004h                   ; 6a 04
    9542     call 019dah                               ; e8 a2 b0
     9536    call 019dah                               ; e8 72 b0
    95439537    add sp, strict byte 00008h                ; 83 c4 08
    9544     jmp short 068bfh                          ; eb 82
    9545     retf 0ec6ah                               ; ca 6a ec
    9546     push strict byte 0000fh                   ; 6a 0f
    9547     imul si, word [bx+di], strict byte 0006bh ; 6b 31 6b
    9548     push cx                                   ; 51
    9549     imul si, word [bx+si+06bh], strict byte 0ff94h ; 6b 70 6b 94
    9550     imul di, word [bx+si-00895h], strict byte 0006bh ; 6b b8 6b f7 6b
    9551     db  023h
     9538    jmp short 068efh                          ; eb 82
     9539    cli                                       ; fa
     9540    push strict byte 0001ch                   ; 6a 1c
     9541    imul di, word [bx], strict byte 0006bh    ; 6b 3f 6b
     9542    popaw                                     ; 61
     9543    imul ax, word [bx+di-05f95h], strict byte 0006bh ; 6b 81 6b a0 6b
     9544    les bp, [bp+di-018h]                      ; c4 6b e8
     9545    imul sp, word [bx], strict byte 0006ch    ; 6b 27 6c
     9546    push bx                                   ; 53
    95529547    insb                                      ; 6c
    9553 _int15_function32:                           ; 0xf6951 LB 0x396
     9548_int15_function32:                           ; 0xf6981 LB 0x396
    95549549    push bp                                   ; 55
    95559550    mov bp, sp                                ; 89 e5
     
    95639558    xor dh, dh                                ; 30 f6
    95649559    cmp ax, 000e8h                            ; 3d e8 00
    9565     je near 069eeh                            ; 0f 84 7e 00
     9560    je near 06a1eh                            ; 0f 84 7e 00
    95669561    cmp ax, 000d0h                            ; 3d d0 00
    9567     je short 06989h                           ; 74 14
     9562    je short 069b9h                           ; 74 14
    95689563    cmp ax, 00086h                            ; 3d 86 00
    9569     jne near 06cb7h                           ; 0f 85 3b 03
     9564    jne near 06ce7h                           ; 0f 85 3b 03
    95709565    sti                                       ; fb
    95719566    mov dx, word [bp+01ch]                    ; 8b 56 1c
    95729567    mov ax, word [bp+018h]                    ; 8b 46 18
    9573     call 06523h                               ; e8 9d fb
    9574     jmp near 06ce1h                           ; e9 58 03
     9568    call 06553h                               ; e8 9d fb
     9569    jmp near 06d11h                           ; e9 58 03
    95759570    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9576     jne near 06cb7h                           ; 0f 85 27 03
     9571    jne near 06ce7h                           ; 0f 85 27 03
    95779572    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9578     jne near 06cb7h                           ; 0f 85 1e 03
     9573    jne near 06ce7h                           ; 0f 85 1e 03
    95799574    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9580     jne near 06cb7h                           ; 0f 85 15 03
     9575    jne near 06ce7h                           ; 0f 85 15 03
    95819576    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9582     jne near 06cb7h                           ; 0f 85 0c 03
     9577    jne near 06ce7h                           ; 0f 85 0c 03
    95839578    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9584     jne near 06cb7h                           ; 0f 85 03 03
     9579    jne near 06ce7h                           ; 0f 85 03 03
    95859580    mov ax, word [bp+00ah]                    ; 8b 46 0a
    95869581    or ax, word [bp+008h]                     ; 0b 46 08
    9587     jne near 06cb7h                           ; 0f 85 f9 02
     9582    jne near 06ce7h                           ; 0f 85 f9 02
    95889583    mov ax, word [bp+006h]                    ; 8b 46 06
    95899584    or ax, word [bp+004h]                     ; 0b 46 04
    9590     jne near 06cb7h                           ; 0f 85 ef 02
     9585    jne near 06ce7h                           ; 0f 85 ef 02
    95919586    mov word [bp+028h], bx                    ; 89 5e 28
    95929587    mov ax, word [bp+014h]                    ; 8b 46 14
     
    95999594    mov word [bp+006h], ax                    ; 89 46 06
    96009595    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9601     jmp near 06ce1h                           ; e9 f3 02
     9596    jmp near 06d11h                           ; e9 f3 02
    96029597    cmp dx, strict byte 00020h                ; 83 fa 20
    9603     je short 069fdh                           ; 74 0a
     9598    je short 06a2dh                           ; 74 0a
    96049599    cmp dx, strict byte 00001h                ; 83 fa 01
    9605     je near 06c6ah                            ; 0f 84 70 02
    9606     jmp near 06cb7h                           ; e9 ba 02
     9600    je near 06c9ah                            ; 0f 84 70 02
     9601    jmp near 06ce7h                           ; e9 ba 02
    96079602    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9608     jne near 06cb7h                           ; 0f 85 b1 02
     9603    jne near 06ce7h                           ; 0f 85 b1 02
    96099604    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9610     jne near 06cb7h                           ; 0f 85 a8 02
     9605    jne near 06ce7h                           ; 0f 85 a8 02
    96119606    mov ax, strict word 00035h                ; b8 35 00
    9612     call 01714h                               ; e8 ff ac
     9607    call 01714h                               ; e8 cf ac
    96139608    movzx bx, al                              ; 0f b6 d8
    96149609    xor dx, dx                                ; 31 d2
     
    96169611    sal bx, 1                                 ; d1 e3
    96179612    rcl dx, 1                                 ; d1 d2
    9618     loop 06a1dh                               ; e2 fa
     9613    loop 06a4dh                               ; e2 fa
    96199614    mov ax, strict word 00034h                ; b8 34 00
    9620     call 01714h                               ; e8 eb ac
     9615    call 01714h                               ; e8 bb ac
    96219616    xor ah, ah                                ; 30 e4
    96229617    mov dx, bx                                ; 89 da
     
    96269621    adc dx, 00100h                            ; 81 d2 00 01
    96279622    cmp dx, 00100h                            ; 81 fa 00 01
    9628     jc short 06a43h                           ; 72 06
    9629     jne short 06a70h                          ; 75 31
     9623    jc short 06a73h                           ; 72 06
     9624    jne short 06aa0h                          ; 75 31
    96309625    test bx, bx                               ; 85 db
    9631     jnbe short 06a70h                         ; 77 2d
     9626    jnbe short 06aa0h                         ; 77 2d
    96329627    mov ax, strict word 00031h                ; b8 31 00
    9633     call 01714h                               ; e8 cb ac
     9628    call 01714h                               ; e8 9b ac
    96349629    movzx bx, al                              ; 0f b6 d8
    96359630    xor dx, dx                                ; 31 d2
     
    96379632    sal bx, 1                                 ; d1 e3
    96389633    rcl dx, 1                                 ; d1 d2
    9639     loop 06a51h                               ; e2 fa
     9634    loop 06a81h                               ; e2 fa
    96409635    mov ax, strict word 00030h                ; b8 30 00
    9641     call 01714h                               ; e8 b7 ac
     9636    call 01714h                               ; e8 87 ac
    96429637    xor ah, ah                                ; 30 e4
    96439638    or bx, ax                                 ; 09 c3
     
    96459640    sal bx, 1                                 ; d1 e3
    96469641    rcl dx, 1                                 ; d1 d2
    9647     loop 06a64h                               ; e2 fa
     9642    loop 06a94h                               ; e2 fa
    96489643    add bx, strict byte 00000h                ; 83 c3 00
    96499644    adc dx, strict byte 00010h                ; 83 d2 10
    96509645    mov ax, strict word 00062h                ; b8 62 00
    9651     call 01714h                               ; e8 9e ac
     9646    call 01714h                               ; e8 6e ac
    96529647    xor ah, ah                                ; 30 e4
    96539648    mov word [bp-00ah], ax                    ; 89 46 f6
     
    96579652    sal word [bp-00ah], 1                     ; d1 66 f6
    96589653    rcl word [bp-008h], 1                     ; d1 56 f8
    9659     loop 06a83h                               ; e2 f8
     9654    loop 06ab3h                               ; e2 f8
    96609655    mov ax, strict word 00061h                ; b8 61 00
    9661     call 01714h                               ; e8 83 ac
     9656    call 01714h                               ; e8 53 ac
    96629657    xor ah, ah                                ; 30 e4
    96639658    or word [bp-00ah], ax                     ; 09 46 f6
     
    96669661    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    96679662    mov ax, strict word 00063h                ; b8 63 00
    9668     call 01714h                               ; e8 6d ac
     9663    call 01714h                               ; e8 3d ac
    96699664    mov byte [bp-004h], al                    ; 88 46 fc
    96709665    mov byte [bp-006h], al                    ; 88 46 fa
    96719666    mov ax, word [bp+014h]                    ; 8b 46 14
    96729667    cmp ax, strict word 00009h                ; 3d 09 00
    9673     jnbe near 06cb7h                          ; 0f 87 00 02
     9668    jnbe near 06ce7h                          ; 0f 87 00 02
    96749669    mov si, ax                                ; 89 c6
    96759670    add si, ax                                ; 01 c6
     
    96789673    mov cx, dx                                ; 89 d1
    96799674    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9680     jmp word [cs:si+0693dh]                   ; 2e ff a4 3d 69
     9675    jmp word [cs:si+0696dh]                   ; 2e ff a4 6d 69
    96819676    push strict byte 00001h                   ; 6a 01
    96829677    push dword 000000000h                     ; 66 6a 00
     
    96879682    xor bx, bx                                ; 31 db
    96889683    xor cx, cx                                ; 31 c9
    9689     call 06592h                               ; e8 b1 fa
     9684    call 065c2h                               ; e8 b1 fa
    96909685    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9691     jmp near 06c54h                           ; e9 68 01
     9686    jmp near 06c84h                           ; e9 68 01
    96929687    push strict byte 00002h                   ; 6a 02
    96939688    push dword 000000000h                     ; 66 6a 00
     
    96989693    mov bx, 0fc00h                            ; bb 00 fc
    96999694    mov cx, strict word 00009h                ; b9 09 00
    9700     call 06592h                               ; e8 8e fa
     9695    call 065c2h                               ; e8 8e fa
    97019696    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9702     jmp near 06c54h                           ; e9 45 01
     9697    jmp near 06c84h                           ; e9 45 01
    97039698    push strict byte 00002h                   ; 6a 02
    97049699    push dword 000000000h                     ; 66 6a 00
     
    97099704    xor bx, bx                                ; 31 db
    97109705    mov cx, strict word 0000fh                ; b9 0f 00
    9711     call 06592h                               ; e8 6c fa
     9706    call 065c2h                               ; e8 6c fa
    97129707    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9713     jmp near 06c54h                           ; e9 23 01
     9708    jmp near 06c84h                           ; e9 23 01
    97149709    push strict byte 00001h                   ; 6a 01
    97159710    push dword 000000000h                     ; 66 6a 00
     
    97209715    xor bx, bx                                ; 31 db
    97219716    mov cx, strict word 00010h                ; b9 10 00
    9722     call 06592h                               ; e8 4c fa
     9717    call 065c2h                               ; e8 4c fa
    97239718    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9724     jmp near 06c54h                           ; e9 03 01
     9719    jmp near 06c84h                           ; e9 03 01
    97259720    push strict byte 00003h                   ; 6a 03
    97269721    push dword 000000000h                     ; 66 6a 00
     
    97319726    mov bx, ax                                ; 89 c3
    97329727    mov ax, si                                ; 89 f0
    9733     call 06592h                               ; e8 2d fa
     9728    call 065c2h                               ; e8 2d fa
    97349729    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9735     jmp near 06c54h                           ; e9 e4 00
     9730    jmp near 06c84h                           ; e9 e4 00
    97369731    push strict byte 00002h                   ; 6a 02
    97379732    push dword 000000000h                     ; 66 6a 00
     
    97429737    xor bx, bx                                ; 31 db
    97439738    mov cx, 0fec0h                            ; b9 c0 fe
    9744     call 06592h                               ; e8 09 fa
     9739    call 065c2h                               ; e8 09 fa
    97459740    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9746     jmp near 06c54h                           ; e9 c0 00
     9741    jmp near 06c84h                           ; e9 c0 00
    97479742    push strict byte 00002h                   ; 6a 02
    97489743    push dword 000000000h                     ; 66 6a 00
     
    97539748    xor bx, bx                                ; 31 db
    97549749    mov cx, 0fee0h                            ; b9 e0 fe
    9755     call 06592h                               ; e8 e5 f9
     9750    call 065c2h                               ; e8 e5 f9
    97569751    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9757     jmp near 06c54h                           ; e9 9c 00
     9752    jmp near 06c84h                           ; e9 9c 00
    97589753    push strict byte 00002h                   ; 6a 02
    97599754    push dword 000000000h                     ; 66 6a 00
     
    97639758    xor bx, bx                                ; 31 db
    97649759    mov cx, strict word 0fffch                ; b9 fc ff
    9765     call 06592h                               ; e8 c4 f9
     9760    call 065c2h                               ; e8 c4 f9
    97669761    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9767     jne short 06bdbh                          ; 75 07
     9762    jne short 06c0bh                          ; 75 07
    97689763    mov ax, word [bp-008h]                    ; 8b 46 f8
    97699764    test ax, ax                               ; 85 c0
    9770     je short 06befh                           ; 74 14
     9765    je short 06c1fh                           ; 74 14
    97719766    mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
    9772     jmp short 06c54h                          ; eb 6f
     9767    jmp short 06c84h                          ; eb 6f
    97739768    mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
    9774     jmp short 06c54h                          ; eb 65
     9769    jmp short 06c84h                          ; eb 65
    97759770    mov word [bp+014h], ax                    ; 89 46 14
    97769771    mov word [bp+016h], ax                    ; 89 46 16
    9777     jmp short 06c54h                          ; eb 5d
     9772    jmp short 06c84h                          ; eb 5d
    97789773    push strict byte 00002h                   ; 6a 02
    97799774    push dword 000000000h                     ; 66 6a 00
     
    97839778    xor bx, bx                                ; 31 db
    97849779    xor cx, cx                                ; 31 c9
    9785     call 06592h                               ; e8 86 f9
     9780    call 065c2h                               ; e8 86 f9
    97869781    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9787     jne short 06c19h                          ; 75 07
     9782    jne short 06c49h                          ; 75 07
    97889783    mov ax, word [bp-008h]                    ; 8b 46 f8
    97899784    test ax, ax                               ; 85 c0
    9790     je short 06c1bh                           ; 74 02
    9791     jmp short 06bdbh                          ; eb c0
     9785    je short 06c4bh                           ; 74 02
     9786    jmp short 06c0bh                          ; eb c0
    97929787    mov word [bp+014h], ax                    ; 89 46 14
    97939788    mov word [bp+016h], ax                    ; 89 46 16
    9794     jmp short 06c54h                          ; eb 31
     9789    jmp short 06c84h                          ; eb 31
    97959790    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9796     jne short 06c2fh                          ; 75 06
     9791    jne short 06c5fh                          ; 75 06
    97979792    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9798     je short 06c54h                           ; 74 25
     9793    je short 06c84h                           ; 74 25
    97999794    push strict byte 00001h                   ; 6a 01
    98009795    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    98099804    xor bx, bx                                ; 31 db
    98109805    xor cx, cx                                ; 31 c9
    9811     call 06592h                               ; e8 46 f9
     9806    call 065c2h                               ; e8 46 f9
    98129807    xor ax, ax                                ; 31 c0
    98139808    mov word [bp+014h], ax                    ; 89 46 14
     
    98169811    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    98179812    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9818     jmp short 06ce1h                          ; eb 77
     9813    jmp short 06d11h                          ; eb 77
    98199814    mov word [bp+028h], bx                    ; 89 5e 28
    98209815    mov ax, strict word 00031h                ; b8 31 00
    9821     call 01714h                               ; e8 a1 aa
     9816    call 01714h                               ; e8 71 aa
    98229817    xor ah, ah                                ; 30 e4
    98239818    mov dx, ax                                ; 89 c2
    98249819    sal dx, 008h                              ; c1 e2 08
    98259820    mov ax, strict word 00030h                ; b8 30 00
    9826     call 01714h                               ; e8 94 aa
     9821    call 01714h                               ; e8 64 aa
    98279822    xor ah, ah                                ; 30 e4
    98289823    or dx, ax                                 ; 09 c2
    98299824    mov word [bp+01ch], dx                    ; 89 56 1c
    98309825    cmp dx, 03c00h                            ; 81 fa 00 3c
    9831     jbe short 06c92h                          ; 76 05
     9826    jbe short 06cc2h                          ; 76 05
    98329827    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    98339828    mov ax, strict word 00035h                ; b8 35 00
    9834     call 01714h                               ; e8 7c aa
     9829    call 01714h                               ; e8 4c aa
    98359830    xor ah, ah                                ; 30 e4
    98369831    mov dx, ax                                ; 89 c2
    98379832    sal dx, 008h                              ; c1 e2 08
    98389833    mov ax, strict word 00034h                ; b8 34 00
    9839     call 01714h                               ; e8 6f aa
     9834    call 01714h                               ; e8 3f aa
    98409835    xor ah, ah                                ; 30 e4
    98419836    or dx, ax                                 ; 09 c2
     
    98449839    mov word [bp+020h], ax                    ; 89 46 20
    98459840    mov word [bp+014h], dx                    ; 89 56 14
    9846     jmp short 06ce1h                          ; eb 2a
     9841    jmp short 06d11h                          ; eb 2a
    98479842    mov bx, 00da0h                            ; bb a0 0d
    98489843    mov cx, ds                                ; 8c d9
    98499844    mov ax, strict word 00004h                ; b8 04 00
    9850     call 01999h                               ; e8 d7 ac
     9845    call 01999h                               ; e8 a7 ac
    98519846    push word [bp+014h]                       ; ff 76 14
    98529847    push word [bp+020h]                       ; ff 76 20
    98539848    push 008b4h                               ; 68 b4 08
    98549849    push strict byte 00004h                   ; 6a 04
    9855     call 019dah                               ; e8 0a ad
     9850    call 019dah                               ; e8 da ac
    98569851    add sp, strict byte 00008h                ; 83 c4 08
    98579852    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    98649859    pop bp                                    ; 5d
    98659860    retn                                      ; c3
    9866 _int15_blkmove:                              ; 0xf6ce7 LB 0x1ab
     9861_int15_blkmove:                              ; 0xf6d17 LB 0x1ab
    98679862    push bp                                   ; 55
    98689863    mov bp, sp                                ; 89 e5
     
    98739868    cli                                       ; fa
    98749869    mov ax, strict word 00001h                ; b8 01 00
    9875     call 06566h                               ; e8 71 f8
     9870    call 06596h                               ; e8 71 f8
    98769871    mov di, ax                                ; 89 c7
    98779872    mov ax, word [bp+006h]                    ; 8b 46 06
     
    98839878    mov byte [bp-006h], dl                    ; 88 56 fa
    98849879    cmp cx, ax                                ; 39 c1
    9885     jnc short 06d14h                          ; 73 05
     9880    jnc short 06d44h                          ; 73 05
    98869881    db  0feh, 0c2h
    98879882    ; inc dl                                    ; fe c2
     
    98919886    mov ax, word [bp+006h]                    ; 8b 46 06
    98929887    mov bx, strict word 0002fh                ; bb 2f 00
    9893     call 016e2h                               ; e8 bf a9
     9888    call 016e2h                               ; e8 8f a9
    98949889    mov dx, word [bp+00ah]                    ; 8b 56 0a
    98959890    add dx, strict byte 0000ah                ; 83 c2 0a
    98969891    mov ax, word [bp+006h]                    ; 8b 46 06
    98979892    mov bx, cx                                ; 89 cb
    9898     call 016e2h                               ; e8 b1 a9
     9893    call 016e2h                               ; e8 81 a9
    98999894    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    99009895    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99019896    add dx, strict byte 0000ch                ; 83 c2 0c
    99029897    mov ax, word [bp+006h]                    ; 8b 46 06
    9903     call 016c6h                               ; e8 85 a9
     9898    call 016c6h                               ; e8 55 a9
    99049899    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99059900    add dx, strict byte 0000dh                ; 83 c2 0d
    99069901    mov ax, word [bp+006h]                    ; 8b 46 06
    99079902    mov bx, 00093h                            ; bb 93 00
    9908     call 016c6h                               ; e8 76 a9
     9903    call 016c6h                               ; e8 46 a9
    99099904    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99109905    add dx, strict byte 0000eh                ; 83 c2 0e
    99119906    mov ax, word [bp+006h]                    ; 8b 46 06
    99129907    xor bx, bx                                ; 31 db
    9913     call 016e2h                               ; e8 84 a9
     9908    call 016e2h                               ; e8 54 a9
    99149909    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99159910    add dx, strict byte 00020h                ; 83 c2 20
    99169911    mov ax, word [bp+006h]                    ; 8b 46 06
    99179912    mov bx, strict word 0ffffh                ; bb ff ff
    9918     call 016e2h                               ; e8 75 a9
     9913    call 016e2h                               ; e8 45 a9
    99199914    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99209915    add dx, strict byte 00022h                ; 83 c2 22
    99219916    mov ax, word [bp+006h]                    ; 8b 46 06
    99229917    xor bx, bx                                ; 31 db
    9923     call 016e2h                               ; e8 67 a9
     9918    call 016e2h                               ; e8 37 a9
    99249919    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99259920    add dx, strict byte 00024h                ; 83 c2 24
    99269921    mov ax, word [bp+006h]                    ; 8b 46 06
    99279922    mov bx, strict word 0000fh                ; bb 0f 00
    9928     call 016c6h                               ; e8 3c a9
     9923    call 016c6h                               ; e8 0c a9
    99299924    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99309925    add dx, strict byte 00025h                ; 83 c2 25
    99319926    mov ax, word [bp+006h]                    ; 8b 46 06
    99329927    mov bx, 0009bh                            ; bb 9b 00
    9933     call 016c6h                               ; e8 2d a9
     9928    call 016c6h                               ; e8 fd a8
    99349929    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99359930    add dx, strict byte 00026h                ; 83 c2 26
    99369931    mov ax, word [bp+006h]                    ; 8b 46 06
    99379932    xor bx, bx                                ; 31 db
    9938     call 016e2h                               ; e8 3b a9
     9933    call 016e2h                               ; e8 0b a9
    99399934    mov ax, ss                                ; 8c d0
    99409935    mov cx, ax                                ; 89 c1
     
    99469941    mov ax, word [bp+006h]                    ; 8b 46 06
    99479942    mov bx, strict word 0ffffh                ; bb ff ff
    9948     call 016e2h                               ; e8 1f a9
     9943    call 016e2h                               ; e8 ef a8
    99499944    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99509945    add dx, strict byte 0002ah                ; 83 c2 2a
    99519946    mov ax, word [bp+006h]                    ; 8b 46 06
    99529947    mov bx, cx                                ; 89 cb
    9953     call 016e2h                               ; e8 11 a9
     9948    call 016e2h                               ; e8 e1 a8
    99549949    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    99559950    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99569951    add dx, strict byte 0002ch                ; 83 c2 2c
    99579952    mov ax, word [bp+006h]                    ; 8b 46 06
    9958     call 016c6h                               ; e8 e5 a8
     9953    call 016c6h                               ; e8 b5 a8
    99599954    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99609955    add dx, strict byte 0002dh                ; 83 c2 2d
    99619956    mov ax, word [bp+006h]                    ; 8b 46 06
    99629957    mov bx, 00093h                            ; bb 93 00
    9963     call 016c6h                               ; e8 d6 a8
     9958    call 016c6h                               ; e8 a6 a8
    99649959    mov dx, word [bp+00ah]                    ; 8b 56 0a
    99659960    add dx, strict byte 0002eh                ; 83 c2 2e
    99669961    mov ax, word [bp+006h]                    ; 8b 46 06
    99679962    xor bx, bx                                ; 31 db
    9968     call 016e2h                               ; e8 e4 a8
     9963    call 016e2h                               ; e8 b4 a8
    99699964    lea ax, [bp+004h]                         ; 8d 46 04
    99709965    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    99789973    mov word [00467h], sp                     ; 89 26 67 04
    99799974    mov [00469h], ss                          ; 8c 16 69 04
    9980     call 06e1dh                               ; e8 00 00
     9975    call 06e4dh                               ; e8 00 00
    99819976    pop di                                    ; 5f
    99829977    add di, strict byte 0001bh                ; 83 c7 1b
     
    100019996    cld                                       ; fc
    100029997    rep movsw                                 ; f3 a5
    10003     call 06e51h                               ; e8 00 00
     9998    call 06e81h                               ; e8 00 00
    100049999    pop ax                                    ; 58
    1000510000    push 0f000h                               ; 68 00 f0
     
    1002210017    pop DS                                    ; 1f
    1002310018    mov ax, di                                ; 89 f8
    10024     call 06566h                               ; e8 e4 f6
     10019    call 06596h                               ; e8 e4 f6
    1002510020    sti                                       ; fb
    1002610021    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1003110026    pop bp                                    ; 5d
    1003210027    retn                                      ; c3
    10033 _inv_op_handler:                             ; 0xf6e92 LB 0x195
     10028_inv_op_handler:                             ; 0xf6ec2 LB 0x195
    1003410029    push bp                                   ; 55
    1003510030    mov bp, sp                                ; 89 e5
     
    1004010035    les bx, [bp+018h]                         ; c4 5e 18
    1004110036    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10042     jne short 06ea8h                          ; 75 06
     10037    jne short 06ed8h                          ; 75 06
    1004310038    inc word [bp+018h]                        ; ff 46 18
    10044     jmp near 07020h                           ; e9 78 01
     10039    jmp near 07050h                           ; e9 78 01
    1004510040    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10046     jne near 0701ch                           ; 0f 85 6b 01
     10041    jne near 0704ch                           ; 0f 85 6b 01
    1004710042    mov si, 00800h                            ; be 00 08
    1004810043    xor ax, ax                                ; 31 c0
     
    1007210067    sal ax, 1                                 ; d1 e0
    1007310068    rcl dx, 1                                 ; d1 d2
    10074     loop 06f01h                               ; e2 fa
     10069    loop 06f31h                               ; e2 fa
    1007510070    cmp bx, dx                                ; 39 d3
    10076     jne short 06f0fh                          ; 75 04
     10071    jne short 06f3fh                          ; 75 04
    1007710072    cmp di, ax                                ; 39 c7
    10078     je short 06f14h                           ; 74 05
     10073    je short 06f44h                           ; 74 05
    1007910074    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1008010075    mov es, [bp-006h]                         ; 8e 46 fa
     
    1008610081    sal ax, 1                                 ; d1 e0
    1008710082    rcl dx, 1                                 ; d1 d2
    10088     loop 06f29h                               ; e2 fa
     10083    loop 06f59h                               ; e2 fa
    1008910084    cmp di, dx                                ; 39 d7
    10090     jne short 06f37h                          ; 75 04
     10085    jne short 06f67h                          ; 75 04
    1009110086    cmp bx, ax                                ; 39 c3
    10092     je short 06f3bh                           ; 74 04
     10087    je short 06f6bh                           ; 74 04
    1009310088    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1009410089    push strict byte 00000h                   ; 6a 00
     
    1014010135    mov ax, strict word 00008h                ; b8 08 00
    1014110136    test cx, strict word 00001h               ; f7 c1 01 00
    10142     je near 06fd9h                            ; 0f 84 02 00
     10137    je near 07009h                            ; 0f 84 02 00
    1014310138    mov es, ax                                ; 8e c0
    1014410139    test cx, strict word 00002h               ; f7 c1 02 00
    10145     je near 07001h                            ; 0f 84 20 00
     10140    je near 07031h                            ; 0f 84 20 00
    1014610141    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1014710142    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1016010155    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1016110156    iret                                      ; cf
    10162     jmp short 07020h                          ; eb 04
     10157    jmp short 07050h                          ; eb 04
    1016310158    sti                                       ; fb
    1016410159    hlt                                       ; f4
    10165     jmp short 0701dh                          ; eb fd
     10160    jmp short 0704dh                          ; eb fd
    1016610161    lea sp, [bp-004h]                         ; 8d 66 fc
    1016710162    pop di                                    ; 5f
     
    1016910164    pop bp                                    ; 5d
    1017010165    retn                                      ; c3
    10171 init_rtc_:                                   ; 0xf7027 LB 0x28
     10166init_rtc_:                                   ; 0xf7057 LB 0x28
    1017210167    push bp                                   ; 55
    1017310168    mov bp, sp                                ; 89 e5
     
    1017510170    mov dx, strict word 00026h                ; ba 26 00
    1017610171    mov ax, strict word 0000ah                ; b8 0a 00
    10177     call 01731h                               ; e8 fd a6
     10172    call 01731h                               ; e8 cd a6
    1017810173    mov dx, strict word 00002h                ; ba 02 00
    1017910174    mov ax, strict word 0000bh                ; b8 0b 00
    10180     call 01731h                               ; e8 f4 a6
     10175    call 01731h                               ; e8 c4 a6
    1018110176    mov ax, strict word 0000ch                ; b8 0c 00
    10182     call 01714h                               ; e8 d1 a6
     10177    call 01714h                               ; e8 a1 a6
    1018310178    mov ax, strict word 0000dh                ; b8 0d 00
    10184     call 01714h                               ; e8 cb a6
     10179    call 01714h                               ; e8 9b a6
    1018510180    lea sp, [bp-002h]                         ; 8d 66 fe
    1018610181    pop dx                                    ; 5a
    1018710182    pop bp                                    ; 5d
    1018810183    retn                                      ; c3
    10189 rtc_updating_:                               ; 0xf704f LB 0x21
     10184rtc_updating_:                               ; 0xf707f LB 0x21
    1019010185    push bp                                   ; 55
    1019110186    mov bp, sp                                ; 89 e5
     
    1019310188    mov dx, 061a8h                            ; ba a8 61
    1019410189    dec dx                                    ; 4a
    10195     je short 07067h                           ; 74 0e
     10190    je short 07097h                           ; 74 0e
    1019610191    mov ax, strict word 0000ah                ; b8 0a 00
    10197     call 01714h                               ; e8 b5 a6
     10192    call 01714h                               ; e8 85 a6
    1019810193    test AL, strict byte 080h                 ; a8 80
    10199     jne short 07056h                          ; 75 f3
     10194    jne short 07086h                          ; 75 f3
    1020010195    xor ax, ax                                ; 31 c0
    10201     jmp short 0706ah                          ; eb 03
     10196    jmp short 0709ah                          ; eb 03
    1020210197    mov ax, strict word 00001h                ; b8 01 00
    1020310198    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1020510200    pop bp                                    ; 5d
    1020610201    retn                                      ; c3
    10207 _int70_function:                             ; 0xf7070 LB 0xbe
     10202_int70_function:                             ; 0xf70a0 LB 0xbe
    1020810203    push bp                                   ; 55
    1020910204    mov bp, sp                                ; 89 e5
     
    1021110206    push ax                                   ; 50
    1021210207    mov ax, strict word 0000bh                ; b8 0b 00
    10213     call 01714h                               ; e8 99 a6
     10208    call 01714h                               ; e8 69 a6
    1021410209    mov dl, al                                ; 88 c2
    1021510210    mov byte [bp-004h], al                    ; 88 46 fc
    1021610211    mov ax, strict word 0000ch                ; b8 0c 00
    10217     call 01714h                               ; e8 8e a6
     10212    call 01714h                               ; e8 5e a6
    1021810213    mov dh, al                                ; 88 c6
    1021910214    test dl, 060h                             ; f6 c2 60
    10220     je near 07115h                            ; 0f 84 86 00
     10215    je near 07145h                            ; 0f 84 86 00
    1022110216    test AL, strict byte 020h                 ; a8 20
    10222     je short 07097h                           ; 74 04
     10217    je short 070c7h                           ; 74 04
    1022310218    sti                                       ; fb
    1022410219    int 04ah                                  ; cd 4a
    1022510220    cli                                       ; fa
    1022610221    test dh, 040h                             ; f6 c6 40
    10227     je near 07115h                            ; 0f 84 77 00
     10222    je near 07145h                            ; 0f 84 77 00
    1022810223    mov dx, 000a0h                            ; ba a0 00
    1022910224    mov ax, strict word 00040h                ; b8 40 00
    10230     call 016b8h                               ; e8 11 a6
     10225    call 016b8h                               ; e8 e1 a5
    1023110226    test al, al                               ; 84 c0
    10232     je short 07115h                           ; 74 6a
     10227    je short 07145h                           ; 74 6a
    1023310228    mov dx, 0009ch                            ; ba 9c 00
    1023410229    mov ax, strict word 00040h                ; b8 40 00
    10235     call 016f0h                               ; e8 3c a6
     10230    call 016f0h                               ; e8 0c a6
    1023610231    test dx, dx                               ; 85 d2
    10237     jne short 07101h                          ; 75 49
     10232    jne short 07131h                          ; 75 49
    1023810233    cmp ax, 003d1h                            ; 3d d1 03
    10239     jnc short 07101h                          ; 73 44
     10234    jnc short 07131h                          ; 73 44
    1024010235    mov dx, 00098h                            ; ba 98 00
    1024110236    mov ax, strict word 00040h                ; b8 40 00
    10242     call 016d4h                               ; e8 0e a6
     10237    call 016d4h                               ; e8 de a5
    1024310238    mov si, ax                                ; 89 c6
    1024410239    mov dx, 0009ah                            ; ba 9a 00
    1024510240    mov ax, strict word 00040h                ; b8 40 00
    10246     call 016d4h                               ; e8 03 a6
     10241    call 016d4h                               ; e8 d3 a5
    1024710242    mov cx, ax                                ; 89 c1
    1024810243    xor bx, bx                                ; 31 db
    1024910244    mov dx, 000a0h                            ; ba a0 00
    1025010245    mov ax, strict word 00040h                ; b8 40 00
    10251     call 016c6h                               ; e8 e8 a5
     10246    call 016c6h                               ; e8 b8 a5
    1025210247    mov al, byte [bp-004h]                    ; 8a 46 fc
    1025310248    and AL, strict byte 037h                  ; 24 37
    1025410249    movzx dx, al                              ; 0f b6 d0
    1025510250    mov ax, strict word 0000bh                ; b8 0b 00
    10256     call 01731h                               ; e8 45 a6
     10251    call 01731h                               ; e8 15 a6
    1025710252    mov dx, cx                                ; 89 ca
    1025810253    mov ax, si                                ; 89 f0
    10259     call 016b8h                               ; e8 c5 a5
     10254    call 016b8h                               ; e8 95 a5
    1026010255    or AL, strict byte 080h                   ; 0c 80
    1026110256    movzx bx, al                              ; 0f b6 d8
    1026210257    mov dx, cx                                ; 89 ca
    1026310258    mov ax, si                                ; 89 f0
    10264     call 016c6h                               ; e8 c7 a5
    10265     jmp short 07115h                          ; eb 14
     10259    call 016c6h                               ; e8 97 a5
     10260    jmp short 07145h                          ; eb 14
    1026610261    mov bx, ax                                ; 89 c3
    1026710262    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1027010265    mov dx, 0009ch                            ; ba 9c 00
    1027110266    mov ax, strict word 00040h                ; b8 40 00
    10272     call 01702h                               ; e8 ed a5
    10273     call 0e030h                               ; e8 18 6f
     10267    call 01702h                               ; e8 bd a5
     10268    call 0e030h                               ; e8 e8 6e
    1027410269    lea sp, [bp-002h]                         ; 8d 66 fe
    1027510270    pop si                                    ; 5e
    1027610271    pop bp                                    ; 5d
    1027710272    retn                                      ; c3
    10278     inc bp                                    ; 45
    10279     jno short 0718fh                          ; 71 6e
    10280     jno short 070b6h                          ; 71 93
    10281     jno short 070eah                          ; 71 c5
    10282     jno short 0713bh                          ; 71 14
    10283     jc short 07175h                           ; 72 4c
    10284     jc short 070bah                           ; 72 8f
    10285     jc short 07113h                           ; 72 e6
    10286     db  072h
    10287 _int1a_function:                             ; 0xf712e LB 0x1c8
     10273    jne short 071c1h                          ; 75 71
     10274    sahf                                      ; 9e
     10275    jno short 07116h                          ; 71 c3
     10276    jno short 0714ah                          ; 71 f5
     10277    jno short 0719bh                          ; 71 44
     10278    jc short 071d5h                           ; 72 7c
     10279    jc short 0711ah                           ; 72 bf
     10280    jc short 07173h                           ; 72 16
     10281    db  073h
     10282_int1a_function:                             ; 0xf715e LB 0x1c8
    1028810283    push bp                                   ; 55
    1028910284    mov bp, sp                                ; 89 e5
     
    1029110286    mov al, byte [bp+013h]                    ; 8a 46 13
    1029210287    cmp AL, strict byte 007h                  ; 3c 07
    10293     jnbe near 0716ah                          ; 0f 87 2f 00
     10288    jnbe near 0719ah                          ; 0f 87 2f 00
    1029410289    movzx bx, al                              ; 0f b6 d8
    1029510290    add bx, bx                                ; 01 db
    10296     jmp word [cs:bx+0711eh]                   ; 2e ff a7 1e 71
     10291    jmp word [cs:bx+0714eh]                   ; 2e ff a7 4e 71
    1029710292    cli                                       ; fa
    1029810293    mov bx, 0046eh                            ; bb 6e 04
     
    1032510320    sti                                       ; fb
    1032610321    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10327     jmp short 0716ah                          ; eb d7
    10328     call 0704fh                               ; e8 b9 fe
     10322    jmp short 0719ah                          ; eb d7
     10323    call 0707fh                               ; e8 b9 fe
    1032910324    test ax, ax                               ; 85 c0
    10330     je short 0719ch                           ; 74 02
    10331     jmp short 0716ah                          ; eb ce
     10325    je short 071cch                           ; 74 02
     10326    jmp short 0719ah                          ; eb ce
    1033210327    xor ax, ax                                ; 31 c0
    10333     call 01714h                               ; e8 73 a5
     10328    call 01714h                               ; e8 43 a5
    1033410329    mov byte [bp+00fh], al                    ; 88 46 0f
    1033510330    mov ax, strict word 00002h                ; b8 02 00
    10336     call 01714h                               ; e8 6a a5
     10331    call 01714h                               ; e8 3a a5
    1033710332    mov byte [bp+010h], al                    ; 88 46 10
    1033810333    mov ax, strict word 00004h                ; b8 04 00
    10339     call 01714h                               ; e8 61 a5
     10334    call 01714h                               ; e8 31 a5
    1034010335    mov bl, al                                ; 88 c3
    1034110336    mov byte [bp+011h], al                    ; 88 46 11
    1034210337    mov ax, strict word 0000bh                ; b8 0b 00
    10343     call 01714h                               ; e8 56 a5
     10338    call 01714h                               ; e8 26 a5
    1034410339    and AL, strict byte 001h                  ; 24 01
    1034510340    mov byte [bp+00eh], al                    ; 88 46 0e
    10346     jmp short 0720ah                          ; eb 45
    10347     call 0704fh                               ; e8 87 fe
     10341    jmp short 0723ah                          ; eb 45
     10342    call 0707fh                               ; e8 87 fe
    1034810343    test ax, ax                               ; 85 c0
    10349     je short 071cfh                           ; 74 03
    10350     call 07027h                               ; e8 58 fe
     10344    je short 071ffh                           ; 74 03
     10345    call 07057h                               ; e8 58 fe
    1035110346    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1035210347    xor ax, ax                                ; 31 c0
    10353     call 01731h                               ; e8 59 a5
     10348    call 01731h                               ; e8 29 a5
    1035410349    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1035510350    mov ax, strict word 00002h                ; b8 02 00
    10356     call 01731h                               ; e8 4f a5
     10351    call 01731h                               ; e8 1f a5
    1035710352    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1035810353    mov ax, strict word 00004h                ; b8 04 00
    10359     call 01731h                               ; e8 45 a5
     10354    call 01731h                               ; e8 15 a5
    1036010355    mov ax, strict word 0000bh                ; b8 0b 00
    10361     call 01714h                               ; e8 22 a5
     10356    call 01714h                               ; e8 f2 a4
    1036210357    mov bl, al                                ; 88 c3
    1036310358    and bl, 060h                              ; 80 e3 60
     
    1036810363    movzx dx, bl                              ; 0f b6 d3
    1036910364    mov ax, strict word 0000bh                ; b8 0b 00
    10370     call 01731h                               ; e8 27 a5
     10365    call 01731h                               ; e8 f7 a4
    1037110366    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1037210367    mov byte [bp+012h], bl                    ; 88 5e 12
    10373     jmp near 0716ah                           ; e9 56 ff
     10368    jmp near 0719ah                           ; e9 56 ff
    1037410369    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10375     call 0704fh                               ; e8 34 fe
     10370    call 0707fh                               ; e8 34 fe
    1037610371    test ax, ax                               ; 85 c0
    10377     je short 07222h                           ; 74 03
    10378     jmp near 0716ah                           ; e9 48 ff
     10372    je short 07252h                           ; 74 03
     10373    jmp near 0719ah                           ; e9 48 ff
    1037910374    mov ax, strict word 00009h                ; b8 09 00
    10380     call 01714h                               ; e8 ec a4
     10375    call 01714h                               ; e8 bc a4
    1038110376    mov byte [bp+010h], al                    ; 88 46 10
    1038210377    mov ax, strict word 00008h                ; b8 08 00
    10383     call 01714h                               ; e8 e3 a4
     10378    call 01714h                               ; e8 b3 a4
    1038410379    mov byte [bp+00fh], al                    ; 88 46 0f
    1038510380    mov ax, strict word 00007h                ; b8 07 00
    10386     call 01714h                               ; e8 da a4
     10381    call 01714h                               ; e8 aa a4
    1038710382    mov byte [bp+00eh], al                    ; 88 46 0e
    1038810383    mov ax, strict word 00032h                ; b8 32 00
    10389     call 01714h                               ; e8 d1 a4
     10384    call 01714h                               ; e8 a1 a4
    1039010385    mov byte [bp+011h], al                    ; 88 46 11
    1039110386    mov byte [bp+012h], al                    ; 88 46 12
    10392     jmp near 0716ah                           ; e9 1e ff
    10393     call 0704fh                               ; e8 00 fe
     10387    jmp near 0719ah                           ; e9 1e ff
     10388    call 0707fh                               ; e8 00 fe
    1039410389    test ax, ax                               ; 85 c0
    10395     je short 07259h                           ; 74 06
    10396     call 07027h                               ; e8 d1 fd
    10397     jmp near 0716ah                           ; e9 11 ff
     10390    je short 07289h                           ; 74 06
     10391    call 07057h                               ; e8 d1 fd
     10392    jmp near 0719ah                           ; e9 11 ff
    1039810393    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1039910394    mov ax, strict word 00009h                ; b8 09 00
    10400     call 01731h                               ; e8 ce a4
     10395    call 01731h                               ; e8 9e a4
    1040110396    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1040210397    mov ax, strict word 00008h                ; b8 08 00
    10403     call 01731h                               ; e8 c4 a4
     10398    call 01731h                               ; e8 94 a4
    1040410399    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    1040510400    mov ax, strict word 00007h                ; b8 07 00
    10406     call 01731h                               ; e8 ba a4
     10401    call 01731h                               ; e8 8a a4
    1040710402    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1040810403    mov ax, strict word 00032h                ; b8 32 00
    10409     call 01731h                               ; e8 b0 a4
     10404    call 01731h                               ; e8 80 a4
    1041010405    mov ax, strict word 0000bh                ; b8 0b 00
    10411     call 01714h                               ; e8 8d a4
     10406    call 01714h                               ; e8 5d a4
    1041210407    mov bl, al                                ; 88 c3
    1041310408    and bl, 07fh                              ; 80 e3 7f
    10414     jmp near 07201h                           ; e9 72 ff
     10409    jmp near 07231h                           ; e9 72 ff
    1041510410    mov ax, strict word 0000bh                ; b8 0b 00
    10416     call 01714h                               ; e8 7f a4
     10411    call 01714h                               ; e8 4f a4
    1041710412    mov bl, al                                ; 88 c3
    1041810413    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1041910414    test AL, strict byte 020h                 ; a8 20
    10420     je short 072a3h                           ; 74 03
    10421     jmp near 0716ah                           ; e9 c7 fe
    10422     call 0704fh                               ; e8 a9 fd
     10415    je short 072d3h                           ; 74 03
     10416    jmp near 0719ah                           ; e9 c7 fe
     10417    call 0707fh                               ; e8 a9 fd
    1042310418    test ax, ax                               ; 85 c0
    10424     je short 072adh                           ; 74 03
    10425     call 07027h                               ; e8 7a fd
     10419    je short 072ddh                           ; 74 03
     10420    call 07057h                               ; e8 7a fd
    1042610421    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1042710422    mov ax, strict word 00001h                ; b8 01 00
    10428     call 01731h                               ; e8 7a a4
     10423    call 01731h                               ; e8 4a a4
    1042910424    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1043010425    mov ax, strict word 00003h                ; b8 03 00
    10431     call 01731h                               ; e8 70 a4
     10426    call 01731h                               ; e8 40 a4
    1043210427    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1043310428    mov ax, strict word 00005h                ; b8 05 00
    10434     call 01731h                               ; e8 66 a4
     10429    call 01731h                               ; e8 36 a4
    1043510430    mov dx, 000a1h                            ; ba a1 00
    1043610431    in AL, DX                                 ; ec
     
    1044410439    movzx dx, al                              ; 0f b6 d0
    1044510440    mov ax, strict word 0000bh                ; b8 0b 00
    10446     call 01731h                               ; e8 4e a4
    10447     jmp near 0716ah                           ; e9 84 fe
     10441    call 01731h                               ; e8 1e a4
     10442    jmp near 0719ah                           ; e9 84 fe
    1044810443    mov ax, strict word 0000bh                ; b8 0b 00
    10449     call 01714h                               ; e8 28 a4
     10444    call 01714h                               ; e8 f8 a3
    1045010445    mov bl, al                                ; 88 c3
    1045110446    and AL, strict byte 057h                  ; 24 57
    1045210447    movzx dx, al                              ; 0f b6 d0
    10453     jmp near 07204h                           ; e9 0e ff
    10454 send_to_mouse_ctrl_:                         ; 0xf72f6 LB 0x34
     10448    jmp near 07234h                           ; e9 0e ff
     10449send_to_mouse_ctrl_:                         ; 0xf7326 LB 0x34
    1045510450    push bp                                   ; 55
    1045610451    mov bp, sp                                ; 89 e5
     
    1046310458    ; sub ah, ah                                ; 2a e4
    1046410459    test AL, strict byte 002h                 ; a8 02
    10465     je short 07315h                           ; 74 0e
     10460    je short 07345h                           ; 74 0e
    1046610461    push 008eeh                               ; 68 ee 08
    1046710462    push 01168h                               ; 68 68 11
    1046810463    push strict byte 00007h                   ; 6a 07
    10469     call 019dah                               ; e8 c8 a6
     10464    call 019dah                               ; e8 98 a6
    1047010465    add sp, strict byte 00006h                ; 83 c4 06
    1047110466    mov AL, strict byte 0d4h                  ; b0 d4
     
    1048110476    pop bp                                    ; 5d
    1048210477    retn                                      ; c3
    10483 get_mouse_data_:                             ; 0xf732a LB 0x5c
     10478get_mouse_data_:                             ; 0xf735a LB 0x5c
    1048410479    push bp                                   ; 55
    1048510480    mov bp, sp                                ; 89 e5
     
    1049610491    and ax, strict word 00021h                ; 25 21 00
    1049710492    cmp ax, strict word 00021h                ; 3d 21 00
    10498     je short 0736ch                           ; 74 27
     10493    je short 0739ch                           ; 74 27
    1049910494    test cx, cx                               ; 85 c9
    10500     je short 0736ch                           ; 74 23
     10495    je short 0739ch                           ; 74 23
    1050110496    mov dx, strict word 00061h                ; ba 61 00
    1050210497    in AL, DX                                 ; ec
     
    1051410509    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1051510510    cmp dx, ax                                ; 39 c2
    10516     je short 07354h                           ; 74 eb
     10511    je short 07384h                           ; 74 eb
    1051710512    dec cx                                    ; 49
    10518     jmp short 07337h                          ; eb cb
     10513    jmp short 07367h                          ; eb cb
    1051910514    test cx, cx                               ; 85 c9
    10520     jne short 07374h                          ; 75 04
     10515    jne short 073a4h                          ; 75 04
    1052110516    mov AL, strict byte 001h                  ; b0 01
    10522     jmp short 0737fh                          ; eb 0b
     10517    jmp short 073afh                          ; eb 0b
    1052310518    mov dx, strict word 00060h                ; ba 60 00
    1052410519    in AL, DX                                 ; ec
     
    1053210527    pop bp                                    ; 5d
    1053310528    retn                                      ; c3
    10534 set_kbd_command_byte_:                       ; 0xf7386 LB 0x32
     10529set_kbd_command_byte_:                       ; 0xf73b6 LB 0x32
    1053510530    push bp                                   ; 55
    1053610531    mov bp, sp                                ; 89 e5
     
    1054310538    ; sub ah, ah                                ; 2a e4
    1054410539    test AL, strict byte 002h                 ; a8 02
    10545     je short 073a5h                           ; 74 0e
     10540    je short 073d5h                           ; 74 0e
    1054610541    push 008f8h                               ; 68 f8 08
    1054710542    push 01168h                               ; 68 68 11
    1054810543    push strict byte 00007h                   ; 6a 07
    10549     call 019dah                               ; e8 38 a6
     10544    call 019dah                               ; e8 08 a6
    1055010545    add sp, strict byte 00006h                ; 83 c4 06
    1055110546    mov AL, strict byte 060h                  ; b0 60
     
    1056010555    pop bp                                    ; 5d
    1056110556    retn                                      ; c3
    10562 _int74_function:                             ; 0xf73b8 LB 0xca
     10557_int74_function:                             ; 0xf73e8 LB 0xca
    1056310558    push bp                                   ; 55
    1056410559    mov bp, sp                                ; 89 e5
     
    1056610561    mov dx, strict word 0000eh                ; ba 0e 00
    1056710562    mov ax, strict word 00040h                ; b8 40 00
    10568     call 016d4h                               ; e8 0d a3
     10563    call 016d4h                               ; e8 dd a2
    1056910564    mov cx, ax                                ; 89 c1
    1057010565    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1057510570    and AL, strict byte 021h                  ; 24 21
    1057610571    cmp AL, strict byte 021h                  ; 3c 21
    10577     jne near 0746eh                           ; 0f 85 92 00
     10572    jne near 0749eh                           ; 0f 85 92 00
    1057810573    mov dx, strict word 00060h                ; ba 60 00
    1057910574    in AL, DX                                 ; ec
     
    1058310578    mov dx, strict word 00026h                ; ba 26 00
    1058410579    mov ax, cx                                ; 89 c8
    10585     call 016b8h                               ; e8 cc a2
     10580    call 016b8h                               ; e8 9c a2
    1058610581    mov byte [bp-006h], al                    ; 88 46 fa
    1058710582    mov dx, strict word 00027h                ; ba 27 00
    1058810583    mov ax, cx                                ; 89 c8
    10589     call 016b8h                               ; e8 c1 a2
     10584    call 016b8h                               ; e8 91 a2
    1059010585    mov byte [bp-008h], al                    ; 88 46 f8
    1059110586    test AL, strict byte 080h                 ; a8 80
    10592     je short 0746eh                           ; 74 70
     10587    je short 0749eh                           ; 74 70
    1059310588    mov al, byte [bp-008h]                    ; 8a 46 f8
    1059410589    and AL, strict byte 007h                  ; 24 07
     
    1060110596    add dx, strict byte 00028h                ; 83 c2 28
    1060210597    mov ax, cx                                ; 89 c8
    10603     call 016c6h                               ; e8 ab a2
     10598    call 016c6h                               ; e8 7b a2
    1060410599    mov al, byte [bp-004h]                    ; 8a 46 fc
    1060510600    cmp al, byte [bp-002h]                    ; 3a 46 fe
    10606     jc short 0745fh                           ; 72 3c
     10601    jc short 0748fh                           ; 72 3c
    1060710602    mov dx, strict word 00028h                ; ba 28 00
    1060810603    mov ax, cx                                ; 89 c8
    10609     call 016b8h                               ; e8 8d a2
     10604    call 016b8h                               ; e8 5d a2
    1061010605    xor ah, ah                                ; 30 e4
    1061110606    mov word [bp+00ch], ax                    ; 89 46 0c
    1061210607    mov dx, strict word 00029h                ; ba 29 00
    1061310608    mov ax, cx                                ; 89 c8
    10614     call 016b8h                               ; e8 80 a2
     10609    call 016b8h                               ; e8 50 a2
    1061510610    xor ah, ah                                ; 30 e4
    1061610611    mov word [bp+00ah], ax                    ; 89 46 0a
    1061710612    mov dx, strict word 0002ah                ; ba 2a 00
    1061810613    mov ax, cx                                ; 89 c8
    10619     call 016b8h                               ; e8 73 a2
     10614    call 016b8h                               ; e8 43 a2
    1062010615    xor ah, ah                                ; 30 e4
    1062110616    mov word [bp+008h], ax                    ; 89 46 08
     
    1062410619    mov byte [bp-006h], ah                    ; 88 66 fa
    1062510620    test byte [bp-008h], 080h                 ; f6 46 f8 80
    10626     je short 07462h                           ; 74 0a
     10621    je short 07492h                           ; 74 0a
    1062710622    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10628     jmp short 07462h                          ; eb 03
     10623    jmp short 07492h                          ; eb 03
    1062910624    inc byte [bp-006h]                        ; fe 46 fa
    1063010625    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1063110626    mov dx, strict word 00026h                ; ba 26 00
    1063210627    mov ax, cx                                ; 89 c8
    10633     call 016c6h                               ; e8 58 a2
     10628    call 016c6h                               ; e8 28 a2
    1063410629    mov sp, bp                                ; 89 ec
    1063510630    pop bp                                    ; 5d
    1063610631    retn                                      ; c3
    10637     db  0c6h, 074h, 03ch, 075h
    10638     ; mov byte [si+03ch], 075h                  ; c6 74 3c 75
    10639     mov di, 05075h                            ; bf 75 50
    10640     jbe short 07439h                          ; 76 be
    10641     jbe short 0748fh                          ; 76 12
    10642     jne short 07465h                          ; 75 e6
    10643     jbe short 0742ch                          ; 76 ab
     10632    div byte [si+06ch]                        ; f6 74 6c
     10633    jne short 07496h                          ; 75 ef
     10634    jne short 07429h                          ; 75 80
     10635    jbe short 07499h                          ; 76 ee
     10636    jbe short 074efh                          ; 76 42
     10637    jne short 074c5h                          ; 75 16
     10638    jnbe short 0748ch                         ; 77 db
    1064410639    db  077h
    10645 _int15_function_mouse:                       ; 0xf7482 LB 0x38b
     10640_int15_function_mouse:                       ; 0xf74b2 LB 0x38b
    1064610641    push bp                                   ; 55
    1064710642    mov bp, sp                                ; 89 e5
     
    1065010645    mov dx, strict word 0000eh                ; ba 0e 00
    1065110646    mov ax, strict word 00040h                ; b8 40 00
    10652     call 016d4h                               ; e8 42 a2
     10647    call 016d4h                               ; e8 12 a2
    1065310648    mov cx, ax                                ; 89 c1
    1065410649    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10655     jbe short 074a5h                          ; 76 0b
     10650    jbe short 074d5h                          ; 76 0b
    1065610651    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1065710652    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10658     jmp near 07807h                           ; e9 62 03
     10653    jmp near 07837h                           ; e9 62 03
    1065910654    mov ax, strict word 00065h                ; b8 65 00
    10660     call 07386h                               ; e8 db fe
     10655    call 073b6h                               ; e8 db fe
    1066110656    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1066210657    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1066310658    mov al, byte [bp+012h]                    ; 8a 46 12
    1066410659    cmp AL, strict byte 007h                  ; 3c 07
    10665     jnbe near 077eeh                          ; 0f 87 32 03
     10660    jnbe near 0781eh                          ; 0f 87 32 03
    1066610661    movzx si, al                              ; 0f b6 f0
    1066710662    add si, si                                ; 01 f6
    10668     jmp word [cs:si+07472h]                   ; 2e ff a4 72 74
     10663    jmp word [cs:si+074a2h]                   ; 2e ff a4 a2 74
    1066910664    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10670     jnbe near 077f9h                          ; 0f 87 2b 03
     10665    jnbe near 07829h                          ; 0f 87 2b 03
    1067110666    mov dx, strict word 00027h                ; ba 27 00
    1067210667    mov ax, cx                                ; 89 c8
    10673     call 016b8h                               ; e8 e2 a1
     10668    call 016b8h                               ; e8 b2 a1
    1067410669    test AL, strict byte 080h                 ; a8 80
    10675     jne short 074e5h                          ; 75 0b
     10670    jne short 07515h                          ; 75 0b
    1067610671    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1067710672    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10678     jmp near 07801h                           ; e9 1c 03
     10673    jmp near 07831h                           ; e9 1c 03
    1067910674    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    1068010675    db  00fh, 094h, 0c0h
     
    1068210677    add AL, strict byte 0f4h                  ; 04 f4
    1068310678    xor ah, ah                                ; 30 e4
    10684     call 072f6h                               ; e8 03 fe
     10679    call 07326h                               ; e8 03 fe
    1068510680    test al, al                               ; 84 c0
    10686     jne near 07787h                           ; 0f 85 8e 02
     10681    jne near 077b7h                           ; 0f 85 8e 02
    1068710682    mov dx, ss                                ; 8c d2
    1068810683    lea ax, [bp-008h]                         ; 8d 46 f8
    10689     call 0732ah                               ; e8 29 fe
     10684    call 0735ah                               ; e8 29 fe
    1069010685    test al, al                               ; 84 c0
    10691     je near 07801h                            ; 0f 84 fa 02
     10686    je near 07831h                            ; 0f 84 fa 02
    1069210687    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10693     jne near 07787h                           ; 0f 85 78 02
    10694     jmp near 07801h                           ; e9 ef 02
     10688    jne near 077b7h                           ; 0f 85 78 02
     10689    jmp near 07831h                           ; e9 ef 02
    1069510690    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1069610691    cmp AL, strict byte 001h                  ; 3c 01
    10697     jc short 0751dh                           ; 72 04
     10692    jc short 0754dh                           ; 72 04
    1069810693    cmp AL, strict byte 008h                  ; 3c 08
    10699     jbe short 07520h                          ; 76 03
    10700     jmp near 076b3h                           ; e9 93 01
     10694    jbe short 07550h                          ; 76 03
     10695    jmp near 076e3h                           ; e9 93 01
    1070110696    mov dx, strict word 00027h                ; ba 27 00
    1070210697    mov ax, cx                                ; 89 c8
    10703     call 016b8h                               ; e8 90 a1
     10698    call 016b8h                               ; e8 60 a1
    1070410699    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1070510700    db  0feh, 0cch
     
    1071010705    mov dx, strict word 00027h                ; ba 27 00
    1071110706    mov ax, cx                                ; 89 c8
    10712     call 016c6h                               ; e8 8a a1
     10707    call 016c6h                               ; e8 5a a1
    1071310708    mov dx, strict word 00026h                ; ba 26 00
    1071410709    mov ax, cx                                ; 89 c8
    10715     call 016b8h                               ; e8 74 a1
     10710    call 016b8h                               ; e8 44 a1
    1071610711    and AL, strict byte 0f8h                  ; 24 f8
    1071710712    movzx bx, al                              ; 0f b6 d8
    1071810713    mov dx, strict word 00026h                ; ba 26 00
    1071910714    mov ax, cx                                ; 89 c8
    10720     call 016c6h                               ; e8 75 a1
     10715    call 016c6h                               ; e8 45 a1
    1072110716    mov ax, 000ffh                            ; b8 ff 00
    10722     call 072f6h                               ; e8 9f fd
     10717    call 07326h                               ; e8 9f fd
    1072310718    test al, al                               ; 84 c0
    10724     jne near 07787h                           ; 0f 85 2a 02
     10719    jne near 077b7h                           ; 0f 85 2a 02
    1072510720    mov dx, ss                                ; 8c d2
    1072610721    lea ax, [bp-004h]                         ; 8d 46 fc
    10727     call 0732ah                               ; e8 c5 fd
     10722    call 0735ah                               ; e8 c5 fd
    1072810723    mov cl, al                                ; 88 c1
    1072910724    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10730     jne short 07578h                          ; 75 0b
     10725    jne short 075a8h                          ; 75 0b
    1073110726    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1073210727    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10733     jmp near 07801h                           ; e9 89 02
     10728    jmp near 07831h                           ; e9 89 02
    1073410729    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10735     je short 0758eh                           ; 74 10
     10730    je short 075beh                           ; 74 10
    1073610731    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1073710732    push ax                                   ; 50
    1073810733    push 00903h                               ; 68 03 09
    1073910734    push strict byte 00007h                   ; 6a 07
    10740     call 019dah                               ; e8 4f a4
     10735    call 019dah                               ; e8 1f a4
    1074110736    add sp, strict byte 00006h                ; 83 c4 06
    1074210737    test cl, cl                               ; 84 c9
    10743     jne near 07787h                           ; 0f 85 f3 01
     10738    jne near 077b7h                           ; 0f 85 f3 01
    1074410739    mov dx, ss                                ; 8c d2
    1074510740    lea ax, [bp-008h]                         ; 8d 46 f8
    10746     call 0732ah                               ; e8 8e fd
     10741    call 0735ah                               ; e8 8e fd
    1074710742    test al, al                               ; 84 c0
    10748     jne near 07787h                           ; 0f 85 e5 01
     10743    jne near 077b7h                           ; 0f 85 e5 01
    1074910744    mov dx, ss                                ; 8c d2
    1075010745    lea ax, [bp-006h]                         ; 8d 46 fa
    10751     call 0732ah                               ; e8 80 fd
     10746    call 0735ah                               ; e8 80 fd
    1075210747    test al, al                               ; 84 c0
    10753     jne near 07787h                           ; 0f 85 d7 01
     10748    jne near 077b7h                           ; 0f 85 d7 01
    1075410749    mov al, byte [bp-008h]                    ; 8a 46 f8
    1075510750    mov byte [bp+00ch], al                    ; 88 46 0c
    1075610751    mov al, byte [bp-006h]                    ; 8a 46 fa
    1075710752    mov byte [bp+00dh], al                    ; 88 46 0d
    10758     jmp near 07801h                           ; e9 42 02
     10753    jmp near 07831h                           ; e9 42 02
    1075910754    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1076010755    cmp AL, strict byte 003h                  ; 3c 03
    10761     jc short 075d6h                           ; 72 10
    10762     jbe short 075f4h                          ; 76 2c
     10756    jc short 07606h                           ; 72 10
     10757    jbe short 07624h                          ; 76 2c
    1076310758    cmp AL, strict byte 006h                  ; 3c 06
    10764     je short 07606h                           ; 74 3a
     10759    je short 07636h                           ; 74 3a
    1076510760    cmp AL, strict byte 005h                  ; 3c 05
    10766     je short 07600h                           ; 74 30
     10761    je short 07630h                           ; 74 30
    1076710762    cmp AL, strict byte 004h                  ; 3c 04
    10768     je short 075fah                           ; 74 26
    10769     jmp short 0760ch                          ; eb 36
     10763    je short 0762ah                           ; 74 26
     10764    jmp short 0763ch                          ; eb 36
    1077010765    cmp AL, strict byte 002h                  ; 3c 02
    10771     je short 075eeh                           ; 74 14
     10766    je short 0761eh                           ; 74 14
    1077210767    cmp AL, strict byte 001h                  ; 3c 01
    10773     je short 075e8h                           ; 74 0a
     10768    je short 07618h                           ; 74 0a
    1077410769    test al, al                               ; 84 c0
    10775     jne short 0760ch                          ; 75 2a
     10770    jne short 0763ch                          ; 75 2a
    1077610771    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10777     jmp short 07610h                          ; eb 28
     10772    jmp short 07640h                          ; eb 28
    1077810773    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10779     jmp short 07610h                          ; eb 22
     10774    jmp short 07640h                          ; eb 22
    1078010775    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10781     jmp short 07610h                          ; eb 1c
     10776    jmp short 07640h                          ; eb 1c
    1078210777    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10783     jmp short 07610h                          ; eb 16
     10778    jmp short 07640h                          ; eb 16
    1078410779    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10785     jmp short 07610h                          ; eb 10
     10780    jmp short 07640h                          ; eb 10
    1078610781    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10787     jmp short 07610h                          ; eb 0a
     10782    jmp short 07640h                          ; eb 0a
    1078810783    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10789     jmp short 07610h                          ; eb 04
     10784    jmp short 07640h                          ; eb 04
    1079010785    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1079110786    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10792     jbe short 07645h                          ; 76 2f
     10787    jbe short 07675h                          ; 76 2f
    1079310788    mov ax, 000f3h                            ; b8 f3 00
    10794     call 072f6h                               ; e8 da fc
     10789    call 07326h                               ; e8 da fc
    1079510790    test al, al                               ; 84 c0
    10796     jne short 0763ah                          ; 75 1a
     10791    jne short 0766ah                          ; 75 1a
    1079710792    mov dx, ss                                ; 8c d2
    1079810793    lea ax, [bp-006h]                         ; 8d 46 fa
    10799     call 0732ah                               ; e8 02 fd
     10794    call 0735ah                               ; e8 02 fd
    1080010795    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10801     call 072f6h                               ; e8 c7 fc
     10796    call 07326h                               ; e8 c7 fc
    1080210797    mov dx, ss                                ; 8c d2
    1080310798    lea ax, [bp-006h]                         ; 8d 46 fa
    10804     call 0732ah                               ; e8 f3 fc
    10805     jmp near 07801h                           ; e9 c7 01
     10799    call 0735ah                               ; e8 f3 fc
     10800    jmp near 07831h                           ; e9 c7 01
    1080610801    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1080710802    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10808     jmp near 07801h                           ; e9 bc 01
     10803    jmp near 07831h                           ; e9 bc 01
    1080910804    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1081010805    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10811     jmp near 07801h                           ; e9 b1 01
     10806    jmp near 07831h                           ; e9 b1 01
    1081210807    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10813     jnc short 076b3h                          ; 73 5d
     10808    jnc short 076e3h                          ; 73 5d
    1081410809    mov ax, 000e8h                            ; b8 e8 00
    10815     call 072f6h                               ; e8 9a fc
     10810    call 07326h                               ; e8 9a fc
    1081610811    test al, al                               ; 84 c0
    10817     jne short 076a8h                          ; 75 48
     10812    jne short 076d8h                          ; 75 48
    1081810813    mov dx, ss                                ; 8c d2
    1081910814    lea ax, [bp-008h]                         ; 8d 46 f8
    10820     call 0732ah                               ; e8 c2 fc
     10815    call 0735ah                               ; e8 c2 fc
    1082110816    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10822     je short 0767eh                           ; 74 10
     10817    je short 076aeh                           ; 74 10
    1082310818    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1082410819    push ax                                   ; 50
    1082510820    push 0092eh                               ; 68 2e 09
    1082610821    push strict byte 00007h                   ; 6a 07
    10827     call 019dah                               ; e8 5f a3
     10822    call 019dah                               ; e8 2f a3
    1082810823    add sp, strict byte 00006h                ; 83 c4 06
    1082910824    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10830     call 072f6h                               ; e8 71 fc
     10825    call 07326h                               ; e8 71 fc
    1083110826    mov dx, ss                                ; 8c d2
    1083210827    lea ax, [bp-008h]                         ; 8d 46 f8
    10833     call 0732ah                               ; e8 9d fc
     10828    call 0735ah                               ; e8 9d fc
    1083410829    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10835     je near 07801h                            ; 0f 84 6c 01
     10830    je near 07831h                            ; 0f 84 6c 01
    1083610831    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1083710832    push ax                                   ; 50
    1083810833    push 0092eh                               ; 68 2e 09
    1083910834    push strict byte 00007h                   ; 6a 07
    10840     call 019dah                               ; e8 38 a3
     10835    call 019dah                               ; e8 08 a3
    1084110836    add sp, strict byte 00006h                ; 83 c4 06
    10842     jmp near 07801h                           ; e9 59 01
     10837    jmp near 07831h                           ; e9 59 01
    1084310838    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1084410839    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10845     jmp near 07801h                           ; e9 4e 01
     10840    jmp near 07831h                           ; e9 4e 01
    1084610841    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1084710842    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10848     jmp near 07801h                           ; e9 43 01
     10843    jmp near 07831h                           ; e9 43 01
    1084910844    mov ax, 000f2h                            ; b8 f2 00
    10850     call 072f6h                               ; e8 32 fc
     10845    call 07326h                               ; e8 32 fc
    1085110846    test al, al                               ; 84 c0
    10852     jne short 076dbh                          ; 75 13
     10847    jne short 0770bh                          ; 75 13
    1085310848    mov dx, ss                                ; 8c d2
    1085410849    lea ax, [bp-008h]                         ; 8d 46 f8
    10855     call 0732ah                               ; e8 5a fc
     10850    call 0735ah                               ; e8 5a fc
    1085610851    mov dx, ss                                ; 8c d2
    1085710852    lea ax, [bp-006h]                         ; 8d 46 fa
    10858     call 0732ah                               ; e8 52 fc
    10859     jmp near 075b6h                           ; e9 db fe
     10853    call 0735ah                               ; e8 52 fc
     10854    jmp near 075e6h                           ; e9 db fe
    1086010855    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1086110856    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10862     jmp near 07801h                           ; e9 1b 01
     10857    jmp near 07831h                           ; e9 1b 01
    1086310858    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1086410859    test al, al                               ; 84 c0
    10865     jbe short 076f4h                          ; 76 07
     10860    jbe short 07724h                          ; 76 07
    1086610861    cmp AL, strict byte 002h                  ; 3c 02
    10867     jbe short 0775dh                          ; 76 6c
    10868     jmp near 07791h                           ; e9 9d 00
     10862    jbe short 0778dh                          ; 76 6c
     10863    jmp near 077c1h                           ; e9 9d 00
    1086910864    mov ax, 000e9h                            ; b8 e9 00
    10870     call 072f6h                               ; e8 fc fb
     10865    call 07326h                               ; e8 fc fb
    1087110866    test al, al                               ; 84 c0
    10872     jne near 07787h                           ; 0f 85 87 00
     10867    jne near 077b7h                           ; 0f 85 87 00
    1087310868    mov dx, ss                                ; 8c d2
    1087410869    lea ax, [bp-008h]                         ; 8d 46 f8
    10875     call 0732ah                               ; e8 22 fc
     10870    call 0735ah                               ; e8 22 fc
    1087610871    mov cl, al                                ; 88 c1
    1087710872    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10878     je short 07720h                           ; 74 10
     10873    je short 07750h                           ; 74 10
    1087910874    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1088010875    push ax                                   ; 50
    1088110876    push 0092eh                               ; 68 2e 09
    1088210877    push strict byte 00007h                   ; 6a 07
    10883     call 019dah                               ; e8 bd a2
     10878    call 019dah                               ; e8 8d a2
    1088410879    add sp, strict byte 00006h                ; 83 c4 06
    1088510880    test cl, cl                               ; 84 c9
    10886     jne short 07787h                          ; 75 63
     10881    jne short 077b7h                          ; 75 63
    1088710882    mov dx, ss                                ; 8c d2
    1088810883    lea ax, [bp-008h]                         ; 8d 46 f8
    10889     call 0732ah                               ; e8 fe fb
     10884    call 0735ah                               ; e8 fe fb
    1089010885    test al, al                               ; 84 c0
    10891     jne short 07787h                          ; 75 57
     10886    jne short 077b7h                          ; 75 57
    1089210887    mov dx, ss                                ; 8c d2
    1089310888    lea ax, [bp-006h]                         ; 8d 46 fa
    10894     call 0732ah                               ; e8 f2 fb
     10889    call 0735ah                               ; e8 f2 fb
    1089510890    test al, al                               ; 84 c0
    10896     jne short 07787h                          ; 75 4b
     10891    jne short 077b7h                          ; 75 4b
    1089710892    mov dx, ss                                ; 8c d2
    1089810893    lea ax, [bp-004h]                         ; 8d 46 fc
    10899     call 0732ah                               ; e8 e6 fb
     10894    call 0735ah                               ; e8 e6 fb
    1090010895    test al, al                               ; 84 c0
    10901     jne short 07787h                          ; 75 3f
     10896    jne short 077b7h                          ; 75 3f
    1090210897    mov al, byte [bp-008h]                    ; 8a 46 f8
    1090310898    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1090610901    mov al, byte [bp-004h]                    ; 8a 46 fc
    1090710902    mov byte [bp+00eh], al                    ; 88 46 0e
    10908     jmp near 07801h                           ; e9 a4 00
     10903    jmp near 07831h                           ; e9 a4 00
    1090910904    cmp AL, strict byte 001h                  ; 3c 01
    10910     jne short 07766h                          ; 75 05
     10905    jne short 07796h                          ; 75 05
    1091110906    mov ax, 000e6h                            ; b8 e6 00
    10912     jmp short 07769h                          ; eb 03
     10907    jmp short 07799h                          ; eb 03
    1091310908    mov ax, 000e7h                            ; b8 e7 00
    10914     call 072f6h                               ; e8 8a fb
     10909    call 07326h                               ; e8 8a fb
    1091510910    mov cl, al                                ; 88 c1
    1091610911    test cl, cl                               ; 84 c9
    10917     jne short 07781h                          ; 75 0f
     10912    jne short 077b1h                          ; 75 0f
    1091810913    mov dx, ss                                ; 8c d2
    1091910914    lea ax, [bp-008h]                         ; 8d 46 f8
    10920     call 0732ah                               ; e8 b0 fb
     10915    call 0735ah                               ; e8 b0 fb
    1092110916    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1092210917    db  00fh, 095h, 0c1h
    1092310918    ; setne cl                                  ; 0f 95 c1
    1092410919    test cl, cl                               ; 84 c9
    10925     je near 07801h                            ; 0f 84 7a 00
     10920    je near 07831h                            ; 0f 84 7a 00
    1092610921    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1092710922    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10928     jmp short 07801h                          ; eb 70
     10923    jmp short 07831h                          ; eb 70
    1092910924    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1093010925    push ax                                   ; 50
    1093110926    push 0095ah                               ; 68 5a 09
    1093210927    push strict byte 00007h                   ; 6a 07
    10933     call 019dah                               ; e8 3c a2
     10928    call 019dah                               ; e8 0c a2
    1093410929    add sp, strict byte 00006h                ; 83 c4 06
    1093510930    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093610931    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10937     jmp short 07801h                          ; eb 56
     10932    jmp short 07831h                          ; eb 56
    1093810933    mov si, word [bp+00ch]                    ; 8b 76 0c
    1093910934    mov bx, si                                ; 89 f3
    1094010935    mov dx, strict word 00022h                ; ba 22 00
    1094110936    mov ax, cx                                ; 89 c8
    10942     call 016e2h                               ; e8 2a 9f
     10937    call 016e2h                               ; e8 fa 9e
    1094310938    mov bx, word [bp+014h]                    ; 8b 5e 14
    1094410939    mov dx, strict word 00024h                ; ba 24 00
    1094510940    mov ax, cx                                ; 89 c8
    10946     call 016e2h                               ; e8 1f 9f
     10941    call 016e2h                               ; e8 ef 9e
    1094710942    mov dx, strict word 00027h                ; ba 27 00
    1094810943    mov ax, cx                                ; 89 c8
    10949     call 016b8h                               ; e8 ed 9e
     10944    call 016b8h                               ; e8 bd 9e
    1095010945    mov ah, al                                ; 88 c4
    1095110946    test si, si                               ; 85 f6
    10952     jne short 077dfh                          ; 75 0e
     10947    jne short 0780fh                          ; 75 0e
    1095310948    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    10954     jne short 077dfh                          ; 75 08
     10949    jne short 0780fh                          ; 75 08
    1095510950    test AL, strict byte 080h                 ; a8 80
    10956     je short 077e1h                           ; 74 06
     10951    je short 07811h                           ; 74 06
    1095710952    and AL, strict byte 07fh                  ; 24 7f
    10958     jmp short 077e1h                          ; eb 02
     10953    jmp short 07811h                          ; eb 02
    1095910954    or AL, strict byte 080h                   ; 0c 80
    1096010955    movzx bx, al                              ; 0f b6 d8
    1096110956    mov dx, strict word 00027h                ; ba 27 00
    1096210957    mov ax, cx                                ; 89 c8
    10963     call 016c6h                               ; e8 da 9e
    10964     jmp short 07801h                          ; eb 13
     10958    call 016c6h                               ; e8 aa 9e
     10959    jmp short 07831h                          ; eb 13
    1096510960    push 00974h                               ; 68 74 09
    1096610961    push strict byte 00007h                   ; 6a 07
    10967     call 019dah                               ; e8 e4 a1
     10962    call 019dah                               ; e8 b4 a1
    1096810963    add sp, strict byte 00004h                ; 83 c4 04
    1096910964    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097010965    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1097110966    mov ax, strict word 00047h                ; b8 47 00
    10972     call 07386h                               ; e8 7f fb
     10967    call 073b6h                               ; e8 7f fb
    1097310968    lea sp, [bp-002h]                         ; 8d 66 fe
    1097410969    pop si                                    ; 5e
    1097510970    pop bp                                    ; 5d
    1097610971    retn                                      ; c3
    10977 _int17_function:                             ; 0xf780d LB 0xb3
     10972_int17_function:                             ; 0xf783d LB 0xb3
    1097810973    push bp                                   ; 55
    1097910974    mov bp, sp                                ; 89 e5
     
    1098510980    add dx, strict byte 00008h                ; 83 c2 08
    1098610981    mov ax, strict word 00040h                ; b8 40 00
    10987     call 016d4h                               ; e8 b3 9e
     10982    call 016d4h                               ; e8 83 9e
    1098810983    mov bx, ax                                ; 89 c3
    1098910984    mov si, ax                                ; 89 c6
    1099010985    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    10991     jnc near 078b6h                           ; 0f 83 89 00
     10986    jnc near 078e6h                           ; 0f 83 89 00
    1099210987    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1099310988    cmp ax, strict word 00003h                ; 3d 03 00
    10994     jnc near 078b6h                           ; 0f 83 7f 00
     10989    jnc near 078e6h                           ; 0f 83 7f 00
    1099510990    test bx, bx                               ; 85 db
    10996     jbe near 078b6h                           ; 0f 86 79 00
     10991    jbe near 078e6h                           ; 0f 86 79 00
    1099710992    mov dx, ax                                ; 89 c2
    1099810993    add dx, strict byte 00078h                ; 83 c2 78
    1099910994    mov ax, strict word 00040h                ; b8 40 00
    11000     call 016b8h                               ; e8 70 9e
     10995    call 016b8h                               ; e8 40 9e
    1100110996    movzx cx, al                              ; 0f b6 c8
    1100210997    sal cx, 008h                              ; c1 e1 08
    1100310998    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11004     jne short 07881h                          ; 75 2d
     10999    jne short 078b1h                          ; 75 2d
    1100511000    mov al, byte [bp+012h]                    ; 8a 46 12
    1100611001    mov dx, bx                                ; 89 da
     
    1102211017    ; sub ah, ah                                ; 2a e4
    1102311018    test AL, strict byte 040h                 ; a8 40
    11024     je short 07881h                           ; 74 07
     11019    je short 078b1h                           ; 74 07
    1102511020    test cx, cx                               ; 85 c9
    11026     je short 07881h                           ; 74 03
     11021    je short 078b1h                           ; 74 03
    1102711022    dec cx                                    ; 49
    11028     jmp short 07870h                          ; eb ef
     11023    jmp short 078a0h                          ; eb ef
    1102911024    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11030     jne short 0789dh                          ; 75 16
     11025    jne short 078cdh                          ; 75 16
    1103111026    lea dx, [si+002h]                         ; 8d 54 02
    1103211027    in AL, DX                                 ; ec
     
    1104711042    mov byte [bp+013h], al                    ; 88 46 13
    1104811043    test cx, cx                               ; 85 c9
    11049     jne short 078b0h                          ; 75 04
     11044    jne short 078e0h                          ; 75 04
    1105011045    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1105111046    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11052     jmp short 078bah                          ; eb 04
     11047    jmp short 078eah                          ; eb 04
    1105311048    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1105411049    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1105611051    pop bp                                    ; 5d
    1105711052    retn                                      ; c3
    11058 wait_:                                       ; 0xf78c0 LB 0xb2
     11053wait_:                                       ; 0xf78f0 LB 0xb2
    1105911054    push bp                                   ; 55
    1106011055    mov bp, sp                                ; 89 e5
     
    1107411069    mov dx, 0046ch                            ; ba 6c 04
    1107511070    xor ax, ax                                ; 31 c0
    11076     call 016f0h                               ; e8 0d 9e
     11071    call 016f0h                               ; e8 dd 9d
    1107711072    mov word [bp-00eh], ax                    ; 89 46 f2
    1107811073    mov bx, dx                                ; 89 d3
     
    1108011075    mov dx, 0046ch                            ; ba 6c 04
    1108111076    xor ax, ax                                ; 31 c0
    11082     call 016f0h                               ; e8 ff 9d
     11077    call 016f0h                               ; e8 cf 9d
    1108311078    mov word [bp-012h], ax                    ; 89 46 ee
    1108411079    mov di, dx                                ; 89 d7
    1108511080    cmp dx, bx                                ; 39 da
    11086     jnbe short 07901h                         ; 77 07
    11087     jne short 07908h                          ; 75 0c
     11081    jnbe short 07931h                         ; 77 07
     11082    jne short 07938h                          ; 75 0c
    1108811083    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11089     jbe short 07908h                          ; 76 07
     11084    jbe short 07938h                          ; 76 07
    1109011085    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1109111086    sbb dx, bx                                ; 19 da
    11092     jmp short 07913h                          ; eb 0b
     11087    jmp short 07943h                          ; eb 0b
    1109311088    cmp dx, bx                                ; 39 da
    11094     jc short 07913h                           ; 72 07
    11095     jne short 07917h                          ; 75 09
     11089    jc short 07943h                           ; 72 07
     11090    jne short 07947h                          ; 75 09
    1109611091    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11097     jnc short 07917h                          ; 73 04
     11092    jnc short 07947h                          ; 73 04
    1109811093    sub si, ax                                ; 29 c6
    1109911094    sbb cx, dx                                ; 19 d1
     
    1110311098    mov ax, 00100h                            ; b8 00 01
    1110411099    int 016h                                  ; cd 16
    11105     je near 0792dh                            ; 0f 84 05 00
     11100    je near 0795dh                            ; 0f 84 05 00
    1110611101    mov AL, strict byte 001h                  ; b0 01
    11107     jmp near 0792fh                           ; e9 02 00
     11102    jmp near 0795fh                           ; e9 02 00
    1110811103    db  032h, 0c0h
    1110911104    ; xor al, al                                ; 32 c0
    1111011105    test al, al                               ; 84 c0
    11111     je short 07957h                           ; 74 24
     11106    je short 07987h                           ; 74 24
    1111211107    db  033h, 0c0h
    1111311108    ; xor ax, ax                                ; 33 c0
     
    1112011115    push 00996h                               ; 68 96 09
    1112111116    push strict byte 00004h                   ; 6a 04
    11122     call 019dah                               ; e8 90 a0
     11117    call 019dah                               ; e8 60 a0
    1112311118    add sp, strict byte 00006h                ; 83 c4 06
    1112411119    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11125     je short 07957h                           ; 74 04
     11120    je short 07987h                           ; 74 04
    1112611121    mov al, dl                                ; 88 d0
    11127     jmp short 07969h                          ; eb 12
     11122    jmp short 07999h                          ; eb 12
    1112811123    test cx, cx                               ; 85 c9
    11129     jnle short 078e8h                         ; 7f 8d
    11130     jne short 07961h                          ; 75 04
     11124    jnle short 07918h                         ; 7f 8d
     11125    jne short 07991h                          ; 75 04
    1113111126    test si, si                               ; 85 f6
    11132     jnbe short 078e8h                         ; 77 87
     11127    jnbe short 07918h                         ; 77 87
    1113311128    mov ax, word [bp-010h]                    ; 8b 46 f0
    1113411129    push ax                                   ; 50
     
    1114211137    pop bp                                    ; 5d
    1114311138    retn                                      ; c3
    11144 read_logo_byte_:                             ; 0xf7972 LB 0x16
     11139read_logo_byte_:                             ; 0xf79a2 LB 0x16
    1114511140    push bp                                   ; 55
    1114611141    mov bp, sp                                ; 89 e5
     
    1115711152    pop bp                                    ; 5d
    1115811153    retn                                      ; c3
    11159 read_logo_word_:                             ; 0xf7988 LB 0x14
     11154read_logo_word_:                             ; 0xf79b8 LB 0x14
    1116011155    push bp                                   ; 55
    1116111156    mov bp, sp                                ; 89 e5
     
    1117011165    pop bp                                    ; 5d
    1117111166    retn                                      ; c3
    11172 print_detected_harddisks_:                   ; 0xf799c LB 0x130
     11167print_detected_harddisks_:                   ; 0xf79cc LB 0x130
    1117311168    push bp                                   ; 55
    1117411169    mov bp, sp                                ; 89 e5
     
    1118211177    mov dx, strict word 0000eh                ; ba 0e 00
    1118311178    mov ax, strict word 00040h                ; b8 40 00
    11184     call 016d4h                               ; e8 25 9d
     11179    call 016d4h                               ; e8 f5 9c
    1118511180    mov si, ax                                ; 89 c6
    1118611181    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1118811183    xor ch, ch                                ; 30 ed
    1118911184    mov dx, 00304h                            ; ba 04 03
    11190     call 016b8h                               ; e8 f9 9c
     11185    call 016b8h                               ; e8 c9 9c
    1119111186    mov byte [bp-00eh], al                    ; 88 46 f2
    1119211187    xor bl, bl                                ; 30 db
    1119311188    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    11194     jnc near 07a9eh                           ; 0f 83 d3 00
     11189    jnc near 07aceh                           ; 0f 83 d3 00
    1119511190    movzx dx, bl                              ; 0f b6 d3
    1119611191    add dx, 00305h                            ; 81 c2 05 03
    1119711192    mov ax, si                                ; 89 f0
    11198     call 016b8h                               ; e8 e1 9c
     11193    call 016b8h                               ; e8 b1 9c
    1119911194    mov bh, al                                ; 88 c7
    1120011195    cmp AL, strict byte 00ch                  ; 3c 0c
    11201     jc short 07a01h                           ; 72 24
     11196    jc short 07a31h                           ; 72 24
    1120211197    test cl, cl                               ; 84 c9
    11203     jne short 079eeh                          ; 75 0d
     11198    jne short 07a1eh                          ; 75 0d
    1120411199    push 009a7h                               ; 68 a7 09
    1120511200    push strict byte 00002h                   ; 6a 02
    11206     call 019dah                               ; e8 f1 9f
     11201    call 019dah                               ; e8 c1 9f
    1120711202    add sp, strict byte 00004h                ; 83 c4 04
    1120811203    mov CL, strict byte 001h                  ; b1 01
     
    1121211207    push 009bch                               ; 68 bc 09
    1121311208    push strict byte 00002h                   ; 6a 02
    11214     call 019dah                               ; e8 df 9f
     11209    call 019dah                               ; e8 af 9f
    1121511210    add sp, strict byte 00006h                ; 83 c4 06
    11216     jmp near 07a99h                           ; e9 98 00
     11211    jmp near 07ac9h                           ; e9 98 00
    1121711212    cmp AL, strict byte 008h                  ; 3c 08
    11218     jc short 07a18h                           ; 72 13
     11213    jc short 07a48h                           ; 72 13
    1121911214    test ch, ch                               ; 84 ed
    11220     jne short 07a16h                          ; 75 0d
     11215    jne short 07a46h                          ; 75 0d
    1122111216    push 009cfh                               ; 68 cf 09
    1122211217    push strict byte 00002h                   ; 6a 02
    11223     call 019dah                               ; e8 c9 9f
     11218    call 019dah                               ; e8 99 9f
    1122411219    add sp, strict byte 00004h                ; 83 c4 04
    1122511220    mov CH, strict byte 001h                  ; b5 01
    11226     jmp short 079eeh                          ; eb d6
     11221    jmp short 07a1eh                          ; eb d6
    1122711222    cmp AL, strict byte 004h                  ; 3c 04
    11228     jnc short 07a33h                          ; 73 17
     11223    jnc short 07a63h                          ; 73 17
    1122911224    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11230     jne short 07a33h                          ; 75 11
     11225    jne short 07a63h                          ; 75 11
    1123111226    push 009e4h                               ; 68 e4 09
    1123211227    push strict byte 00002h                   ; 6a 02
    11233     call 019dah                               ; e8 b0 9f
     11228    call 019dah                               ; e8 80 9f
    1123411229    add sp, strict byte 00004h                ; 83 c4 04
    1123511230    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11236     jmp short 07a49h                          ; eb 16
     11231    jmp short 07a79h                          ; eb 16
    1123711232    cmp bh, 004h                              ; 80 ff 04
    11238     jc short 07a49h                           ; 72 11
     11233    jc short 07a79h                           ; 72 11
    1123911234    test cl, cl                               ; 84 c9
    11240     jne short 07a49h                          ; 75 0d
     11235    jne short 07a79h                          ; 75 0d
    1124111236    push 009f6h                               ; 68 f6 09
    1124211237    push strict byte 00002h                   ; 6a 02
    11243     call 019dah                               ; e8 96 9f
     11238    call 019dah                               ; e8 66 9f
    1124411239    add sp, strict byte 00004h                ; 83 c4 04
    1124511240    mov CL, strict byte 001h                  ; b1 01
     
    1124911244    push 00a0ah                               ; 68 0a 0a
    1125011245    push strict byte 00002h                   ; 6a 02
    11251     call 019dah                               ; e8 84 9f
     11246    call 019dah                               ; e8 54 9f
    1125211247    add sp, strict byte 00006h                ; 83 c4 06
    1125311248    cmp bh, 004h                              ; 80 ff 04
    11254     jc short 07a61h                           ; 72 03
     11249    jc short 07a91h                           ; 72 03
    1125511250    sub bh, 004h                              ; 80 ef 04
    1125611251    movzx ax, bh                              ; 0f b6 c7
     
    1126011255    sar ax, 1                                 ; d1 f8
    1126111256    test ax, ax                               ; 85 c0
    11262     je short 07a72h                           ; 74 05
     11257    je short 07aa2h                           ; 74 05
    1126311258    push 00a14h                               ; 68 14 0a
    11264     jmp short 07a75h                          ; eb 03
     11259    jmp short 07aa5h                          ; eb 03
    1126511260    push 00a1fh                               ; 68 1f 0a
    1126611261    push strict byte 00002h                   ; 6a 02
    11267     call 019dah                               ; e8 60 9f
     11262    call 019dah                               ; e8 30 9f
    1126811263    add sp, strict byte 00004h                ; 83 c4 04
    1126911264    movzx ax, bh                              ; 0f b6 c7
     
    1127211267    idiv di                                   ; f7 ff
    1127311268    test dx, dx                               ; 85 d2
    11274     je short 07a8fh                           ; 74 05
     11269    je short 07abfh                           ; 74 05
    1127511270    push 00a28h                               ; 68 28 0a
    11276     jmp short 07a92h                          ; eb 03
     11271    jmp short 07ac2h                          ; eb 03
    1127711272    push 00a2eh                               ; 68 2e 0a
    1127811273    push di                                   ; 57
    11279     call 019dah                               ; e8 44 9f
     11274    call 019dah                               ; e8 14 9f
    1128011275    add sp, strict byte 00004h                ; 83 c4 04
    1128111276    db  0feh, 0c3h
    1128211277    ; inc bl                                    ; fe c3
    11283     jmp near 079c4h                           ; e9 26 ff
     11278    jmp near 079f4h                           ; e9 26 ff
    1128411279    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11285     jne short 07ab7h                          ; 75 13
     11280    jne short 07ae7h                          ; 75 13
    1128611281    test cl, cl                               ; 84 c9
    11287     jne short 07ab7h                          ; 75 0f
     11282    jne short 07ae7h                          ; 75 0f
    1128811283    test ch, ch                               ; 84 ed
    11289     jne short 07ab7h                          ; 75 0b
     11284    jne short 07ae7h                          ; 75 0b
    1129011285    push 00a35h                               ; 68 35 0a
    1129111286    push strict byte 00002h                   ; 6a 02
    11292     call 019dah                               ; e8 26 9f
     11287    call 019dah                               ; e8 f6 9e
    1129311288    add sp, strict byte 00004h                ; 83 c4 04
    1129411289    push 00a49h                               ; 68 49 0a
    1129511290    push strict byte 00002h                   ; 6a 02
    11296     call 019dah                               ; e8 1b 9f
     11291    call 019dah                               ; e8 eb 9e
    1129711292    add sp, strict byte 00004h                ; 83 c4 04
    1129811293    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1130411299    pop bp                                    ; 5d
    1130511300    retn                                      ; c3
    11306 get_boot_drive_:                             ; 0xf7acc LB 0x28
     11301get_boot_drive_:                             ; 0xf7afc LB 0x28
    1130711302    push bp                                   ; 55
    1130811303    mov bp, sp                                ; 89 e5
     
    1131211307    mov dx, strict word 0000eh                ; ba 0e 00
    1131311308    mov ax, strict word 00040h                ; b8 40 00
    11314     call 016d4h                               ; e8 f8 9b
     11309    call 016d4h                               ; e8 c8 9b
    1131511310    mov dx, 00304h                            ; ba 04 03
    11316     call 016b8h                               ; e8 d6 9b
     11311    call 016b8h                               ; e8 a6 9b
    1131711312    sub bl, 002h                              ; 80 eb 02
    1131811313    cmp bl, al                                ; 38 c3
    11319     jc short 07aebh                           ; 72 02
     11314    jc short 07b1bh                           ; 72 02
    1132011315    mov BL, strict byte 0ffh                  ; b3 ff
    1132111316    mov al, bl                                ; 88 d8
     
    1132511320    pop bp                                    ; 5d
    1132611321    retn                                      ; c3
    11327 show_logo_:                                  ; 0xf7af4 LB 0x224
     11322show_logo_:                                  ; 0xf7b24 LB 0x224
    1132811323    push bp                                   ; 55
    1132911324    mov bp, sp                                ; 89 e5
     
    1133611331    mov dx, strict word 0000eh                ; ba 0e 00
    1133711332    mov ax, strict word 00040h                ; b8 40 00
    11338     call 016d4h                               ; e8 cc 9b
     11333    call 016d4h                               ; e8 9c 9b
    1133911334    mov si, ax                                ; 89 c6
    1134011335    xor cl, cl                                ; 30 c9
     
    1134711342    out strict byte 040h, AL                  ; e6 40
    1134811343    movzx ax, dl                              ; 0f b6 c2
    11349     call 07988h                               ; e8 68 fe
     11344    call 079b8h                               ; e8 68 fe
    1135011345    cmp ax, 066bbh                            ; 3d bb 66
    11351     jne near 07bf8h                           ; 0f 85 d1 00
     11346    jne near 07c28h                           ; 0f 85 d1 00
    1135211347    push SS                                   ; 16
    1135311348    pop ES                                    ; 07
     
    1135711352    mov word [es:di], bx                      ; 26 89 1d
    1135811353    cmp ax, strict word 0004fh                ; 3d 4f 00
    11359     jne near 07bf8h                           ; 0f 85 bd 00
     11354    jne near 07c28h                           ; 0f 85 bd 00
    1136011355    mov al, dl                                ; 88 d0
    1136111356    add AL, strict byte 004h                  ; 04 04
    1136211357    xor ah, ah                                ; 30 e4
    11363     call 07972h                               ; e8 2e fe
     11358    call 079a2h                               ; e8 2e fe
    1136411359    mov ch, al                                ; 88 c5
    1136511360    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1136711362    add AL, strict byte 005h                  ; 04 05
    1136811363    xor ah, ah                                ; 30 e4
    11369     call 07972h                               ; e8 20 fe
     11364    call 079a2h                               ; e8 20 fe
    1137011365    mov dh, al                                ; 88 c6
    1137111366    mov byte [bp-010h], al                    ; 88 46 f0
     
    1137311368    add AL, strict byte 002h                  ; 04 02
    1137411369    xor ah, ah                                ; 30 e4
    11375     call 07988h                               ; e8 28 fe
     11370    call 079b8h                               ; e8 28 fe
    1137611371    mov bx, ax                                ; 89 c3
    1137711372    mov word [bp-014h], ax                    ; 89 46 ec
     
    1137911374    add AL, strict byte 006h                  ; 04 06
    1138011375    xor ah, ah                                ; 30 e4
    11381     call 07972h                               ; e8 04 fe
     11376    call 079a2h                               ; e8 04 fe
    1138211377    mov byte [bp-012h], al                    ; 88 46 ee
    1138311378    test ch, ch                               ; 84 ed
    11384     jne short 07b7fh                          ; 75 0a
     11379    jne short 07bafh                          ; 75 0a
    1138511380    test dh, dh                               ; 84 f6
    11386     jne short 07b7fh                          ; 75 06
     11381    jne short 07bafh                          ; 75 06
    1138711382    test bx, bx                               ; 85 db
    11388     je near 07bf8h                            ; 0f 84 79 00
     11383    je near 07c28h                            ; 0f 84 79 00
    1138911384    mov bx, 00142h                            ; bb 42 01
    1139011385    mov ax, 04f02h                            ; b8 02 4f
    1139111386    int 010h                                  ; cd 10
    1139211387    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11393     je short 07bb0h                           ; 74 23
     11388    je short 07be0h                           ; 74 23
    1139411389    xor bx, bx                                ; 31 db
    11395     jmp short 07b97h                          ; eb 06
     11390    jmp short 07bc7h                          ; eb 06
    1139611391    inc bx                                    ; 43
    1139711392    cmp bx, strict byte 00010h                ; 83 fb 10
    11398     jnbe short 07bb7h                         ; 77 20
     11393    jnbe short 07be7h                         ; 77 20
    1139911394    mov ax, bx                                ; 89 d8
    1140011395    or ah, 002h                               ; 80 cc 02
     
    1140311398    xor dx, dx                                ; 31 d2
    1140411399    mov ax, strict word 00001h                ; b8 01 00
    11405     call 078c0h                               ; e8 18 fd
     11400    call 078f0h                               ; e8 18 fd
    1140611401    cmp AL, strict byte 086h                  ; 3c 86
    11407     jne short 07b91h                          ; 75 e5
     11402    jne short 07bc1h                          ; 75 e5
    1140811403    mov CL, strict byte 001h                  ; b1 01
    11409     jmp short 07bb7h                          ; eb 07
     11404    jmp short 07be7h                          ; eb 07
    1141011405    mov ax, 00210h                            ; b8 10 02
    1141111406    mov dx, 003b8h                            ; ba b8 03
    1141211407    out DX, ax                                ; ef
    1141311408    test cl, cl                               ; 84 c9
    11414     jne short 07bcdh                          ; 75 12
     11409    jne short 07bfdh                          ; 75 12
    1141511410    mov ax, word [bp-014h]                    ; 8b 46 ec
    1141611411    shr ax, 004h                              ; c1 e8 04
    1141711412    mov dx, strict word 00001h                ; ba 01 00
    11418     call 078c0h                               ; e8 f9 fc
     11413    call 078f0h                               ; e8 f9 fc
    1141911414    cmp AL, strict byte 086h                  ; 3c 86
    11420     jne short 07bcdh                          ; 75 02
     11415    jne short 07bfdh                          ; 75 02
    1142111416    mov CL, strict byte 001h                  ; b1 01
    1142211417    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11423     je short 07bf8h                           ; 74 25
     11418    je short 07c28h                           ; 74 25
    1142411419    test cl, cl                               ; 84 c9
    11425     jne short 07bf8h                          ; 75 21
     11420    jne short 07c28h                          ; 75 21
    1142611421    mov bx, strict word 00010h                ; bb 10 00
    11427     jmp short 07be1h                          ; eb 05
     11422    jmp short 07c11h                          ; eb 05
    1142811423    dec bx                                    ; 4b
    1142911424    test bx, bx                               ; 85 db
    11430     jbe short 07bf8h                          ; 76 17
     11425    jbe short 07c28h                          ; 76 17
    1143111426    mov ax, bx                                ; 89 d8
    1143211427    or ah, 002h                               ; 80 cc 02
     
    1143511430    xor dx, dx                                ; 31 d2
    1143611431    mov ax, strict word 00001h                ; b8 01 00
    11437     call 078c0h                               ; e8 ce fc
     11432    call 078f0h                               ; e8 ce fc
    1143811433    cmp AL, strict byte 086h                  ; 3c 86
    11439     jne short 07bdch                          ; 75 e6
     11434    jne short 07c0ch                          ; 75 e6
    1144011435    mov CL, strict byte 001h                  ; b1 01
    1144111436    xor bx, bx                                ; 31 db
    1144211437    mov dx, 0037dh                            ; ba 7d 03
    1144311438    mov ax, si                                ; 89 f0
    11444     call 016c6h                               ; e8 c4 9a
     11439    call 016c6h                               ; e8 94 9a
    1144511440    mov AL, strict byte 003h                  ; b0 03
    1144611441    mov AH, strict byte 000h                  ; b4 00
    1144711442    int 010h                                  ; cd 10
    1144811443    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11449     je near 07cf9h                            ; 0f 84 e9 00
     11444    je near 07d29h                            ; 0f 84 e9 00
    1145011445    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11451     jne short 07c46h                          ; 75 30
     11446    jne short 07c76h                          ; 75 30
    1145211447    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11453     jne short 07c46h                          ; 75 2a
     11448    jne short 07c76h                          ; 75 2a
    1145411449    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11455     jne short 07c46h                          ; 75 24
     11450    jne short 07c76h                          ; 75 24
    1145611451    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    11457     jne short 07c33h                          ; 75 0b
     11452    jne short 07c63h                          ; 75 0b
    1145811453    push 00a4bh                               ; 68 4b 0a
    1145911454    push strict byte 00002h                   ; 6a 02
    11460     call 019dah                               ; e8 aa 9d
     11455    call 019dah                               ; e8 7a 9d
    1146111456    add sp, strict byte 00004h                ; 83 c4 04
    1146211457    test cl, cl                               ; 84 c9
    11463     jne short 07c46h                          ; 75 0f
     11458    jne short 07c76h                          ; 75 0f
    1146411459    mov dx, strict word 00001h                ; ba 01 00
    1146511460    mov ax, 000c0h                            ; b8 c0 00
    11466     call 078c0h                               ; e8 80 fc
     11461    call 078f0h                               ; e8 80 fc
    1146711462    cmp AL, strict byte 086h                  ; 3c 86
    11468     jne short 07c46h                          ; 75 02
     11463    jne short 07c76h                          ; 75 02
    1146911464    mov CL, strict byte 001h                  ; b1 01
    1147011465    test cl, cl                               ; 84 c9
    11471     je near 07cf9h                            ; 0f 84 ad 00
     11466    je near 07d29h                            ; 0f 84 ad 00
    1147211467    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1147311468    mov ax, 00100h                            ; b8 00 01
     
    1148811483    push 00a6dh                               ; 68 6d 0a
    1148911484    push strict byte 00002h                   ; 6a 02
    11490     call 019dah                               ; e8 65 9d
     11485    call 019dah                               ; e8 35 9d
    1149111486    add sp, strict byte 00004h                ; 83 c4 04
    11492     call 0799ch                               ; e8 21 fd
     11487    call 079cch                               ; e8 21 fd
    1149311488    push 00ab1h                               ; 68 b1 0a
    1149411489    push strict byte 00002h                   ; 6a 02
    11495     call 019dah                               ; e8 57 9d
     11490    call 019dah                               ; e8 27 9d
    1149611491    add sp, strict byte 00004h                ; 83 c4 04
    1149711492    mov dx, strict word 00001h                ; ba 01 00
    1149811493    mov ax, strict word 00040h                ; b8 40 00
    11499     call 078c0h                               ; e8 31 fc
     11494    call 078f0h                               ; e8 31 fc
    1150011495    mov bl, al                                ; 88 c3
    1150111496    test al, al                               ; 84 c0
    11502     je short 07c86h                           ; 74 f1
     11497    je short 07cb6h                           ; 74 f1
    1150311498    cmp AL, strict byte 030h                  ; 3c 30
    11504     je short 07ce7h                           ; 74 4e
     11499    je short 07d17h                           ; 74 4e
    1150511500    cmp bl, 002h                              ; 80 fb 02
    11506     jc short 07cc0h                           ; 72 22
     11501    jc short 07cf0h                           ; 72 22
    1150711502    cmp bl, 009h                              ; 80 fb 09
    11508     jnbe short 07cc0h                         ; 77 1d
     11503    jnbe short 07cf0h                         ; 77 1d
    1150911504    movzx ax, bl                              ; 0f b6 c3
    11510     call 07acch                               ; e8 23 fe
     11505    call 07afch                               ; e8 23 fe
    1151111506    cmp AL, strict byte 0ffh                  ; 3c ff
    11512     jne short 07cafh                          ; 75 02
    11513     jmp short 07c86h                          ; eb d7
     11507    jne short 07cdfh                          ; 75 02
     11508    jmp short 07cb6h                          ; eb d7
    1151411509    movzx bx, al                              ; 0f b6 d8
    1151511510    mov dx, 0037ch                            ; ba 7c 03
    1151611511    mov ax, si                                ; 89 f0
    11517     call 016c6h                               ; e8 0c 9a
     11512    call 016c6h                               ; e8 dc 99
    1151811513    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    11519     jmp short 07ce7h                          ; eb 27
     11514    jmp short 07d17h                          ; eb 27
    1152011515    cmp bl, 02eh                              ; 80 fb 2e
    11521     je short 07cd5h                           ; 74 10
     11516    je short 07d05h                           ; 74 10
    1152211517    cmp bl, 026h                              ; 80 fb 26
    11523     je short 07cdbh                           ; 74 11
     11518    je short 07d0bh                           ; 74 11
    1152411519    cmp bl, 021h                              ; 80 fb 21
    11525     jne short 07ce1h                          ; 75 12
     11520    jne short 07d11h                          ; 75 12
    1152611521    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11527     jmp short 07ce7h                          ; eb 12
     11522    jmp short 07d17h                          ; eb 12
    1152811523    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    11529     jmp short 07ce7h                          ; eb 0c
     11524    jmp short 07d17h                          ; eb 0c
    1153011525    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    11531     jmp short 07ce7h                          ; eb 06
     11526    jmp short 07d17h                          ; eb 06
    1153211527    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11533     je short 07c86h                           ; 74 9f
     11528    je short 07cb6h                           ; 74 9f
    1153411529    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1153511530    mov dx, 0037dh                            ; ba 7d 03
    1153611531    mov ax, si                                ; 89 f0
    11537     call 016c6h                               ; e8 d3 99
     11532    call 016c6h                               ; e8 a3 99
    1153811533    mov AL, strict byte 003h                  ; b0 03
    1153911534    mov AH, strict byte 000h                  ; b4 00
     
    1154811543    push DS                                   ; 1e
    1154911544    mov ds, ax                                ; 8e d8
    11550     call 0edbfh                               ; e8 b4 70
     11545    call 0edbfh                               ; e8 84 70
    1155111546    pop DS                                    ; 1f
    1155211547    popad                                     ; 66 61
     
    1155911554    pop bp                                    ; 5d
    1156011555    retn                                      ; c3
    11561 delay_boot_:                                 ; 0xf7d18 LB 0x67
     11556delay_boot_:                                 ; 0xf7d48 LB 0x67
    1156211557    push bp                                   ; 55
    1156311558    mov bp, sp                                ; 89 e5
     
    1156611561    mov dx, ax                                ; 89 c2
    1156711562    test ax, ax                               ; 85 c0
    11568     je short 07d78h                           ; 74 55
     11563    je short 07da8h                           ; 74 55
    1156911564    mov AL, strict byte 034h                  ; b0 34
    1157011565    out strict byte 043h, AL                  ; e6 43
     
    1157611571    push 00afbh                               ; 68 fb 0a
    1157711572    push strict byte 00002h                   ; 6a 02
    11578     call 019dah                               ; e8 a2 9c
     11573    call 019dah                               ; e8 72 9c
    1157911574    add sp, strict byte 00006h                ; 83 c4 06
    1158011575    mov bx, dx                                ; 89 d3
    1158111576    test bx, bx                               ; 85 db
    11582     jbe short 07d58h                          ; 76 17
     11577    jbe short 07d88h                          ; 76 17
    1158311578    push bx                                   ; 53
    1158411579    push 00b19h                               ; 68 19 0b
    1158511580    push strict byte 00002h                   ; 6a 02
    11586     call 019dah                               ; e8 90 9c
     11581    call 019dah                               ; e8 60 9c
    1158711582    add sp, strict byte 00006h                ; 83 c4 06
    1158811583    xor dx, dx                                ; 31 d2
    1158911584    mov ax, strict word 00040h                ; b8 40 00
    11590     call 078c0h                               ; e8 6b fb
     11585    call 078f0h                               ; e8 6b fb
    1159111586    dec bx                                    ; 4b
    11592     jmp short 07d3dh                          ; eb e5
     11587    jmp short 07d6dh                          ; eb e5
    1159311588    push 00a49h                               ; 68 49 0a
    1159411589    push strict byte 00002h                   ; 6a 02
    11595     call 019dah                               ; e8 7a 9c
     11590    call 019dah                               ; e8 4a 9c
    1159611591    add sp, strict byte 00004h                ; 83 c4 04
    1159711592    mov AL, strict byte 034h                  ; b0 34
     
    1160411599    push DS                                   ; 1e
    1160511600    mov ds, ax                                ; 8e d8
    11606     call 0edbfh                               ; e8 4a 70
     11601    call 0edbfh                               ; e8 1a 70
    1160711602    pop DS                                    ; 1f
    1160811603    popad                                     ; 66 61
     
    1161211607    pop bp                                    ; 5d
    1161311608    retn                                      ; c3
    11614 scsi_cmd_data_in_:                           ; 0xf7d7f LB 0xd5
     11609scsi_cmd_data_in_:                           ; 0xf7daf LB 0xd5
    1161511610    push bp                                   ; 55
    1161611611    mov bp, sp                                ; 89 e5
     
    1162811623    ; sub ah, ah                                ; 2a e4
    1162911624    test AL, strict byte 001h                 ; a8 01
    11630     jne short 07d95h                          ; 75 f7
     11625    jne short 07dc5h                          ; 75 f7
    1163111626    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11632     jne short 07da8h                          ; 75 04
     11627    jne short 07dd8h                          ; 75 04
    1163311628    xor ax, ax                                ; 31 c0
    11634     jmp short 07dach                          ; eb 04
     11629    jmp short 07ddch                          ; eb 04
    1163511630    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1163611631    mov di, ax                                ; 89 c7
     
    1164011635    shr dx, 1                                 ; d1 ea
    1164111636    rcr ax, 1                                 ; d1 d8
    11642     loop 07db6h                               ; e2 fa
     11637    loop 07de6h                               ; e2 fa
    1164311638    mov cx, ax                                ; 89 c1
    1164411639    and cx, 000f0h                            ; 81 e1 f0 00
     
    1165811653    shr dx, 1                                 ; d1 ea
    1165911654    rcr ax, 1                                 ; d1 d8
    11660     loop 07ddbh                               ; e2 fa
     11655    loop 07e0bh                               ; e2 fa
    1166111656    mov dx, si                                ; 89 f2
    1166211657    out DX, AL                                ; ee
     
    1166411659    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1166511660    cmp cx, ax                                ; 39 c1
    11666     jnc short 07dfch                          ; 73 0e
     11661    jnc short 07e2ch                          ; 73 0e
    1166711662    les di, [bp-00ah]                         ; c4 7e f6
    1166811663    add di, cx                                ; 01 cf
     
    1167111666    out DX, AL                                ; ee
    1167211667    inc cx                                    ; 41
    11673     jmp short 07de6h                          ; eb ea
     11668    jmp short 07e16h                          ; eb ea
    1167411669    mov dx, si                                ; 89 f2
    1167511670    in AL, DX                                 ; ec
     
    1167711672    ; sub ah, ah                                ; 2a e4
    1167811673    test AL, strict byte 001h                 ; a8 01
    11679     jne short 07dfch                          ; 75 f7
     11674    jne short 07e2ch                          ; 75 f7
    1168011675    test AL, strict byte 002h                 ; a8 02
    11681     je short 07e17h                           ; 74 0e
     11676    je short 07e47h                           ; 74 0e
    1168211677    lea dx, [si+003h]                         ; 8d 54 03
    1168311678    xor al, al                                ; 30 c0
     
    1168711682    ; sub ah, ah                                ; 2a e4
    1168811683    mov di, strict word 00004h                ; bf 04 00
    11689     jmp short 07e49h                          ; eb 32
     11684    jmp short 07e79h                          ; eb 32
    1169011685    lea dx, [si+001h]                         ; 8d 54 01
    1169111686    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11692     jne short 07e26h                          ; 75 06
     11687    jne short 07e56h                          ; 75 06
    1169311688    cmp bx, 08000h                            ; 81 fb 00 80
    11694     jbe short 07e40h                          ; 76 1a
     11689    jbe short 07e70h                          ; 76 1a
    1169511690    mov cx, 08000h                            ; b9 00 80
    1169611691    les di, [bp+006h]                         ; c4 7e 06
     
    1170111696    add ax, 00800h                            ; 05 00 08
    1170211697    mov word [bp+008h], ax                    ; 89 46 08
    11703     jmp short 07e17h                          ; eb d7
     11698    jmp short 07e47h                          ; eb d7
    1170411699    mov cx, bx                                ; 89 d9
    1170511700    les di, [bp+006h]                         ; c4 7e 06
     
    1171211707    pop bp                                    ; 5d
    1171311708    retn 0000ah                               ; c2 0a 00
    11714 scsi_cmd_data_out_:                          ; 0xf7e54 LB 0xd5
     11709scsi_cmd_data_out_:                          ; 0xf7e84 LB 0xd5
    1171511710    push bp                                   ; 55
    1171611711    mov bp, sp                                ; 89 e5
     
    1172811723    ; sub ah, ah                                ; 2a e4
    1172911724    test AL, strict byte 001h                 ; a8 01
    11730     jne short 07e6ah                          ; 75 f7
     11725    jne short 07e9ah                          ; 75 f7
    1173111726    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11732     jne short 07e7dh                          ; 75 04
     11727    jne short 07eadh                          ; 75 04
    1173311728    xor ax, ax                                ; 31 c0
    11734     jmp short 07e81h                          ; eb 04
     11729    jmp short 07eb1h                          ; eb 04
    1173511730    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1173611731    mov si, ax                                ; 89 c6
     
    1174011735    shr dx, 1                                 ; d1 ea
    1174111736    rcr ax, 1                                 ; d1 d8
    11742     loop 07e8bh                               ; e2 fa
     11737    loop 07ebbh                               ; e2 fa
    1174311738    mov cx, ax                                ; 89 c1
    1174411739    and cx, 000f0h                            ; 81 e1 f0 00
     
    1175811753    shr dx, 1                                 ; d1 ea
    1175911754    rcr ax, 1                                 ; d1 d8
    11760     loop 07eb0h                               ; e2 fa
     11755    loop 07ee0h                               ; e2 fa
    1176111756    mov dx, di                                ; 89 fa
    1176211757    out DX, AL                                ; ee
     
    1176411759    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1176511760    cmp cx, ax                                ; 39 c1
    11766     jnc short 07ed1h                          ; 73 0e
     11761    jnc short 07f01h                          ; 73 0e
    1176711762    les si, [bp-00ah]                         ; c4 76 f6
    1176811763    add si, cx                                ; 01 ce
     
    1177111766    out DX, AL                                ; ee
    1177211767    inc cx                                    ; 41
    11773     jmp short 07ebbh                          ; eb ea
     11768    jmp short 07eebh                          ; eb ea
    1177411769    lea dx, [di+001h]                         ; 8d 55 01
    1177511770    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11776     jne short 07ee0h                          ; 75 06
     11771    jne short 07f10h                          ; 75 06
    1177711772    cmp bx, 08000h                            ; 81 fb 00 80
    11778     jbe short 07efbh                          ; 76 1b
     11773    jbe short 07f2bh                          ; 76 1b
    1177911774    mov cx, 08000h                            ; b9 00 80
    1178011775    les si, [bp+006h]                         ; c4 76 06
     
    1178611781    add ax, 00800h                            ; 05 00 08
    1178711782    mov word [bp+008h], ax                    ; 89 46 08
    11788     jmp short 07ed1h                          ; eb d6
     11783    jmp short 07f01h                          ; eb d6
    1178911784    mov cx, bx                                ; 89 d9
    1179011785    les si, [bp+006h]                         ; c4 76 06
     
    1179611791    ; sub ah, ah                                ; 2a e4
    1179711792    test AL, strict byte 001h                 ; a8 01
    11798     jne short 07f03h                          ; 75 f7
     11793    jne short 07f33h                          ; 75 f7
    1179911794    test AL, strict byte 002h                 ; a8 02
    11800     je short 07f1eh                           ; 74 0e
     11795    je short 07f4eh                           ; 74 0e
    1180111796    lea dx, [di+003h]                         ; 8d 55 03
    1180211797    xor al, al                                ; 30 c0
     
    1180611801    ; sub ah, ah                                ; 2a e4
    1180711802    mov ax, strict word 00004h                ; b8 04 00
    11808     jmp short 07f20h                          ; eb 02
     11803    jmp short 07f50h                          ; eb 02
    1180911804    xor ax, ax                                ; 31 c0
    1181011805    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1181311808    pop bp                                    ; 5d
    1181411809    retn 0000ah                               ; c2 0a 00
    11815 @scsi_read_sectors:                          ; 0xf7f29 LB 0xdb
     11810@scsi_read_sectors:                          ; 0xf7f59 LB 0xdb
    1181611811    push bp                                   ; 55
    1181711812    mov bp, sp                                ; 89 e5
     
    1182511820    mov byte [bp-006h], al                    ; 88 46 fa
    1182611821    cmp AL, strict byte 004h                  ; 3c 04
    11827     jbe short 07f57h                          ; 76 13
     11822    jbe short 07f87h                          ; 76 13
    1182811823    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1182911824    push ax                                   ; 50
     
    1183111826    push 00b30h                               ; 68 30 0b
    1183211827    push strict byte 00007h                   ; 6a 07
    11833     call 019dah                               ; e8 86 9a
     11828    call 019dah                               ; e8 56 9a
    1183411829    add sp, strict byte 00008h                ; 83 c4 08
    1183511830    mov es, [bp+006h]                         ; 8e 46 06
     
    1187011865    sal word [bp-00ah], 1                     ; d1 66 f6
    1187111866    rcl word [bp-008h], 1                     ; d1 56 f8
    11872     loop 07fc0h                               ; e2 f8
     11867    loop 07ff0h                               ; e2 f8
    1187311868    push dword [bp-00ah]                      ; 66 ff 76 f6
    1187411869    db  066h, 026h, 0ffh, 074h, 008h
     
    1187811873    mov cx, ss                                ; 8c d1
    1187911874    lea bx, [bp-01ah]                         ; 8d 5e e6
    11880     call 07d7fh                               ; e8 a2 fd
     11875    call 07dafh                               ; e8 a2 fd
    1188111876    mov ah, al                                ; 88 c4
    1188211877    test al, al                               ; 84 c0
    11883     jne short 07ff8h                          ; 75 15
     11878    jne short 08028h                          ; 75 15
    1188411879    mov es, [bp+006h]                         ; 8e 46 06
    1188511880    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1189411889    pop bp                                    ; 5d
    1189511890    retn 00004h                               ; c2 04 00
    11896 @scsi_write_sectors:                         ; 0xf8004 LB 0xdb
     11891@scsi_write_sectors:                         ; 0xf8034 LB 0xdb
    1189711892    push bp                                   ; 55
    1189811893    mov bp, sp                                ; 89 e5
     
    1190611901    mov byte [bp-006h], al                    ; 88 46 fa
    1190711902    cmp AL, strict byte 004h                  ; 3c 04
    11908     jbe short 08032h                          ; 76 13
     11903    jbe short 08062h                          ; 76 13
    1190911904    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1191011905    push ax                                   ; 50
     
    1191211907    push 00b30h                               ; 68 30 0b
    1191311908    push strict byte 00007h                   ; 6a 07
    11914     call 019dah                               ; e8 ab 99
     11909    call 019dah                               ; e8 7b 99
    1191511910    add sp, strict byte 00008h                ; 83 c4 08
    1191611911    mov es, [bp+006h]                         ; 8e 46 06
     
    1195111946    sal word [bp-00ah], 1                     ; d1 66 f6
    1195211947    rcl word [bp-008h], 1                     ; d1 56 f8
    11953     loop 0809bh                               ; e2 f8
     11948    loop 080cbh                               ; e2 f8
    1195411949    push dword [bp-00ah]                      ; 66 ff 76 f6
    1195511950    db  066h, 026h, 0ffh, 074h, 008h
     
    1195911954    mov cx, ss                                ; 8c d1
    1196011955    lea bx, [bp-01ah]                         ; 8d 5e e6
    11961     call 07e54h                               ; e8 9c fd
     11956    call 07e84h                               ; e8 9c fd
    1196211957    mov ah, al                                ; 88 c4
    1196311958    test al, al                               ; 84 c0
    11964     jne short 080d3h                          ; 75 15
     11959    jne short 08103h                          ; 75 15
    1196511960    mov es, [bp+006h]                         ; 8e 46 06
    1196611961    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1197511970    pop bp                                    ; 5d
    1197611971    retn 00004h                               ; c2 04 00
    11977 scsi_cmd_packet_:                            ; 0xf80df LB 0x166
     11972scsi_cmd_packet_:                            ; 0xf810f LB 0x166
    1197811973    push bp                                   ; 55
    1197911974    mov bp, sp                                ; 89 e5
     
    1198711982    mov dx, strict word 0000eh                ; ba 0e 00
    1198811983    mov ax, strict word 00040h                ; b8 40 00
    11989     call 016d4h                               ; e8 d9 95
     11984    call 016d4h                               ; e8 a9 95
    1199011985    mov si, 00122h                            ; be 22 01
    1199111986    mov word [bp-00eh], ax                    ; 89 46 f2
    1199211987    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    11993     jne short 08126h                          ; 75 1f
     11988    jne short 08156h                          ; 75 1f
    1199411989    mov bx, 00da0h                            ; bb a0 0d
    1199511990    mov cx, ds                                ; 8c d9
    1199611991    mov ax, strict word 00004h                ; b8 04 00
    11997     call 01999h                               ; e8 87 98
     11992    call 01999h                               ; e8 57 98
    1199811993    push 00b62h                               ; 68 62 0b
    1199911994    push 00b72h                               ; 68 72 0b
    1200011995    push strict byte 00004h                   ; 6a 04
    12001     call 019dah                               ; e8 bd 98
     11996    call 019dah                               ; e8 8d 98
    1200211997    add sp, strict byte 00006h                ; 83 c4 06
    1200311998    mov dx, strict word 00001h                ; ba 01 00
    12004     jmp near 0823ah                           ; e9 14 01
     11999    jmp near 0826ah                           ; e9 14 01
    1200512000    sub di, strict byte 00008h                ; 83 ef 08
    1200612001    sal di, 002h                              ; c1 e7 02
     
    1201612011    ; sub ah, ah                                ; 2a e4
    1201712012    test AL, strict byte 001h                 ; a8 01
    12018     jne short 08142h                          ; 75 f7
     12013    jne short 08172h                          ; 75 f7
    1201912014    xor ax, ax                                ; 31 c0
    1202012015    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1203212027    shr dx, 1                                 ; d1 ea
    1203312028    rcr ax, 1                                 ; d1 d8
    12034     loop 0816dh                               ; e2 fa
     12029    loop 0819dh                               ; e2 fa
    1203512030    and ax, 000f0h                            ; 25 f0 00
    1203612031    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1205012045    shr dx, 1                                 ; d1 ea
    1205112046    rcr ax, 1                                 ; d1 d8
    12052     loop 08194h                               ; e2 fa
     12047    loop 081c4h                               ; e2 fa
    1205312048    mov dx, bx                                ; 89 da
    1205412049    out DX, AL                                ; ee
     
    1205612051    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1205712052    cmp cx, ax                                ; 39 c1
    12058     jnc short 081b5h                          ; 73 0e
     12053    jnc short 081e5h                          ; 73 0e
    1205912054    les di, [bp-00ch]                         ; c4 7e f4
    1206012055    add di, cx                                ; 01 cf
     
    1206312058    out DX, AL                                ; ee
    1206412059    inc cx                                    ; 41
    12065     jmp short 0819fh                          ; eb ea
     12060    jmp short 081cfh                          ; eb ea
    1206612061    mov dx, bx                                ; 89 da
    1206712062    in AL, DX                                 ; ec
     
    1206912064    ; sub ah, ah                                ; 2a e4
    1207012065    test AL, strict byte 001h                 ; a8 01
    12071     jne short 081b5h                          ; 75 f7
     12066    jne short 081e5h                          ; 75 f7
    1207212067    test AL, strict byte 002h                 ; a8 02
    12073     je short 081d0h                           ; 74 0e
     12068    je short 08200h                           ; 74 0e
    1207412069    lea dx, [bx+003h]                         ; 8d 57 03
    1207512070    xor al, al                                ; 30 c0
     
    1207912074    ; sub ah, ah                                ; 2a e4
    1208012075    mov dx, strict word 00003h                ; ba 03 00
    12081     jmp short 0823ah                          ; eb 6a
     12076    jmp short 0826ah                          ; eb 6a
    1208212077    mov ax, word [bp+004h]                    ; 8b 46 04
    1208312078    test ax, ax                               ; 85 c0
    12084     je short 081dfh                           ; 74 08
     12079    je short 0820fh                           ; 74 08
    1208512080    lea dx, [bx+001h]                         ; 8d 57 01
    1208612081    mov cx, ax                                ; 89 c1
    1208712082    in AL, DX                                 ; ec
    12088     loop 081dch                               ; e2 fd
     12083    loop 0820ch                               ; e2 fd
    1208912084    mov ax, word [bp+006h]                    ; 8b 46 06
    1209012085    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1209412089    lea ax, [bx+001h]                         ; 8d 47 01
    1209512090    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12096     jne short 08200h                          ; 75 07
     12091    jne short 08230h                          ; 75 07
    1209712092    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12098     jbe short 0821dh                          ; 76 1d
     12093    jbe short 0824dh                          ; 76 1d
    1209912094    mov dx, ax                                ; 89 c2
    1210012095    mov cx, 08000h                            ; b9 00 80
     
    1210612101    add ax, 00800h                            ; 05 00 08
    1210712102    mov word [bp+00eh], ax                    ; 89 46 0e
    12108     jmp short 081f0h                          ; eb d3
     12103    jmp short 08220h                          ; eb d3
    1210912104    mov dx, ax                                ; 89 c2
    1211012105    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1211312108    mov es, [bp-00eh]                         ; 8e 46 f2
    1211412109    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12115     je short 08238h                           ; 74 07
     12110    je short 08268h                           ; 74 07
    1211612111    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1211712112    in AL, DX                                 ; ec
    12118     loop 08235h                               ; e2 fd
     12113    loop 08265h                               ; e2 fd
    1211912114    xor dx, dx                                ; 31 d2
    1212012115    mov ax, dx                                ; 89 d0
     
    1212412119    pop bp                                    ; 5d
    1212512120    retn 0000ch                               ; c2 0c 00
    12126 scsi_enumerate_attached_devices_:            ; 0xf8245 LB 0x482
     12121scsi_enumerate_attached_devices_:            ; 0xf8275 LB 0x482
    1212712122    push bp                                   ; 55
    1212812123    mov bp, sp                                ; 89 e5
     
    1213612131    mov dx, strict word 0000eh                ; ba 0e 00
    1213712132    mov ax, strict word 00040h                ; b8 40 00
    12138     call 016d4h                               ; e8 79 94
     12133    call 016d4h                               ; e8 49 94
    1213912134    mov di, 00122h                            ; bf 22 01
    1214012135    mov word [bp-02eh], ax                    ; 89 46 d2
    1214112136    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    12142     jmp near 08649h                           ; e9 e0 03
     12137    jmp near 08679h                           ; e9 e0 03
    1214312138    cmp AL, strict byte 004h                  ; 3c 04
    12144     jnc near 086bdh                           ; 0f 83 4e 04
     12139    jnc near 086edh                           ; 0f 83 4e 04
    1214512140    mov cx, strict word 00010h                ; b9 10 00
    1214612141    xor bx, bx                                ; 31 db
    1214712142    mov dx, ss                                ; 8c d2
    1214812143    lea ax, [bp-046h]                         ; 8d 46 ba
    12149     call 09f20h                               ; e8 a4 1c
     12144    call 09f50h                               ; e8 a4 1c
    1215012145    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1215112146    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1216012155    lea bx, [bp-046h]                         ; 8d 5e ba
    1216112156    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12162     call 07d7fh                               ; e8 dc fa
     12157    call 07dafh                               ; e8 dc fa
    1216312158    test al, al                               ; 84 c0
    12164     je short 082b5h                           ; 74 0e
     12159    je short 082e5h                           ; 74 0e
    1216512160    push 00b92h                               ; 68 92 0b
    1216612161    push 00bcbh                               ; 68 cb 0b
    1216712162    push strict byte 00007h                   ; 6a 07
    12168     call 019dah                               ; e8 28 97
     12163    call 019dah                               ; e8 f8 96
    1216912164    add sp, strict byte 00006h                ; 83 c4 06
    1217012165    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1219612191    sal ax, 1                                 ; d1 e0
    1219712192    rcl dx, 1                                 ; d1 d2
    12198     loop 08303h                               ; e2 fa
     12193    loop 08333h                               ; e2 fa
    1219912194    or bx, ax                                 ; 09 c3
    1220012195    or dx, si                                 ; 09 f2
     
    1220312198    mov word [bp-024h], bx                    ; 89 5e dc
    1220412199    test dx, dx                               ; 85 d2
    12205     jne short 08321h                          ; 75 06
     12200    jne short 08351h                          ; 75 06
    1220612201    cmp bx, 00200h                            ; 81 fb 00 02
    12207     je short 08341h                           ; 74 20
     12202    je short 08371h                           ; 74 20
    1220812203    mov bx, 00da0h                            ; bb a0 0d
    1220912204    mov cx, ds                                ; 8c d9
    1221012205    mov ax, strict word 00004h                ; b8 04 00
    12211     call 01999h                               ; e8 6d 96
     12206    call 01999h                               ; e8 3d 96
    1221212207    push dx                                   ; 52
    1221312208    push word [bp-024h]                       ; ff 76 dc
     
    1221512210    push 00beah                               ; 68 ea 0b
    1221612211    push strict byte 00004h                   ; 6a 04
    12217     call 019dah                               ; e8 9f 96
     12212    call 019dah                               ; e8 6f 96
    1221812213    add sp, strict byte 0000ah                ; 83 c4 0a
    12219     jmp near 08640h                           ; e9 ff 02
     12214    jmp near 08670h                           ; e9 ff 02
    1222012215    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1222112216    cmp AL, strict byte 001h                  ; 3c 01
    12222     jc short 08354h                           ; 72 0c
    12223     jbe short 0835ch                          ; 76 12
     12217    jc short 08384h                           ; 72 0c
     12218    jbe short 0838ch                          ; 76 12
    1222412219    cmp AL, strict byte 003h                  ; 3c 03
    12225     je short 08364h                           ; 74 16
     12220    je short 08394h                           ; 74 16
    1222612221    cmp AL, strict byte 002h                  ; 3c 02
    12227     je short 08360h                           ; 74 0e
    12228     jmp short 083adh                          ; eb 59
     12222    je short 08390h                           ; 74 0e
     12223    jmp short 083ddh                          ; eb 59
    1222912224    test al, al                               ; 84 c0
    12230     jne short 083adh                          ; 75 55
     12225    jne short 083ddh                          ; 75 55
    1223112226    mov BL, strict byte 090h                  ; b3 90
    12232     jmp short 08366h                          ; eb 0a
     12227    jmp short 08396h                          ; eb 0a
    1223312228    mov BL, strict byte 098h                  ; b3 98
    12234     jmp short 08366h                          ; eb 06
     12229    jmp short 08396h                          ; eb 06
    1223512230    mov BL, strict byte 0a0h                  ; b3 a0
    12236     jmp short 08366h                          ; eb 02
     12231    jmp short 08396h                          ; eb 02
    1223712232    mov BL, strict byte 0a8h                  ; b3 a8
    1223812233    mov al, bl                                ; 88 d8
     
    1224012235    movzx cx, al                              ; 0f b6 c8
    1224112236    mov ax, cx                                ; 89 c8
    12242     call 01714h                               ; e8 a2 93
     12237    call 01714h                               ; e8 72 93
    1224312238    test al, al                               ; 84 c0
    12244     je short 083adh                           ; 74 37
     12239    je short 083ddh                           ; 74 37
    1224512240    mov al, bl                                ; 88 d8
    1224612241    db  0feh, 0c0h
    1224712242    ; inc al                                    ; fe c0
    1224812243    xor ah, ah                                ; 30 e4
    12249     call 01714h                               ; e8 95 93
     12244    call 01714h                               ; e8 65 93
    1225012245    movzx dx, al                              ; 0f b6 d0
    1225112246    sal dx, 008h                              ; c1 e2 08
    1225212247    movzx ax, bl                              ; 0f b6 c3
    12253     call 01714h                               ; e8 89 93
     12248    call 01714h                               ; e8 59 93
    1225412249    xor ah, ah                                ; 30 e4
    1225512250    add ax, dx                                ; 01 d0
     
    1225912254    add AL, strict byte 002h                  ; 04 02
    1226012255    xor ah, ah                                ; 30 e4
    12261     call 01714h                               ; e8 79 93
     12256    call 01714h                               ; e8 49 93
    1226212257    xor ah, ah                                ; 30 e4
    1226312258    mov word [bp-034h], ax                    ; 89 46 cc
    1226412259    mov ax, cx                                ; 89 c8
    12265     call 01714h                               ; e8 6f 93
     12260    call 01714h                               ; e8 3f 93
    1226612261    xor ah, ah                                ; 30 e4
    1226712262    mov word [bp-032h], ax                    ; 89 46 ce
    12268     jmp near 08496h                           ; e9 e9 00
     12263    jmp near 084c6h                           ; e9 e9 00
    1226912264    mov ax, word [bp-010h]                    ; 8b 46 f0
    1227012265    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1227212267    mov dx, word [bp-016h]                    ; 8b 56 ea
    1227312268    mov si, strict word 0000ch                ; be 0c 00
    12274     call 09f00h                               ; e8 41 1b
     12269    call 09f30h                               ; e8 41 1b
    1227512270    mov word [bp-018h], ax                    ; 89 46 e8
    1227612271    mov word [bp-014h], bx                    ; 89 5e ec
     
    1227912274    mov ax, word [bp-010h]                    ; 8b 46 f0
    1228012275    test ax, ax                               ; 85 c0
    12281     jnbe short 083e8h                         ; 77 16
    12282     jne near 0845bh                           ; 0f 85 85 00
     12276    jnbe short 08418h                         ; 77 16
     12277    jne near 0848bh                           ; 0f 85 85 00
    1228312278    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12284     jnbe short 083e8h                         ; 77 0c
    12285     jne near 0845bh                           ; 0f 85 7b 00
     12279    jnbe short 08418h                         ; 77 0c
     12280    jne near 0848bh                           ; 0f 85 7b 00
    1228612281    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12287     jnbe short 083e8h                         ; 77 02
    12288     jne short 0845bh                          ; 75 73
     12282    jnbe short 08418h                         ; 77 02
     12283    jne short 0848bh                          ; 75 73
    1228912284    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
    1229012285    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1229212287    mov dx, word [bp-016h]                    ; 8b 56 ea
    1229312288    mov si, strict word 00006h                ; be 06 00
    12294     call 09f00h                               ; e8 01 1b
     12289    call 09f30h                               ; e8 01 1b
    1229512290    mov si, word [bp-020h]                    ; 8b 76 e0
    1229612291    add si, dx                                ; 01 d6
     
    1231012305    mov dx, si                                ; 89 f2
    1231112306    mov si, strict word 00008h                ; be 08 00
    12312     call 09f00h                               ; e8 d1 1a
     12307    call 09f30h                               ; e8 d1 1a
    1231312308    mov word [bp-022h], bx                    ; 89 5e de
    1231412309    mov word [bp-02ch], cx                    ; 89 4e d4
     
    1231912314    mov dx, word [bp-02ah]                    ; 8b 56 d6
    1232012315    mov si, strict word 00010h                ; be 10 00
    12321     call 09f00h                               ; e8 b6 1a
     12316    call 09f30h                               ; e8 b6 1a
    1232212317    mov si, word [bp-01ah]                    ; 8b 76 e6
    1232312318    add si, dx                                ; 01 d6
     
    1232612321    mov ax, word [bp-022h]                    ; 8b 46 de
    1232712322    adc ax, bx                                ; 11 d8
    12328     jmp short 08496h                          ; eb 3b
     12323    jmp short 084c6h                          ; eb 3b
    1232912324    test ax, ax                               ; 85 c0
    12330     jnbe short 08471h                         ; 77 12
    12331     jne short 0847bh                          ; 75 1a
     12325    jnbe short 084a1h                         ; 77 12
     12326    jne short 084abh                          ; 75 1a
    1233212327    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12333     jnbe short 08471h                         ; 77 0a
    12334     jne short 0847bh                          ; 75 12
     12328    jnbe short 084a1h                         ; 77 0a
     12329    jne short 084abh                          ; 75 12
    1233512330    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12336     jnbe short 08471h                         ; 77 02
    12337     jne short 0847bh                          ; 75 0a
     12331    jnbe short 084a1h                         ; 77 02
     12332    jne short 084abh                          ; 75 0a
    1233812333    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
    12339     jmp short 08492h                          ; eb 17
     12334    jmp short 084c2h                          ; eb 17
    1234012335    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
    1234112336    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1234312338    mov dx, word [bp-016h]                    ; 8b 56 ea
    1234412339    mov si, strict word 0000bh                ; be 0b 00
    12345     call 09f00h                               ; e8 6e 1a
     12340    call 09f30h                               ; e8 6e 1a
    1234612341    mov si, dx                                ; 89 d6
    1234712342    mov dx, cx                                ; 89 ca
     
    1237612371    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1237712372    test dx, dx                               ; 85 d2
    12378     jne short 08503h                          ; 75 06
     12373    jne short 08533h                          ; 75 06
    1237912374    cmp si, 00400h                            ; 81 fe 00 04
    12380     jbe short 08511h                          ; 76 0e
     12375    jbe short 08541h                          ; 76 0e
    1238112376    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1238212377    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12383     jmp short 08519h                          ; eb 08
     12378    jmp short 08549h                          ; eb 08
    1238412379    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1238512380    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1238712382    mov cx, ds                                ; 8c d9
    1238812383    mov ax, strict word 00004h                ; b8 04 00
    12389     call 01999h                               ; e8 75 94
     12384    call 01999h                               ; e8 45 94
    1239012385    push word [bp-010h]                       ; ff 76 f0
    1239112386    push word [bp-030h]                       ; ff 76 d0
     
    1240012395    push 00c18h                               ; 68 18 0c
    1240112396    push strict byte 00004h                   ; 6a 04
    12402     call 019dah                               ; e8 94 94
     12397    call 019dah                               ; e8 64 94
    1240312398    add sp, strict byte 00018h                ; 83 c4 18
    1240412399    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     
    1242512420    mov dx, strict word 00075h                ; ba 75 00
    1242612421    mov ax, strict word 00040h                ; b8 40 00
    12427     call 016b8h                               ; e8 22 91
     12422    call 016b8h                               ; e8 f2 90
    1242812423    db  0feh, 0c0h
    1242912424    ; inc al                                    ; fe c0
     
    1243112426    mov dx, strict word 00075h                ; ba 75 00
    1243212427    mov ax, strict word 00040h                ; b8 40 00
    12433     call 016c6h                               ; e8 22 91
     12428    call 016c6h                               ; e8 f2 90
    1243412429    inc byte [bp-00ch]                        ; fe 46 f4
    12435     jmp near 08635h                           ; e9 8b 00
     12430    jmp near 08665h                           ; e9 8b 00
    1243612431    mov bx, 00da0h                            ; bb a0 0d
    1243712432    mov cx, ds                                ; 8c d9
    1243812433    mov ax, strict word 00004h                ; b8 04 00
    12439     call 01999h                               ; e8 e4 93
     12434    call 01999h                               ; e8 b4 93
    1244012435    push word [bp-01eh]                       ; ff 76 e2
    1244112436    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1244312438    push 00c46h                               ; 68 46 0c
    1244412439    push strict byte 00004h                   ; 6a 04
    12445     call 019dah                               ; e8 15 94
     12440    call 019dah                               ; e8 e5 93
    1244612441    add sp, strict byte 00008h                ; 83 c4 08
    1244712442    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1248412479    inc word [bp-01eh]                        ; ff 46 e2
    1248512480    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
    12486     jnl short 086bdh                          ; 7d 74
     12481    jnl short 086edh                          ; 7d 74
    1248712482    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1248812483    xor al, al                                ; 30 c0
     
    1250112496    lea bx, [bp-046h]                         ; 8d 5e ba
    1250212497    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12503     call 07d7fh                               ; e8 05 f7
     12498    call 07dafh                               ; e8 05 f7
    1250412499    test al, al                               ; 84 c0
    12505     je short 0868ch                           ; 74 0e
     12500    je short 086bch                           ; 74 0e
    1250612501    push 00b92h                               ; 68 92 0b
    1250712502    push 00bb2h                               ; 68 b2 0b
    1250812503    push strict byte 00007h                   ; 6a 07
    12509     call 019dah                               ; e8 51 93
     12504    call 019dah                               ; e8 21 93
    1251012505    add sp, strict byte 00006h                ; 83 c4 06
    1251112506    mov es, [bp-02eh]                         ; 8e 46 d2
     
    1251312508    mov byte [bp-00ch], al                    ; 88 46 f4
    1251412509    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12515     jne short 086a7h                          ; 75 09
     12510    jne short 086d7h                          ; 75 09
    1251612511    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12517     je near 08269h                            ; 0f 84 c2 fb
     12512    je near 08299h                            ; 0f 84 c2 fb
    1251812513    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12519     jne short 08635h                          ; 75 87
     12514    jne short 08665h                          ; 75 87
    1252012515    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1252112516    and AL, strict byte 01fh                  ; 24 1f
    1252212517    cmp AL, strict byte 005h                  ; 3c 05
    12523     je near 085aah                            ; 0f 84 f0 fe
    12524     jmp near 08635h                           ; e9 78 ff
     12518    je near 085dah                            ; 0f 84 f0 fe
     12519    jmp near 08665h                           ; e9 78 ff
    1252512520    lea sp, [bp-00ah]                         ; 8d 66 f6
    1252612521    pop di                                    ; 5f
     
    1253112526    pop bp                                    ; 5d
    1253212527    retn                                      ; c3
    12533 _scsi_init:                                  ; 0xf86c7 LB 0x66
     12528_scsi_init:                                  ; 0xf86f7 LB 0x66
    1253412529    push bp                                   ; 55
    1253512530    mov bp, sp                                ; 89 e5
    1253612531    mov dx, strict word 0000eh                ; ba 0e 00
    1253712532    mov ax, strict word 00040h                ; b8 40 00
    12538     call 016d4h                               ; e8 01 90
     12533    call 016d4h                               ; e8 d1 8f
    1253912534    mov bx, 00122h                            ; bb 22 01
    1254012535    mov es, ax                                ; 8e c0
     
    1254712542    ; sub ah, ah                                ; 2a e4
    1254812543    cmp AL, strict byte 055h                  ; 3c 55
    12549     jne short 086f7h                          ; 75 0c
     12544    jne short 08727h                          ; 75 0c
    1255012545    xor al, al                                ; 30 c0
    1255112546    mov dx, 00433h                            ; ba 33 04
    1255212547    out DX, AL                                ; ee
    1255312548    mov ax, 00430h                            ; b8 30 04
    12554     call 08245h                               ; e8 4e fb
     12549    call 08275h                               ; e8 4e fb
    1255512550    mov AL, strict byte 055h                  ; b0 55
    1255612551    mov dx, 00436h                            ; ba 36 04
     
    1256012555    ; sub ah, ah                                ; 2a e4
    1256112556    cmp AL, strict byte 055h                  ; 3c 55
    12562     jne short 08710h                          ; 75 0c
     12557    jne short 08740h                          ; 75 0c
    1256312558    xor al, al                                ; 30 c0
    1256412559    mov dx, 00437h                            ; ba 37 04
    1256512560    out DX, AL                                ; ee
    1256612561    mov ax, 00434h                            ; b8 34 04
    12567     call 08245h                               ; e8 35 fb
     12562    call 08275h                               ; e8 35 fb
    1256812563    mov AL, strict byte 055h                  ; b0 55
    1256912564    mov dx, 0043ah                            ; ba 3a 04
     
    1257312568    ; sub ah, ah                                ; 2a e4
    1257412569    cmp AL, strict byte 055h                  ; 3c 55
    12575     jne short 08729h                          ; 75 0c
     12570    jne short 08759h                          ; 75 0c
    1257612571    xor al, al                                ; 30 c0
    1257712572    mov dx, 0043bh                            ; ba 3b 04
    1257812573    out DX, AL                                ; ee
    1257912574    mov ax, 00438h                            ; b8 38 04
    12580     call 08245h                               ; e8 1c fb
     12575    call 08275h                               ; e8 1c fb
    1258112576    mov sp, bp                                ; 89 ec
    1258212577    pop bp                                    ; 5d
    1258312578    retn                                      ; c3
    12584 ahci_ctrl_extract_bits_:                     ; 0xf872d LB 0x1b
     12579ahci_ctrl_extract_bits_:                     ; 0xf875d LB 0x1b
    1258512580    push si                                   ; 56
    1258612581    push bp                                   ; 55
     
    1259012585    and dx, cx                                ; 21 ca
    1259112586    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12592     jcxz 08743h                               ; e3 06
     12587    jcxz 08773h                               ; e3 06
    1259312588    shr dx, 1                                 ; d1 ea
    1259412589    rcr ax, 1                                 ; d1 d8
    12595     loop 0873dh                               ; e2 fa
     12590    loop 0876dh                               ; e2 fa
    1259612591    pop bp                                    ; 5d
    1259712592    pop si                                    ; 5e
    1259812593    retn 00002h                               ; c2 02 00
    12599 ahci_addr_to_phys_:                          ; 0xf8748 LB 0x1e
     12594ahci_addr_to_phys_:                          ; 0xf8778 LB 0x1e
    1260012595    push bx                                   ; 53
    1260112596    push cx                                   ; 51
     
    1260812603    sal ax, 1                                 ; d1 e0
    1260912604    rcl dx, 1                                 ; d1 d2
    12610     loop 08756h                               ; e2 fa
     12605    loop 08786h                               ; e2 fa
    1261112606    xor cx, cx                                ; 31 c9
    1261212607    add ax, bx                                ; 01 d8
     
    1261612611    pop bx                                    ; 5b
    1261712612    retn                                      ; c3
    12618 ahci_port_cmd_sync_:                         ; 0xf8766 LB 0x14b
     12613ahci_port_cmd_sync_:                         ; 0xf8796 LB 0x14b
    1261912614    push bp                                   ; 55
    1262012615    mov bp, sp                                ; 89 e5
     
    1263112626    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1263212627    cmp ah, 0ffh                              ; 80 fc ff
    12633     je near 088a9h                            ; 0f 84 20 01
     12628    je near 088d9h                            ; 0f 84 20 01
    1263412629    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
    1263512630    xor di, di                                ; 31 ff
     
    1264312638    lea ax, [si+00080h]                       ; 8d 84 80 00
    1264412639    mov dx, cx                                ; 89 ca
    12645     call 08748h                               ; e8 96 ff
     12640    call 08778h                               ; e8 96 ff
    1264612641    mov es, cx                                ; 8e c1
    1264712642    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1270612701    xchg dx, ax                               ; 92
    1270712702    test dh, 040h                             ; f6 c6 40
    12708     jne short 0883fh                          ; 75 04
     12703    jne short 0886fh                          ; 75 04
    1270912704    test AL, strict byte 001h                 ; a8 01
    12710     je short 08843h                           ; 74 04
     12705    je short 08873h                           ; 74 04
    1271112706    mov AL, strict byte 001h                  ; b0 01
    12712     jmp short 08845h                          ; eb 02
     12707    jmp short 08875h                          ; eb 02
    1271312708    xor al, al                                ; 30 c0
    1271412709    test al, al                               ; 84 c0
    12715     je short 08813h                           ; 74 ca
     12710    je short 08843h                           ; 74 ca
    1271612711    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1271712712    sal di, 007h                              ; c1 e7 07
     
    1276712762    pop bp                                    ; 5d
    1276812763    retn                                      ; c3
    12769 ahci_cmd_data_:                              ; 0xf88b1 LB 0x262
     12764ahci_cmd_data_:                              ; 0xf88e1 LB 0x262
    1277012765    push bp                                   ; 55
    1277112766    mov bp, sp                                ; 89 e5
     
    1279212787    mov ax, 00080h                            ; b8 80 00
    1279312788    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12794     call 09f20h                               ; e8 31 16
     12789    call 09f50h                               ; e8 31 16
    1279512790    mov es, [bp-00ah]                         ; 8e 46 f6
    1279612791    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1281012805    mov dx, word [es:si]                      ; 26 8b 14
    1281112806    mov si, strict word 00008h                ; be 08 00
    12812     call 09f00h                               ; e8 cd 15
     12807    call 09f30h                               ; e8 cd 15
    1281312808    mov es, [bp-00ah]                         ; 8e 46 f6
    1281412809    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1282112816    mov dx, word [es:si]                      ; 26 8b 14
    1282212817    mov si, strict word 00010h                ; be 10 00
    12823     call 09f00h                               ; e8 a7 15
     12818    call 09f30h                               ; e8 a7 15
    1282412819    mov es, [bp-00ah]                         ; 8e 46 f6
    1282512820    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1283312828    mov dx, word [es:si]                      ; 26 8b 14
    1283412829    mov si, strict word 00018h                ; be 18 00
    12835     call 09f00h                               ; e8 7b 15
     12830    call 09f30h                               ; e8 7b 15
    1283612831    mov es, [bp-00ah]                         ; 8e 46 f6
    1283712832    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1284412839    mov dx, word [es:si]                      ; 26 8b 14
    1284512840    mov si, strict word 00020h                ; be 20 00
    12846     call 09f00h                               ; e8 55 15
     12841    call 09f30h                               ; e8 55 15
    1284712842    mov es, [bp-00ah]                         ; 8e 46 f6
    1284812843    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1285512850    mov dx, word [es:si]                      ; 26 8b 14
    1285612851    mov si, strict word 00028h                ; be 28 00
    12857     call 09f00h                               ; e8 2f 15
     12852    call 09f30h                               ; e8 2f 15
    1285812853    mov es, [bp-00ah]                         ; 8e 46 f6
    1285912854    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1286912864    mov bx, word [bp-010h]                    ; 8b 5e f0
    1287012865    xor cx, cx                                ; 31 c9
    12871     call 09e80h                               ; e8 7a 14
     12866    call 09eb0h                               ; e8 7a 14
    1287212867    push dx                                   ; 52
    1287312868    push ax                                   ; 50
     
    1287912874    mov ax, 0026ah                            ; b8 6a 02
    1288012875    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12881     call 09dd4h                               ; e8 b2 13
     12876    call 09e04h                               ; e8 b2 13
    1288212877    mov es, [bp-00ah]                         ; 8e 46 f6
    1288312878    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     
    1290012895    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1290112896    test ax, ax                               ; 85 c0
    12902     je short 08ab0h                           ; 74 39
     12897    je short 08ae0h                           ; 74 39
    1290312898    dec ax                                    ; 48
    1290412899    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1291612911    mov al, byte [bp-008h]                    ; 8a 46 f8
    1291712912    cmp AL, strict byte 035h                  ; 3c 35
    12918     jne short 08abdh                          ; 75 06
     12913    jne short 08aedh                          ; 75 06
    1291912914    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    12920     jmp short 08ad4h                          ; eb 17
     12915    jmp short 08b04h                          ; eb 17
    1292112916    cmp AL, strict byte 0a0h                  ; 3c a0
    12922     jne short 08ad0h                          ; 75 0f
     12917    jne short 08b00h                          ; 75 0f
    1292312918    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1292412919    les bx, [bp-00eh]                         ; c4 5e f2
    1292512920    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    12926     jmp short 08ad4h                          ; eb 04
     12921    jmp short 08b04h                          ; eb 04
    1292712922    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1292812923    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1293012925    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1293112926    mov dx, word [bp-00ch]                    ; 8b 56 f4
    12932     call 08766h                               ; e8 81 fc
     12927    call 08796h                               ; e8 81 fc
    1293312928    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1293412929    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1293712932    add ax, 0026ah                            ; 05 6a 02
    1293812933    mov dx, cx                                ; 89 ca
    12939     call 09e4dh                               ; e8 53 13
     12934    call 09e7dh                               ; e8 53 13
    1294012935    mov es, cx                                ; 8e c1
    1294112936    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1294212937    test al, al                               ; 84 c0
    12943     je short 08b09h                           ; 74 05
     12938    je short 08b39h                           ; 74 05
    1294412939    mov ax, strict word 00004h                ; b8 04 00
    12945     jmp short 08b0bh                          ; eb 02
     12940    jmp short 08b3bh                          ; eb 02
    1294612941    xor ah, ah                                ; 30 e4
    1294712942    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1295112946    pop bp                                    ; 5d
    1295212947    retn                                      ; c3
    12953 ahci_port_deinit_current_:                   ; 0xf8b13 LB 0x17f
     12948ahci_port_deinit_current_:                   ; 0xf8b43 LB 0x17f
    1295412949    push bp                                   ; 55
    1295512950    mov bp, sp                                ; 89 e5
     
    1296612961    mov byte [bp-00ah], al                    ; 88 46 f6
    1296712962    cmp AL, strict byte 0ffh                  ; 3c ff
    12968     je near 08c89h                            ; 0f 84 52 01
     12963    je near 08cb9h                            ; 0f 84 52 01
    1296912964    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1297012965    sal ax, 007h                              ; c1 e0 07
     
    1300913004    xchg dx, ax                               ; 92
    1301013005    test ax, 0c011h                           ; a9 11 c0
    13011     je short 08b97h                           ; 74 04
     13006    je short 08bc7h                           ; 74 04
    1301213007    mov AL, strict byte 001h                  ; b0 01
    13013     jmp short 08b99h                          ; eb 02
     13008    jmp short 08bc9h                          ; eb 02
    1301413009    xor al, al                                ; 30 c0
    1301513010    cmp AL, strict byte 001h                  ; 3c 01
    13016     je short 08b6bh                           ; 74 ce
     13011    je short 08b9bh                           ; 74 ce
    1301713012    mov cx, strict word 00020h                ; b9 20 00
    1301813013    xor bx, bx                                ; 31 db
    1301913014    mov ax, di                                ; 89 f8
    1302013015    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13021     call 09f20h                               ; e8 76 13
     13016    call 09f50h                               ; e8 76 13
    1302213017    lea ax, [di+00080h]                       ; 8d 85 80 00
    1302313018    mov cx, strict word 00040h                ; b9 40 00
    1302413019    xor bx, bx                                ; 31 db
    1302513020    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13026     call 09f20h                               ; e8 67 13
     13021    call 09f50h                               ; e8 67 13
    1302713022    lea ax, [di+00200h]                       ; 8d 85 00 02
    1302813023    mov cx, strict word 00060h                ; b9 60 00
    1302913024    xor bx, bx                                ; 31 db
    1303013025    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13031     call 09f20h                               ; e8 58 13
     13026    call 09f50h                               ; e8 58 13
    1303213027    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1303313028    sal ax, 007h                              ; c1 e0 07
     
    1313313128    pop bp                                    ; 5d
    1313413129    retn                                      ; c3
    13135 ahci_port_init_:                             ; 0xf8c92 LB 0x24a
     13130ahci_port_init_:                             ; 0xf8cc2 LB 0x24a
    1313613131    push bp                                   ; 55
    1313713132    mov bp, sp                                ; 89 e5
     
    1314313138    mov word [bp-00ah], dx                    ; 89 56 f6
    1314413139    mov byte [bp-008h], bl                    ; 88 5e f8
    13145     call 08b13h                               ; e8 6d fe
     13140    call 08b43h                               ; e8 6d fe
    1314613141    movzx ax, bl                              ; 0f b6 c3
    1314713142    sal ax, 007h                              ; c1 e0 07
     
    1319013185    xchg dx, ax                               ; 92
    1319113186    test ax, 0c011h                           ; a9 11 c0
    13192     je short 08d15h                           ; 74 04
     13187    je short 08d45h                           ; 74 04
    1319313188    mov AL, strict byte 001h                  ; b0 01
    13194     jmp short 08d17h                          ; eb 02
     13189    jmp short 08d47h                          ; eb 02
    1319513190    xor al, al                                ; 30 c0
    1319613191    cmp AL, strict byte 001h                  ; 3c 01
    13197     je short 08ce1h                           ; 74 c6
     13192    je short 08d11h                           ; 74 c6
    1319813193    mov cx, strict word 00020h                ; b9 20 00
    1319913194    xor bx, bx                                ; 31 db
    1320013195    mov ax, si                                ; 89 f0
    1320113196    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13202     call 09f20h                               ; e8 f8 11
     13197    call 09f50h                               ; e8 f8 11
    1320313198    lea ax, [si+00080h]                       ; 8d 84 80 00
    1320413199    mov cx, strict word 00040h                ; b9 40 00
    1320513200    xor bx, bx                                ; 31 db
    1320613201    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13207     call 09f20h                               ; e8 e9 11
     13202    call 09f50h                               ; e8 e9 11
    1320813203    lea di, [si+00200h]                       ; 8d bc 00 02
    1320913204    mov cx, strict word 00060h                ; b9 60 00
     
    1321113206    mov ax, di                                ; 89 f8
    1321213207    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13213     call 09f20h                               ; e8 d8 11
     13208    call 09f50h                               ; e8 d8 11
    1321413209    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1321513210    sal bx, 007h                              ; c1 e3 07
     
    1322813223    mov ax, di                                ; 89 f8
    1322913224    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13230     call 08748h                               ; e8 d3 f9
     13225    call 08778h                               ; e8 d3 f9
    1323113226    mov es, [bp-00ah]                         ; 8e 46 f6
    1323213227    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1327313268    mov ax, si                                ; 89 f0
    1327413269    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13275     call 08748h                               ; e8 67 f9
     13270    call 08778h                               ; e8 67 f9
    1327613271    mov es, [bp-00ah]                         ; 8e 46 f6
    1327713272    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1337813373    pop bp                                    ; 5d
    1337913374    retn                                      ; c3
    13380 @ahci_read_sectors:                          ; 0xf8edc LB 0xa6
     13375@ahci_read_sectors:                          ; 0xf8f0c LB 0xa6
    1338113376    push bp                                   ; 55
    1338213377    mov bp, sp                                ; 89 e5
     
    1338813383    sub di, strict byte 0000ch                ; 83 ef 0c
    1338913384    cmp di, strict byte 00004h                ; 83 ff 04
    13390     jbe short 08f01h                          ; 76 0f
     13385    jbe short 08f31h                          ; 76 0f
    1339113386    push di                                   ; 57
    1339213387    push 00c62h                               ; 68 62 0c
    1339313388    push 00c74h                               ; 68 74 0c
    1339413389    push strict byte 00007h                   ; 6a 07
    13395     call 019dah                               ; e8 dc 8a
     13390    call 019dah                               ; e8 ac 8a
    1339613391    add sp, strict byte 00008h                ; 83 c4 08
    1339713392    xor bx, bx                                ; 31 db
     
    1340713402    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1340813403    xor ax, ax                                ; 31 c0
    13409     call 08c92h                               ; e8 65 fd
     13404    call 08cc2h                               ; e8 65 fd
    1341013405    mov bx, strict word 00025h                ; bb 25 00
    1341113406    mov ax, si                                ; 89 f0
    1341213407    mov dx, word [bp+006h]                    ; 8b 56 06
    13413     call 088b1h                               ; e8 79 f9
     13408    call 088e1h                               ; e8 79 f9
    1341413409    mov word [bp-006h], ax                    ; 89 46 fa
    1341513410    mov es, [bp+006h]                         ; 8e 46 06
     
    1344013435    pop bp                                    ; 5d
    1344113436    retn 00004h                               ; c2 04 00
    13442 @ahci_write_sectors:                         ; 0xf8f82 LB 0x84
     13437@ahci_write_sectors:                         ; 0xf8fb2 LB 0x84
    1344313438    push bp                                   ; 55
    1344413439    mov bp, sp                                ; 89 e5
     
    1345113446    sub dx, strict byte 0000ch                ; 83 ea 0c
    1345213447    cmp dx, strict byte 00004h                ; 83 fa 04
    13453     jbe short 08fabh                          ; 76 0f
     13448    jbe short 08fdbh                          ; 76 0f
    1345413449    push dx                                   ; 52
    1345513450    push 00c93h                               ; 68 93 0c
    1345613451    push 00c74h                               ; 68 74 0c
    1345713452    push strict byte 00007h                   ; 6a 07
    13458     call 019dah                               ; e8 32 8a
     13453    call 019dah                               ; e8 02 8a
    1345913454    add sp, strict byte 00008h                ; 83 c4 08
    1346013455    xor bx, bx                                ; 31 db
     
    1347013465    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1347113466    xor ax, ax                                ; 31 c0
    13472     call 08c92h                               ; e8 bd fc
     13467    call 08cc2h                               ; e8 bd fc
    1347313468    mov bx, strict word 00035h                ; bb 35 00
    1347413469    mov ax, si                                ; 89 f0
    1347513470    mov dx, cx                                ; 89 ca
    13476     call 088b1h                               ; e8 d2 f8
     13471    call 088e1h                               ; e8 d2 f8
    1347713472    mov dx, ax                                ; 89 c2
    1347813473    mov es, cx                                ; 8e c1
     
    1348913484    pop bp                                    ; 5d
    1349013485    retn 00004h                               ; c2 04 00
    13491 ahci_cmd_packet_:                            ; 0xf9006 LB 0x183
     13486ahci_cmd_packet_:                            ; 0xf9036 LB 0x183
    1349213487    push bp                                   ; 55
    1349313488    mov bp, sp                                ; 89 e5
     
    1350113496    mov dx, strict word 0000eh                ; ba 0e 00
    1350213497    mov ax, strict word 00040h                ; b8 40 00
    13503     call 016d4h                               ; e8 b3 86
     13498    call 016d4h                               ; e8 83 86
    1350413499    mov si, 00122h                            ; be 22 01
    1350513500    mov word [bp-008h], ax                    ; 89 46 f8
    1350613501    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13507     jne short 0904ch                          ; 75 1f
     13502    jne short 0907ch                          ; 75 1f
    1350813503    mov bx, 00da0h                            ; bb a0 0d
    1350913504    mov cx, ds                                ; 8c d9
    1351013505    mov ax, strict word 00004h                ; b8 04 00
    13511     call 01999h                               ; e8 61 89
     13506    call 01999h                               ; e8 31 89
    1351213507    push 00ca6h                               ; 68 a6 0c
    1351313508    push 00cb6h                               ; 68 b6 0c
    1351413509    push strict byte 00004h                   ; 6a 04
    13515     call 019dah                               ; e8 97 89
     13510    call 019dah                               ; e8 67 89
    1351613511    add sp, strict byte 00006h                ; 83 c4 06
    1351713512    mov ax, strict word 00001h                ; b8 01 00
    13518     jmp near 09180h                           ; e9 34 01
     13513    jmp near 091b0h                           ; e9 34 01
    1351913514    test byte [bp+004h], 001h                 ; f6 46 04 01
    13520     jne short 09046h                          ; 75 f4
     13515    jne short 09076h                          ; 75 f4
    1352113516    mov ax, word [bp+006h]                    ; 8b 46 06
    1352213517    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1352413519    sal ax, 1                                 ; d1 e0
    1352513520    rcl dx, 1                                 ; d1 d2
    13526     loop 0905bh                               ; e2 fa
     13521    loop 0908bh                               ; e2 fa
    1352713522    mov es, [bp-008h]                         ; 8e 46 f8
    1352813523    mov word [es:si], ax                      ; 26 89 04
     
    1353813533    mov dx, word [bp+008h]                    ; 8b 56 08
    1353913534    xor cx, cx                                ; 31 c9
    13540     call 09ec0h                               ; e8 2f 0e
     13535    call 09ef0h                               ; e8 2f 0e
    1354113536    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1354213537    xor di, di                                ; 31 ff
     
    1355513550    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1355613551    xor ax, ax                                ; 31 c0
    13557     call 08c92h                               ; e8 c5 fb
     13552    call 08cc2h                               ; e8 c5 fb
    1355813553    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1355913554    push ax                                   ; 50
     
    1356213557    mov ax, 000c0h                            ; b8 c0 00
    1356313558    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13564     call 09f30h                               ; e8 4f 0e
     13559    call 09f60h                               ; e8 4f 0e
    1356513560    mov es, [bp-008h]                         ; 8e 46 f8
    1356613561    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1356913564    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1357013565    test ax, ax                               ; 85 c0
    13571     je short 0911fh                           ; 74 27
     13566    je short 0914fh                           ; 74 27
    1357213567    dec ax                                    ; 48
    1357313568    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1358213577    mov ax, si                                ; 89 f0
    1358313578    mov dx, word [bp-008h]                    ; 8b 56 f8
    13584     call 088b1h                               ; e8 87 f7
     13579    call 088e1h                               ; e8 87 f7
    1358513580    les bx, [bp-00eh]                         ; c4 5e f2
    1358613581    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1360913604    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1361013605    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13611     jne short 0917eh                          ; 75 05
     13606    jne short 091aeh                          ; 75 05
    1361213607    mov ax, strict word 00004h                ; b8 04 00
    13613     jmp short 09180h                          ; eb 02
     13608    jmp short 091b0h                          ; eb 02
    1361413609    xor ax, ax                                ; 31 c0
    1361513610    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1361813613    pop bp                                    ; 5d
    1361913614    retn 0000ch                               ; c2 0c 00
    13620 ahci_port_detect_device_:                    ; 0xf9189 LB 0x4b1
     13615ahci_port_detect_device_:                    ; 0xf91b9 LB 0x4b1
    1362113616    push bp                                   ; 55
    1362213617    mov bp, sp                                ; 89 e5
     
    1363013625    movzx di, bl                              ; 0f b6 fb
    1363113626    mov bx, di                                ; 89 fb
    13632     call 08c92h                               ; e8 ef fa
     13627    call 08cc2h                               ; e8 ef fa
    1363313628    mov dx, strict word 0000eh                ; ba 0e 00
    1363413629    mov ax, strict word 00040h                ; b8 40 00
    13635     call 016d4h                               ; e8 28 85
     13630    call 016d4h                               ; e8 f8 84
    1363613631    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1363713632    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1370213697    mov bx, strict word 0000fh                ; bb 0f 00
    1370313698    xor cx, cx                                ; 31 c9
    13704     call 0872dh                               ; e8 d7 f4
     13699    call 0875dh                               ; e8 d7 f4
    1370513700    test ax, ax                               ; 85 c0
    13706     je near 09632h                            ; 0f 84 d6 03
     13701    je near 09662h                            ; 0f 84 d6 03
    1370713702    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1370813703    sal ax, 007h                              ; c1 e0 07
     
    1373213727    mov bx, strict word 0000fh                ; bb 0f 00
    1373313728    xor cx, cx                                ; 31 c9
    13734     call 0872dh                               ; e8 8b f4
     13729    call 0875dh                               ; e8 8b f4
    1373513730    cmp ax, strict word 00001h                ; 3d 01 00
    13736     je short 0925ch                           ; 74 b5
     13731    je short 0928ch                           ; 74 b5
    1373713732    push strict byte 00000h                   ; 6a 00
    1373813733    mov bx, strict word 0000fh                ; bb 0f 00
     
    1374013735    mov ax, di                                ; 89 f8
    1374113736    mov dx, word [bp-022h]                    ; 8b 56 de
    13742     call 0872dh                               ; e8 77 f4
     13737    call 0875dh                               ; e8 77 f4
    1374313738    cmp ax, strict word 00003h                ; 3d 03 00
    13744     jne near 09632h                           ; 0f 85 75 03
     13739    jne near 09662h                           ; 0f 85 75 03
    1374513740    mov ax, word [bp-018h]                    ; 8b 46 e8
    1374613741    add ax, 00130h                            ; 05 30 01
     
    1376913764    mov byte [bp-008h], al                    ; 88 46 f8
    1377013765    cmp AL, strict byte 004h                  ; 3c 04
    13771     jnc near 09632h                           ; 0f 83 2f 03
     13766    jnc near 09662h                           ; 0f 83 2f 03
    1377213767    mov ax, word [bp-018h]                    ; 8b 46 e8
    1377313768    add ax, 00118h                            ; 05 18 01
     
    1382113816    add cl, 00ch                              ; 80 c1 0c
    1382213817    test dx, dx                               ; 85 d2
    13823     jne near 09588h                           ; 0f 85 0d 02
     13818    jne near 095b8h                           ; 0f 85 0d 02
    1382413819    cmp di, 00101h                            ; 81 ff 01 01
    13825     jne near 09588h                           ; 0f 85 05 02
     13820    jne near 095b8h                           ; 0f 85 05 02
    1382613821    les bx, [bp-010h]                         ; c4 5e f0
    1382713822    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1383713832    mov ax, word [bp-010h]                    ; 8b 46 f0
    1383813833    mov dx, es                                ; 8c c2
    13839     call 088b1h                               ; e8 fa f4
     13834    call 088e1h                               ; e8 fa f4
    1384013835    mov byte [bp-00ch], cl                    ; 88 4e f4
    1384113836    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     
    1385413849    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
    1385513850    cmp di, 00fffh                            ; 81 ff ff 0f
    13856     jne short 09410h                          ; 75 1e
     13851    jne short 09440h                          ; 75 1e
    1385713852    cmp dx, strict byte 0ffffh                ; 83 fa ff
    13858     jne short 09410h                          ; 75 19
     13853    jne short 09440h                          ; 75 19
    1385913854    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
    1386013855    mov word [bp-014h], dx                    ; 89 56 ec
     
    1389313888    mov al, byte [bp-008h]                    ; 8a 46 f8
    1389413889    cmp AL, strict byte 001h                  ; 3c 01
    13895     jc short 09489h                           ; 72 0c
    13896     jbe short 09491h                          ; 76 12
     13890    jc short 094b9h                           ; 72 0c
     13891    jbe short 094c1h                          ; 76 12
    1389713892    cmp AL, strict byte 003h                  ; 3c 03
    13898     je short 09499h                           ; 74 16
     13893    je short 094c9h                           ; 74 16
    1389913894    cmp AL, strict byte 002h                  ; 3c 02
    13900     je short 09495h                           ; 74 0e
    13901     jmp short 094e2h                          ; eb 59
     13895    je short 094c5h                           ; 74 0e
     13896    jmp short 09512h                          ; eb 59
    1390213897    test al, al                               ; 84 c0
    13903     jne short 094e2h                          ; 75 55
     13898    jne short 09512h                          ; 75 55
    1390413899    mov DL, strict byte 040h                  ; b2 40
    13905     jmp short 0949bh                          ; eb 0a
     13900    jmp short 094cbh                          ; eb 0a
    1390613901    mov DL, strict byte 048h                  ; b2 48
    13907     jmp short 0949bh                          ; eb 06
     13902    jmp short 094cbh                          ; eb 06
    1390813903    mov DL, strict byte 050h                  ; b2 50
    13909     jmp short 0949bh                          ; eb 02
     13904    jmp short 094cbh                          ; eb 02
    1391013905    mov DL, strict byte 058h                  ; b2 58
    1391113906    mov al, dl                                ; 88 d0
     
    1391313908    movzx bx, al                              ; 0f b6 d8
    1391413909    mov ax, bx                                ; 89 d8
    13915     call 01714h                               ; e8 6d 82
     13910    call 01714h                               ; e8 3d 82
    1391613911    test al, al                               ; 84 c0
    13917     je short 094e2h                           ; 74 37
     13912    je short 09512h                           ; 74 37
    1391813913    mov al, dl                                ; 88 d0
    1391913914    db  0feh, 0c0h
    1392013915    ; inc al                                    ; fe c0
    1392113916    xor ah, ah                                ; 30 e4
    13922     call 01714h                               ; e8 60 82
     13917    call 01714h                               ; e8 30 82
    1392313918    xor ah, ah                                ; 30 e4
    1392413919    mov si, ax                                ; 89 c6
    1392513920    sal si, 008h                              ; c1 e6 08
    1392613921    movzx ax, dl                              ; 0f b6 c2
    13927     call 01714h                               ; e8 53 82
     13922    call 01714h                               ; e8 23 82
    1392813923    xor ah, ah                                ; 30 e4
    1392913924    add ax, si                                ; 01 f0
     
    1393213927    add AL, strict byte 002h                  ; 04 02
    1393313928    xor ah, ah                                ; 30 e4
    13934     call 01714h                               ; e8 43 82
     13929    call 01714h                               ; e8 13 82
    1393513930    xor ah, ah                                ; 30 e4
    1393613931    mov word [bp-02ah], ax                    ; 89 46 d6
    1393713932    mov ax, bx                                ; 89 d8
    13938     call 01714h                               ; e8 39 82
     13933    call 01714h                               ; e8 09 82
    1393913934    xor ah, ah                                ; 30 e4
    1394013935    mov word [bp-026h], ax                    ; 89 46 da
    13941     jmp short 094f2h                          ; eb 10
     13936    jmp short 09522h                          ; eb 10
    1394213937    push dword [bp-016h]                      ; 66 ff 76 ea
    1394313938    push di                                   ; 57
     
    1394513940    mov dx, ss                                ; 8c d2
    1394613941    lea ax, [bp-02ah]                         ; 8d 46 d6
    13947     call 059a6h                               ; e8 b4 c4
     13942    call 059d6h                               ; e8 b4 c4
    1394813943    mov bx, 00da0h                            ; bb a0 0d
    1394913944    mov cx, ds                                ; 8c d9
    1395013945    mov ax, strict word 00004h                ; b8 04 00
    13951     call 01999h                               ; e8 9c 84
     13946    call 01999h                               ; e8 6c 84
    1395213947    push dword [bp-016h]                      ; 66 ff 76 ea
    1395313948    push di                                   ; 57
     
    1396813963    push 00cd6h                               ; 68 d6 0c
    1396913964    push strict byte 00004h                   ; 6a 04
    13970     call 019dah                               ; e8 ae 84
     13965    call 019dah                               ; e8 7e 84
    1397113966    add sp, strict byte 0001ch                ; 83 c4 1c
    1397213967    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1399713992    mov dx, strict word 00075h                ; ba 75 00
    1399813993    mov ax, strict word 00040h                ; b8 40 00
    13999     call 016b8h                               ; e8 41 81
     13994    call 016b8h                               ; e8 11 81
    1400013995    db  0feh, 0c0h
    1400113996    ; inc al                                    ; fe c0
     
    1400313998    mov dx, strict word 00075h                ; ba 75 00
    1400413999    mov ax, strict word 00040h                ; b8 40 00
    14005     call 016c6h                               ; e8 41 81
    14006     jmp near 09624h                           ; e9 9c 00
     14000    call 016c6h                               ; e8 11 81
     14001    jmp near 09654h                           ; e9 9c 00
    1400714002    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14008     jne near 09624h                           ; 0f 85 94 00
     14003    jne near 09654h                           ; 0f 85 94 00
    1400914004    cmp di, 00101h                            ; 81 ff 01 01
    14010     jne near 09624h                           ; 0f 85 8c 00
     14005    jne near 09654h                           ; 0f 85 8c 00
    1401114006    les bx, [bp-010h]                         ; c4 5e f0
    1401214007    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1402214017    mov ax, word [bp-010h]                    ; 8b 46 f0
    1402314018    mov dx, es                                ; 8c c2
    14024     call 088b1h                               ; e8 e5 f2
     14019    call 088e1h                               ; e8 e5 f2
    1402514020    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1402614021    db  00fh, 095h, 0c0h
     
    1405914054    pop bp                                    ; 5d
    1406014055    retn                                      ; c3
    14061 ahci_mem_alloc_:                             ; 0xf963a LB 0x43
     14056ahci_mem_alloc_:                             ; 0xf966a LB 0x43
    1406214057    push bp                                   ; 55
    1406314058    mov bp, sp                                ; 89 e5
     
    1406914064    mov dx, 00413h                            ; ba 13 04
    1407014065    xor ax, ax                                ; 31 c0
    14071     call 016d4h                               ; e8 8a 80
     14066    call 016d4h                               ; e8 5a 80
    1407214067    test ax, ax                               ; 85 c0
    14073     je short 09673h                           ; 74 25
     14068    je short 096a3h                           ; 74 25
    1407414069    dec ax                                    ; 48
    1407514070    mov bx, ax                                ; 89 c3
     
    1407814073    sal ax, 1                                 ; d1 e0
    1407914074    rcl dx, 1                                 ; d1 d2
    14080     loop 09656h                               ; e2 fa
     14075    loop 09686h                               ; e2 fa
    1408114076    mov si, ax                                ; 89 c6
    1408214077    mov di, dx                                ; 89 d7
     
    1408414079    shr di, 1                                 ; d1 ef
    1408514080    rcr si, 1                                 ; d1 de
    14086     loop 09663h                               ; e2 fa
     14081    loop 09693h                               ; e2 fa
    1408714082    mov dx, 00413h                            ; ba 13 04
    1408814083    xor ax, ax                                ; 31 c0
    14089     call 016e2h                               ; e8 71 80
     14084    call 016e2h                               ; e8 41 80
    1409014085    mov ax, si                                ; 89 f0
    1409114086    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1409714092    pop bp                                    ; 5d
    1409814093    retn                                      ; c3
    14099 ahci_hba_init_:                              ; 0xf967d LB 0x166
     14094ahci_hba_init_:                              ; 0xf96ad LB 0x166
    1410014095    push bp                                   ; 55
    1410114096    mov bp, sp                                ; 89 e5
     
    1410914104    mov dx, strict word 0000eh                ; ba 0e 00
    1411014105    mov ax, strict word 00040h                ; b8 40 00
    14111     call 016d4h                               ; e8 41 80
     14106    call 016d4h                               ; e8 11 80
    1411214107    mov bx, 00122h                            ; bb 22 01
    1411314108    mov di, ax                                ; 89 c7
     
    1412614121    shr eax, 010h                             ; 66 c1 e8 10
    1412714122    xchg dx, ax                               ; 92
    14128     call 0963ah                               ; e8 83 ff
     14123    call 0966ah                               ; e8 83 ff
    1412914124    mov word [bp-010h], ax                    ; 89 46 f0
    1413014125    test ax, ax                               ; 85 c0
    14131     je near 097c2h                            ; 0f 84 02 01
     14126    je near 097f2h                            ; 0f 84 02 01
    1413214127    mov ax, word [bp-010h]                    ; 8b 46 f0
    1413314128    mov es, di                                ; 8e c7
     
    1417914174    xchg dx, ax                               ; 92
    1418014175    test AL, strict byte 001h                 ; a8 01
    14181     jne short 09716h                          ; 75 de
     14176    jne short 09746h                          ; 75 de
    1418214177    xor ax, ax                                ; 31 c0
    1418314178    xor cx, cx                                ; 31 c9
     
    1419714192    mov bx, strict word 0001fh                ; bb 1f 00
    1419814193    xor cx, cx                                ; 31 c9
    14199     call 0872dh                               ; e8 d1 ef
     14194    call 0875dh                               ; e8 d1 ef
    1420014195    db  0feh, 0c0h
    1420114196    ; inc al                                    ; fe c0
    1420214197    mov byte [bp-00eh], al                    ; 88 46 f2
    1420314198    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14204     jmp short 09787h                          ; eb 20
     14199    jmp short 097b7h                          ; eb 20
    1420514200    xor al, al                                ; 30 c0
    1420614201    test al, al                               ; 84 c0
    14207     je short 0977eh                           ; 74 11
     14202    je short 097aeh                           ; 74 11
    1420814203    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1420914204    xor ax, ax                                ; 31 c0
    1421014205    mov dx, word [bp-010h]                    ; 8b 56 f0
    14211     call 09189h                               ; e8 10 fa
     14206    call 091b9h                               ; e8 10 fa
    1421214207    dec byte [bp-00eh]                        ; fe 4e f2
    14213     je short 097c0h                           ; 74 42
     14208    je short 097f0h                           ; 74 42
    1421414209    inc byte [bp-00ch]                        ; fe 46 f4
    1421514210    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14216     jnc short 097c0h                          ; 73 39
     14211    jnc short 097f0h                          ; 73 39
    1421714212    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1421814213    mov bx, strict word 00001h                ; bb 01 00
    1421914214    xor di, di                                ; 31 ff
    14220     jcxz 09798h                               ; e3 06
     14215    jcxz 097c8h                               ; e3 06
    1422114216    sal bx, 1                                 ; d1 e3
    1422214217    rcl di, 1                                 ; d1 d7
    14223     loop 09792h                               ; e2 fa
     14218    loop 097c2h                               ; e2 fa
    1422414219    mov ax, strict word 0000ch                ; b8 0c 00
    1422514220    xor cx, cx                                ; 31 c9
     
    1423714232    xchg dx, ax                               ; 92
    1423814233    test dx, di                               ; 85 fa
    14239     jne short 097bch                          ; 75 04
     14234    jne short 097ech                          ; 75 04
    1424014235    test ax, bx                               ; 85 d8
    14241     je short 09767h                           ; 74 ab
     14236    je short 09797h                           ; 74 ab
    1424214237    mov AL, strict byte 001h                  ; b0 01
    14243     jmp short 09769h                          ; eb a9
     14238    jmp short 09799h                          ; eb a9
    1424414239    xor ax, ax                                ; 31 c0
    1424514240    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1425114246    pop bp                                    ; 5d
    1425214247    retn                                      ; c3
    14253     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0b2h, 098h, 090h, 098h, 096h, 098h, 09ch, 098h, 0a2h
    14254     db  098h, 0a8h, 098h, 0aeh, 098h, 0b2h, 098h
    14255 _ahci_init:                                  ; 0xf97e3 LB 0xfe
     14248    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0e2h, 098h, 0c0h, 098h, 0c6h, 098h, 0cch, 098h, 0d2h
     14249    db  098h, 0d8h, 098h, 0deh, 098h, 0e2h, 098h
     14250_ahci_init:                                  ; 0xf9813 LB 0xfe
    1425614251    push bp                                   ; 55
    1425714252    mov bp, sp                                ; 89 e5
     
    1426114256    mov ax, 00601h                            ; b8 01 06
    1426214257    mov dx, strict word 00001h                ; ba 01 00
    14263     call 09d01h                               ; e8 0d 05
     14258    call 09d31h                               ; e8 0d 05
    1426414259    mov dx, ax                                ; 89 c2
    1426514260    cmp ax, strict word 0ffffh                ; 3d ff ff
    14266     je near 098dah                            ; 0f 84 dd 00
     14261    je near 0990ah                            ; 0f 84 dd 00
    1426714262    xor al, al                                ; 30 c0
    1426814263    shr ax, 008h                              ; c1 e8 08
     
    1427214267    xor ah, ah                                ; 30 e4
    1427314268    mov bx, strict word 00034h                ; bb 34 00
    14274     call 09d2ch                               ; e8 1a 05
     14269    call 09d5ch                               ; e8 1a 05
    1427514270    mov cl, al                                ; 88 c1
    1427614271    test cl, cl                               ; 84 c9
    14277     je short 0983bh                           ; 74 23
     14272    je short 0986bh                           ; 74 23
    1427814273    movzx bx, cl                              ; 0f b6 d9
    1427914274    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1428114276    mov dx, di                                ; 89 fa
    1428214277    mov ax, si                                ; 89 f0
    14283     call 09d2ch                               ; e8 02 05
     14278    call 09d5ch                               ; e8 02 05
    1428414279    cmp AL, strict byte 012h                  ; 3c 12
    14285     je short 0983bh                           ; 74 0d
     14280    je short 0986bh                           ; 74 0d
    1428614281    mov al, cl                                ; 88 c8
    1428714282    db  0feh, 0c0h
     
    1429014285    mov dx, di                                ; 89 fa
    1429114286    mov ax, si                                ; 89 f0
    14292     jmp short 0980fh                          ; eb d4
     14287    jmp short 0983fh                          ; eb d4
    1429314288    test cl, cl                               ; 84 c9
    14294     je near 098dah                            ; 0f 84 99 00
     14289    je near 0990ah                            ; 0f 84 99 00
    1429514290    add cl, 002h                              ; 80 c1 02
    1429614291    movzx bx, cl                              ; 0f b6 d9
     
    1429914294    mov dx, di                                ; 89 fa
    1430014295    mov ax, si                                ; 89 f0
    14301     call 09d2ch                               ; e8 d6 04
     14296    call 09d5ch                               ; e8 d6 04
    1430214297    cmp AL, strict byte 010h                  ; 3c 10
    14303     jne near 098dah                           ; 0f 85 7e 00
     14298    jne near 0990ah                           ; 0f 85 7e 00
    1430414299    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1430514300    mov al, cl                                ; 88 c8
     
    1430814303    mov dx, di                                ; 89 fa
    1430914304    mov ax, si                                ; 89 f0
    14310     call 09d50h                               ; e8 e2 04
     14305    call 09d80h                               ; e8 e2 04
    1431114306    mov dx, ax                                ; 89 c2
    1431214307    and ax, strict word 0000fh                ; 25 0f 00
    1431314308    sub ax, strict word 00004h                ; 2d 04 00
    1431414309    cmp ax, strict word 0000bh                ; 3d 0b 00
    14315     jnbe short 098b2h                         ; 77 37
     14310    jnbe short 098e2h                         ; 77 37
    1431614311    push CS                                   ; 0e
    1431714312    pop ES                                    ; 07
    1431814313    mov cx, strict word 00008h                ; b9 08 00
    14319     mov di, 097cch                            ; bf cc 97
     14314    mov di, 097fch                            ; bf fc 97
    1432014315    repne scasb                               ; f2 ae
    1432114316    sal cx, 1                                 ; d1 e1
    1432214317    mov di, cx                                ; 89 cf
    14323     mov ax, word [cs:di-0682dh]               ; 2e 8b 85 d3 97
     14318    mov ax, word [cs:di-067fdh]               ; 2e 8b 85 03 98
    1432414319    jmp ax                                    ; ff e0
    1432514320    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    14326     jmp short 098b2h                          ; eb 1c
     14321    jmp short 098e2h                          ; eb 1c
    1432714322    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    14328     jmp short 098b2h                          ; eb 16
     14323    jmp short 098e2h                          ; eb 16
    1432914324    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    14330     jmp short 098b2h                          ; eb 10
     14325    jmp short 098e2h                          ; eb 10
    1433114326    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    14332     jmp short 098b2h                          ; eb 0a
     14327    jmp short 098e2h                          ; eb 0a
    1433314328    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    14334     jmp short 098b2h                          ; eb 04
     14329    jmp short 098e2h                          ; eb 04
    1433514330    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1433614331    mov si, dx                                ; 89 d6
     
    1433914334    mov al, byte [bp-006h]                    ; 8a 46 fa
    1434014335    test al, al                               ; 84 c0
    14341     je short 098dah                           ; 74 19
     14336    je short 0990ah                           ; 74 19
    1434214337    movzx bx, al                              ; 0f b6 d8
    1434314338    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    1434414339    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    14345     call 09d72h                               ; e8 a3 04
     14340    call 09da2h                               ; e8 a3 04
    1434614341    test AL, strict byte 001h                 ; a8 01
    14347     je short 098dah                           ; 74 07
     14342    je short 0990ah                           ; 74 07
    1434814343    and AL, strict byte 0f0h                  ; 24 f0
    1434914344    add ax, si                                ; 01 f0
    14350     call 0967dh                               ; e8 a3 fd
     14345    call 096adh                               ; e8 a3 fd
    1435114346    lea sp, [bp-004h]                         ; 8d 66 fc
    1435214347    pop di                                    ; 5f
     
    1435414349    pop bp                                    ; 5d
    1435514350    retn                                      ; c3
    14356 apm_out_str_:                                ; 0xf98e1 LB 0x39
     14351apm_out_str_:                                ; 0xf9911 LB 0x39
    1435714352    push bp                                   ; 55
    1435814353    mov bp, sp                                ; 89 e5
     
    1436014355    mov bx, ax                                ; 89 c3
    1436114356    cmp byte [bx], 000h                       ; 80 3f 00
    14362     je short 098f6h                           ; 74 0a
     14357    je short 09926h                           ; 74 0a
    1436314358    mov al, byte [bx]                         ; 8a 07
    1436414359    out DX, AL                                ; ee
     
    1436714362    db  00ah, 0c0h
    1436814363    ; or al, al                                 ; 0a c0
    14369     jne short 098eeh                          ; 75 f8
     14364    jne short 0991eh                          ; 75 f8
    1437014365    lea sp, [bp-002h]                         ; 8d 66 fe
    1437114366    pop bx                                    ; 5b
    1437214367    pop bp                                    ; 5d
    1437314368    retn                                      ; c3
    14374     cmp ax, 00999h                            ; 3d 99 09
    14375     call far 0996ah:0994fh                    ; 9a 4f 99 6a 99
    14376     or word [bp+si-0666bh], bx                ; 09 9a 95 99
    14377     or word [bp+si-06666h], bx                ; 09 9a 9a 99
    14378     ficomp word [bx+di-06622h]                ; de 99 de 99
    14379     ficomp word [bx+di-06627h]                ; de 99 d9 99
    14380     ficomp word [bx+di-06622h]                ; de 99 de 99
    14381     db  0d2h
     14369    insw                                      ; 6d
    1438214370    cwd                                       ; 99
    14383 _apm_function:                               ; 0xf991a LB 0xf5
     14371    cmp word [bp+si-06681h], bx               ; 39 9a 7f 99
     14372    call far 0c59ah:03999h                    ; 9a 99 39 9a c5
     14373    cwd                                       ; 99
     14374    cmp word [bp+si-06636h], bx               ; 39 9a ca 99
     14375    push CS                                   ; 0e
     14376    call far 09a0eh:09a0eh                    ; 9a 0e 9a 0e 9a
     14377    or word [bp+si-065f2h], bx                ; 09 9a 0e 9a
     14378    push CS                                   ; 0e
     14379    db  09ah
     14380    db  002h
     14381    db  09ah
     14382_apm_function:                               ; 0xf994a LB 0xf5
    1438414383    push bp                                   ; 55
    1438514384    mov bp, sp                                ; 89 e5
     
    1438914388    xor ah, ah                                ; 30 e4
    1439014389    cmp ax, strict word 0000eh                ; 3d 0e 00
    14391     jnbe near 099deh                          ; 0f 87 b0 00
     14390    jnbe near 09a0eh                          ; 0f 87 b0 00
    1439214391    mov bx, ax                                ; 89 c3
    1439314392    add bx, ax                                ; 01 c3
    1439414393    mov dx, word [bp+018h]                    ; 8b 56 18
    1439514394    or dl, 001h                               ; 80 ca 01
    14396     jmp word [cs:bx-06704h]                   ; 2e ff a7 fc 98
     14395    jmp word [cs:bx-066d4h]                   ; 2e ff a7 2c 99
    1439714396    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1439814397    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1439914398    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14400     jmp near 09a09h                           ; e9 ba 00
     14399    jmp near 09a39h                           ; e9 ba 00
    1440114400    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14402     mov word [bp+00ch], 09fa4h                ; c7 46 0c a4 9f
     14401    mov word [bp+00ch], 09fd4h                ; c7 46 0c d4 9f
    1440314402    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1440414403    mov ax, strict word 0fff0h                ; b8 f0 ff
    1440514404    mov word [bp+006h], ax                    ; 89 46 06
    1440614405    mov word [bp+004h], ax                    ; 89 46 04
    14407     jmp near 09a09h                           ; e9 9f 00
     14406    jmp near 09a39h                           ; e9 9f 00
    1440814407    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1440914408    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1441814417    mov si, ax                                ; 89 c6
    1441914418    sal esi, 010h                             ; 66 c1 e6 10
    14420     jmp near 09a09h                           ; e9 74 00
     14419    jmp near 09a39h                           ; e9 74 00
    1442114420    sti                                       ; fb
    1442214421    hlt                                       ; f4
    14423     jmp near 09a09h                           ; e9 6f 00
     14422    jmp near 09a39h                           ; e9 6f 00
    1442414423    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14425     je short 099bfh                           ; 74 1f
     14424    je short 099efh                           ; 74 1f
    1442614425    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14427     je short 099b7h                           ; 74 11
     14426    je short 099e7h                           ; 74 11
    1442814427    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14429     jne short 099c7h                          ; 75 1b
     14428    jne short 099f7h                          ; 75 1b
    1443014429    mov dx, 08900h                            ; ba 00 89
    1443114430    mov ax, 00d10h                            ; b8 10 0d
    14432     call 098e1h                               ; e8 2c ff
    14433     jmp short 09a09h                          ; eb 52
     14431    call 09911h                               ; e8 2c ff
     14432    jmp short 09a39h                          ; eb 52
    1443414433    mov dx, 08900h                            ; ba 00 89
    1443514434    mov ax, 00d18h                            ; b8 18 0d
    14436     jmp short 099b2h                          ; eb f3
     14435    jmp short 099e2h                          ; eb f3
    1443714436    mov dx, 08900h                            ; ba 00 89
    1443814437    mov ax, 00d20h                            ; b8 20 0d
    14439     jmp short 099b2h                          ; eb eb
     14438    jmp short 099e2h                          ; eb eb
    1444014439    or ah, 00ah                               ; 80 cc 0a
    1444114440    mov word [bp+012h], ax                    ; 89 46 12
    1444214441    mov word [bp+018h], dx                    ; 89 56 18
    14443     jmp short 09a09h                          ; eb 37
     14442    jmp short 09a39h                          ; eb 37
    1444414443    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14445     jmp short 09a09h                          ; eb 30
     14444    jmp short 09a39h                          ; eb 30
    1444614445    or ah, 080h                               ; 80 cc 80
    14447     jmp short 099cah                          ; eb ec
     14446    jmp short 099fah                          ; eb ec
    1444814447    mov bx, 00da0h                            ; bb a0 0d
    1444914448    mov cx, ds                                ; 8c d9
    1445014449    mov ax, strict word 00004h                ; b8 04 00
    14451     call 01999h                               ; e8 b0 7f
     14450    call 01999h                               ; e8 80 7f
    1445214451    push word [bp+00ch]                       ; ff 76 0c
    1445314452    push word [bp+012h]                       ; ff 76 12
    1445414453    push 00d29h                               ; 68 29 0d
    1445514454    push strict byte 00004h                   ; 6a 04
    14456     call 019dah                               ; e8 e3 7f
     14455    call 019dah                               ; e8 b3 7f
    1445714456    add sp, strict byte 00008h                ; 83 c4 08
    1445814457    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1446514464    pop bp                                    ; 5d
    1446614465    retn                                      ; c3
    14467 pci16_select_reg_:                           ; 0xf9a0f LB 0x24
     14466pci16_select_reg_:                           ; 0xf9a3f LB 0x24
    1446814467    push bp                                   ; 55
    1446914468    mov bp, sp                                ; 89 e5
     
    1448214481    pop bp                                    ; 5d
    1448314482    retn                                      ; c3
    14484 pci16_find_device_:                          ; 0xf9a33 LB 0xf7
     14483pci16_find_device_:                          ; 0xf9a63 LB 0xf7
    1448514484    push bp                                   ; 55
    1448614485    mov bp, sp                                ; 89 e5
     
    1449614495    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1449714496    test bl, 007h                             ; f6 c3 07
    14498     jne short 09a7bh                          ; 75 2d
     14497    jne short 09aabh                          ; 75 2d
    1449914498    mov dx, strict word 0000eh                ; ba 0e 00
    1450014499    mov ax, bx                                ; 89 d8
    14501     call 09a0fh                               ; e8 b9 ff
     14500    call 09a3fh                               ; e8 b9 ff
    1450214501    mov dx, 00cfeh                            ; ba fe 0c
    1450314502    in AL, DX                                 ; ec
     
    1450614505    mov byte [bp-006h], al                    ; 88 46 fa
    1450714506    cmp AL, strict byte 0ffh                  ; 3c ff
    14508     jne short 09a69h                          ; 75 06
     14507    jne short 09a99h                          ; 75 06
    1450914508    add bx, strict byte 00008h                ; 83 c3 08
    14510     jmp near 09afch                           ; e9 93 00
     14509    jmp near 09b2ch                           ; e9 93 00
    1451114510    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14512     je short 09a76h                           ; 74 07
     14511    je short 09aa6h                           ; 74 07
    1451314512    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    14514     jmp short 09a7bh                          ; eb 05
     14513    jmp short 09aabh                          ; eb 05
    1451514514    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1451614515    mov al, byte [bp-006h]                    ; 8a 46 fa
    1451714516    and AL, strict byte 007h                  ; 24 07
    1451814517    cmp AL, strict byte 001h                  ; 3c 01
    14519     jne short 09aa3h                          ; 75 1f
     14518    jne short 09ad3h                          ; 75 1f
    1452014519    mov ax, bx                                ; 89 d8
    1452114520    shr ax, 008h                              ; c1 e8 08
    1452214521    test ax, ax                               ; 85 c0
    14523     jne short 09aa3h                          ; 75 16
     14522    jne short 09ad3h                          ; 75 16
    1452414523    mov dx, strict word 0001ah                ; ba 1a 00
    1452514524    mov ax, bx                                ; 89 d8
    14526     call 09a0fh                               ; e8 7a ff
     14525    call 09a3fh                               ; e8 7a ff
    1452714526    mov dx, 00cfeh                            ; ba fe 0c
    1452814527    in AL, DX                                 ; ec
     
    1453014529    ; sub ah, ah                                ; 2a e4
    1453114530    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14532     jbe short 09aa3h                          ; 76 03
     14531    jbe short 09ad3h                          ; 76 03
    1453314532    mov byte [bp-008h], al                    ; 88 46 f8
    1453414533    test di, di                               ; 85 ff
    14535     je short 09aach                           ; 74 05
     14534    je short 09adch                           ; 74 05
    1453614535    mov dx, strict word 00008h                ; ba 08 00
    14537     jmp short 09aaeh                          ; eb 02
     14536    jmp short 09adeh                          ; eb 02
    1453814537    xor dx, dx                                ; 31 d2
    1453914538    mov ax, bx                                ; 89 d8
    14540     call 09a0fh                               ; e8 5c ff
     14539    call 09a3fh                               ; e8 5c ff
    1454114540    mov dx, 00cfch                            ; ba fc 0c
    1454214541    in eax, DX                                ; 66 ed
     
    1454914548    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1455014549    test di, di                               ; 85 ff
    14551     je short 09addh                           ; 74 0f
     14550    je short 09b0dh                           ; 74 0f
    1455214551    mov cx, strict word 00008h                ; b9 08 00
    1455314552    shr dx, 1                                 ; d1 ea
    1455414553    rcr ax, 1                                 ; d1 d8
    14555     loop 09ad1h                               ; e2 fa
     14554    loop 09b01h                               ; e2 fa
    1455614555    mov word [bp-00eh], ax                    ; 89 46 f2
    1455714556    mov word [bp-00ch], dx                    ; 89 56 f4
    1455814557    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1455914558    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14560     jne short 09aedh                          ; 75 08
     14559    jne short 09b1dh                          ; 75 08
    1456114560    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1456214561    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14563     je short 09af3h                           ; 74 06
     14562    je short 09b23h                           ; 74 06
    1456414563    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    14565     je short 09af9h                           ; 74 06
     14564    je short 09b29h                           ; 74 06
    1456614565    dec si                                    ; 4e
    1456714566    cmp si, strict byte 0ffffh                ; 83 fe ff
    14568     je short 09b0bh                           ; 74 12
     14567    je short 09b3bh                           ; 74 12
    1456914568    add bx, word [bp-00ah]                    ; 03 5e f6
    1457014569    mov dx, bx                                ; 89 da
     
    1457214571    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1457314572    cmp dx, ax                                ; 39 c2
    14574     jbe near 09a49h                           ; 0f 86 3e ff
     14573    jbe near 09a79h                           ; 0f 86 3e ff
    1457514574    cmp si, strict byte 0ffffh                ; 83 fe ff
    14576     jne short 09b14h                          ; 75 04
     14575    jne short 09b44h                          ; 75 04
    1457714576    mov ax, bx                                ; 89 d8
    14578     jmp short 09b17h                          ; eb 03
     14577    jmp short 09b47h                          ; eb 03
    1457914578    mov ax, strict word 0ffffh                ; b8 ff ff
    1458014579    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1458314582    pop bp                                    ; 5d
    1458414583    retn                                      ; c3
    14585     or AL, strict byte 09ch                   ; 0c 9c
    14586     db  026h, 09ch
    14587     ; es pushfw                                 ; 26 9c
    14588     cmp word [si-063b2h], bx                  ; 39 9c 4e 9c
    14589     popaw                                     ; 61
     14584    cmp AL, strict byte 09ch                  ; 3c 9c
     14585    push si                                   ; 56
    1459014586    pushfw                                    ; 9c
    14591     je short 09ac6h                           ; 74 9c
    14592 _pci16_function:                             ; 0xf9b2a LB 0x1d7
     14587    imul bx, word [si-06382h], 09c91h         ; 69 9c 7e 9c 91 9c
     14588    movsb                                     ; a4
     14589    pushfw                                    ; 9c
     14590_pci16_function:                             ; 0xf9b5a LB 0x1d7
    1459314591    push bp                                   ; 55
    1459414592    mov bp, sp                                ; 89 e5
     
    1460414602    xor ah, ah                                ; 30 e4
    1460514603    cmp bx, strict byte 00003h                ; 83 fb 03
    14606     jc short 09b63h                           ; 72 1a
    14607     jbe short 09bbbh                          ; 76 70
     14604    jc short 09b93h                           ; 72 1a
     14605    jbe short 09bebh                          ; 76 70
    1460814606    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14609     je near 09c88h                            ; 0f 84 36 01
     14607    je near 09cb8h                            ; 0f 84 36 01
    1461014608    cmp bx, strict byte 00008h                ; 83 fb 08
    14611     jc near 09ccdh                            ; 0f 82 74 01
     14609    jc near 09cfdh                            ; 0f 82 74 01
    1461214610    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14613     jbe near 09be0h                           ; 0f 86 80 00
    14614     jmp near 09ccdh                           ; e9 6a 01
     14611    jbe near 09c10h                           ; 0f 86 80 00
     14612    jmp near 09cfdh                           ; e9 6a 01
    1461514613    cmp bx, strict byte 00002h                ; 83 fb 02
    14616     je short 09b8bh                           ; 74 23
     14614    je short 09bbbh                           ; 74 23
    1461714615    cmp bx, strict byte 00001h                ; 83 fb 01
    14618     jne near 09ccdh                           ; 0f 85 5e 01
     14616    jne near 09cfdh                           ; 0f 85 5e 01
    1461914617    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1462014618    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1462214620    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1462314621    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14624     jmp near 09cfah                           ; e9 6f 01
     14622    jmp near 09d2ah                           ; e9 6f 01
    1462514623    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14626     jne short 09b97h                          ; 75 06
     14624    jne short 09bc7h                          ; 75 06
    1462714625    or ah, 083h                               ; 80 cc 83
    14628     jmp near 09cf3h                           ; e9 5c 01
     14626    jmp near 09d23h                           ; e9 5c 01
    1462914627    mov bx, word [bp+008h]                    ; 8b 5e 08
    1463014628    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1463114629    mov ax, word [bp+018h]                    ; 8b 46 18
    1463214630    xor cx, cx                                ; 31 c9
    14633     call 09a33h                               ; e8 8e fe
     14631    call 09a63h                               ; e8 8e fe
    1463414632    cmp ax, strict word 0ffffh                ; 3d ff ff
    14635     jne short 09bb5h                          ; 75 0b
     14633    jne short 09be5h                          ; 75 0b
    1463614634    mov ax, word [bp+020h]                    ; 8b 46 20
    1463714635    xor ah, ah                                ; 30 e4
    1463814636    or ah, 086h                               ; 80 cc 86
    14639     jmp near 09cf3h                           ; e9 3e 01
     14637    jmp near 09d23h                           ; e9 3e 01
    1464014638    mov word [bp+014h], ax                    ; 89 46 14
    14641     jmp near 09cfah                           ; e9 3f 01
     14639    jmp near 09d2ah                           ; e9 3f 01
    1464214640    mov bx, word [bp+008h]                    ; 8b 5e 08
    1464314641    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1464414642    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1464514643    mov cx, strict word 00001h                ; b9 01 00
    14646     call 09a33h                               ; e8 69 fe
     14644    call 09a63h                               ; e8 69 fe
    1464714645    cmp ax, strict word 0ffffh                ; 3d ff ff
    14648     jne short 09bdah                          ; 75 0b
     14646    jne short 09c0ah                          ; 75 0b
    1464914647    mov ax, word [bp+020h]                    ; 8b 46 20
    1465014648    xor ah, ah                                ; 30 e4
    1465114649    or ah, 086h                               ; 80 cc 86
    14652     jmp near 09cf3h                           ; e9 19 01
     14650    jmp near 09d23h                           ; e9 19 01
    1465314651    mov word [bp+014h], ax                    ; 89 46 14
    14654     jmp near 09cfah                           ; e9 1a 01
     14652    jmp near 09d2ah                           ; e9 1a 01
    1465514653    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14656     jc short 09bedh                           ; 72 06
     14654    jc short 09c1dh                           ; 72 06
    1465714655    or ah, 087h                               ; 80 cc 87
    14658     jmp near 09cf3h                           ; e9 06 01
     14656    jmp near 09d23h                           ; e9 06 01
    1465914657    mov dx, word [bp+004h]                    ; 8b 56 04
    1466014658    mov ax, word [bp+014h]                    ; 8b 46 14
    14661     call 09a0fh                               ; e8 19 fe
     14659    call 09a3fh                               ; e8 19 fe
    1466214660    mov bx, word [bp+020h]                    ; 8b 5e 20
    1466314661    xor bh, bh                                ; 30 ff
    1466414662    sub bx, strict byte 00008h                ; 83 eb 08
    1466514663    cmp bx, strict byte 00005h                ; 83 fb 05
    14666     jnbe near 09cfah                          ; 0f 87 f5 00
     14664    jnbe near 09d2ah                          ; 0f 87 f5 00
    1466714665    add bx, bx                                ; 01 db
    14668     jmp word [cs:bx-064e2h]                   ; 2e ff a7 1e 9b
     14666    jmp word [cs:bx-064b2h]                   ; 2e ff a7 4e 9b
    1466914667    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1467014668    xor bl, bl                                ; 30 db
     
    1467714675    or bx, ax                                 ; 09 c3
    1467814676    mov word [bp+01ch], bx                    ; 89 5e 1c
    14679     jmp near 09cfah                           ; e9 d4 00
     14677    jmp near 09d2ah                           ; e9 d4 00
    1468014678    mov dx, word [bp+004h]                    ; 8b 56 04
    1468114679    xor dh, dh                                ; 30 f6
     
    1468414682    in ax, DX                                 ; ed
    1468514683    mov word [bp+01ch], ax                    ; 89 46 1c
    14686     jmp near 09cfah                           ; e9 c1 00
     14684    jmp near 09d2ah                           ; e9 c1 00
    1468714685    mov dx, 00cfch                            ; ba fc 0c
    1468814686    in eax, DX                                ; 66 ed
     
    1469314691    mov word [bp+01ch], ax                    ; 89 46 1c
    1469414692    mov word [bp+01eh], dx                    ; 89 56 1e
    14695     jmp near 09cfah                           ; e9 ac 00
     14693    jmp near 09d2ah                           ; e9 ac 00
    1469614694    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1469714695    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1470014698    add dx, 00cfch                            ; 81 c2 fc 0c
    1470114699    out DX, AL                                ; ee
    14702     jmp near 09cfah                           ; e9 99 00
     14700    jmp near 09d2ah                           ; e9 99 00
    1470314701    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1470414702    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1470714705    add dx, 00cfch                            ; 81 c2 fc 0c
    1470814706    out DX, ax                                ; ef
    14709     jmp near 09cfah                           ; e9 86 00
     14707    jmp near 09d2ah                           ; e9 86 00
    1471014708    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1471114709    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1471614714    ; mov ax, cx                                ; 8b c1
    1471714715    out DX, eax                               ; 66 ef
    14718     jmp short 09cfah                          ; eb 72
     14716    jmp short 09d2ah                          ; eb 72
    1471914717    mov bx, word [bp+004h]                    ; 8b 5e 04
    1472014718    mov es, [bp+026h]                         ; 8e 46 26
     
    1472314721    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1472414722    cmp cx, word [es:bx]                      ; 26 3b 0f
    14725     jbe short 09caeh                          ; 76 11
     14723    jbe short 09cdeh                          ; 76 11
    1472614724    mov ax, word [bp+020h]                    ; 8b 46 20
    1472714725    xor ah, ah                                ; 30 e4
     
    1472914727    mov word [bp+020h], ax                    ; 89 46 20
    1473014728    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14731     jmp short 09cc2h                          ; eb 14
     14729    jmp short 09cf2h                          ; eb 14
    1473214730    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1473314731    mov si, 0f2c0h                            ; be c0 f2
     
    1474114739    les bx, [bp-008h]                         ; c4 5e f8
    1474214740    mov word [es:bx], ax                      ; 26 89 07
    14743     jmp short 09cfah                          ; eb 2d
     14741    jmp short 09d2ah                          ; eb 2d
    1474414742    mov bx, 00da0h                            ; bb a0 0d
    1474514743    mov cx, ds                                ; 8c d9
    1474614744    mov ax, strict word 00004h                ; b8 04 00
    14747     call 01999h                               ; e8 c1 7c
     14745    call 01999h                               ; e8 91 7c
    1474814746    mov ax, word [bp+014h]                    ; 8b 46 14
    1474914747    push ax                                   ; 50
     
    1475214750    push 00d5ch                               ; 68 5c 0d
    1475314751    push strict byte 00004h                   ; 6a 04
    14754     call 019dah                               ; e8 f2 7c
     14752    call 019dah                               ; e8 c2 7c
    1475514753    add sp, strict byte 00008h                ; 83 c4 08
    1475614754    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1476414762    pop bp                                    ; 5d
    1476514763    retn                                      ; c3
    14766 pci_find_classcode_:                         ; 0xf9d01 LB 0x2b
     14764pci_find_classcode_:                         ; 0xf9d31 LB 0x2b
    1476714765    push bp                                   ; 55
    1476814766    mov bp, sp                                ; 89 e5
     
    1477914777    int 01ah                                  ; cd 1a
    1478014778    cmp ah, 000h                              ; 80 fc 00
    14781     je near 09d22h                            ; 0f 84 03 00
     14779    je near 09d52h                            ; 0f 84 03 00
    1478214780    mov bx, strict word 0ffffh                ; bb ff ff
    1478314781    mov ax, bx                                ; 89 d8
     
    1478814786    pop bp                                    ; 5d
    1478914787    retn                                      ; c3
    14790 pci_read_config_byte_:                       ; 0xf9d2c LB 0x24
     14788pci_read_config_byte_:                       ; 0xf9d5c LB 0x24
    1479114789    push bp                                   ; 55
    1479214790    mov bp, sp                                ; 89 e5
     
    1480714805    pop bp                                    ; 5d
    1480814806    retn                                      ; c3
    14809 pci_read_config_word_:                       ; 0xf9d50 LB 0x22
     14807pci_read_config_word_:                       ; 0xf9d80 LB 0x22
    1481014808    push bp                                   ; 55
    1481114809    mov bp, sp                                ; 89 e5
     
    1482614824    pop bp                                    ; 5d
    1482714825    retn                                      ; c3
    14828 pci_read_config_dword_:                      ; 0xf9d72 LB 0x27
     14826pci_read_config_dword_:                      ; 0xf9da2 LB 0x27
    1482914827    push bp                                   ; 55
    1483014828    mov bp, sp                                ; 89 e5
     
    1484714845    pop bp                                    ; 5d
    1484814846    retn                                      ; c3
    14849 vds_is_present_:                             ; 0xf9d99 LB 0x1d
     14847vds_is_present_:                             ; 0xf9dc9 LB 0x1d
    1485014848    push bx                                   ; 53
    1485114849    push bp                                   ; 55
     
    1485514853    mov es, ax                                ; 8e c0
    1485614854    test byte [es:bx], 020h                   ; 26 f6 07 20
    14857     je short 09db1h                           ; 74 06
     14855    je short 09de1h                           ; 74 06
    1485814856    mov ax, strict word 00001h                ; b8 01 00
    1485914857    pop bp                                    ; 5d
     
    1486414862    pop bx                                    ; 5b
    1486514863    retn                                      ; c3
    14866 vds_real_to_lin_:                            ; 0xf9db6 LB 0x1e
     14864vds_real_to_lin_:                            ; 0xf9de6 LB 0x1e
    1486714865    push bx                                   ; 53
    1486814866    push cx                                   ; 51
     
    1487514873    sal ax, 1                                 ; d1 e0
    1487614874    rcl dx, 1                                 ; d1 d2
    14877     loop 09dc4h                               ; e2 fa
     14875    loop 09df4h                               ; e2 fa
    1487814876    xor cx, cx                                ; 31 c9
    1487914877    add ax, bx                                ; 01 d8
     
    1488314881    pop bx                                    ; 5b
    1488414882    retn                                      ; c3
    14885 vds_build_sg_list_:                          ; 0xf9dd4 LB 0x79
     14883vds_build_sg_list_:                          ; 0xf9e04 LB 0x79
    1488614884    push bp                                   ; 55
    1488714885    mov bp, sp                                ; 89 e5
     
    1489714895    mov bx, word [bp+006h]                    ; 8b 5e 06
    1489814896    mov word [es:di+002h], bx                 ; 26 89 5d 02
    14899     call 09db6h                               ; e8 c3 ff
     14897    call 09de6h                               ; e8 c3 ff
    1490014898    mov es, si                                ; 8e c6
    1490114899    mov word [es:di+004h], ax                 ; 26 89 45 04
    1490214900    mov word [es:di+006h], dx                 ; 26 89 55 06
    1490314901    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    14904     call 09d99h                               ; e8 93 ff
     14902    call 09dc9h                               ; e8 93 ff
    1490514903    test ax, ax                               ; 85 c0
    14906     je short 09e1dh                           ; 74 13
     14904    je short 09e4dh                           ; 74 13
    1490714905    mov es, si                                ; 8e c6
    1490814906    mov ax, 08105h                            ; b8 05 81
    1490914907    mov dx, strict word 00000h                ; ba 00 00
    1491014908    int 04bh                                  ; cd 4b
    14911     jc near 09e1ah                            ; 0f 82 02 00
     14909    jc near 09e4ah                            ; 0f 82 02 00
    1491214910    db  032h, 0c0h
    1491314911    ; xor al, al                                ; 32 c0
    1491414912    cbw                                       ; 98
    14915     jmp short 09e44h                          ; eb 27
     14913    jmp short 09e74h                          ; eb 27
    1491614914    mov es, si                                ; 8e c6
    1491714915    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1493014928    pop bp                                    ; 5d
    1493114929    retn 00004h                               ; c2 04 00
    14932 vds_free_sg_list_:                           ; 0xf9e4d LB 0x33
     14930vds_free_sg_list_:                           ; 0xf9e7d LB 0x33
    1493314931    push bp                                   ; 55
    1493414932    mov bp, sp                                ; 89 e5
     
    1493614934    push di                                   ; 57
    1493714935    mov bx, ax                                ; 89 c3
    14938     call 09d99h                               ; e8 42 ff
     14936    call 09dc9h                               ; e8 42 ff
    1493914937    test ax, ax                               ; 85 c0
    14940     je short 09e6eh                           ; 74 13
     14938    je short 09e9eh                           ; 74 13
    1494114939    mov di, bx                                ; 89 df
    1494214940    mov es, dx                                ; 8e c2
     
    1494414942    mov dx, strict word 00000h                ; ba 00 00
    1494514943    int 04bh                                  ; cd 4b
    14946     jc near 09e6dh                            ; 0f 82 02 00
     14944    jc near 09e9dh                            ; 0f 82 02 00
    1494714945    db  032h, 0c0h
    1494814946    ; xor al, al                                ; 32 c0
     
    1495614954    retn                                      ; c3
    1495714955    times 0x3 db 0
    14958 __U4M:                                       ; 0xf9e80 LB 0x40
     14956__U4M:                                       ; 0xf9eb0 LB 0x40
    1495914957    pushfw                                    ; 9c
    1496014958    push eax                                  ; 66 50
     
    1498214980    retn                                      ; c3
    1498314981    times 0xf db 0
    14984 __U4D:                                       ; 0xf9ec0 LB 0x40
     14982__U4D:                                       ; 0xf9ef0 LB 0x40
    1498514983    pushfw                                    ; 9c
    1498614984    push eax                                  ; 66 50
     
    1501315011    retn                                      ; c3
    1501415012    times 0x7 db 0
    15015 __U8RS:                                      ; 0xf9f00 LB 0x10
     15013__U8RS:                                      ; 0xf9f30 LB 0x10
    1501615014    test si, si                               ; 85 f6
    15017     je short 09f0fh                           ; 74 0b
     15015    je short 09f3fh                           ; 74 0b
    1501815016    shr ax, 1                                 ; d1 e8
    1501915017    rcr bx, 1                                 ; d1 db
     
    1502115019    rcr dx, 1                                 ; d1 da
    1502215020    dec si                                    ; 4e
    15023     jne short 09f04h                          ; 75 f5
     15021    jne short 09f34h                          ; 75 f5
    1502415022    retn                                      ; c3
    15025 __U8LS:                                      ; 0xf9f10 LB 0x10
     15023__U8LS:                                      ; 0xf9f40 LB 0x10
    1502615024    test si, si                               ; 85 f6
    15027     je short 09f1fh                           ; 74 0b
     15025    je short 09f4fh                           ; 74 0b
    1502815026    sal dx, 1                                 ; d1 e2
    1502915027    rcl cx, 1                                 ; d1 d1
     
    1503115029    rcl ax, 1                                 ; d1 d0
    1503215030    dec si                                    ; 4e
    15033     jne short 09f14h                          ; 75 f5
     15031    jne short 09f44h                          ; 75 f5
    1503415032    retn                                      ; c3
    15035 _fmemset_:                                   ; 0xf9f20 LB 0x10
     15033_fmemset_:                                   ; 0xf9f50 LB 0x10
    1503615034    push di                                   ; 57
    1503715035    mov es, dx                                ; 8e c2
     
    1504415042    retn                                      ; c3
    1504515043    times 0x3 db 0
    15046 _fmemcpy_:                                   ; 0xf9f30 LB 0x3a
     15044_fmemcpy_:                                   ; 0xf9f60 LB 0x3a
    1504715045    push bp                                   ; 55
    1504815046    db  08bh, 0ech
     
    1506915067    add byte [bx+si], al                      ; 00 00
    1507015068    add byte [bx+si], al                      ; 00 00
    15071     sbb byte [bx-0607eh], 086h                ; 80 9f 82 9f 86
     15069    mov AL, strict byte 09fh                  ; b0 9f
     15070    mov DL, strict byte 09fh                  ; b2 9f
     15071    mov DH, strict byte 09fh                  ; b6 9f
     15072    mov DH, strict byte 09fh                  ; b6 9f
     15073    mov DH, strict byte 09fh                  ; b6 9f
     15074    mov ax, 0b89fh                            ; b8 9f b8
    1507215075    lahf                                      ; 9f
    15073     xchg byte [bx-0607ah], bl                 ; 86 9f 86 9f
    15074     mov byte [bx-06078h], bl                  ; 88 9f 88 9f
    15075     mov bl, byte [bx-06072h]                  ; 8a 9f 8e 9f
    15076     mov ds, [bx-06070h]                       ; 8e 9f 90 9f
    15077     xchg bp, ax                               ; 95
     15076    mov dx, 0be9fh                            ; ba 9f be
    1507815077    lahf                                      ; 9f
    15079     xchg di, ax                               ; 97
     15078    mov si, 0c09fh                            ; be 9f c0
    1508015079    lahf                                      ; 9f
    15081 apm_worker:                                  ; 0xf9f6a LB 0x3a
     15080    lds bx, [bx-06039h]                       ; c5 9f c7 9f
     15081apm_worker:                                  ; 0xf9f9a LB 0x3a
    1508215082    sti                                       ; fb
    1508315083    push ax                                   ; 50
     
    1509115091    pop ax                                    ; 58
    1509215092    mov AH, strict byte 053h                  ; b4 53
    15093     jnc short 09fa0h                          ; 73 25
    15094     jmp word [cs:bp-060b0h]                   ; 2e ff a6 50 9f
    15095     jmp short 09f9eh                          ; eb 1c
     15093    jnc short 09fd0h                          ; 73 25
     15094    jmp word [cs:bp-06080h]                   ; 2e ff a6 80 9f
     15095    jmp short 09fceh                          ; eb 1c
    1509615096    sti                                       ; fb
    1509715097    hlt                                       ; f4
    15098     jmp short 09f9eh                          ; eb 18
    15099     jmp short 09f9eh                          ; eb 16
    15100     jmp short 09fa0h                          ; eb 16
     15098    jmp short 09fceh                          ; eb 18
     15099    jmp short 09fceh                          ; eb 16
     15100    jmp short 09fd0h                          ; eb 16
    1510115101    mov AH, strict byte 080h                  ; b4 80
    15102     jmp short 09fa2h                          ; eb 14
    15103     jmp short 09fa0h                          ; eb 10
     15102    jmp short 09fd2h                          ; eb 14
     15103    jmp short 09fd0h                          ; eb 10
    1510415104    mov ax, 00102h                            ; b8 02 01
    15105     jmp short 09f9eh                          ; eb 09
    15106     jmp short 09f9eh                          ; eb 07
     15105    jmp short 09fceh                          ; eb 09
     15106    jmp short 09fceh                          ; eb 07
    1510715107    mov BL, strict byte 000h                  ; b3 00
    1510815108    mov cx, strict word 00000h                ; b9 00 00
    15109     jmp short 09f9eh                          ; eb 00
     15109    jmp short 09fceh                          ; eb 00
    1511015110    clc                                       ; f8
    1511115111    retn                                      ; c3
     
    1511315113    stc                                       ; f9
    1511415114    retn                                      ; c3
    15115 apm_pm16_entry:                              ; 0xf9fa4 LB 0x11
     15115apm_pm16_entry:                              ; 0xf9fd4 LB 0x11
    1511615116    mov AH, strict byte 002h                  ; b4 02
    1511715117    push DS                                   ; 1e
     
    1512115121    add bp, strict byte 00008h                ; 83 c5 08
    1512215122    mov ds, bp                                ; 8e dd
    15123     call 09f6ah                               ; e8 b8 ff
     15123    call 09f9ah                               ; e8 b8 ff
    1512415124    pop bp                                    ; 5d
    1512515125    pop DS                                    ; 1f
    1512615126    retf                                      ; cb
    1512715127
    15128   ; Padding 0x3a4b bytes at 0xf9fb5
    15129   times 14923 db 0
     15128  ; Padding 0x3a1b bytes at 0xf9fe5
     15129  times 14875 db 0
    1513015130
    1513115131section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1517415174    add bp, strict byte 00008h                ; 83 c5 08
    1517515175    push ebp                                  ; 66 55
    15176     mov bp, 09fa6h                            ; bd a6 9f
     15176    mov bp, 09fd6h                            ; bd d6 9f
    1517715177    add byte [bx+si], al                      ; 00 00
    1517815178    push ebp                                  ; 66 55
     
    1578615786    mov dx, 0c800h                            ; ba 00 c8
    1578715787    call 01600h                               ; e8 e1 33
    15788     call 04eb4h                               ; e8 92 6c
     15788    call 04ee4h                               ; e8 c2 6c
    1578915789    pop DS                                    ; 1f
    1579015790    mov ax, 0ff53h                            ; b8 53 ff
     
    1590715907    call 01d17h                               ; e8 d4 39
    1590815908    call 021a4h                               ; e8 5e 3e
    15909     call 097e3h                               ; e8 9a b4
    15910     call 086c7h                               ; e8 7b a3
     15909    call 09813h                               ; e8 ca b4
     15910    call 086f7h                               ; e8 ab a3
    1591115911    call 0ed2fh                               ; e8 e0 09
    1591215912    call 0e2d2h                               ; e8 80 ff
     
    1591815918    call 01600h                               ; e8 a2 32
    1591915919    call 017ffh                               ; e8 9e 34
    15920     call 03b98h                               ; e8 34 58
     15920    call 03bc8h                               ; e8 64 58
    1592115921    sti                                       ; fb
    1592215922    int 019h                                  ; cd 19
     
    1602016020    pop DS                                    ; 1f
    1602116021    cld                                       ; fc
    16022     call 063c9h                               ; e8 87 7c
     16022    call 063f9h                               ; e8 b7 7c
    1602316023    popaw                                     ; 61
    1602416024    pop ES                                    ; 07
     
    1609616096    pop DS                                    ; 1f
    1609716097    cld                                       ; fc
    16098     call 056bfh                               ; e8 7d 6e
     16098    call 056efh                               ; e8 ad 6e
    1609916099    popaw                                     ; 61
    1610016100    pop DS                                    ; 1f
     
    1611316113    pop DS                                    ; 1f
    1611416114    cld                                       ; fc
    16115     call 056bfh                               ; e8 5f 6e
     16115    call 056efh                               ; e8 8f 6e
    1611616116    popaw                                     ; 61
    1611716117    pop DS                                    ; 1f
     
    1621216212    pop DS                                    ; 1f
    1621316213    cld                                       ; fc
    16214     call 051b7h                               ; e8 ee 67
     16214    call 051e7h                               ; e8 1e 68
    1621516215    pop ES                                    ; 07
    1621616216    popaw                                     ; 61
     
    1622816228    pop DS                                    ; 1f
    1622916229    cld                                       ; fc
    16230     call 06e92h                               ; e8 b3 84
     16230    call 06ec2h                               ; e8 e3 84
    1623116231    pop DS                                    ; 1f
    1623216232    pop ES                                    ; 07
     
    1625016250    cld                                       ; fc
    1625116251    push 0ece9h                               ; 68 e9 ec
    16252     jmp near 03bdch                           ; e9 6b 4f
     16252    jmp near 03c0ch                           ; e9 9b 4f
    1625316253    push ES                                   ; 06
    1625416254    push ax                                   ; 50
     
    1625616256    push cx                                   ; 51
    1625716257    push dx                                   ; 52
    16258     call 03bb0h                               ; e8 37 4f
     16258    call 03be0h                               ; e8 67 4f
    1625916259    cmp AL, strict byte 000h                  ; 3c 00
    1626016260    je short 0ecabh                           ; 74 2e
    16261     call 03bc6h                               ; e8 46 4f
     16261    call 03bf6h                               ; e8 76 4f
    1626216262    pop dx                                    ; 5a
    1626316263    push dx                                   ; 52
     
    1627716277    cld                                       ; fc
    1627816278    push 0ece9h                               ; 68 e9 ec
    16279     jmp near 041b0h                           ; e9 19 55
     16279    jmp near 041e0h                           ; e9 49 55
    1628016280    and dl, 0e0h                              ; 80 e2 e0
    1628116281    db  03ah, 0c2h
     
    1631716317    jne short 0ecc8h                          ; 75 06
    1631816318    push 0ece9h                               ; 68 e9 ec
    16319     jmp near 0326bh                           ; e9 a3 45
     16319    jmp near 03288h                           ; e9 c0 45
    1632016320int13_notfloppy:                             ; 0xfecc8 LB 0x14
    1632116321    cmp dl, 0e0h                              ; 80 fa e0
     
    1632316323    shr ebx, 010h                             ; 66 c1 eb 10
    1632416324    push bx                                   ; 53
    16325     call 045e4h                               ; e8 0f 59
     16325    call 04614h                               ; e8 3f 59
    1632616326    pop bx                                    ; 5b
    1632716327    sal ebx, 010h                             ; 66 c1 e3 10
     
    1633016330    cmp ah, 040h                              ; 80 fc 40
    1633116331    jnbe short 0ece6h                         ; 77 05
    16332     call 05a8bh                               ; e8 a7 6d
     16332    call 05abbh                               ; e8 d7 6d
    1633316333    jmp short 0ece9h                          ; eb 03
    16334     call 05ed5h                               ; e8 ec 71
     16334    call 05f05h                               ; e8 1c 72
    1633516335int13_out:                                   ; 0xfece9 LB 0x4
    1633616336    pop DS                                    ; 1f
     
    1654816548    pop DS                                    ; 1f
    1654916549    cld                                       ; fc
    16550     call 0780dh                               ; e8 30 88
     16550    call 0783dh                               ; e8 60 88
    1655116551    popaw                                     ; 61
    1655216552    pop ES                                    ; 07
     
    1659916599    mov ax, strict word 00001h                ; b8 01 00
    1660016600    push ax                                   ; 50
    16601     call 04c4bh                               ; e8 7b 5b
     16601    call 04c7bh                               ; e8 ab 5b
    1660216602    inc sp                                    ; 44
    1660316603    inc sp                                    ; 44
     
    1660616606    mov ax, strict word 00002h                ; b8 02 00
    1660716607    push ax                                   ; 50
    16608     call 04c4bh                               ; e8 6e 5b
     16608    call 04c7bh                               ; e8 9e 5b
    1660916609    inc sp                                    ; 44
    1661016610    inc sp                                    ; 44
     
    1661316613    mov ax, strict word 00003h                ; b8 03 00
    1661416614    push ax                                   ; 50
    16615     call 04c4bh                               ; e8 61 5b
     16615    call 04c7bh                               ; e8 91 5b
    1661616616    inc sp                                    ; 44
    1661716617    inc sp                                    ; 44
     
    1662016620    mov ax, strict word 00004h                ; b8 04 00
    1662116621    push ax                                   ; 50
    16622     call 04c4bh                               ; e8 54 5b
     16622    call 04c7bh                               ; e8 84 5b
    1662316623    inc sp                                    ; 44
    1662416624    inc sp                                    ; 44
     
    1690316903    pop DS                                    ; 1f
    1690416904    cld                                       ; fc
    16905     call 06ce7h                               ; e8 80 74
     16905    call 06d17h                               ; e8 b0 74
    1690616906    pop DS                                    ; 1f
    1690716907    pop ES                                    ; 07
     
    1692516925    cmp ah, 0c2h                              ; 80 fc c2
    1692616926    je short 0f899h                           ; 74 0e
    16927     call 0661bh                               ; e8 8d 6d
     16927    call 0664bh                               ; e8 bd 6d
    1692816928    popaw                                     ; 61
    1692916929    pop ES                                    ; 07
     
    1693116931    popfw                                     ; 9d
    1693216932    jmp short 0f8a7h                          ; eb 13
    16933     call 0991ah                               ; e8 83 a0
     16933    call 0994ah                               ; e8 b3 a0
    1693416934    jmp short 0f88eh                          ; eb f5
    1693516935int15_handler_mouse:                         ; 0xff899 LB 0x5
    16936     call 07482h                               ; e8 e6 7b
     16936    call 074b2h                               ; e8 16 7c
    1693716937    jmp short 0f88eh                          ; eb f0
    1693816938int15_handler32:                             ; 0xff89e LB 0x9
    1693916939    pushad                                    ; 66 60
    16940     call 06951h                               ; e8 ae 70
     16940    call 06981h                               ; e8 de 70
    1694116941    popad                                     ; 66 61
    1694216942    jmp short 0f88fh                          ; eb e8
     
    1697016970    pop DS                                    ; 1f
    1697116971    cld                                       ; fc
    16972     call 073b8h                               ; e8 ec 7a
     16972    call 073e8h                               ; e8 1c 7b
    1697316973    pop cx                                    ; 59
    1697416974    jcxz 0f8dbh                               ; e3 0c
     
    1700217002    pop DS                                    ; 1f
    1700317003    cld                                       ; fc
    17004     call 07070h                               ; e8 6f 77
     17004    call 070a0h                               ; e8 9f 77
    1700517005    popaw                                     ; 61
    1700617006    pop DS                                    ; 1f
     
    1708417084    cld                                       ; fc
    1708517085    pushad                                    ; 66 60
    17086     call 09b2ah                               ; e8 ad 9c
     17086    call 09b5ah                               ; e8 dd 9c
    1708717087    popad                                     ; 66 61
    1708817088    pop DS                                    ; 1f
     
    1709517095    pop DS                                    ; 1f
    1709617096    cld                                       ; fc
    17097     call 0712eh                               ; e8 a3 72
     17097    call 0715eh                               ; e8 d3 72
    1709817098    popaw                                     ; 61
    1709917099    pop DS                                    ; 1f
     
    1719817198cpu_reset:                                   ; 0xffff0 LB 0x10
    1719917199    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17200     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 028h
     17200    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 01ah
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum

    r62178 r62406  
    1 65f585c99598acfc494c013e1f0a0ee3 *VBoxPcBios386.rom
     1c003d8ab6825d254dea0b1d1e4ed4da7 *VBoxPcBios386.rom
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm

    r62178 r62406  
    988988    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
    989989_pktacc:                                     ; 0xf006a LB 0xc
    990     db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 082h, 081h, 01dh, 091h
     990    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0c8h, 081h, 063h, 091h
    991991_softrst:                                    ; 0xf0076 LB 0xc
    992     db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0bdh, 03bh, 0bdh, 03bh
     992    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 003h, 03ch, 003h, 03ch
    993993_dskacc:                                     ; 0xf0082 LB 0x2e
    994994    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
    995     db  0b0h, 07fh, 099h, 080h, 0ebh, 08fh, 095h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     995    db  0f6h, 07fh, 0dfh, 080h, 031h, 090h, 0dbh, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
    996996    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
    997997
     
    11161116section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
    11171117_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
    1118     db  'VirtualBox 5.1.0', 000h, 000h
     1118    db  'VirtualBox 5.1.2', 000h, 000h
    11191119_bios_prefix_string:                         ; 0xf0da0 LB 0x8
    11201120    db  'BIOS: ', 000h, 000h
     
    11901190  times 1144 db 0
    11911191
    1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d98 class=CODE group=AUTO
     1192section _TEXT progbits vstart=0x1600 align=1 ; size=0x8dd8 class=CODE group=AUTO
    11931193rom_scan_:                                   ; 0xf1600 LB 0x52
    11941194    push bp                                   ; 55
     
    14501450    int 010h                                  ; cd 10
    14511451    jmp short 017c3h                          ; eb 03
    1452     call 07b54h                               ; e8 91 63
     1452    call 07b9ah                               ; e8 d7 63
    14531453    mov sp, bp                                ; 89 ec
    14541454    pop bp                                    ; 5d
     
    15961596    mov bx, strict word 0000ah                ; bb 0a 00
    15971597    xor cx, cx                                ; 31 c9
    1598     call 0a030h                               ; e8 53 87
     1598    call 0a070h                               ; e8 93 87
    15991599    mov word [bp-008h], ax                    ; 89 46 f8
    16001600    mov cx, dx                                ; 89 d1
     
    18331833    mov dx, word [bp-026h]                    ; 8b 56 da
    18341834    mov si, word [bp-01eh]                    ; 8b 76 e2
    1835     call 0a060h                               ; e8 48 85
     1835    call 0a0a0h                               ; e8 88 85
    18361836    mov ax, dx                                ; 89 d0
    18371837    xor ah, dh                                ; 30 f4
     
    22942294    mov dx, word [es:si]                      ; 26 8b 14
    22952295    mov si, strict word 00018h                ; be 18 00
    2296     call 0a060h                               ; e8 ce 80
     2296    call 0a0a0h                               ; e8 0e 81
    22972297    xor dh, dh                                ; 30 f6
    22982298    mov word [bp-014h], dx                    ; 89 56 ec
     
    23042304    mov dx, word [es:si]                      ; 26 8b 14
    23052305    mov si, strict word 00020h                ; be 20 00
    2306     call 0a060h                               ; e8 ae 80
     2306    call 0a0a0h                               ; e8 ee 80
    23072307    mov bx, dx                                ; 89 d3
    23082308    mov word [bp-010h], dx                    ; 89 56 f0
     
    23362336    mov dx, word [es:si]                      ; 26 8b 14
    23372337    mov si, strict word 00008h                ; be 08 00
    2338     call 0a060h                               ; e8 5b 80
     2338    call 0a0a0h                               ; e8 9b 80
    23392339    mov word [bp-010h], dx                    ; 89 56 f0
    23402340    mov bx, word [bp-016h]                    ; 8b 5e ea
     
    23452345    mov dx, word [es:si]                      ; 26 8b 14
    23462346    mov si, strict word 00018h                ; be 18 00
    2347     call 0a060h                               ; e8 3d 80
     2347    call 0a0a0h                               ; e8 7d 80
    23482348    mov bl, dl                                ; 88 d3
    23492349    and bl, 00fh                              ; 80 e3 0f
     
    27412741    mov dx, ss                                ; 8c d2
    27422742    lea ax, [bp-03eh]                         ; 8d 46 c2
    2743     call 05b09h                               ; e8 08 37
     2743    call 05b4fh                               ; e8 4e 37
    27442744    mov bx, 00da0h                            ; bb a0 0d
    27452745    mov cx, ds                                ; 8c d9
     
    29232923    mov dx, word [es:di+036h]                 ; 26 8b 55 36
    29242924    mov si, strict word 0000bh                ; be 0b 00
    2925     call 0a060h                               ; e8 61 7a
     2925    call 0a0a0h                               ; e8 a1 7a
    29262926    mov word [bp-02ah], dx                    ; 89 56 d6
    29272927    mov word [bp-026h], cx                    ; 89 4e da
     
    32153215    mov dx, word [bp-022h]                    ; 8b 56 de
    32163216    mov si, strict word 00018h                ; be 18 00
    3217     call 0a060h                               ; e8 84 77
     3217    call 0a0a0h                               ; e8 c4 77
    32183218    xor dh, dh                                ; 30 f6
    32193219    mov word [bp-014h], dx                    ; 89 56 ec
     
    32233223    mov dx, word [bp-022h]                    ; 8b 56 de
    32243224    mov si, strict word 00020h                ; be 20 00
    3225     call 0a060h                               ; e8 6d 77
     3225    call 0a0a0h                               ; e8 ad 77
    32263226    mov bx, dx                                ; 89 d3
    32273227    mov word [bp-024h], dx                    ; 89 56 dc
     
    32573257    mov dx, word [bp-022h]                    ; 8b 56 de
    32583258    mov si, strict word 00008h                ; be 08 00
    3259     call 0a060h                               ; e8 19 77
     3259    call 0a0a0h                               ; e8 59 77
    32603260    mov word [bp-00ch], ax                    ; 89 46 f4
    32613261    mov word [bp-020h], bx                    ; 89 5e e0
     
    32643264    mov word [bp-024h], dx                    ; 89 56 dc
    32653265    mov si, strict word 00010h                ; be 10 00
    3266     call 0a060h                               ; e8 04 77
     3266    call 0a0a0h                               ; e8 44 77
    32673267    mov word [bp-022h], dx                    ; 89 56 de
    32683268    mov ax, dx                                ; 89 d0
     
    39453945    pop bp                                    ; 5d
    39463946    retn                                      ; c3
    3947 floppy_reset_controller_:                    ; 0xf2f67 LB 0x28
     3947floppy_reset_controller_:                    ; 0xf2f67 LB 0x46
    39483948    push bp                                   ; 55
    39493949    mov bp, sp                                ; 89 e5
    39503950    push bx                                   ; 53
     3951    push cx                                   ; 51
    39513952    push dx                                   ; 52
     3953    mov bx, ax                                ; 89 c3
    39523954    mov dx, 003f2h                            ; ba f2 03
    39533955    in AL, DX                                 ; ec
    39543956    db  02ah, 0e4h
    39553957    ; sub ah, ah                                ; 2a e4
    3956     mov bx, ax                                ; 89 c3
     3958    mov cx, ax                                ; 89 c1
    39573959    and AL, strict byte 0fbh                  ; 24 fb
    39583960    out DX, AL                                ; ee
    3959     mov al, bl                                ; 88 d8
     3961    mov al, cl                                ; 88 c8
    39603962    or AL, strict byte 004h                   ; 0c 04
    39613963    out DX, AL                                ; ee
     
    39663968    and AL, strict byte 0c0h                  ; 24 c0
    39673969    cmp AL, strict byte 080h                  ; 3c 80
    3968     jne short 02f7ch                          ; 75 f4
    3969     lea sp, [bp-004h]                         ; 8d 66 fc
     3970    jne short 02f7fh                          ; 75 f4
     3971    lea cx, [bx+00090h]                       ; 8d 8f 90 00
     3972    mov dx, cx                                ; 89 ca
     3973    mov ax, strict word 00040h                ; b8 40 00
     3974    call 01652h                               ; e8 bb e6
     3975    and AL, strict byte 0efh                  ; 24 ef
     3976    xor ah, ah                                ; 30 e4
     3977    mov bx, ax                                ; 89 c3
     3978    mov dx, cx                                ; 89 ca
     3979    mov ax, strict word 00040h                ; b8 40 00
     3980    call 01660h                               ; e8 bb e6
     3981    lea sp, [bp-006h]                         ; 8d 66 fa
    39703982    pop dx                                    ; 5a
     3983    pop cx                                    ; 59
    39713984    pop bx                                    ; 5b
    39723985    pop bp                                    ; 5d
    39733986    retn                                      ; c3
    3974 floppy_prepare_controller_:                  ; 0xf2f8f LB 0x84
     3987floppy_prepare_controller_:                  ; 0xf2fad LB 0x84
    39753988    push bp                                   ; 55
    39763989    mov bp, sp                                ; 89 e5
     
    39823995    mov dx, strict word 0003eh                ; ba 3e 00
    39833996    mov ax, strict word 00040h                ; b8 40 00
    3984     call 01652h                               ; e8 b1 e6
     3997    call 01652h                               ; e8 93 e6
    39853998    and AL, strict byte 07fh                  ; 24 7f
    39863999    xor ah, ah                                ; 30 e4
     
    39884001    mov dx, strict word 0003eh                ; ba 3e 00
    39894002    mov ax, strict word 00040h                ; b8 40 00
    3990     call 01660h                               ; e8 b0 e6
     4003    call 01660h                               ; e8 92 e6
    39914004    mov dx, 003f2h                            ; ba f2 03
    39924005    in AL, DX                                 ; ec
     
    39964009    mov byte [bp-008h], al                    ; 88 46 f8
    39974010    test cx, cx                               ; 85 c9
    3998     je short 02fc3h                           ; 74 04
     4011    je short 02fe1h                           ; 74 04
    39994012    mov AL, strict byte 020h                  ; b0 20
    4000     jmp short 02fc5h                          ; eb 02
     4013    jmp short 02fe3h                          ; eb 02
    40014014    mov AL, strict byte 010h                  ; b0 10
    40024015    or AL, strict byte 00ch                   ; 0c 0c
     
    40074020    mov dx, strict word 00040h                ; ba 40 00
    40084021    mov ax, dx                                ; 89 d0
    4009     call 01660h                               ; e8 88 e6
     4022    call 01660h                               ; e8 6a e6
    40104023    mov dx, 0008bh                            ; ba 8b 00
    40114024    mov ax, strict word 00040h                ; b8 40 00
    4012     call 01652h                               ; e8 71 e6
     4025    call 01652h                               ; e8 53 e6
    40134026    mov CL, strict byte 006h                  ; b1 06
    40144027    shr al, CL                                ; d2 e8
     
    40214034    and AL, strict byte 0c0h                  ; 24 c0
    40224035    cmp AL, strict byte 080h                  ; 3c 80
    4023     jne short 02fe9h                          ; 75 f4
     4036    jne short 03007h                          ; 75 f4
    40244037    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    4025     jne short 0300bh                          ; 75 10
    4026     call 02effh                               ; e8 01 ff
     4038    jne short 03029h                          ; 75 10
     4039    call 02effh                               ; e8 e3 fe
    40274040    mov bl, al                                ; 88 c3
    40284041    xor bh, bh                                ; 30 ff
    40294042    mov dx, strict word 0003eh                ; ba 3e 00
    40304043    mov ax, strict word 00040h                ; b8 40 00
    4031     call 01660h                               ; e8 55 e6
     4044    call 01660h                               ; e8 37 e6
    40324045    lea sp, [bp-006h]                         ; 8d 66 fa
    40334046    pop dx                                    ; 5a
     
    40364049    pop bp                                    ; 5d
    40374050    retn                                      ; c3
    4038 floppy_media_known_:                         ; 0xf3013 LB 0x46
     4051floppy_media_known_:                         ; 0xf3031 LB 0x46
    40394052    push bp                                   ; 55
    40404053    mov bp, sp                                ; 89 e5
     
    40454058    mov dx, strict word 0003eh                ; ba 3e 00
    40464059    mov ax, strict word 00040h                ; b8 40 00
    4047     call 01652h                               ; e8 2e e6
     4060    call 01652h                               ; e8 10 e6
    40484061    mov ah, al                                ; 88 c4
    40494062    test bx, bx                               ; 85 db
    4050     je short 0302ch                           ; 74 02
     4063    je short 0304ah                           ; 74 02
    40514064    shr al, 1                                 ; d0 e8
    40524065    and AL, strict byte 001h                  ; 24 01
    4053     jne short 03034h                          ; 75 04
    4054     xor ah, ah                                ; 30 e4
    4055     jmp short 03051h                          ; eb 1d
     4066    jne short 03052h                          ; 75 04
     4067    xor ah, ah                                ; 30 e4
     4068    jmp short 0306fh                          ; eb 1d
    40564069    mov dx, 00090h                            ; ba 90 00
    40574070    test bx, bx                               ; 85 db
    4058     je short 0303eh                           ; 74 03
     4071    je short 0305ch                           ; 74 03
    40594072    mov dx, 00091h                            ; ba 91 00
    40604073    mov ax, strict word 00040h                ; b8 40 00
    4061     call 01652h                               ; e8 0e e6
     4074    call 01652h                               ; e8 f0 e5
    40624075    xor ah, ah                                ; 30 e4
    40634076    mov CL, strict byte 004h                  ; b1 04
    40644077    sar ax, CL                                ; d3 f8
    40654078    and AL, strict byte 001h                  ; 24 01
    4066     je short 03030h                           ; 74 e2
     4079    je short 0304eh                           ; 74 e2
    40674080    mov ax, strict word 00001h                ; b8 01 00
    40684081    lea sp, [bp-006h]                         ; 8d 66 fa
     
    40724085    pop bp                                    ; 5d
    40734086    retn                                      ; c3
    4074 floppy_read_id_:                             ; 0xf3059 LB 0x44
     4087floppy_read_id_:                             ; 0xf3077 LB 0x44
    40754088    push bp                                   ; 55
    40764089    mov bp, sp                                ; 89 e5
     
    40804093    sub sp, strict byte 00008h                ; 83 ec 08
    40814094    mov bx, ax                                ; 89 c3
    4082     call 02f8fh                               ; e8 28 ff
     4095    call 02fadh                               ; e8 28 ff
    40834096    mov AL, strict byte 04ah                  ; b0 4a
    40844097    mov dx, 003f5h                            ; ba f5 03
     
    40864099    mov al, bl                                ; 88 d8
    40874100    out DX, AL                                ; ee
    4088     call 02effh                               ; e8 8c fe
     4101    call 02effh                               ; e8 6e fe
    40894102    xor si, si                                ; 31 f6
    4090     jmp short 0307ch                          ; eb 05
     4103    jmp short 0309ah                          ; eb 05
    40914104    cmp si, strict byte 00007h                ; 83 fe 07
    4092     jnl short 03088h                          ; 7d 0c
     4105    jnl short 030a6h                          ; 7d 0c
    40934106    mov dx, 003f5h                            ; ba f5 03
    40944107    in AL, DX                                 ; ec
     
    40974110    mov byte [bp+si-00eh], al                 ; 88 42 f2
    40984111    inc si                                    ; 46
    4099     jmp short 03077h                          ; eb ef
     4112    jmp short 03095h                          ; eb ef
    41004113    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
    4101     je short 03092h                           ; 74 04
     4114    je short 030b0h                           ; 74 04
    41024115    xor ax, ax                                ; 31 c0
    4103     jmp short 03095h                          ; eb 03
     4116    jmp short 030b3h                          ; eb 03
    41044117    mov ax, strict word 00001h                ; b8 01 00
    41054118    lea sp, [bp-006h]                         ; 8d 66 fa
     
    41094122    pop bp                                    ; 5d
    41104123    retn                                      ; c3
    4111 floppy_drive_recal_:                         ; 0xf309d LB 0x4d
     4124floppy_drive_recal_:                         ; 0xf30bb LB 0x4d
    41124125    push bp                                   ; 55
    41134126    mov bp, sp                                ; 89 e5
     
    41164129    push dx                                   ; 52
    41174130    mov bx, ax                                ; 89 c3
    4118     call 02f8fh                               ; e8 e7 fe
     4131    call 02fadh                               ; e8 e7 fe
    41194132    mov AL, strict byte 007h                  ; b0 07
    41204133    mov dx, 003f5h                            ; ba f5 03
     
    41224135    mov al, bl                                ; 88 d8
    41234136    out DX, AL                                ; ee
    4124     call 02effh                               ; e8 4b fe
     4137    call 02effh                               ; e8 2d fe
    41254138    test bx, bx                               ; 85 db
    4126     je short 030c2h                           ; 74 0a
     4139    je short 030e0h                           ; 74 0a
    41274140    mov bl, al                                ; 88 c3
    41284141    or bl, 002h                               ; 80 cb 02
    41294142    mov cx, 00095h                            ; b9 95 00
    4130     jmp short 030cah                          ; eb 08
     4143    jmp short 030e8h                          ; eb 08
    41314144    mov bl, al                                ; 88 c3
    41324145    or bl, 001h                               ; 80 cb 01
     
    41354148    mov dx, strict word 0003eh                ; ba 3e 00
    41364149    mov ax, strict word 00040h                ; b8 40 00
    4137     call 01660h                               ; e8 8b e5
     4150    call 01660h                               ; e8 6d e5
    41384151    xor bx, bx                                ; 31 db
    41394152    mov dx, cx                                ; 89 ca
    41404153    mov ax, strict word 00040h                ; b8 40 00
    4141     call 01660h                               ; e8 81 e5
     4154    call 01660h                               ; e8 63 e5
    41424155    mov ax, strict word 00001h                ; b8 01 00
    41434156    lea sp, [bp-006h]                         ; 8d 66 fa
     
    41474160    pop bp                                    ; 5d
    41484161    retn                                      ; c3
    4149 floppy_media_sense_:                         ; 0xf30ea LB 0xfa
     4162floppy_media_sense_:                         ; 0xf3108 LB 0xfa
    41504163    push bp                                   ; 55
    41514164    mov bp, sp                                ; 89 e5
     
    41564169    push di                                   ; 57
    41574170    mov di, ax                                ; 89 c7
    4158     call 0309dh                               ; e8 a6 ff
     4171    call 030bbh                               ; e8 a6 ff
    41594172    test ax, ax                               ; 85 c0
    4160     jne short 03100h                          ; 75 05
     4173    jne short 0311eh                          ; 75 05
    41614174    xor cx, cx                                ; 31 c9
    4162     jmp near 031d8h                           ; e9 d8 00
     4175    jmp near 031f6h                           ; e9 d8 00
    41634176    mov ax, strict word 00010h                ; b8 10 00
    4164     call 016aeh                               ; e8 a8 e5
     4177    call 016aeh                               ; e8 8a e5
    41654178    test di, di                               ; 85 ff
    4166     jne short 03112h                          ; 75 08
     4179    jne short 03130h                          ; 75 08
    41674180    mov CL, strict byte 004h                  ; b1 04
    41684181    shr al, CL                                ; d2 e8
    41694182    mov cl, al                                ; 88 c1
    4170     jmp short 03117h                          ; eb 05
     4183    jmp short 03135h                          ; eb 05
    41714184    mov cl, al                                ; 88 c1
    41724185    and cl, 00fh                              ; 80 e1 0f
    41734186    cmp cl, 001h                              ; 80 f9 01
    4174     jne short 03125h                          ; 75 09
     4187    jne short 03143h                          ; 75 09
    41754188    xor cl, cl                                ; 30 c9
    41764189    mov CH, strict byte 015h                  ; b5 15
    41774190    mov si, strict word 00001h                ; be 01 00
    4178     jmp short 03163h                          ; eb 3e
     4191    jmp short 03181h                          ; eb 3e
    41794192    cmp cl, 002h                              ; 80 f9 02
    4180     jne short 03130h                          ; 75 06
     4193    jne short 0314eh                          ; 75 06
    41814194    xor cl, cl                                ; 30 c9
    41824195    mov CH, strict byte 035h                  ; b5 35
    4183     jmp short 03120h                          ; eb f0
     4196    jmp short 0313eh                          ; eb f0
    41844197    cmp cl, 003h                              ; 80 f9 03
    4185     jne short 0313bh                          ; 75 06
     4198    jne short 03159h                          ; 75 06
    41864199    xor cl, cl                                ; 30 c9
    41874200    mov CH, strict byte 017h                  ; b5 17
    4188     jmp short 03120h                          ; eb e5
     4201    jmp short 0313eh                          ; eb e5
    41894202    cmp cl, 004h                              ; 80 f9 04
    4190     jne short 03146h                          ; 75 06
     4203    jne short 03164h                          ; 75 06
    41914204    xor cl, cl                                ; 30 c9
    41924205    mov CH, strict byte 017h                  ; b5 17
    4193     jmp short 03120h                          ; eb da
     4206    jmp short 0313eh                          ; eb da
    41944207    cmp cl, 005h                              ; 80 f9 05
    4195     jne short 03151h                          ; 75 06
     4208    jne short 0316fh                          ; 75 06
    41964209    mov CL, strict byte 0cch                  ; b1 cc
    41974210    mov CH, strict byte 0d7h                  ; b5 d7
    4198     jmp short 03120h                          ; eb cf
     4211    jmp short 0313eh                          ; eb cf
    41994212    cmp cl, 00eh                              ; 80 f9 0e
    4200     je short 0315bh                           ; 74 05
     4213    je short 03179h                           ; 74 05
    42014214    cmp cl, 00fh                              ; 80 f9 0f
    4202     jne short 0315dh                          ; 75 02
    4203     jmp short 0314bh                          ; eb ee
     4215    jne short 0317bh                          ; 75 02
     4216    jmp short 03169h                          ; eb ee
    42044217    xor cl, cl                                ; 30 c9
    42054218    xor ch, ch                                ; 30 ed
     
    42104223    mov dx, 0008bh                            ; ba 8b 00
    42114224    mov ax, strict word 00040h                ; b8 40 00
    4212     call 01660h                               ; e8 ee e4
     4225    call 01660h                               ; e8 d0 e4
    42134226    mov ax, di                                ; 89 f8
    4214     call 03059h                               ; e8 e2 fe
     4227    call 03077h                               ; e8 e2 fe
    42154228    test ax, ax                               ; 85 c0
    4216     jne short 031adh                          ; 75 32
     4229    jne short 031cbh                          ; 75 32
    42174230    mov al, cl                                ; 88 c8
    42184231    and AL, strict byte 0c0h                  ; 24 c0
    42194232    cmp AL, strict byte 080h                  ; 3c 80
    4220     je short 031adh                           ; 74 2a
     4233    je short 031cbh                           ; 74 2a
    42214234    mov al, cl                                ; 88 c8
    42224235    and AL, strict byte 0c0h                  ; 24 c0
    42234236    cmp AL, strict byte 0c0h                  ; 3c c0
    4224     je short 0319ah                           ; 74 0f
     4237    je short 031b8h                           ; 74 0f
    42254238    mov ah, cl                                ; 88 cc
    42264239    and ah, 03fh                              ; 80 e4 3f
    42274240    cmp AL, strict byte 040h                  ; 3c 40
    4228     je short 031a6h                           ; 74 12
     4241    je short 031c4h                           ; 74 12
    42294242    test al, al                               ; 84 c0
    4230     je short 0319fh                           ; 74 07
    4231     jmp short 03163h                          ; eb c9
     4243    je short 031bdh                           ; 74 07
     4244    jmp short 03181h                          ; eb c9
    42324245    and cl, 03fh                              ; 80 e1 3f
    4233     jmp short 03163h                          ; eb c4
     4246    jmp short 03181h                          ; eb c4
    42344247    mov cl, ah                                ; 88 e1
    42354248    or cl, 040h                               ; 80 c9 40
    4236     jmp short 03163h                          ; eb bd
     4249    jmp short 03181h                          ; eb bd
    42374250    mov cl, ah                                ; 88 e1
    42384251    or cl, 080h                               ; 80 c9 80
    4239     jmp short 03163h                          ; eb b6
     4252    jmp short 03181h                          ; eb b6
    42404253    test di, di                               ; 85 ff
    4241     jne short 031b6h                          ; 75 05
     4254    jne short 031d4h                          ; 75 05
    42424255    mov di, 00090h                            ; bf 90 00
    4243     jmp short 031b9h                          ; eb 03
     4256    jmp short 031d7h                          ; eb 03
    42444257    mov di, 00091h                            ; bf 91 00
    42454258    mov al, cl                                ; 88 c8
     
    42484261    mov dx, 0008bh                            ; ba 8b 00
    42494262    mov ax, strict word 00040h                ; b8 40 00
    4250     call 01660h                               ; e8 98 e4
     4263    call 01660h                               ; e8 7a e4
    42514264    mov al, ch                                ; 88 e8
    42524265    xor ah, ah                                ; 30 e4
     
    42544267    mov dx, di                                ; 89 fa
    42554268    mov ax, strict word 00040h                ; b8 40 00
    4256     call 01660h                               ; e8 8a e4
     4269    call 01660h                               ; e8 6c e4
    42574270    mov cx, si                                ; 89 f1
    42584271    mov ax, cx                                ; 89 c8
     
    42654278    pop bp                                    ; 5d
    42664279    retn                                      ; c3
    4267 floppy_drive_exists_:                        ; 0xf31e4 LB 0x2b
     4280floppy_drive_exists_:                        ; 0xf3202 LB 0x2b
    42684281    push bp                                   ; 55
    42694282    mov bp, sp                                ; 89 e5
     
    42724285    mov dx, ax                                ; 89 c2
    42734286    mov ax, strict word 00010h                ; b8 10 00
    4274     call 016aeh                               ; e8 bd e4
     4287    call 016aeh                               ; e8 9f e4
    42754288    test dx, dx                               ; 85 d2
    4276     jne short 031fbh                          ; 75 06
     4289    jne short 03219h                          ; 75 06
    42774290    mov CL, strict byte 004h                  ; b1 04
    42784291    shr al, CL                                ; d2 e8
    4279     jmp short 031fdh                          ; eb 02
     4292    jmp short 0321bh                          ; eb 02
    42804293    and AL, strict byte 00fh                  ; 24 0f
    42814294    test al, al                               ; 84 c0
    4282     je short 03206h                           ; 74 05
     4295    je short 03224h                           ; 74 05
    42834296    mov ax, strict word 00001h                ; b8 01 00
    4284     jmp short 03208h                          ; eb 02
     4297    jmp short 03226h                          ; eb 02
    42854298    xor ah, ah                                ; 30 e4
    42864299    lea sp, [bp-004h]                         ; 8d 66 fc
     
    42894302    pop bp                                    ; 5d
    42904303    retn                                      ; c3
    4291 _int13_diskette_function:                    ; 0xf320f LB 0x97c
     4304_int13_diskette_function:                    ; 0xf322d LB 0x9a4
    42924305    push bp                                   ; 55
    42934306    mov bp, sp                                ; 89 e5
     
    42974310    mov bl, byte [bp+017h]                    ; 8a 5e 17
    42984311    xor bh, bh                                ; 30 ff
    4299     mov byte [bp-010h], bl                    ; 88 5e f0
     4312    mov cl, bl                                ; 88 d9
    43004313    mov si, word [bp+016h]                    ; 8b 76 16
    43014314    and si, 000ffh                            ; 81 e6 ff 00
    43024315    mov al, byte [bp+00eh]                    ; 8a 46 0e
    4303     mov cl, byte [bp+014h]                    ; 8a 4e 14
     4316    mov dl, byte [bp+014h]                    ; 8a 56 14
     4317    mov byte [bp-010h], dl                    ; 88 56 f0
    43044318    mov ch, byte [bp+016h]                    ; 8a 6e 16
    43054319    mov dl, byte [bp+015h]                    ; 8a 56 15
    4306     mov byte [bp-014h], dl                    ; 88 56 ec
    4307     mov byte [bp-013h], bh                    ; 88 7e ed
    4308     mov dx, word [bp-014h]                    ; 8b 56 ec
     4320    mov byte [bp-012h], dl                    ; 88 56 ee
     4321    mov byte [bp-011h], bh                    ; 88 7e ef
     4322    mov dx, word [bp-012h]                    ; 8b 56 ee
    43094323    cmp bl, 008h                              ; 80 fb 08
    4310     jc short 0326eh                           ; 72 2e
     4324    jc short 0328eh                           ; 72 2e
    43114325    mov dx, word [bp+01ch]                    ; 8b 56 1c
    43124326    or dl, 001h                               ; 80 ca 01
    43134327    cmp bl, 008h                              ; 80 fb 08
    4314     jbe short 032a4h                          ; 76 59
     4328    jbe short 032c4h                          ; 76 59
    43154329    cmp bl, 016h                              ; 80 fb 16
    4316     jc short 03266h                           ; 72 16
     4330    jc short 03286h                           ; 72 16
    43174331    or si, 00100h                             ; 81 ce 00 01
    43184332    cmp bl, 016h                              ; 80 fb 16
    4319     jbe short 032a7h                          ; 76 4e
     4333    jbe short 032c7h                          ; 76 4e
    43204334    cmp bl, 018h                              ; 80 fb 18
    4321     je short 032aah                           ; 74 4c
     4335    je short 032cah                           ; 74 4c
    43224336    cmp bl, 017h                              ; 80 fb 17
    4323     je short 032c1h                           ; 74 5e
    4324     jmp near 03b65h                           ; e9 ff 08
     4337    je short 032e1h                           ; 74 5e
     4338    jmp near 03babh                           ; e9 25 09
    43254339    cmp bl, 015h                              ; 80 fb 15
    4326     je short 032c4h                           ; 74 59
    4327     jmp near 03b65h                           ; e9 f7 08
     4340    je short 032e4h                           ; 74 59
     4341    jmp near 03babh                           ; e9 1d 09
    43284342    cmp bl, 001h                              ; 80 fb 01
    4329     jc short 03282h                           ; 72 0f
    4330     jbe short 032c7h                          ; 76 52
     4343    jc short 032a2h                           ; 72 0f
     4344    jbe short 032e7h                          ; 76 52
    43314345    cmp bl, 005h                              ; 80 fb 05
    4332     je short 032e2h                           ; 74 68
     4346    je short 03302h                           ; 74 68
    43334347    cmp bl, 004h                              ; 80 fb 04
    4334     jbe short 032e5h                          ; 76 66
    4335     jmp near 03b65h                           ; e9 e3 08
     4348    jbe short 03305h                          ; 76 66
     4349    jmp near 03babh                           ; e9 09 09
    43364350    test bl, bl                               ; 84 db
    4337     jne short 032e7h                          ; 75 61
     4351    jne short 03307h                          ; 75 61
    43384352    mov al, byte [bp+00eh]                    ; 8a 46 0e
    43394353    mov byte [bp-006h], al                    ; 88 46 fa
    43404354    cmp AL, strict byte 001h                  ; 3c 01
    4341     jbe short 032adh                          ; 76 1d
     4355    jbe short 032cdh                          ; 76 1d
    43424356    mov ax, word [bp+016h]                    ; 8b 46 16
    43434357    xor ah, ah                                ; 30 e4
     
    43454359    mov word [bp+016h], ax                    ; 89 46 16
    43464360    mov ax, strict word 00001h                ; b8 01 00
    4347     call 02eb0h                               ; e8 0f fc
    4348     jmp near 03656h                           ; e9 b2 03
    4349     jmp near 03827h                           ; e9 80 05
    4350     jmp near 0396bh                           ; e9 c1 06
    4351     jmp near 03a04h                           ; e9 57 07
     4361    call 02eb0h                               ; e8 ef fb
     4362    jmp near 03697h                           ; e9 d3 03
     4363    jmp near 0386bh                           ; e9 a4 05
     4364    jmp near 039afh                           ; e9 e5 06
     4365    jmp near 03a48h                           ; e9 7b 07
    43524366    mov ax, strict word 00010h                ; b8 10 00
    4353     call 016aeh                               ; e8 fb e3
     4367    call 016aeh                               ; e8 db e3
    43544368    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4355     jne short 032c9h                          ; 75 10
     4369    jne short 032e9h                          ; 75 10
    43564370    mov CL, strict byte 004h                  ; b1 04
    43574371    mov ch, al                                ; 88 c5
    43584372    shr ch, CL                                ; d2 ed
    4359     jmp short 032ceh                          ; eb 0d
    4360     jmp near 0398fh                           ; e9 cb 06
    4361     jmp near 03926h                           ; e9 5f 06
    4362     jmp short 03310h                          ; eb 47
     4373    jmp short 032eeh                          ; eb 0d
     4374    jmp near 039d3h                           ; e9 ef 06
     4375    jmp near 0396ah                           ; e9 83 06
     4376    jmp short 03330h                          ; eb 47
    43634377    mov ch, al                                ; 88 c5
    43644378    and ch, 00fh                              ; 80 e5 0f
    43654379    test ch, ch                               ; 84 ed
    4366     jne short 032eah                          ; 75 18
     4380    jne short 0330ah                          ; 75 18
    43674381    mov ax, word [bp+016h]                    ; 8b 46 16
    43684382    xor ah, ah                                ; 30 e4
     
    43704384    mov word [bp+016h], ax                    ; 89 46 16
    43714385    mov ax, 00080h                            ; b8 80 00
    4372     jmp short 0329eh                          ; eb bc
    4373     jmp near 03680h                           ; e9 9b 03
    4374     jmp short 0332ch                          ; eb 45
    4375     jmp near 03b65h                           ; e9 7b 08
     4386    jmp short 032beh                          ; eb bc
     4387    jmp near 036c1h                           ; e9 bc 03
     4388    jmp short 0334ch                          ; eb 45
     4389    jmp near 03babh                           ; e9 a1 08
    43764390    xor bx, bx                                ; 31 db
    43774391    mov dx, strict word 0003eh                ; ba 3e 00
    43784392    mov ax, strict word 00040h                ; b8 40 00
    4379     call 01660h                               ; e8 6b e3
     4393    call 01660h                               ; e8 4b e3
    43804394    xor al, al                                ; 30 c0
    43814395    mov byte [bp+017h], al                    ; 88 46 17
    43824396    xor ah, ah                                ; 30 e4
    4383     call 02eb0h                               ; e8 b1 fb
     4397    call 02eb0h                               ; e8 91 fb
    43844398    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    43854399    mov al, byte [bp-006h]                    ; 8a 46 fa
    43864400    xor ah, ah                                ; 30 e4
    43874401    xor dx, dx                                ; 31 d2
    4388     call 02ec9h                               ; e8 bc fb
    4389     jmp near 03679h                           ; e9 69 03
     4402    call 02ec9h                               ; e8 9c fb
     4403    jmp near 036bah                           ; e9 8a 03
    43904404    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    43914405    mov dx, 00441h                            ; ba 41 04
    43924406    xor ax, ax                                ; 31 c0
    4393     call 01652h                               ; e8 36 e3
     4407    call 01652h                               ; e8 16 e3
    43944408    mov dh, al                                ; 88 c6
    43954409    xor dl, dl                                ; 30 d2
     
    43974411    mov word [bp+016h], si                    ; 89 76 16
    43984412    test al, al                               ; 84 c0
    4399     je short 03380h                           ; 74 57
    4400     jmp near 03656h                           ; e9 2a 03
     4413    je short 033a3h                           ; 74 5a
     4414    jmp near 03697h                           ; e9 4b 03
    44014415    mov byte [bp-008h], ch                    ; 88 6e f8
    44024416    mov byte [bp-00ah], dl                    ; 88 56 f6
    4403     mov byte [bp-00eh], cl                    ; 88 4e f2
     4417    mov ah, byte [bp-010h]                    ; 8a 66 f0
     4418    mov byte [bp-00eh], ah                    ; 88 66 f2
    44044419    mov dl, byte [bp+013h]                    ; 8a 56 13
    44054420    xor dh, dh                                ; 30 f6
     
    44074422    mov byte [bp-006h], al                    ; 88 46 fa
    44084423    cmp AL, strict byte 001h                  ; 3c 01
    4409     jnbe short 03352h                         ; 77 0e
     4424    jnbe short 03375h                         ; 77 0e
    44104425    cmp dl, 001h                              ; 80 fa 01
    4411     jnbe short 03352h                         ; 77 09
     4426    jnbe short 03375h                         ; 77 09
    44124427    test ch, ch                               ; 84 ed
    4413     je short 03352h                           ; 74 05
     4428    je short 03375h                           ; 74 05
    44144429    cmp ch, 048h                              ; 80 fd 48
    4415     jbe short 03383h                          ; 76 31
     4430    jbe short 033a6h                          ; 76 31
    44164431    mov bx, 00da0h                            ; bb a0 0d
    44174432    mov cx, ds                                ; 8c d9
    44184433    mov ax, strict word 00004h                ; b8 04 00
    4419     call 01933h                               ; e8 d6 e5
     4434    call 01933h                               ; e8 b3 e5
    44204435    mov ax, 00275h                            ; b8 75 02
    44214436    push ax                                   ; 50
     
    44244439    mov ax, strict word 00004h                ; b8 04 00
    44254440    push ax                                   ; 50
    4426     call 01976h                               ; e8 0a e6
     4441    call 01976h                               ; e8 e7 e5
    44274442    add sp, strict byte 00006h                ; 83 c4 06
    44284443    mov ax, word [bp+016h]                    ; 8b 46 16
     
    44314446    mov word [bp+016h], ax                    ; 89 46 16
    44324447    mov ax, strict word 00001h                ; b8 01 00
    4433     jmp near 03405h                           ; e9 85 00
    4434     jmp near 03679h                           ; e9 f6 02
     4448    jmp near 03435h                           ; e9 92 00
     4449    jmp near 036bah                           ; e9 14 03
    44354450    mov al, byte [bp-006h]                    ; 8a 46 fa
    44364451    xor ah, ah                                ; 30 e4
    4437     call 031e4h                               ; e8 59 fe
     4452    call 03202h                               ; e8 54 fe
    44384453    test ax, ax                               ; 85 c0
    4439     je short 033bdh                           ; 74 2e
    4440     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4441     xor bh, bh                                ; 30 ff
    4442     mov ax, bx                                ; 89 d8
    4443     call 03013h                               ; e8 7a fc
     4454    jne short 033c3h                          ; 75 11
     4455    mov ax, word [bp+016h]                    ; 8b 46 16
     4456    xor ah, ah                                ; 30 e4
     4457    or ah, 080h                               ; 80 cc 80
     4458    mov word [bp+016h], ax                    ; 89 46 16
     4459    mov ax, 00080h                            ; b8 80 00
     4460    jmp near 03435h                           ; e9 72 00
     4461    mov dl, byte [bp-006h]                    ; 8a 56 fa
     4462    xor dh, dh                                ; 30 f6
     4463    mov ax, dx                                ; 89 d0
     4464    call 03031h                               ; e8 64 fc
    44444465    test ax, ax                               ; 85 c0
    4445     jne short 033c0h                          ; 75 23
    4446     mov ax, bx                                ; 89 d8
    4447     call 030eah                               ; e8 48 fd
     4466    jne short 033f1h                          ; 75 20
     4467    mov ax, dx                                ; 89 d0
     4468    call 03108h                               ; e8 32 fd
    44484469    test ax, ax                               ; 85 c0
    4449     jne short 033c0h                          ; 75 1a
     4470    jne short 033f1h                          ; 75 17
    44504471    mov ax, word [bp+016h]                    ; 8b 46 16
    44514472    xor ah, ah                                ; 30 e4
     
    44534474    mov word [bp+016h], ax                    ; 89 46 16
    44544475    mov ax, strict word 0000ch                ; b8 0c 00
    4455     call 02eb0h                               ; e8 f9 fa
    4456     mov byte [bp+016h], bh                    ; 88 7e 16
    4457     jmp near 03656h                           ; e9 99 02
    4458     jmp near 0349ch                           ; e9 dc 00
    4459     cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    4460     jne short 0340fh                          ; 75 49
     4476    call 02eb0h                               ; e8 c5 fa
     4477    mov byte [bp+016h], dh                    ; 88 76 16
     4478    jmp near 03697h                           ; e9 a6 02
     4479    cmp cl, 002h                              ; 80 f9 02
     4480    jne short 0343fh                          ; 75 49
    44614481    mov CL, strict byte 00ch                  ; b1 0c
    44624482    mov dx, word [bp+006h]                    ; 8b 56 06
     
    44684488    mov bx, word [bp+010h]                    ; 8b 5e 10
    44694489    add bx, ax                                ; 01 c3
    4470     mov word [bp-012h], bx                    ; 89 5e ee
     4490    mov word [bp-014h], bx                    ; 89 5e ec
    44714491    cmp ax, bx                                ; 39 d8
    4472     jbe short 033e4h                          ; 76 02
     4492    jbe short 03414h                          ; 76 02
    44734493    db  0feh, 0c5h
    44744494    ; inc ch                                    ; fe c5
     
    44794499    sal bx, CL                                ; d3 e3
    44804500    dec bx                                    ; 4b
    4481     mov ax, word [bp-012h]                    ; 8b 46 ee
     4501    mov ax, word [bp-014h]                    ; 8b 46 ec
    44824502    add ax, bx                                ; 01 d8
    4483     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4484     jnc short 03412h                          ; 73 18
     4503    cmp ax, word [bp-014h]                    ; 3b 46 ec
     4504    jnc short 03442h                          ; 73 18
    44854505    mov ax, word [bp+016h]                    ; 8b 46 16
    44864506    mov ah, cl                                ; 88 cc
    44874507    mov word [bp+016h], ax                    ; 89 46 16
    44884508    mov ax, strict word 00009h                ; b8 09 00
    4489     call 02eb0h                               ; e8 a8 fa
     4509    call 02eb0h                               ; e8 78 fa
    44904510    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4491     jmp near 03656h                           ; e9 47 02
    4492     jmp near 03538h                           ; e9 26 01
     4511    jmp near 03697h                           ; e9 58 02
     4512    jmp near 03579h                           ; e9 37 01
    44934513    mov AL, strict byte 006h                  ; b0 06
    44944514    mov dx, strict word 0000ah                ; ba 0a 00
     
    44974517    mov dx, strict word 0000ch                ; ba 0c 00
    44984518    out DX, AL                                ; ee
    4499     mov al, byte [bp-012h]                    ; 8a 46 ee
     4519    mov al, byte [bp-014h]                    ; 8a 46 ec
    45004520    mov dx, strict word 00004h                ; ba 04 00
    45014521    out DX, AL                                ; ee
    4502     mov al, byte [bp-011h]                    ; 8a 46 ef
     4522    mov al, byte [bp-013h]                    ; 8a 46 ed
    45034523    out DX, AL                                ; ee
    45044524    xor al, al                                ; 30 c0
     
    45194539    mov dx, strict word 0000ah                ; ba 0a 00
    45204540    out DX, AL                                ; ee
    4521     mov al, byte [bp-006h]                    ; 8a 46 fa
    4522     xor ah, ah                                ; 30 e4
    4523     call 02f8fh                               ; e8 3d fb
     4541    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4542    xor bh, bh                                ; 30 ff
     4543    mov ax, bx                                ; 89 d8
     4544    call 02fadh                               ; e8 29 fb
    45244545    mov AL, strict byte 0e6h                  ; b0 e6
    45254546    mov dx, 003f5h                            ; ba f5 03
     
    45304551    sal dx, 1                                 ; d1 e2
    45314552    sal dx, 1                                 ; d1 e2
    4532     mov al, byte [bp-006h]                    ; 8a 46 fa
     4553    mov al, bl                                ; 88 d8
    45334554    or ax, dx                                 ; 09 d0
    45344555    mov dx, 003f5h                            ; ba f5 03
     
    45424563    mov AL, strict byte 002h                  ; b0 02
    45434564    out DX, AL                                ; ee
    4544     mov al, byte [bp-00eh]                    ; 8a 46 f2
    4545     xor ah, ah                                ; 30 e4
    4546     mov dl, byte [bp-008h]                    ; 8a 56 f8
     4565    mov dl, byte [bp-00eh]                    ; 8a 56 f2
    45474566    xor dh, dh                                ; 30 f6
     4567    mov al, byte [bp-008h]                    ; 8a 46 f8
     4568    xor ah, ah                                ; 30 e4
    45484569    add ax, dx                                ; 01 d0
    45494570    dec ax                                    ; 48
     
    45544575    mov AL, strict byte 0ffh                  ; b0 ff
    45554576    out DX, AL                                ; ee
    4556     call 02f20h                               ; e8 8b fa
     4577    call 02f20h                               ; e8 5a fa
    45574578    test al, al                               ; 84 c0
    4558     jne short 034adh                          ; 75 14
    4559     call 02f67h                               ; e8 cb fa
     4579    jne short 034e6h                          ; 75 1c
     4580    mov ax, bx                                ; 89 d8
     4581    call 02f67h                               ; e8 98 fa
    45604582    mov ax, word [bp+016h]                    ; 8b 46 16
    45614583    xor ah, ah                                ; 30 e4
     
    45634585    mov word [bp+016h], ax                    ; 89 46 16
    45644586    mov ax, 00080h                            ; b8 80 00
    4565     jmp near 03405h                           ; e9 58 ff
     4587    call 02eb0h                               ; e8 d0 f9
     4588    mov byte [bp+016h], bh                    ; 88 7e 16
     4589    jmp near 03697h                           ; e9 b1 01
    45664590    mov dx, 003f4h                            ; ba f4 03
    45674591    in AL, DX                                 ; ec
     
    45704594    and AL, strict byte 0c0h                  ; 24 c0
    45714595    cmp AL, strict byte 0c0h                  ; 3c c0
    4572     je short 034cbh                           ; 74 12
     4596    je short 03504h                           ; 74 12
    45734597    mov ax, 00275h                            ; b8 75 02
    45744598    push ax                                   ; 50
     
    45774601    mov ax, strict word 00007h                ; b8 07 00
    45784602    push ax                                   ; 50
    4579     call 01976h                               ; e8 ae e4
     4603    call 01976h                               ; e8 75 e4
    45804604    add sp, strict byte 00006h                ; 83 c4 06
    45814605    xor si, si                                ; 31 f6
    4582     jmp short 034d4h                          ; eb 05
     4606    jmp short 0350dh                          ; eb 05
    45834607    cmp si, strict byte 00007h                ; 83 fe 07
    4584     jnl short 034edh                          ; 7d 19
     4608    jnl short 03526h                          ; 7d 19
    45854609    mov dx, 003f5h                            ; ba f5 03
    45864610    in AL, DX                                 ; ec
     
    45924616    lea dx, [si+042h]                         ; 8d 54 42
    45934617    mov ax, strict word 00040h                ; b8 40 00
    4594     call 01660h                               ; e8 76 e1
     4618    call 01660h                               ; e8 3d e1
    45954619    inc si                                    ; 46
    4596     jmp short 034cfh                          ; eb e2
     4620    jmp short 03508h                          ; eb e2
    45974621    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4598     je short 03504h                           ; 74 11
     4622    je short 03545h                           ; 74 19
     4623    mov al, byte [bp-006h]                    ; 8a 46 fa
     4624    xor ah, ah                                ; 30 e4
     4625    call 02f67h                               ; e8 33 fa
    45994626    mov ax, word [bp+016h]                    ; 8b 46 16
    46004627    xor ah, ah                                ; 30 e4
     
    46024629    mov word [bp+016h], ax                    ; 89 46 16
    46034630    mov ax, strict word 00020h                ; b8 20 00
    4604     jmp near 03405h                           ; e9 01 ff
     4631    jmp near 03435h                           ; e9 f0 fe
    46054632    mov al, byte [bp-008h]                    ; 8a 46 f8
    46064633    xor ah, ah                                ; 30 e4
     
    46244651    mov al, byte [bp-006h]                    ; 8a 46 fa
    46254652    xor ah, ah                                ; 30 e4
    4626     call 02ec9h                               ; e8 98 f9
     4653    call 02ec9h                               ; e8 57 f9
    46274654    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4628     jmp near 039fdh                           ; e9 c5 04
    4629     cmp byte [bp-010h], 003h                  ; 80 7e f0 03
    4630     je short 03541h                           ; 74 03
    4631     jmp near 03664h                           ; e9 23 01
     4655    jmp near 03a41h                           ; e9 c8 04
     4656    cmp cl, 003h                              ; 80 f9 03
     4657    je short 03581h                           ; 74 03
     4658    jmp near 036a5h                           ; e9 24 01
    46324659    mov CL, strict byte 00ch                  ; b1 0c
    46334660    mov dx, word [bp+006h]                    ; 8b 56 06
     
    46394666    mov bx, word [bp+010h]                    ; 8b 5e 10
    46404667    add bx, ax                                ; 01 c3
    4641     mov word [bp-012h], bx                    ; 89 5e ee
     4668    mov word [bp-014h], bx                    ; 89 5e ec
    46424669    cmp ax, bx                                ; 39 d8
    4643     jbe short 0355fh                          ; 76 02
     4670    jbe short 0359fh                          ; 76 02
    46444671    db  0feh, 0c5h
    46454672    ; inc ch                                    ; fe c5
     
    46504677    sal bx, CL                                ; d3 e3
    46514678    dec bx                                    ; 4b
    4652     mov ax, word [bp-012h]                    ; 8b 46 ee
     4679    mov ax, word [bp-014h]                    ; 8b 46 ec
    46534680    add ax, bx                                ; 01 d8
    4654     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4655     jnc short 03578h                          ; 73 03
    4656     jmp near 033fah                           ; e9 82 fe
     4681    cmp ax, word [bp-014h]                    ; 3b 46 ec
     4682    jnc short 035b8h                          ; 73 03
     4683    jmp near 0342ah                           ; e9 72 fe
    46574684    mov AL, strict byte 006h                  ; b0 06
    46584685    mov dx, strict word 0000ah                ; ba 0a 00
     
    46614688    mov dx, strict word 0000ch                ; ba 0c 00
    46624689    out DX, AL                                ; ee
    4663     mov al, byte [bp-012h]                    ; 8a 46 ee
     4690    mov al, byte [bp-014h]                    ; 8a 46 ec
    46644691    mov dx, strict word 00004h                ; ba 04 00
    46654692    out DX, AL                                ; ee
    4666     mov al, byte [bp-011h]                    ; 8a 46 ef
     4693    mov al, byte [bp-013h]                    ; 8a 46 ed
    46674694    out DX, AL                                ; ee
    46684695    xor al, al                                ; 30 c0
     
    46834710    mov dx, strict word 0000ah                ; ba 0a 00
    46844711    out DX, AL                                ; ee
    4685     mov al, byte [bp-006h]                    ; 8a 46 fa
    4686     xor ah, ah                                ; 30 e4
    4687     call 02f8fh                               ; e8 d7 f9
     4712    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4713    xor bh, bh                                ; 30 ff
     4714    mov ax, bx                                ; 89 d8
     4715    call 02fadh                               ; e8 b3 f9
    46884716    mov AL, strict byte 0c5h                  ; b0 c5
    46894717    mov dx, 003f5h                            ; ba f5 03
     
    46944722    sal dx, 1                                 ; d1 e2
    46954723    sal dx, 1                                 ; d1 e2
    4696     mov al, byte [bp-006h]                    ; 8a 46 fa
     4724    mov al, bl                                ; 88 d8
    46974725    or ax, dx                                 ; 09 d0
    46984726    mov dx, 003f5h                            ; ba f5 03
     
    47064734    mov AL, strict byte 002h                  ; b0 02
    47074735    out DX, AL                                ; ee
    4708     mov al, byte [bp-00eh]                    ; 8a 46 f2
    4709     xor ah, ah                                ; 30 e4
    4710     mov dl, byte [bp-008h]                    ; 8a 56 f8
     4736    mov dl, byte [bp-00eh]                    ; 8a 56 f2
    47114737    xor dh, dh                                ; 30 f6
     4738    mov al, byte [bp-008h]                    ; 8a 46 f8
     4739    xor ah, ah                                ; 30 e4
    47124740    add ax, dx                                ; 01 d0
    47134741    dec ax                                    ; 48
     
    47184746    mov AL, strict byte 0ffh                  ; b0 ff
    47194747    out DX, AL                                ; ee
    4720     call 02f20h                               ; e8 25 f9
     4748    call 02f20h                               ; e8 e4 f8
    47214749    test al, al                               ; 84 c0
    4722     jne short 03602h                          ; 75 03
    4723     jmp near 03499h                           ; e9 97 fe
     4750    jne short 03643h                          ; 75 03
     4751    jmp near 034cah                           ; e9 87 fe
    47244752    mov dx, 003f4h                            ; ba f4 03
    47254753    in AL, DX                                 ; ec
     
    47284756    and AL, strict byte 0c0h                  ; 24 c0
    47294757    cmp AL, strict byte 0c0h                  ; 3c c0
    4730     je short 03620h                           ; 74 12
     4758    je short 03661h                           ; 74 12
    47314759    mov ax, 00275h                            ; b8 75 02
    47324760    push ax                                   ; 50
     
    47354763    mov ax, strict word 00007h                ; b8 07 00
    47364764    push ax                                   ; 50
    4737     call 01976h                               ; e8 59 e3
     4765    call 01976h                               ; e8 18 e3
    47384766    add sp, strict byte 00006h                ; 83 c4 06
    47394767    xor si, si                                ; 31 f6
    4740     jmp short 03629h                          ; eb 05
     4768    jmp short 0366ah                          ; eb 05
    47414769    cmp si, strict byte 00007h                ; 83 fe 07
    4742     jnl short 03642h                          ; 7d 19
     4770    jnl short 03683h                          ; 7d 19
    47434771    mov dx, 003f5h                            ; ba f5 03
    47444772    in AL, DX                                 ; ec
     
    47504778    lea dx, [si+042h]                         ; 8d 54 42
    47514779    mov ax, strict word 00040h                ; b8 40 00
    4752     call 01660h                               ; e8 21 e0
     4780    call 01660h                               ; e8 e0 df
    47534781    inc si                                    ; 46
    4754     jmp short 03624h                          ; eb e2
     4782    jmp short 03665h                          ; eb e2
    47554783    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4756     jne short 0364bh                          ; 75 03
    4757     jmp near 03524h                           ; e9 d9 fe
     4784    jne short 0368ch                          ; 75 03
     4785    jmp near 03565h                           ; e9 d9 fe
    47584786    test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4759     je short 0365dh                           ; 74 0c
     4787    je short 0369eh                           ; 74 0c
    47604788    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    47614789    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    4762     jmp near 03679h                           ; e9 1c 00
     4790    jmp near 036bah                           ; e9 1c 00
    47634791    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4764     jmp short 03656h                          ; eb f2
     4792    jmp short 03697h                          ; eb f2
    47654793    mov dl, byte [bp-00ah]                    ; 8a 56 f6
    47664794    xor dh, dh                                ; 30 f6
    47674795    mov al, byte [bp-006h]                    ; 8a 46 fa
    47684796    xor ah, ah                                ; 30 e4
    4769     call 02ec9h                               ; e8 58 f8
     4797    call 02ec9h                               ; e8 17 f8
    47704798    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    47714799    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    47794807    mov al, byte [bp+015h]                    ; 8a 46 15
    47804808    xor ah, ah                                ; 30 e4
     4809    mov dx, ax                                ; 89 c2
    47814810    mov byte [bp-00ah], al                    ; 88 46 f6
    4782     mov dl, byte [bp+013h]                    ; 8a 56 13
    4783     xor dh, dh                                ; 30 f6
    4784     mov byte [bp-00ch], dl                    ; 88 56 f4
     4811    mov al, byte [bp+013h]                    ; 8a 46 13
     4812    mov byte [bp-00ch], al                    ; 88 46 f4
    47854813    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    47864814    mov byte [bp-006h], bl                    ; 88 5e fa
    47874815    cmp bl, 001h                              ; 80 fb 01
    4788     jnbe short 036b5h                         ; 77 14
    4789     cmp dl, 001h                              ; 80 fa 01
    4790     jnbe short 036b5h                         ; 77 0f
    4791     cmp AL, strict byte 04fh                  ; 3c 4f
    4792     jnbe short 036b5h                         ; 77 0b
     4816    jnbe short 036f6h                         ; 77 14
     4817    cmp AL, strict byte 001h                  ; 3c 01
     4818    jnbe short 036f6h                         ; 77 10
     4819    cmp dl, 04fh                              ; 80 fa 4f
     4820    jnbe short 036f6h                         ; 77 0b
    47934821    mov al, byte [bp-008h]                    ; 8a 46 f8
    47944822    test al, al                               ; 84 c0
    4795     je short 036b5h                           ; 74 04
     4823    je short 036f6h                           ; 74 04
    47964824    cmp AL, strict byte 012h                  ; 3c 12
    4797     jbe short 036cah                          ; 76 15
     4825    jbe short 0370bh                          ; 76 15
    47984826    mov ax, word [bp+016h]                    ; 8b 46 16
    47994827    xor ah, ah                                ; 30 e4
     
    48014829    mov word [bp+016h], ax                    ; 89 46 16
    48024830    mov ax, strict word 00001h                ; b8 01 00
    4803     call 02eb0h                               ; e8 ea f7
     4831    call 02eb0h                               ; e8 a9 f7
    48044832    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    48054833    mov al, byte [bp-006h]                    ; 8a 46 fa
    48064834    xor ah, ah                                ; 30 e4
    4807     call 031e4h                               ; e8 12 fb
     4835    call 03202h                               ; e8 ef fa
    48084836    test ax, ax                               ; 85 c0
    4809     jne short 036d9h                          ; 75 03
    4810     jmp near 032d2h                           ; e9 f9 fb
    4811     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4812     xor bh, bh                                ; 30 ff
    4813     mov ax, bx                                ; 89 d8
    4814     call 03013h                               ; e8 30 f9
     4837    jne short 0371ah                          ; 75 03
     4838    jmp near 032f2h                           ; e9 d8 fb
     4839    mov dl, byte [bp-006h]                    ; 8a 56 fa
     4840    xor dh, dh                                ; 30 f6
     4841    mov ax, dx                                ; 89 d0
     4842    call 03031h                               ; e8 0d f9
    48154843    test ax, ax                               ; 85 c0
    4816     jne short 036f3h                          ; 75 0c
    4817     mov ax, bx                                ; 89 d8
    4818     call 030eah                               ; e8 fe f9
     4844    jne short 03734h                          ; 75 0c
     4845    mov ax, dx                                ; 89 d0
     4846    call 03108h                               ; e8 db f9
    48194847    test ax, ax                               ; 85 c0
    4820     jne short 036f3h                          ; 75 03
    4821     jmp near 033a6h                           ; e9 b3 fc
     4848    jne short 03734h                          ; 75 03
     4849    jmp near 033dah                           ; e9 a6 fc
    48224850    mov CL, strict byte 00ch                  ; b1 0c
     4851    mov ax, word [bp+006h]                    ; 8b 46 06
     4852    shr ax, CL                                ; d3 e8
     4853    mov ch, al                                ; 88 c5
     4854    mov CL, strict byte 004h                  ; b1 04
    48234855    mov dx, word [bp+006h]                    ; 8b 56 06
    4824     shr dx, CL                                ; d3 ea
    4825     mov ch, dl                                ; 88 d5
    4826     mov CL, strict byte 004h                  ; b1 04
    4827     mov ax, word [bp+006h]                    ; 8b 46 06
    4828     sal ax, CL                                ; d3 e0
     4856    sal dx, CL                                ; d3 e2
    48294857    mov bx, word [bp+010h]                    ; 8b 5e 10
    4830     add bx, ax                                ; 01 c3
    4831     mov word [bp-012h], bx                    ; 89 5e ee
    4832     cmp ax, bx                                ; 39 d8
    4833     jbe short 03711h                          ; 76 02
     4858    add bx, dx                                ; 01 d3
     4859    mov word [bp-014h], bx                    ; 89 5e ec
     4860    cmp dx, bx                                ; 39 da
     4861    jbe short 03752h                          ; 76 02
    48344862    db  0feh, 0c5h
    48354863    ; inc ch                                    ; fe c5
     
    48404868    sal bx, 1                                 ; d1 e3
    48414869    dec bx                                    ; 4b
    4842     mov ax, word [bp-012h]                    ; 8b 46 ee
     4870    mov ax, word [bp-014h]                    ; 8b 46 ec
    48434871    add ax, bx                                ; 01 d8
    4844     cmp ax, word [bp-012h]                    ; 3b 46 ee
    4845     jnc short 03732h                          ; 73 0b
     4872    cmp ax, word [bp-014h]                    ; 3b 46 ec
     4873    jnc short 03773h                          ; 73 0b
    48464874    mov ax, word [bp+016h]                    ; 8b 46 16
    48474875    xor ah, ah                                ; 30 e4
    48484876    or ah, 009h                               ; 80 cc 09
    4849     jmp near 033ffh                           ; e9 cd fc
     4877    jmp near 0342fh                           ; e9 bc fc
    48504878    mov AL, strict byte 006h                  ; b0 06
    48514879    mov dx, strict word 0000ah                ; ba 0a 00
     
    48544882    mov dx, strict word 0000ch                ; ba 0c 00
    48554883    out DX, AL                                ; ee
    4856     mov al, byte [bp-012h]                    ; 8a 46 ee
     4884    mov al, byte [bp-014h]                    ; 8a 46 ec
    48574885    mov dx, strict word 00004h                ; ba 04 00
    48584886    out DX, AL                                ; ee
    4859     mov al, byte [bp-011h]                    ; 8a 46 ef
     4887    mov al, byte [bp-013h]                    ; 8a 46 ed
    48604888    out DX, AL                                ; ee
    48614889    xor al, al                                ; 30 c0
     
    48764904    mov dx, strict word 0000ah                ; ba 0a 00
    48774905    out DX, AL                                ; ee
    4878     mov al, byte [bp-006h]                    ; 8a 46 fa
    4879     xor ah, ah                                ; 30 e4
    4880     call 02f8fh                               ; e8 1d f8
     4906    mov bl, byte [bp-006h]                    ; 8a 5e fa
     4907    xor bh, bh                                ; 30 ff
     4908    mov ax, bx                                ; 89 d8
     4909    call 02fadh                               ; e8 f8 f7
    48814910    mov AL, strict byte 00fh                  ; b0 0f
    48824911    mov dx, 003f5h                            ; ba f5 03
     
    48864915    sal ax, 1                                 ; d1 e0
    48874916    sal ax, 1                                 ; d1 e0
    4888     mov bl, byte [bp-006h]                    ; 8a 5e fa
    4889     xor bh, bh                                ; 30 ff
    4890     or bx, ax                                 ; 09 c3
    4891     mov al, bl                                ; 88 d8
     4917    mov cl, bl                                ; 88 d9
     4918    xor ch, ch                                ; 30 ed
     4919    or cx, ax                                 ; 09 c1
     4920    mov al, cl                                ; 88 c8
    48924921    out DX, AL                                ; ee
    48934922    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    48954924    mov AL, strict byte 04dh                  ; b0 4d
    48964925    out DX, AL                                ; ee
    4897     mov al, bl                                ; 88 d8
     4926    mov al, cl                                ; 88 c8
    48984927    out DX, AL                                ; ee
    48994928    mov AL, strict byte 002h                  ; b0 02
     
    49054934    mov AL, strict byte 0f6h                  ; b0 f6
    49064935    out DX, AL                                ; ee
    4907     call 02f20h                               ; e8 7b f7
     4936    call 02f20h                               ; e8 39 f7
    49084937    test al, al                               ; 84 c0
    4909     jne short 037afh                          ; 75 06
    4910     call 02f67h                               ; e8 bb f7
    4911     jmp near 032d2h                           ; e9 23 fb
     4938    jne short 037f3h                          ; 75 08
     4939    mov ax, bx                                ; 89 d8
     4940    call 02f67h                               ; e8 77 f7
     4941    jmp near 032f2h                           ; e9 ff fa
    49124942    mov dx, 003f4h                            ; ba f4 03
    49134943    in AL, DX                                 ; ec
     
    49164946    and AL, strict byte 0c0h                  ; 24 c0
    49174947    cmp AL, strict byte 0c0h                  ; 3c c0
    4918     je short 037cdh                           ; 74 12
     4948    je short 03811h                           ; 74 12
    49194949    mov ax, 00275h                            ; b8 75 02
    49204950    push ax                                   ; 50
     
    49234953    mov ax, strict word 00007h                ; b8 07 00
    49244954    push ax                                   ; 50
    4925     call 01976h                               ; e8 ac e1
     4955    call 01976h                               ; e8 68 e1
    49264956    add sp, strict byte 00006h                ; 83 c4 06
    49274957    xor si, si                                ; 31 f6
    4928     jmp short 037d6h                          ; eb 05
     4958    jmp short 0381ah                          ; eb 05
    49294959    cmp si, strict byte 00007h                ; 83 fe 07
    4930     jnl short 037efh                          ; 7d 19
     4960    jnl short 03833h                          ; 7d 19
    49314961    mov dx, 003f5h                            ; ba f5 03
    49324962    in AL, DX                                 ; ec
     
    49384968    lea dx, [si+042h]                         ; 8d 54 42
    49394969    mov ax, strict word 00040h                ; b8 40 00
    4940     call 01660h                               ; e8 74 de
     4970    call 01660h                               ; e8 30 de
    49414971    inc si                                    ; 46
    4942     jmp short 037d1h                          ; eb e2
     4972    jmp short 03815h                          ; eb e2
    49434973    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
    4944     je short 03810h                           ; 74 1b
     4974    je short 03854h                           ; 74 1b
    49454975    test byte [bp-01bh], 002h                 ; f6 46 e5 02
    4946     je short 037feh                           ; 74 03
    4947     jmp near 03651h                           ; e9 53 fe
     4976    je short 03842h                           ; 74 03
     4977    jmp near 03692h                           ; e9 50 fe
    49484978    mov ax, 00275h                            ; b8 75 02
    49494979    push ax                                   ; 50
     
    49524982    mov ax, strict word 00007h                ; b8 07 00
    49534983    push ax                                   ; 50
    4954     call 01976h                               ; e8 69 e1
     4984    call 01976h                               ; e8 25 e1
    49554985    add sp, strict byte 00006h                ; 83 c4 06
    49564986    xor al, al                                ; 30 c0
    49574987    mov byte [bp+017h], al                    ; 88 46 17
    49584988    xor ah, ah                                ; 30 e4
    4959     call 02eb0h                               ; e8 96 f6
     4989    call 02eb0h                               ; e8 52 f6
    49604990    mov al, byte [bp-006h]                    ; 8a 46 fa
    49614991    xor ah, ah                                ; 30 e4
    49624992    xor dx, dx                                ; 31 d2
    4963     call 02ec9h                               ; e8 a5 f6
    4964     jmp near 039fdh                           ; e9 d6 01
     4993    call 02ec9h                               ; e8 61 f6
     4994    jmp near 03a41h                           ; e9 d6 01
    49654995    mov byte [bp-006h], al                    ; 88 46 fa
    49664996    cmp AL, strict byte 001h                  ; 3c 01
    4967     jbe short 03856h                          ; 76 28
     4997    jbe short 0389ah                          ; 76 28
    49684998    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    49694999    mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
     
    49755005    xor ah, ah                                ; 30 e4
    49765006    mov word [bp+012h], ax                    ; 89 46 12
    4977     jmp near 03978h                           ; e9 22 01
     5007    jmp near 039bch                           ; e9 22 01
    49785008    mov ax, strict word 00010h                ; b8 10 00
    4979     call 016aeh                               ; e8 52 de
     5009    call 016aeh                               ; e8 0e de
    49805010    mov ch, al                                ; 88 c5
    49815011    xor ah, ah                                ; 30 e4
    49825012    test AL, strict byte 0f0h                 ; a8 f0
    4983     je short 03866h                           ; 74 02
     5013    je short 038aah                           ; 74 02
    49845014    mov AH, strict byte 001h                  ; b4 01
    49855015    test ch, 00fh                             ; f6 c5 0f
    4986     je short 0386dh                           ; 74 02
     5016    je short 038b1h                           ; 74 02
    49875017    db  0feh, 0c4h
    49885018    ; inc ah                                    ; fe c4
    49895019    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    4990     jne short 03879h                          ; 75 06
     5020    jne short 038bdh                          ; 75 06
    49915021    mov CL, strict byte 004h                  ; b1 04
    49925022    shr ch, CL                                ; d2 ed
    4993     jmp short 0387ch                          ; eb 03
     5023    jmp short 038c0h                          ; eb 03
    49945024    and ch, 00fh                              ; 80 e5 0f
    49955025    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    50065036    mov word [bp+012h], ax                    ; 89 46 12
    50075037    cmp ch, 003h                              ; 80 fd 03
    5008     jc short 038b8h                           ; 72 15
    5009     jbe short 038dfh                          ; 76 3a
     5038    jc short 038fch                           ; 72 15
     5039    jbe short 03923h                          ; 76 3a
    50105040    cmp ch, 005h                              ; 80 fd 05
    5011     jc short 038e6h                           ; 72 3c
    5012     jbe short 038edh                          ; 76 41
     5041    jc short 0392ah                           ; 72 3c
     5042    jbe short 03931h                          ; 76 41
    50135043    cmp ch, 00fh                              ; 80 fd 0f
    5014     je short 038fbh                           ; 74 4a
     5044    je short 0393fh                           ; 74 4a
    50155045    cmp ch, 00eh                              ; 80 fd 0e
    5016     je short 038f4h                           ; 74 3e
    5017     jmp short 03902h                          ; eb 4a
     5046    je short 03938h                           ; 74 3e
     5047    jmp short 03946h                          ; eb 4a
    50185048    cmp ch, 002h                              ; 80 fd 02
    5019     je short 038d8h                           ; 74 1b
     5049    je short 0391ch                           ; 74 1b
    50205050    cmp ch, 001h                              ; 80 fd 01
    5021     je short 038d1h                           ; 74 0f
     5051    je short 03915h                           ; 74 0f
    50225052    test ch, ch                               ; 84 ed
    5023     jne short 03902h                          ; 75 3c
     5053    jne short 03946h                          ; 75 3c
    50245054    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    50255055    mov byte [bp+013h], 000h                  ; c6 46 13 00
    5026     jmp short 03914h                          ; eb 43
     5056    jmp short 03958h                          ; eb 43
    50275057    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    5028     jmp short 03914h                          ; eb 3c
     5058    jmp short 03958h                          ; eb 3c
    50295059    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    5030     jmp short 03914h                          ; eb 35
     5060    jmp short 03958h                          ; eb 35
    50315061    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    5032     jmp short 03914h                          ; eb 2e
     5062    jmp short 03958h                          ; eb 2e
    50335063    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    5034     jmp short 03914h                          ; eb 27
     5064    jmp short 03958h                          ; eb 27
    50355065    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    5036     jmp short 03914h                          ; eb 20
     5066    jmp short 03958h                          ; eb 20
    50375067    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    5038     jmp short 03914h                          ; eb 19
     5068    jmp short 03958h                          ; eb 19
    50395069    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    5040     jmp short 03914h                          ; eb 12
     5070    jmp short 03958h                          ; eb 12
    50415071    mov ax, 00275h                            ; b8 75 02
    50425072    push ax                                   ; 50
     
    50455075    mov ax, strict word 00007h                ; b8 07 00
    50465076    push ax                                   ; 50
    5047     call 01976h                               ; e8 65 e0
     5077    call 01976h                               ; e8 21 e0
    50485078    add sp, strict byte 00006h                ; 83 c4 06
    50495079    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    50505080    mov al, ch                                ; 88 e8
    50515081    xor ah, ah                                ; 30 e4
    5052     call 03b8bh                               ; e8 6b 02
     5082    call 03bd1h                               ; e8 6d 02
    50535083    mov word [bp+008h], ax                    ; 89 46 08
    5054     jmp near 039fdh                           ; e9 d7 00
     5084    jmp near 03a41h                           ; e9 d7 00
    50555085    mov byte [bp-006h], al                    ; 88 46 fa
    50565086    cmp AL, strict byte 001h                  ; 3c 01
    5057     jbe short 03932h                          ; 76 05
     5087    jbe short 03976h                          ; 76 05
    50585088    mov word [bp+016h], si                    ; 89 76 16
    5059     jmp short 03978h                          ; eb 46
     5089    jmp short 039bch                          ; eb 46
    50605090    mov ax, strict word 00010h                ; b8 10 00
    5061     call 016aeh                               ; e8 76 dd
     5091    call 016aeh                               ; e8 32 dd
    50625092    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5063     jne short 03946h                          ; 75 08
     5093    jne short 0398ah                          ; 75 08
    50645094    mov CL, strict byte 004h                  ; b1 04
    50655095    mov ch, al                                ; 88 c5
    50665096    shr ch, CL                                ; d2 ed
    5067     jmp short 0394bh                          ; eb 05
     5097    jmp short 0398fh                          ; eb 05
    50685098    mov ch, al                                ; 88 c5
    50695099    and ch, 00fh                              ; 80 e5 0f
     
    50725102    xor ah, ah                                ; 30 e4
    50735103    test ch, ch                               ; 84 ed
    5074     je short 03965h                           ; 74 0d
     5104    je short 039a9h                           ; 74 0d
    50755105    cmp ch, 001h                              ; 80 fd 01
    5076     jbe short 03962h                          ; 76 05
     5106    jbe short 039a6h                          ; 76 05
    50775107    or ah, 002h                               ; 80 cc 02
    5078     jmp short 03965h                          ; eb 03
     5108    jmp short 039a9h                          ; eb 03
    50795109    or ah, 001h                               ; 80 cc 01
    50805110    mov word [bp+016h], ax                    ; 89 46 16
    5081     jmp near 03679h                           ; e9 0e fd
     5111    jmp near 036bah                           ; e9 0b fd
    50825112    cmp AL, strict byte 001h                  ; 3c 01
    5083     jbe short 0397eh                          ; 76 0f
     5113    jbe short 039c2h                          ; 76 0f
    50845114    mov word [bp+016h], si                    ; 89 76 16
    50855115    mov ax, strict word 00001h                ; b8 01 00
    5086     call 02eb0h                               ; e8 38 f5
     5116    call 02eb0h                               ; e8 f4 f4
    50875117    mov word [bp+01ch], dx                    ; 89 56 1c
    5088     jmp near 03679h                           ; e9 fb fc
     5118    jmp near 036bah                           ; e9 f8 fc
    50895119    mov ax, word [bp+016h]                    ; 8b 46 16
    50905120    xor ah, ah                                ; 30 e4
     
    50925122    mov word [bp+016h], ax                    ; 89 46 16
    50935123    mov ax, strict word 00006h                ; b8 06 00
    5094     jmp near 0329eh                           ; e9 0f f9
     5124    jmp near 032beh                           ; e9 eb f8
    50955125    mov byte [bp-006h], al                    ; 88 46 fa
    50965126    mov bl, ch                                ; 88 eb
    50975127    cmp AL, strict byte 001h                  ; 3c 01
    5098     jnbe short 0396fh                         ; 77 d7
     5128    jnbe short 039b3h                         ; 77 d7
    50995129    mov al, byte [bp-006h]                    ; 8a 46 fa
    51005130    xor ah, ah                                ; 30 e4
    5101     call 031e4h                               ; e8 44 f8
     5131    call 03202h                               ; e8 1e f8
    51025132    test ax, ax                               ; 85 c0
    5103     jne short 039a7h                          ; 75 03
    5104     jmp near 032d2h                           ; e9 2b f9
     5133    jne short 039ebh                          ; 75 03
     5134    jmp near 032f2h                           ; e9 07 f9
    51055135    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5106     je short 039b2h                           ; 74 05
     5136    je short 039f6h                           ; 74 05
    51075137    mov dx, 00091h                            ; ba 91 00
    5108     jmp short 039b5h                          ; eb 03
     5138    jmp short 039f9h                          ; eb 03
    51095139    mov dx, 00090h                            ; ba 90 00
    5110     mov word [bp-012h], dx                    ; 89 56 ee
     5140    mov word [bp-014h], dx                    ; 89 56 ec
    51115141    mov ax, strict word 00040h                ; b8 40 00
    5112     call 01652h                               ; e8 94 dc
     5142    call 01652h                               ; e8 50 dc
    51135143    and AL, strict byte 00fh                  ; 24 0f
    51145144    cmp bl, 002h                              ; 80 fb 02
    5115     jc short 039d4h                           ; 72 0f
    5116     jbe short 039e0h                          ; 76 19
     5145    jc short 03a18h                           ; 72 0f
     5146    jbe short 03a24h                          ; 76 19
    51175147    cmp bl, 004h                              ; 80 fb 04
    5118     je short 039dch                           ; 74 10
     5148    je short 03a20h                           ; 74 10
    51195149    cmp bl, 003h                              ; 80 fb 03
    5120     je short 039e4h                           ; 74 13
    5121     jmp near 03290h                           ; e9 bc f8
     5150    je short 03a28h                           ; 74 13
     5151    jmp near 032b0h                           ; e9 98 f8
    51225152    cmp bl, 001h                              ; 80 fb 01
    5123     je short 039dch                           ; 74 03
    5124     jmp near 03290h                           ; e9 b4 f8
     5153    je short 03a20h                           ; 74 03
     5154    jmp near 032b0h                           ; e9 90 f8
    51255155    or AL, strict byte 090h                   ; 0c 90
    5126     jmp short 039e6h                          ; eb 06
     5156    jmp short 03a2ah                          ; eb 06
    51275157    or AL, strict byte 070h                   ; 0c 70
    5128     jmp short 039e6h                          ; eb 02
     5158    jmp short 03a2ah                          ; eb 02
    51295159    or AL, strict byte 010h                   ; 0c 10
    51305160    mov bl, al                                ; 88 c3
    51315161    xor bh, bh                                ; 30 ff
    5132     mov dx, word [bp-012h]                    ; 8b 56 ee
     5162    mov dx, word [bp-014h]                    ; 8b 56 ec
    51335163    mov ax, strict word 00040h                ; b8 40 00
    5134     call 01660h                               ; e8 6d dc
     5164    call 01660h                               ; e8 29 dc
    51355165    xor al, al                                ; 30 c0
    51365166    mov byte [bp+017h], al                    ; 88 46 17
    51375167    xor ah, ah                                ; 30 e4
    5138     call 02eb0h                               ; e8 b3 f4
     5168    call 02eb0h                               ; e8 6f f4
    51395169    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    5140     jmp near 03679h                           ; e9 75 fc
     5170    jmp near 036bah                           ; e9 72 fc
    51415171    mov byte [bp-006h], al                    ; 88 46 fa
    5142     mov ah, cl                                ; 88 cc
     5172    mov ah, byte [bp+014h]                    ; 8a 66 14
    51435173    and ah, 03fh                              ; 80 e4 3f
    51445174    mov byte [bp-008h], ah                    ; 88 66 f8
    5145     mov bl, cl                                ; 88 cb
     5175    mov bl, byte [bp-010h]                    ; 8a 5e f0
    51465176    mov CL, strict byte 006h                  ; b1 06
    51475177    sar bx, CL                                ; d3 fb
    51485178    mov bh, bl                                ; 88 df
    51495179    xor bl, bl                                ; 30 db
    5150     add bx, word [bp-014h]                    ; 03 5e ec
     5180    add bx, word [bp-012h]                    ; 03 5e ee
    51515181    mov byte [bp-00ah], bl                    ; 88 5e f6
    51525182    cmp AL, strict byte 001h                  ; 3c 01
    5153     jbe short 03a26h                          ; 76 03
    5154     jmp near 0396fh                           ; e9 49 ff
     5183    jbe short 03a6ch                          ; 76 03
     5184    jmp near 039b3h                           ; e9 47 ff
    51555185    mov al, byte [bp-006h]                    ; 8a 46 fa
    51565186    xor ah, ah                                ; 30 e4
    5157     call 031e4h                               ; e8 b6 f7
     5187    call 03202h                               ; e8 8e f7
    51585188    test ax, ax                               ; 85 c0
    5159     jne short 03a35h                          ; 75 03
    5160     jmp near 032d2h                           ; e9 9d f8
    5161     mov bl, byte [bp-006h]                    ; 8a 5e fa
    5162     xor bh, bh                                ; 30 ff
    5163     mov ax, bx                                ; 89 d8
    5164     call 03013h                               ; e8 d4 f5
     5189    jne short 03a7bh                          ; 75 03
     5190    jmp near 032f2h                           ; e9 77 f8
     5191    mov dl, byte [bp-006h]                    ; 8a 56 fa
     5192    xor dh, dh                                ; 30 f6
     5193    mov ax, dx                                ; 89 d0
     5194    call 03031h                               ; e8 ac f5
    51655195    test ax, ax                               ; 85 c0
    5166     jne short 03a5dh                          ; 75 1a
    5167     mov ax, bx                                ; 89 d8
    5168     call 030eah                               ; e8 a2 f6
     5196    jne short 03aa3h                          ; 75 1a
     5197    mov ax, dx                                ; 89 d0
     5198    call 03108h                               ; e8 7a f6
    51695199    test ax, ax                               ; 85 c0
    5170     jne short 03a5dh                          ; 75 11
     5200    jne short 03aa3h                          ; 75 11
    51715201    mov ax, word [bp+016h]                    ; 8b 46 16
    51725202    xor ah, ah                                ; 30 e4
     
    51745204    mov word [bp+016h], ax                    ; 89 46 16
    51755205    mov ax, strict word 0000ch                ; b8 0c 00
    5176     jmp near 0329eh                           ; e9 41 f8
     5206    jmp near 032beh                           ; e9 1b f8
    51775207    mov ax, strict word 00010h                ; b8 10 00
    5178     call 016aeh                               ; e8 4b dc
     5208    call 016aeh                               ; e8 05 dc
    51795209    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5180     jne short 03a71h                          ; 75 08
     5210    jne short 03ab7h                          ; 75 08
    51815211    mov CL, strict byte 004h                  ; b1 04
    51825212    mov ch, al                                ; 88 c5
    51835213    shr ch, CL                                ; d2 ed
    5184     jmp short 03a76h                          ; eb 05
     5214    jmp short 03abch                          ; eb 05
    51855215    mov ch, al                                ; 88 c5
    51865216    and ch, 00fh                              ; 80 e5 0f
    51875217    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    5188     je short 03a81h                           ; 74 05
     5218    je short 03ac7h                           ; 74 05
    51895219    mov dx, 00091h                            ; ba 91 00
    5190     jmp short 03a84h                          ; eb 03
     5220    jmp short 03acah                          ; eb 03
    51915221    mov dx, 00090h                            ; ba 90 00
    5192     mov word [bp-012h], dx                    ; 89 56 ee
     5222    mov word [bp-014h], dx                    ; 89 56 ec
    51935223    mov ax, strict word 00040h                ; b8 40 00
    5194     call 01652h                               ; e8 c5 db
     5224    call 01652h                               ; e8 7f db
    51955225    and AL, strict byte 00fh                  ; 24 0f
    51965226    cmp ch, 003h                              ; 80 fd 03
    5197     jc short 03ab0h                           ; 72 1c
     5227    jc short 03af6h                           ; 72 1c
    51985228    mov ah, al                                ; 88 c4
    51995229    or ah, 090h                               ; 80 cc 90
    52005230    cmp ch, 003h                              ; 80 fd 03
    5201     jbe short 03aech                          ; 76 4e
     5231    jbe short 03b32h                          ; 76 4e
    52025232    mov dl, al                                ; 88 c2
    52035233    or dl, 010h                               ; 80 ca 10
    52045234    cmp ch, 005h                              ; 80 fd 05
    5205     je short 03aeah                           ; 74 42
     5235    je short 03b30h                           ; 74 42
    52065236    cmp ch, 004h                              ; 80 fd 04
    5207     je short 03afah                           ; 74 4d
    5208     jmp near 03b36h                           ; e9 86 00
     5237    je short 03b40h                           ; 74 4d
     5238    jmp near 03b7ch                           ; e9 86 00
    52095239    cmp ch, 002h                              ; 80 fd 02
    5210     je short 03acah                           ; 74 15
     5240    je short 03b10h                           ; 74 15
    52115241    cmp ch, 001h                              ; 80 fd 01
    5212     jne short 03afeh                          ; 75 44
     5242    jne short 03b44h                          ; 75 44
    52135243    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5214     jne short 03afeh                          ; 75 3e
     5244    jne short 03b44h                          ; 75 3e
    52155245    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5216     jne short 03b16h                          ; 75 50
     5246    jne short 03b5ch                          ; 75 50
    52175247    or AL, strict byte 090h                   ; 0c 90
    5218     jmp short 03b16h                          ; eb 4c
     5248    jmp short 03b5ch                          ; eb 4c
    52195249    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
    5220     jne short 03adah                          ; 75 0a
     5250    jne short 03b20h                          ; 75 0a
    52215251    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5222     jne short 03adah                          ; 75 04
     5252    jne short 03b20h                          ; 75 04
    52235253    or AL, strict byte 070h                   ; 0c 70
    5224     jmp short 03b16h                          ; eb 3c
     5254    jmp short 03b5ch                          ; eb 3c
    52255255    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5226     jne short 03b16h                          ; 75 36
     5256    jne short 03b5ch                          ; 75 36
    52275257    cmp byte [bp-008h], 00fh                  ; 80 7e f8 0f
    5228     jne short 03b36h                          ; 75 50
     5258    jne short 03b7ch                          ; 75 50
    52295259    or AL, strict byte 010h                   ; 0c 10
    5230     jmp short 03b36h                          ; eb 4c
    5231     jmp short 03b18h                          ; eb 2c
     5260    jmp short 03b7ch                          ; eb 4c
     5261    jmp short 03b5eh                          ; eb 2c
    52325262    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5233     jne short 03b36h                          ; 75 44
     5263    jne short 03b7ch                          ; 75 44
    52345264    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5235     je short 03afch                           ; 74 04
    5236     jmp short 03b36h                          ; eb 3c
    5237     jmp short 03b00h                          ; eb 04
     5265    je short 03b42h                           ; 74 04
     5266    jmp short 03b7ch                          ; eb 3c
     5267    jmp short 03b46h                          ; eb 04
    52385268    mov al, ah                                ; 88 e0
    5239     jmp short 03b36h                          ; eb 36
     5269    jmp short 03b7ch                          ; eb 36
    52405270    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5241     jne short 03b36h                          ; 75 30
     5271    jne short 03b7ch                          ; 75 30
    52425272    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5243     jne short 03b0eh                          ; 75 02
    5244     jmp short 03afch                          ; eb ee
     5273    jne short 03b54h                          ; 75 02
     5274    jmp short 03b42h                          ; eb ee
    52455275    cmp byte [bp-008h], 012h                  ; 80 7e f8 12
    5246     jne short 03b36h                          ; 75 22
     5276    jne short 03b7ch                          ; 75 22
    52475277    mov al, dl                                ; 88 d0
    5248     jmp short 03b36h                          ; eb 1e
     5278    jmp short 03b7ch                          ; eb 1e
    52495279    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
    5250     jne short 03b36h                          ; 75 18
     5280    jne short 03b7ch                          ; 75 18
    52515281    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
    5252     jne short 03b26h                          ; 75 02
    5253     jmp short 03afch                          ; eb d6
     5282    jne short 03b6ch                          ; 75 02
     5283    jmp short 03b42h                          ; eb d6
    52545284    cmp byte [bp-008h], 012h                  ; 80 7e f8 12
    5255     jne short 03b2eh                          ; 75 02
    5256     jmp short 03b14h                          ; eb e6
     5285    jne short 03b74h                          ; 75 02
     5286    jmp short 03b5ah                          ; eb e6
    52575287    cmp byte [bp-008h], 024h                  ; 80 7e f8 24
    5258     jne short 03b36h                          ; 75 02
     5288    jne short 03b7ch                          ; 75 02
    52595289    or AL, strict byte 0d0h                   ; 0c d0
    52605290    mov dl, al                                ; 88 c2
     
    52635293    sar dx, CL                                ; d3 fa
    52645294    test dl, 001h                             ; f6 c2 01
    5265     jne short 03b46h                          ; 75 03
    5266     jmp near 03a4ch                           ; e9 06 ff
     5295    jne short 03b8ch                          ; 75 03
     5296    jmp near 03a92h                           ; e9 06 ff
    52675297    mov bl, al                                ; 88 c3
    52685298    xor bh, bh                                ; 30 ff
    5269     mov dx, word [bp-012h]                    ; 8b 56 ee
     5299    mov dx, word [bp-014h]                    ; 8b 56 ec
    52705300    mov ax, strict word 00040h                ; b8 40 00
    5271     call 01660h                               ; e8 0d db
     5301    call 01660h                               ; e8 c7 da
    52725302    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    52735303    mov al, ch                                ; 88 e8
    52745304    xor ah, ah                                ; 30 e4
    5275     call 03b8bh                               ; e8 2c 00
     5305    call 03bd1h                               ; e8 2c 00
    52765306    mov word [bp+008h], ax                    ; 89 46 08
    5277     jmp near 039f3h                           ; e9 8e fe
     5307    jmp near 03a37h                           ; e9 8c fe
    52785308    mov bx, 00da0h                            ; bb a0 0d
    52795309    mov cx, ds                                ; 8c d9
    52805310    mov ax, strict word 00004h                ; b8 04 00
    5281     call 01933h                               ; e8 c3 dd
     5311    call 01933h                               ; e8 7d dd
    52825312    mov al, byte [bp+017h]                    ; 8a 46 17
    52835313    xor ah, ah                                ; 30 e4
     
    52895319    mov ax, strict word 00004h                ; b8 04 00
    52905320    push ax                                   ; 50
    5291     call 01976h                               ; e8 f1 dd
     5321    call 01976h                               ; e8 ab dd
    52925322    add sp, strict byte 00008h                ; 83 c4 08
    5293     jmp near 03290h                           ; e9 05 f7
    5294 get_floppy_dpt_:                             ; 0xf3b8b LB 0x32
     5323    jmp near 032b0h                           ; e9 df f6
     5324get_floppy_dpt_:                             ; 0xf3bd1 LB 0x32
    52955325    push bx                                   ; 53
    52965326    push dx                                   ; 52
     
    52995329    mov dl, al                                ; 88 c2
    53005330    xor ax, ax                                ; 31 c0
    5301     jmp short 03b9ch                          ; eb 06
     5331    jmp short 03be2h                          ; eb 06
    53025332    inc ax                                    ; 40
    53035333    cmp ax, strict word 00007h                ; 3d 07 00
    5304     jnc short 03bb6h                          ; 73 1a
     5334    jnc short 03bfch                          ; 73 1a
    53055335    mov bx, ax                                ; 89 c3
    53065336    sal bx, 1                                 ; d1 e3
    53075337    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5308     jne short 03b96h                          ; 75 f0
     5338    jne short 03bdch                          ; 75 f0
    53095339    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
    53105340    xor ah, ah                                ; 30 e4
     
    53125342    imul bx                                   ; f7 eb
    53135343    add ax, strict word 00000h                ; 05 00 00
    5314     jmp short 03bb9h                          ; eb 03
     5344    jmp short 03bffh                          ; eb 03
    53155345    mov ax, strict word 00041h                ; b8 41 00
    53165346    pop bp                                    ; 5d
     
    53185348    pop bx                                    ; 5b
    53195349    retn                                      ; c3
    5320 dummy_soft_reset_:                           ; 0xf3bbd LB 0x7
     5350dummy_soft_reset_:                           ; 0xf3c03 LB 0x7
    53215351    push bp                                   ; 55
    53225352    mov bp, sp                                ; 89 e5
     
    53245354    pop bp                                    ; 5d
    53255355    retn                                      ; c3
    5326 _cdemu_init:                                 ; 0xf3bc4 LB 0x18
     5356_cdemu_init:                                 ; 0xf3c0a LB 0x18
    53275357    push bp                                   ; 55
    53285358    mov bp, sp                                ; 89 e5
    53295359    mov dx, strict word 0000eh                ; ba 0e 00
    53305360    mov ax, strict word 00040h                ; b8 40 00
    5331     call 0166eh                               ; e8 9e da
     5361    call 0166eh                               ; e8 58 da
    53325362    xor bx, bx                                ; 31 db
    53335363    mov dx, 00366h                            ; ba 66 03
    5334     call 01660h                               ; e8 88 da
     5364    call 01660h                               ; e8 42 da
    53355365    mov sp, bp                                ; 89 ec
    53365366    pop bp                                    ; 5d
    53375367    retn                                      ; c3
    5338 _cdemu_isactive:                             ; 0xf3bdc LB 0x16
     5368_cdemu_isactive:                             ; 0xf3c22 LB 0x16
    53395369    push bp                                   ; 55
    53405370    mov bp, sp                                ; 89 e5
    53415371    mov dx, strict word 0000eh                ; ba 0e 00
    53425372    mov ax, strict word 00040h                ; b8 40 00
    5343     call 0166eh                               ; e8 86 da
     5373    call 0166eh                               ; e8 40 da
    53445374    mov dx, 00366h                            ; ba 66 03
    5345     call 01652h                               ; e8 64 da
     5375    call 01652h                               ; e8 1e da
    53465376    mov sp, bp                                ; 89 ec
    53475377    pop bp                                    ; 5d
    53485378    retn                                      ; c3
    5349 _cdemu_emulated_drive:                       ; 0xf3bf2 LB 0x16
     5379_cdemu_emulated_drive:                       ; 0xf3c38 LB 0x16
    53505380    push bp                                   ; 55
    53515381    mov bp, sp                                ; 89 e5
    53525382    mov dx, strict word 0000eh                ; ba 0e 00
    53535383    mov ax, strict word 00040h                ; b8 40 00
    5354     call 0166eh                               ; e8 70 da
     5384    call 0166eh                               ; e8 2a da
    53555385    mov dx, 00368h                            ; ba 68 03
    5356     call 01652h                               ; e8 4e da
     5386    call 01652h                               ; e8 08 da
    53575387    mov sp, bp                                ; 89 ec
    53585388    pop bp                                    ; 5d
    53595389    retn                                      ; c3
    5360 _int13_eltorito:                             ; 0xf3c08 LB 0x191
     5390_int13_eltorito:                             ; 0xf3c4e LB 0x191
    53615391    push bp                                   ; 55
    53625392    mov bp, sp                                ; 89 e5
     
    53655395    mov dx, strict word 0000eh                ; ba 0e 00
    53665396    mov ax, strict word 00040h                ; b8 40 00
    5367     call 0166eh                               ; e8 58 da
     5397    call 0166eh                               ; e8 12 da
    53685398    mov si, 00366h                            ; be 66 03
    53695399    mov di, ax                                ; 89 c7
     
    53715401    xor ah, ah                                ; 30 e4
    53725402    cmp ax, strict word 0004bh                ; 3d 4b 00
    5373     jc short 03c2fh                           ; 72 0a
    5374     jbe short 03c5ah                          ; 76 33
     5403    jc short 03c75h                           ; 72 0a
     5404    jbe short 03ca0h                          ; 76 33
    53755405    cmp ax, strict word 0004dh                ; 3d 4d 00
    5376     jbe short 03c34h                          ; 76 08
    5377     jmp near 03d5fh                           ; e9 30 01
     5406    jbe short 03c7ah                          ; 76 08
     5407    jmp near 03da5h                           ; e9 30 01
    53785408    cmp ax, strict word 0004ah                ; 3d 4a 00
    5379     jne short 03c57h                          ; 75 23
     5409    jne short 03c9dh                          ; 75 23
    53805410    mov bx, 00da0h                            ; bb a0 0d
    53815411    mov cx, ds                                ; 8c d9
    53825412    mov ax, strict word 00004h                ; b8 04 00
    5383     call 01933h                               ; e8 f4 dc
     5413    call 01933h                               ; e8 ae dc
    53845414    push word [bp+016h]                       ; ff 76 16
    53855415    mov ax, 002fch                            ; b8 fc 02
     
    53895419    mov ax, strict word 00004h                ; b8 04 00
    53905420    push ax                                   ; 50
    5391     call 01976h                               ; e8 25 dd
     5421    call 01976h                               ; e8 df dc
    53925422    add sp, strict byte 00008h                ; 83 c4 08
    5393     jmp near 03d7ah                           ; e9 23 01
    5394     jmp near 03d5fh                           ; e9 05 01
     5423    jmp near 03dc0h                           ; e9 23 01
     5424    jmp near 03da5h                           ; e9 05 01
    53955425    mov dx, word [bp+00ah]                    ; 8b 56 0a
    53965426    mov ax, word [bp+004h]                    ; 8b 46 04
    53975427    mov bx, strict word 00013h                ; bb 13 00
    5398     call 01660h                               ; e8 fa d9
     5428    call 01660h                               ; e8 b4 d9
    53995429    mov es, di                                ; 8e c7
    54005430    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
     
    54035433    inc dx                                    ; 42
    54045434    mov ax, word [bp+004h]                    ; 8b 46 04
    5405     call 01660h                               ; e8 e8 d9
     5435    call 01660h                               ; e8 a2 d9
    54065436    mov es, di                                ; 8e c7
    54075437    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
     
    54115441    inc dx                                    ; 42
    54125442    mov ax, word [bp+004h]                    ; 8b 46 04
    5413     call 01660h                               ; e8 d5 d9
     5443    call 01660h                               ; e8 8f d9
    54145444    mov es, di                                ; 8e c7
    54155445    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
     
    54185448    add dx, strict byte 00003h                ; 83 c2 03
    54195449    mov ax, word [bp+004h]                    ; 8b 46 04
    5420     call 01660h                               ; e8 c1 d9
     5450    call 01660h                               ; e8 7b d9
    54215451    mov es, di                                ; 8e c7
    54225452    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    54255455    add dx, strict byte 00004h                ; 83 c2 04
    54265456    mov ax, word [bp+004h]                    ; 8b 46 04
    5427     call 0169ch                               ; e8 e7 d9
     5457    call 0169ch                               ; e8 a1 d9
    54285458    mov es, di                                ; 8e c7
    54295459    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    54315461    add dx, strict byte 00008h                ; 83 c2 08
    54325462    mov ax, word [bp+004h]                    ; 8b 46 04
    5433     call 0167ch                               ; e8 b5 d9
     5463    call 0167ch                               ; e8 6f d9
    54345464    mov es, di                                ; 8e c7
    54355465    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    54375467    add dx, strict byte 0000ah                ; 83 c2 0a
    54385468    mov ax, word [bp+004h]                    ; 8b 46 04
    5439     call 0167ch                               ; e8 a3 d9
     5469    call 0167ch                               ; e8 5d d9
    54405470    mov es, di                                ; 8e c7
    54415471    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    54435473    add dx, strict byte 0000ch                ; 83 c2 0c
    54445474    mov ax, word [bp+004h]                    ; 8b 46 04
    5445     call 0167ch                               ; e8 91 d9
     5475    call 0167ch                               ; e8 4b d9
    54465476    mov es, di                                ; 8e c7
    54475477    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    54495479    add dx, strict byte 0000eh                ; 83 c2 0e
    54505480    mov ax, word [bp+004h]                    ; 8b 46 04
    5451     call 0167ch                               ; e8 7f d9
     5481    call 0167ch                               ; e8 39 d9
    54525482    mov es, di                                ; 8e c7
    54535483    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
     
    54565486    add dx, strict byte 00010h                ; 83 c2 10
    54575487    mov ax, word [bp+004h]                    ; 8b 46 04
    5458     call 01660h                               ; e8 4f d9
     5488    call 01660h                               ; e8 09 d9
    54595489    mov es, di                                ; 8e c7
    54605490    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
     
    54635493    add dx, strict byte 00011h                ; 83 c2 11
    54645494    mov ax, word [bp+004h]                    ; 8b 46 04
    5465     call 01660h                               ; e8 3b d9
     5495    call 01660h                               ; e8 f5 d8
    54665496    mov es, di                                ; 8e c7
    54675497    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
     
    54705500    add dx, strict byte 00012h                ; 83 c2 12
    54715501    mov ax, word [bp+004h]                    ; 8b 46 04
    5472     call 01660h                               ; e8 27 d9
     5502    call 01660h                               ; e8 e1 d8
    54735503    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5474     jne short 03d45h                          ; 75 06
     5504    jne short 03d8bh                          ; 75 06
    54755505    mov es, di                                ; 8e c7
    54765506    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    54795509    mov dx, strict word 00074h                ; ba 74 00
    54805510    mov ax, strict word 00040h                ; b8 40 00
    5481     call 01660h                               ; e8 0c d9
     5511    call 01660h                               ; e8 c6 d8
    54825512    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    54835513    lea sp, [bp-004h]                         ; 8d 66 fc
     
    54895519    mov cx, ds                                ; 8c d9
    54905520    mov ax, strict word 00004h                ; b8 04 00
    5491     call 01933h                               ; e8 c9 db
     5521    call 01933h                               ; e8 83 db
    54925522    mov al, byte [bp+017h]                    ; 8a 46 17
    54935523    xor ah, ah                                ; 30 e4
     
    54965526    push ax                                   ; 50
    54975527    mov ax, 00333h                            ; b8 33 03
    5498     jmp near 03c49h                           ; e9 cf fe
     5528    jmp near 03c8fh                           ; e9 cf fe
    54995529    mov ax, word [bp+016h]                    ; 8b 46 16
    55005530    xor ah, ah                                ; 30 e4
     
    55055535    mov dx, strict word 00074h                ; ba 74 00
    55065536    mov ax, strict word 00040h                ; b8 40 00
    5507     call 01660h                               ; e8 cd d8
     5537    call 01660h                               ; e8 87 d8
    55085538    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5509     jmp short 03d58h                          ; eb bf
    5510 device_is_cdrom_:                            ; 0xf3d99 LB 0x3f
     5539    jmp short 03d9eh                          ; eb bf
     5540device_is_cdrom_:                            ; 0xf3ddf LB 0x3f
    55115541    push bp                                   ; 55
    55125542    mov bp, sp                                ; 89 e5
     
    55175547    mov dx, strict word 0000eh                ; ba 0e 00
    55185548    mov ax, strict word 00040h                ; b8 40 00
    5519     call 0166eh                               ; e8 c4 d8
     5549    call 0166eh                               ; e8 7e d8
    55205550    mov cx, ax                                ; 89 c1
    55215551    cmp bl, 010h                              ; 80 fb 10
    5522     jc short 03db5h                           ; 72 04
     5552    jc short 03dfbh                           ; 72 04
    55235553    xor ax, ax                                ; 31 c0
    5524     jmp short 03dd0h                          ; eb 1b
     5554    jmp short 03e16h                          ; eb 1b
    55255555    mov al, bl                                ; 88 d8
    55265556    xor ah, ah                                ; 30 e4
     
    55315561    add bx, 00122h                            ; 81 c3 22 01
    55325562    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5533     jne short 03db1h                          ; 75 e4
     5563    jne short 03df7h                          ; 75 e4
    55345564    mov ax, strict word 00001h                ; b8 01 00
    55355565    lea sp, [bp-006h]                         ; 8d 66 fa
     
    55395569    pop bp                                    ; 5d
    55405570    retn                                      ; c3
    5541 cdrom_boot_:                                 ; 0xf3dd8 LB 0x43d
     5571cdrom_boot_:                                 ; 0xf3e1e LB 0x43d
    55425572    push bp                                   ; 55
    55435573    mov bp, sp                                ; 89 e5
     
    55505580    mov dx, strict word 0000eh                ; ba 0e 00
    55515581    mov ax, strict word 00040h                ; b8 40 00
    5552     call 0166eh                               ; e8 81 d8
     5582    call 0166eh                               ; e8 3b d8
    55535583    mov word [bp-01ah], ax                    ; 89 46 e6
    55545584    mov si, 00366h                            ; be 66 03
     
    55575587    mov word [bp-012h], ax                    ; 89 46 ee
    55585588    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5559     jmp short 03e0dh                          ; eb 09
     5589    jmp short 03e53h                          ; eb 09
    55605590    inc byte [bp-00ch]                        ; fe 46 f4
    55615591    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5562     jnc short 03e19h                          ; 73 0c
     5592    jnc short 03e5fh                          ; 73 0c
    55635593    mov al, byte [bp-00ch]                    ; 8a 46 f4
    55645594    xor ah, ah                                ; 30 e4
    5565     call 03d99h                               ; e8 84 ff
     5595    call 03ddfh                               ; e8 84 ff
    55665596    test ax, ax                               ; 85 c0
    5567     je short 03e04h                           ; 74 eb
     5597    je short 03e4ah                           ; 74 eb
    55685598    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5569     jc short 03e25h                           ; 72 06
     5599    jc short 03e6bh                           ; 72 06
    55705600    mov ax, strict word 00002h                ; b8 02 00
    5571     jmp near 041b2h                           ; e9 8d 03
     5601    jmp near 041f8h                           ; e9 8d 03
    55725602    mov cx, strict word 0000ch                ; b9 0c 00
    55735603    xor bx, bx                                ; 31 db
    55745604    mov dx, ss                                ; 8c d2
    55755605    lea ax, [bp-026h]                         ; 8d 46 da
    5576     call 0a080h                               ; e8 4e 62
     5606    call 0a0c0h                               ; e8 48 62
    55775607    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    55785608    mov ax, strict word 00011h                ; b8 11 00
     
    55905620    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
    55915621    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5592     jmp short 03e6dh                          ; eb 09
     5622    jmp short 03eb3h                          ; eb 09
    55935623    inc byte [bp-00eh]                        ; fe 46 f2
    55945624    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5595     jnbe short 03eafh                         ; 77 42
     5625    jnbe short 03ef5h                         ; 77 42
    55965626    mov al, byte [bp-00ch]                    ; 8a 46 f4
    55975627    xor ah, ah                                ; 30 e4
     
    56225652    call word [word di+0006ah]                ; ff 95 6a 00
    56235653    test ax, ax                               ; 85 c0
    5624     jne short 03e64h                          ; 75 b5
     5654    jne short 03eaah                          ; 75 b5
    56255655    test ax, ax                               ; 85 c0
    5626     je short 03eb9h                           ; 74 06
     5656    je short 03effh                           ; 74 06
    56275657    mov ax, strict word 00003h                ; b8 03 00
    5628     jmp near 041b2h                           ; e9 f9 02
     5658    jmp near 041f8h                           ; e9 f9 02
    56295659    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5630     je short 03ec6h                           ; 74 06
     5660    je short 03f0ch                           ; 74 06
    56315661    mov ax, strict word 00004h                ; b8 04 00
    5632     jmp near 041b2h                           ; e9 ec 02
     5662    jmp near 041f8h                           ; e9 ec 02
    56335663    xor di, di                                ; 31 ff
    5634     jmp short 03ed0h                          ; eb 06
     5664    jmp short 03f16h                          ; eb 06
    56355665    inc di                                    ; 47
    56365666    cmp di, strict byte 00005h                ; 83 ff 05
    5637     jnc short 03ee0h                          ; 73 10
     5667    jnc short 03f26h                          ; 73 10
    56385668    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    56395669    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
    5640     je short 03ecah                           ; 74 f0
     5670    je short 03f10h                           ; 74 f0
    56415671    mov ax, strict word 00005h                ; b8 05 00
    5642     jmp near 041b2h                           ; e9 d2 02
     5672    jmp near 041f8h                           ; e9 d2 02
    56435673    xor di, di                                ; 31 ff
    5644     jmp short 03eeah                          ; eb 06
     5674    jmp short 03f30h                          ; eb 06
    56455675    inc di                                    ; 47
    56465676    cmp di, strict byte 00017h                ; 83 ff 17
    5647     jnc short 03efah                          ; 73 10
     5677    jnc short 03f40h                          ; 73 10
    56485678    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    56495679    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
    5650     je short 03ee4h                           ; 74 f0
     5680    je short 03f2ah                           ; 74 f0
    56515681    mov ax, strict word 00006h                ; b8 06 00
    5652     jmp near 041b2h                           ; e9 b8 02
     5682    jmp near 041f8h                           ; e9 b8 02
    56535683    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    56545684    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    56905720    call word [word di+0006ah]                ; ff 95 6a 00
    56915721    test ax, ax                               ; 85 c0
    5692     je short 03f62h                           ; 74 06
     5722    je short 03fa8h                           ; 74 06
    56935723    mov ax, strict word 00007h                ; b8 07 00
    5694     jmp near 041b2h                           ; e9 50 02
     5724    jmp near 041f8h                           ; e9 50 02
    56955725    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5696     je short 03f6fh                           ; 74 06
     5726    je short 03fb5h                           ; 74 06
    56975727    mov ax, strict word 00008h                ; b8 08 00
    5698     jmp near 041b2h                           ; e9 43 02
     5728    jmp near 041f8h                           ; e9 43 02
    56995729    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5700     je short 03f7ch                           ; 74 06
     5730    je short 03fc2h                           ; 74 06
    57015731    mov ax, strict word 00009h                ; b8 09 00
    5702     jmp near 041b2h                           ; e9 36 02
     5732    jmp near 041f8h                           ; e9 36 02
    57035733    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5704     je short 03f89h                           ; 74 06
     5734    je short 03fcfh                           ; 74 06
    57055735    mov ax, strict word 0000ah                ; b8 0a 00
    5706     jmp near 041b2h                           ; e9 29 02
     5736    jmp near 041f8h                           ; e9 29 02
    57075737    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5708     jne short 03f83h                          ; 75 f3
     5738    jne short 03fc9h                          ; 75 f3
    57095739    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5710     je short 03f9dh                           ; 74 06
     5740    je short 03fe3h                           ; 74 06
    57115741    mov ax, strict word 0000bh                ; b8 0b 00
    5712     jmp near 041b2h                           ; e9 15 02
     5742    jmp near 041f8h                           ; e9 15 02
    57135743    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    57145744    mov es, [bp-018h]                         ; 8e 46 e8
    57155745    mov byte [es:si+001h], al                 ; 26 88 44 01
    57165746    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5717     jne short 03fb6h                          ; 75 07
     5747    jne short 03ffch                          ; 75 07
    57185748    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5719     jmp short 03fc9h                          ; eb 13
     5749    jmp short 0400fh                          ; eb 13
    57205750    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5721     jnc short 03fc4h                          ; 73 07
     5751    jnc short 0400ah                          ; 73 07
    57225752    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5723     jmp short 03fc9h                          ; eb 05
     5753    jmp short 0400fh                          ; eb 05
    57245754    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    57255755    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    57405770    mov word [bp-010h], ax                    ; 89 46 f0
    57415771    test ax, ax                               ; 85 c0
    5742     jne short 03ff8h                          ; 75 05
     5772    jne short 0403eh                          ; 75 05
    57435773    mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
    57445774    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    57495779    mov word [es:si+00eh], bx                 ; 26 89 5c 0e
    57505780    test bx, bx                               ; 85 db
    5751     je short 0401ah                           ; 74 06
     5781    je short 04060h                           ; 74 06
    57525782    cmp bx, 00400h                            ; 81 fb 00 04
    5753     jbe short 04020h                          ; 76 06
     5783    jbe short 04066h                          ; 76 06
    57545784    mov ax, strict word 0000ch                ; b8 0c 00
    5755     jmp near 041b2h                           ; e9 92 01
     5785    jmp near 041f8h                           ; e9 92 01
    57565786    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    57575787    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    58015831    sal ax, 1                                 ; d1 e0
    58025832    rcl di, 1                                 ; d1 d7
    5803     loop 04098h                               ; e2 fa
     5833    loop 040deh                               ; e2 fa
    58045834    push di                                   ; 57
    58055835    push ax                                   ; 50
     
    58165846    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    58175847    test ax, ax                               ; 85 c0
    5818     je short 040cah                           ; 74 06
     5848    je short 04110h                           ; 74 06
    58195849    mov ax, strict word 0000dh                ; b8 0d 00
    5820     jmp near 041b2h                           ; e9 e8 00
     5850    jmp near 041f8h                           ; e9 e8 00
    58215851    mov es, [bp-018h]                         ; 8e 46 e8
    58225852    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    58235853    cmp AL, strict byte 002h                  ; 3c 02
    5824     jc short 040e2h                           ; 72 0d
    5825     jbe short 040fdh                          ; 76 26
     5854    jc short 04128h                           ; 72 0d
     5855    jbe short 04143h                          ; 76 26
    58265856    cmp AL, strict byte 004h                  ; 3c 04
    5827     je short 0410dh                           ; 74 32
     5857    je short 04153h                           ; 74 32
    58285858    cmp AL, strict byte 003h                  ; 3c 03
    5829     je short 04105h                           ; 74 26
    5830     jmp near 0415ah                           ; e9 78 00
     5859    je short 0414bh                           ; 74 26
     5860    jmp near 041a0h                           ; e9 78 00
    58315861    cmp AL, strict byte 001h                  ; 3c 01
    5832     jne short 0415ah                          ; 75 74
     5862    jne short 041a0h                          ; 75 74
    58335863    mov es, [bp-018h]                         ; 8e 46 e8
    58345864    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
    58355865    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
    58365866    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5837     jmp short 0415ah                          ; eb 5d
     5867    jmp short 041a0h                          ; eb 5d
    58385868    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
    5839     jmp short 040efh                          ; eb ea
     5869    jmp short 04135h                          ; eb ea
    58405870    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
    5841     jmp short 040efh                          ; eb e2
     5871    jmp short 04135h                          ; eb e2
    58425872    mov dx, 001c4h                            ; ba c4 01
    58435873    mov ax, word [bp-010h]                    ; 8b 46 f0
    5844     call 01652h                               ; e8 3c d5
     5874    call 01652h                               ; e8 f6 d4
    58455875    and AL, strict byte 03fh                  ; 24 3f
    58465876    xor ah, ah                                ; 30 e4
     
    58495879    mov dx, 001c4h                            ; ba c4 01
    58505880    mov ax, word [bp-010h]                    ; 8b 46 f0
    5851     call 01652h                               ; e8 28 d5
     5881    call 01652h                               ; e8 e2 d4
    58525882    xor ah, ah                                ; 30 e4
    58535883    mov bx, ax                                ; 89 c3
     
    58565886    mov dx, 001c5h                            ; ba c5 01
    58575887    mov ax, word [bp-010h]                    ; 8b 46 f0
    5858     call 01652h                               ; e8 17 d5
     5888    call 01652h                               ; e8 d1 d4
    58595889    xor ah, ah                                ; 30 e4
    58605890    add ax, bx                                ; 01 d8
     
    58645894    mov dx, 001c3h                            ; ba c3 01
    58655895    mov ax, word [bp-010h]                    ; 8b 46 f0
    5866     call 01652h                               ; e8 02 d5
     5896    call 01652h                               ; e8 bc d4
    58675897    xor ah, ah                                ; 30 e4
    58685898    inc ax                                    ; 40
     
    58715901    mov es, [bp-018h]                         ; 8e 46 e8
    58725902    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5873     je short 0419bh                           ; 74 37
     5903    je short 041e1h                           ; 74 37
    58745904    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5875     jne short 04183h                          ; 75 18
     5905    jne short 041c9h                          ; 75 18
    58765906    mov dx, strict word 00010h                ; ba 10 00
    58775907    mov ax, strict word 00040h                ; b8 40 00
    5878     call 01652h                               ; e8 de d4
     5908    call 01652h                               ; e8 98 d4
    58795909    mov bl, al                                ; 88 c3
    58805910    or bl, 041h                               ; 80 cb 41
     
    58825912    mov dx, strict word 00010h                ; ba 10 00
    58835913    mov ax, strict word 00040h                ; b8 40 00
    5884     jmp short 04198h                          ; eb 15
     5914    jmp short 041deh                          ; eb 15
    58855915    mov dx, 00304h                            ; ba 04 03
    58865916    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5887     call 01652h                               ; e8 c6 d4
     5917    call 01652h                               ; e8 80 d4
    58885918    mov bl, al                                ; 88 c3
    58895919    db  0feh, 0c3h
     
    58925922    mov dx, 00304h                            ; ba 04 03
    58935923    mov ax, word [bp-01ah]                    ; 8b 46 e6
    5894     call 01660h                               ; e8 c5 d4
     5924    call 01660h                               ; e8 7f d4
    58955925    mov es, [bp-018h]                         ; 8e 46 e8
    58965926    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5897     je short 041a9h                           ; 74 04
     5927    je short 041efh                           ; 74 04
    58985928    mov byte [es:si], 001h                    ; 26 c6 04 01
    58995929    mov es, [bp-018h]                         ; 8e 46 e8
     
    59095939    retn                                      ; c3
    59105940    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5911     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0cch, 045h, 0bch
    5912     db  042h, 0f1h, 042h, 016h, 043h, 0e6h, 042h, 016h, 043h, 0e6h, 042h, 015h, 045h, 0fbh, 044h, 0cch
    5913     db  045h, 0cch, 045h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0fbh, 044h, 0c3h, 045h, 0fbh
    5914     db  044h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch
    5915     db  045h, 0cch, 045h, 0cch, 045h, 0cch, 045h, 0cch, 045h
    5916 _int13_cdemu:                                ; 0xf4215 LB 0x453
     5941    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 012h, 046h, 002h
     5942    db  043h, 037h, 043h, 05ch, 043h, 02ch, 043h, 05ch, 043h, 02ch, 043h, 05bh, 045h, 041h, 045h, 012h
     5943    db  046h, 012h, 046h, 041h, 045h, 041h, 045h, 041h, 045h, 041h, 045h, 041h, 045h, 009h, 046h, 041h
     5944    db  045h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h
     5945    db  046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h
     5946_int13_cdemu:                                ; 0xf425b LB 0x453
    59175947    push bp                                   ; 55
    59185948    mov bp, sp                                ; 89 e5
     
    59225952    mov dx, strict word 0000eh                ; ba 0e 00
    59235953    mov ax, strict word 00040h                ; b8 40 00
    5924     call 0166eh                               ; e8 48 d4
     5954    call 0166eh                               ; e8 02 d4
    59255955    mov di, 00366h                            ; bf 66 03
    59265956    mov cx, ax                                ; 89 c1
     
    59385968    mov dx, strict word 00074h                ; ba 74 00
    59395969    mov ax, strict word 00040h                ; b8 40 00
    5940     call 01660h                               ; e8 0b d4
     5970    call 01660h                               ; e8 c5 d3
    59415971    mov es, cx                                ; 8e c1
    59425972    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5943     je short 0426ch                           ; 74 0f
     5973    je short 042b2h                           ; 74 0f
    59445974    mov al, byte [es:di+002h]                 ; 26 8a 45 02
    59455975    xor ah, ah                                ; 30 e4
     
    59475977    xor dh, dh                                ; 30 f6
    59485978    cmp ax, dx                                ; 39 d0
    5949     je short 04296h                           ; 74 2a
     5979    je short 042dch                           ; 74 2a
    59505980    mov bx, 00da0h                            ; bb a0 0d
    59515981    mov cx, ds                                ; 8c d9
    59525982    mov ax, strict word 00004h                ; b8 04 00
    5953     call 01933h                               ; e8 bc d6
     5983    call 01933h                               ; e8 76 d6
    59545984    mov ax, word [bp+012h]                    ; 8b 46 12
    59555985    xor ah, ah                                ; 30 e4
     
    59635993    mov ax, strict word 00004h                ; b8 04 00
    59645994    push ax                                   ; 50
    5965     call 01976h                               ; e8 e6 d6
     5995    call 01976h                               ; e8 a0 d6
    59665996    add sp, strict byte 0000ah                ; 83 c4 0a
    5967     jmp near 045efh                           ; e9 59 03
     5997    jmp near 04635h                           ; e9 59 03
    59685998    mov al, byte [bp+017h]                    ; 8a 46 17
    59695999    xor ah, ah                                ; 30 e4
    59706000    mov dx, ax                                ; 89 c2
    59716001    cmp ax, strict word 00050h                ; 3d 50 00
    5972     jnbe short 04313h                         ; 77 71
     6002    jnbe short 04359h                         ; 77 71
    59736003    push CS                                   ; 0e
    59746004    pop ES                                    ; 07
    59756005    mov cx, strict word 0001eh                ; b9 1e 00
    5976     mov di, 041bch                            ; bf bc 41
     6006    mov di, 04202h                            ; bf 02 42
    59776007    repne scasb                               ; f2 ae
    59786008    sal cx, 1                                 ; d1 e1
    59796009    mov di, cx                                ; 89 cf
    5980     mov ax, word [cs:di+041d9h]               ; 2e 8b 85 d9 41
     6010    mov ax, word [cs:di+0421fh]               ; 2e 8b 85 1f 42
    59816011    mov bx, word [bp+016h]                    ; 8b 5e 16
    59826012    xor bh, bh                                ; 30 ff
     
    59926022    sal bx, 1                                 ; d1 e3
    59936023    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5994     je short 042e3h                           ; 74 09
     6024    je short 04329h                           ; 74 09
    59956025    mov al, byte [bp-006h]                    ; 8a 46 fa
    59966026    xor ah, ah                                ; 30 e4
    59976027    call word [word bx+00076h]                ; ff 97 76 00
    5998     jmp near 044fbh                           ; e9 15 02
     6028    jmp near 04541h                           ; e9 15 02
    59996029    mov ax, word [bp+016h]                    ; 8b 46 16
    60006030    xor ah, ah                                ; 30 e4
    60016031    or ah, 003h                               ; 80 cc 03
    6002     jmp near 045f7h                           ; e9 06 03
     6032    jmp near 0463dh                           ; e9 06 03
    60036033    mov dx, strict word 00074h                ; ba 74 00
    60046034    mov ax, strict word 00040h                ; b8 40 00
    6005     call 01652h                               ; e8 58 d3
     6035    call 01652h                               ; e8 12 d3
    60066036    mov cl, al                                ; 88 c1
    60076037    mov bh, al                                ; 88 c7
     
    60106040    mov dx, strict word 00074h                ; ba 74 00
    60116041    mov ax, strict word 00040h                ; b8 40 00
    6012     call 01660h                               ; e8 54 d3
     6042    call 01660h                               ; e8 0e d3
    60136043    test cl, cl                               ; 84 c9
    6014     je short 04375h                           ; 74 65
    6015     jmp near 04608h                           ; e9 f5 02
    6016     jmp near 045cch                           ; e9 b6 02
     6044    je short 043bbh                           ; 74 65
     6045    jmp near 0464eh                           ; e9 f5 02
     6046    jmp near 04612h                           ; e9 b6 02
    60176047    mov es, [bp-012h]                         ; 8e 46 ee
    60186048    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    60406070    mov word [bp-014h], cx                    ; 89 4e ec
    60416071    test cx, cx                               ; 85 c9
    6042     je short 04382h                           ; 74 1d
     6072    je short 043c8h                           ; 74 1d
    60436073    cmp di, word [bp-00ah]                    ; 3b 7e f6
    6044     jc short 04372h                           ; 72 08
     6074    jc short 043b8h                           ; 72 08
    60456075    cmp ax, dx                                ; 39 d0
    6046     jnc short 04372h                          ; 73 04
     6076    jnc short 043b8h                          ; 73 04
    60476077    cmp bx, si                                ; 39 f3
    6048     jnbe short 04378h                         ; 77 06
    6049     jmp near 045efh                           ; e9 7a 02
    6050     jmp near 044ffh                           ; e9 87 01
     6078    jnbe short 043beh                         ; 77 06
     6079    jmp near 04635h                           ; e9 7a 02
     6080    jmp near 04545h                           ; e9 87 01
    60516081    mov dl, byte [bp+017h]                    ; 8a 56 17
    60526082    xor dh, dh                                ; 30 f6
    60536083    cmp dx, strict byte 00004h                ; 83 fa 04
    6054     jne short 04385h                          ; 75 03
    6055     jmp near 044fbh                           ; e9 76 01
     6084    jne short 043cbh                          ; 75 03
     6085    jmp near 04541h                           ; e9 76 01
    60566086    mov CL, strict byte 004h                  ; b1 04
    60576087    mov dx, word [bp+010h]                    ; 8b 56 10
     
    60666096    xor dl, dl                                ; 30 d2
    60676097    xor cx, cx                                ; 31 c9
    6068     call 0a010h                               ; e8 6a 5c
     6098    call 0a050h                               ; e8 64 5c
    60696099    xor bx, bx                                ; 31 db
    60706100    add ax, si                                ; 01 f0
     
    60726102    mov bx, di                                ; 89 fb
    60736103    xor cx, cx                                ; 31 c9
    6074     call 0a010h                               ; e8 5d 5c
     6104    call 0a050h                               ; e8 57 5c
    60756105    mov bx, ax                                ; 89 c3
    60766106    mov ax, word [bp-00ah]                    ; 8b 46 f6
     
    61076137    mov dx, ss                                ; 8c d2
    61086138    lea ax, [bp-030h]                         ; 8d 46 d0
    6109     call 0a080h                               ; e8 76 5c
     6139    call 0a0c0h                               ; e8 70 5c
    61106140    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
    61116141    mov ax, word [bp-00eh]                    ; 8b 46 f2
     
    61606190    sal si, 1                                 ; d1 e6
    61616191    rcl di, 1                                 ; d1 d7
    6162     loop 0448fh                               ; e2 fa
     6192    loop 044d5h                               ; e2 fa
    61636193    push di                                   ; 57
    61646194    push si                                   ; 56
     
    61766206    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    61776207    test al, al                               ; 84 c0
    6178     je short 044fbh                           ; 74 38
     6208    je short 04541h                           ; 74 38
    61796209    mov bx, 00da0h                            ; bb a0 0d
    61806210    mov cx, ds                                ; 8c d9
    61816211    mov ax, strict word 00004h                ; b8 04 00
    6182     call 01933h                               ; e8 65 d4
     6212    call 01933h                               ; e8 1f d4
    61836213    mov al, dl                                ; 88 d0
    61846214    xor ah, ah                                ; 30 e4
     
    61926222    mov ax, strict word 00004h                ; b8 04 00
    61936223    push ax                                   ; 50
    6194     call 01976h                               ; e8 90 d4
     6224    call 01976h                               ; e8 4a d4
    61956225    add sp, strict byte 0000ah                ; 83 c4 0a
    61966226    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61996229    mov word [bp+016h], ax                    ; 89 46 16
    62006230    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6201     jmp near 045fah                           ; e9 ff 00
     6231    jmp near 04640h                           ; e9 ff 00
    62026232    mov byte [bp+017h], 000h                  ; c6 46 17 00
    62036233    xor bx, bx                                ; 31 db
    62046234    mov dx, strict word 00074h                ; ba 74 00
    62056235    mov ax, strict word 00040h                ; b8 40 00
    6206     call 01660h                               ; e8 56 d1
     6236    call 01660h                               ; e8 10 d1
    62076237    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    62086238    lea sp, [bp-004h]                         ; 8d 66 fc
     
    62546284    mov word [bp+010h], cx                    ; 89 4e 10
    62556285    cmp AL, strict byte 003h                  ; 3c 03
    6256     je short 045a5h                           ; 74 1c
     6286    je short 045ebh                           ; 74 1c
    62576287    cmp AL, strict byte 002h                  ; 3c 02
    6258     je short 0459dh                           ; 74 10
     6288    je short 045e3h                           ; 74 10
    62596289    cmp AL, strict byte 001h                  ; 3c 01
    6260     jne short 045aah                          ; 75 19
     6290    jne short 045f0h                          ; 75 19
    62616291    mov ax, word [bp+010h]                    ; 8b 46 10
    62626292    xor al, al                                ; 30 c0
    62636293    or AL, strict byte 002h                   ; 0c 02
    62646294    mov word [bp+010h], ax                    ; 89 46 10
    6265     jmp short 045aah                          ; eb 0d
     6295    jmp short 045f0h                          ; eb 0d
    62666296    or cl, 004h                               ; 80 c9 04
    62676297    mov word [bp+010h], cx                    ; 89 4e 10
    6268     jmp short 045aah                          ; eb 05
     6298    jmp short 045f0h                          ; eb 05
    62696299    or cl, 005h                               ; 80 c9 05
    6270     jmp short 045a0h                          ; eb f6
     6300    jmp short 045e6h                          ; eb f6
    62716301    mov es, [bp-012h]                         ; 8e 46 ee
    62726302    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6273     jc short 045b7h                           ; 72 03
    6274     jmp near 044fbh                           ; e9 44 ff
     6303    jc short 045fdh                           ; 72 03
     6304    jmp near 04541h                           ; e9 44 ff
    62756305    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    62766306    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6277     jmp short 045b4h                          ; eb f1
     6307    jmp short 045fah                          ; eb f1
    62786308    or bh, 003h                               ; 80 cf 03
    62796309    mov word [bp+016h], bx                    ; 89 5e 16
    6280     jmp near 044ffh                           ; e9 33 ff
     6310    jmp near 04545h                           ; e9 33 ff
    62816311    mov bx, 00da0h                            ; bb a0 0d
    62826312    mov cx, ds                                ; 8c d9
    62836313    mov ax, strict word 00004h                ; b8 04 00
    6284     call 01933h                               ; e8 5c d3
     6314    call 01933h                               ; e8 16 d3
    62856315    mov al, byte [bp+017h]                    ; 8a 46 17
    62866316    xor ah, ah                                ; 30 e4
     
    62926322    mov ax, strict word 00004h                ; b8 04 00
    62936323    push ax                                   ; 50
    6294     call 01976h                               ; e8 8a d3
     6324    call 01976h                               ; e8 44 d3
    62956325    add sp, strict byte 00008h                ; 83 c4 08
    62966326    mov ax, word [bp+016h]                    ; 8b 46 16
     
    63026332    mov dx, strict word 00074h                ; ba 74 00
    63036333    mov ax, strict word 00040h                ; b8 40 00
    6304     call 01660h                               ; e8 58 d0
     6334    call 01660h                               ; e8 12 d0
    63056335    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6306     jmp near 0450eh                           ; e9 ff fe
     6336    jmp near 04554h                           ; e9 ff fe
    63076337    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6308     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 051h, 047h, 096h
    6309     db  04bh, 013h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 008h, 047h, 051h, 047h, 096h, 04bh, 051h
    6310     db  047h, 051h, 047h, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 096h, 04bh, 035h, 047h, 096h
    6311     db  04bh, 051h, 047h, 03eh, 047h, 06fh, 047h, 008h, 047h, 06fh, 047h, 0b8h, 048h, 058h, 049h, 06fh
    6312     db  047h, 082h, 049h, 0b0h, 04bh, 0b8h, 04bh, 051h, 047h
    6313 _int13_cdrom:                                ; 0xf4668 LB 0x585
     6338    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 097h, 047h, 0dch
     6339    db  04bh, 059h, 047h, 097h, 047h, 04eh, 047h, 097h, 047h, 04eh, 047h, 097h, 047h, 0dch, 04bh, 097h
     6340    db  047h, 097h, 047h, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 07bh, 047h, 0dch
     6341    db  04bh, 097h, 047h, 084h, 047h, 0b5h, 047h, 04eh, 047h, 0b5h, 047h, 0feh, 048h, 09eh, 049h, 0b5h
     6342    db  047h, 0c8h, 049h, 0f6h, 04bh, 0feh, 04bh, 097h, 047h
     6343_int13_cdrom:                                ; 0xf46ae LB 0x585
    63146344    push bp                                   ; 55
    63156345    mov bp, sp                                ; 89 e5
     
    63196349    mov dx, strict word 0000eh                ; ba 0e 00
    63206350    mov ax, strict word 00040h                ; b8 40 00
    6321     call 0166eh                               ; e8 f5 cf
     6351    call 0166eh                               ; e8 af cf
    63226352    mov word [bp-018h], ax                    ; 89 46 e8
    63236353    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     
    63266356    mov dx, strict word 00074h                ; ba 74 00
    63276357    mov ax, strict word 00040h                ; b8 40 00
    6328     call 01660h                               ; e8 d1 cf
     6358    call 01660h                               ; e8 8b cf
    63296359    mov ax, word [bp+010h]                    ; 8b 46 10
    63306360    xor ah, ah                                ; 30 e4
    63316361    cmp ax, 000e0h                            ; 3d e0 00
    6332     jc short 0469eh                           ; 72 05
     6362    jc short 046e4h                           ; 72 05
    63336363    cmp ax, 000f0h                            ; 3d f0 00
    6334     jc short 046bdh                           ; 72 1f
     6364    jc short 04703h                           ; 72 1f
    63356365    mov ax, word [bp+010h]                    ; 8b 46 10
    63366366    xor ah, ah                                ; 30 e4
     
    63446374    mov ax, strict word 00004h                ; b8 04 00
    63456375    push ax                                   ; 50
    6346     call 01976h                               ; e8 bf d2
     6376    call 01976h                               ; e8 79 d2
    63476377    add sp, strict byte 0000ah                ; 83 c4 0a
    6348     jmp near 04bceh                           ; e9 11 05
     6378    jmp near 04c14h                           ; e9 11 05
    63496379    mov ax, word [bp+010h]                    ; 8b 46 10
    63506380    xor ah, ah                                ; 30 e4
     
    63546384    mov byte [bp-008h], dl                    ; 88 56 f8
    63556385    cmp dl, 010h                              ; 80 fa 10
    6356     jc short 046e2h                           ; 72 0e
     6386    jc short 04728h                           ; 72 0e
    63576387    push ax                                   ; 50
    63586388    mov al, byte [bp+019h]                    ; 8a 46 19
     
    63616391    push ax                                   ; 50
    63626392    mov ax, 00416h                            ; b8 16 04
    6363     jmp short 046afh                          ; eb cd
     6393    jmp short 046f5h                          ; eb cd
    63646394    mov al, byte [bp+019h]                    ; 8a 46 19
    63656395    xor ah, ah                                ; 30 e4
    63666396    mov dx, ax                                ; 89 c2
    63676397    cmp ax, strict word 00050h                ; 3d 50 00
    6368     jnbe short 04751h                         ; 77 63
     6398    jnbe short 04797h                         ; 77 63
    63696399    push CS                                   ; 0e
    63706400    pop ES                                    ; 07
    63716401    mov cx, strict word 0001eh                ; b9 1e 00
    6372     mov di, 0460fh                            ; bf 0f 46
     6402    mov di, 04655h                            ; bf 55 46
    63736403    repne scasb                               ; f2 ae
    63746404    sal cx, 1                                 ; d1 e1
    63756405    mov di, cx                                ; 89 cf
    6376     mov ax, word [cs:di+0462ch]               ; 2e 8b 85 2c 46
     6406    mov ax, word [cs:di+04672h]               ; 2e 8b 85 72 46
    63776407    mov bx, word [bp+018h]                    ; 8b 5e 18
    63786408    xor bh, bh                                ; 30 ff
     
    63816411    xor ah, ah                                ; 30 e4
    63826412    or ah, 003h                               ; 80 cc 03
    6383     jmp near 04bd6h                           ; e9 c3 04
     6413    jmp near 04c1ch                           ; e9 c3 04
    63846414    mov dx, strict word 00074h                ; ba 74 00
    63856415    mov ax, strict word 00040h                ; b8 40 00
    6386     call 01652h                               ; e8 36 cf
     6416    call 01652h                               ; e8 f0 ce
    63876417    mov cl, al                                ; 88 c1
    63886418    mov bh, al                                ; 88 c7
     
    63916421    mov dx, strict word 00074h                ; ba 74 00
    63926422    mov ax, strict word 00040h                ; b8 40 00
    6393     call 01660h                               ; e8 32 cf
     6423    call 01660h                               ; e8 ec ce
    63946424    test cl, cl                               ; 84 c9
    6395     je short 0474eh                           ; 74 1c
    6396     jmp near 04be7h                           ; e9 b2 04
     6425    je short 04794h                           ; 74 1c
     6426    jmp near 04c2dh                           ; e9 b2 04
    63976427    or bh, 002h                               ; 80 cf 02
    63986428    mov word [bp+018h], bx                    ; 89 5e 18
    6399     jmp near 04bd9h                           ; e9 9b 04
     6429    jmp near 04c1fh                           ; e9 9b 04
    64006430    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    64016431    or bh, 030h                               ; 80 cf 30
    64026432    mov word [bp+018h], bx                    ; 89 5e 18
    64036433    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6404     jmp near 04b9ah                           ; e9 49 04
     6434    jmp near 04be0h                           ; e9 49 04
    64056435    mov bx, 00da0h                            ; bb a0 0d
    64066436    mov cx, ds                                ; 8c d9
    64076437    mov ax, strict word 00004h                ; b8 04 00
    6408     call 01933h                               ; e8 d7 d1
     6438    call 01933h                               ; e8 91 d1
    64096439    mov al, byte [bp+019h]                    ; 8a 46 19
    64106440    xor ah, ah                                ; 30 e4
     
    64156445    push ax                                   ; 50
    64166446    mov ax, strict word 00004h                ; b8 04 00
    6417     jmp short 047b0h                          ; eb 41
     6447    jmp short 047f6h                          ; eb 41
    64186448    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    64196449    mov es, [bp+006h]                         ; 8e 46 06
     
    64306460    mov word [bp-012h], ax                    ; 89 46 ee
    64316461    or ax, word [bp-014h]                     ; 0b 46 ec
    6432     je short 047bah                           ; 74 1b
     6462    je short 04800h                           ; 74 1b
    64336463    mov al, byte [bp+019h]                    ; 8a 46 19
    64346464    xor ah, ah                                ; 30 e4
     
    64406470    mov ax, strict word 00007h                ; b8 07 00
    64416471    push ax                                   ; 50
    6442     call 01976h                               ; e8 c2 d1
     6472    call 01976h                               ; e8 7c d1
    64436473    add sp, strict byte 00008h                ; 83 c4 08
    6444     jmp near 04bceh                           ; e9 14 04
     6474    jmp near 04c14h                           ; e9 14 04
    64456475    mov es, [bp-020h]                         ; 8e 46 e0
    64466476    mov ax, word [es:di+008h]                 ; 26 8b 45 08
     
    64536483    mov ax, word [bp-010h]                    ; 8b 46 f0
    64546484    cmp ax, strict word 00044h                ; 3d 44 00
    6455     je short 047e2h                           ; 74 05
     6485    je short 04828h                           ; 74 05
    64566486    cmp ax, strict word 00047h                ; 3d 47 00
    6457     jne short 047e5h                          ; 75 03
    6458     jmp near 04b96h                           ; e9 b1 03
     6487    jne short 0482bh                          ; 75 03
     6488    jmp near 04bdch                           ; e9 b1 03
    64596489    mov cx, strict word 0000ch                ; b9 0c 00
    64606490    xor bx, bx                                ; 31 db
    64616491    mov dx, ss                                ; 8c d2
    64626492    lea ax, [bp-02eh]                         ; 8d 46 d2
    6463     call 0a080h                               ; e8 8e 58
     6493    call 0a0c0h                               ; e8 88 58
    64646494    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    64656495    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    64946524    sal bx, 1                                 ; d1 e3
    64956525    rcl si, 1                                 ; d1 d6
    6496     loop 04844h                               ; e2 fa
     6526    loop 0488ah                               ; e2 fa
    64976527    push si                                   ; 56
    64986528    push bx                                   ; 53
     
    65136543    shr dx, 1                                 ; d1 ea
    65146544    rcr ax, 1                                 ; d1 d8
    6515     loop 04874h                               ; e2 fa
     6545    loop 048bah                               ; e2 fa
    65166546    mov es, [bp-020h]                         ; 8e 46 e0
    65176547    mov word [es:di+002h], ax                 ; 26 89 45 02
    65186548    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
    6519     je short 048deh                           ; 74 57
     6549    je short 04924h                           ; 74 57
    65206550    mov bx, 00da0h                            ; bb a0 0d
    65216551    mov cx, ds                                ; 8c d9
    65226552    mov ax, strict word 00004h                ; b8 04 00
    6523     call 01933h                               ; e8 a1 d0
     6553    call 01933h                               ; e8 5b d0
    65246554    mov al, byte [bp-016h]                    ; 8a 46 ea
    65256555    xor ah, ah                                ; 30 e4
     
    65326562    mov ax, strict word 00004h                ; b8 04 00
    65336563    push ax                                   ; 50
    6534     call 01976h                               ; e8 cc d0
     6564    call 01976h                               ; e8 86 d0
    65356565    add sp, strict byte 0000ah                ; 83 c4 0a
    65366566    mov ax, word [bp+018h]                    ; 8b 46 18
    65376567    xor ah, ah                                ; 30 e4
    65386568    or ah, 00ch                               ; 80 cc 0c
    6539     jmp near 04bd6h                           ; e9 1e 03
     6569    jmp near 04c1ch                           ; e9 1e 03
    65406570    cmp bx, strict byte 00002h                ; 83 fb 02
    6541     jnbe short 04929h                         ; 77 6c
     6571    jnbe short 0496fh                         ; 77 6c
    65426572    mov al, byte [bp-008h]                    ; 8a 46 f8
    65436573    xor ah, ah                                ; 30 e4
     
    65486578    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    65496579    cmp bx, strict byte 00002h                ; 83 fb 02
    6550     je short 04941h                           ; 74 6c
     6580    je short 04987h                           ; 74 6c
    65516581    cmp bx, strict byte 00001h                ; 83 fb 01
    6552     je short 04919h                           ; 74 3f
     6582    je short 0495fh                           ; 74 3f
    65536583    test bx, bx                               ; 85 db
    6554     je short 048e1h                           ; 74 03
    6555     jmp near 04b96h                           ; e9 b5 02
     6584    je short 04927h                           ; 74 03
     6585    jmp near 04bdch                           ; e9 b5 02
    65566586    cmp cl, 0ffh                              ; 80 f9 ff
    6557     jne short 048f8h                          ; 75 12
     6587    jne short 0493eh                          ; 75 12
    65586588    mov ax, word [bp+018h]                    ; 8b 46 18
    65596589    xor ah, ah                                ; 30 e4
     
    65626592    xor al, al                                ; 30 c0
    65636593    or AL, strict byte 001h                   ; 0c 01
    6564     jmp near 04bd6h                           ; e9 de 02
     6594    jmp near 04c1ch                           ; e9 de 02
    65656595    mov al, byte [bp-008h]                    ; 8a 46 f8
    65666596    xor ah, ah                                ; 30 e4
     
    65766606    or AL, strict byte 001h                   ; 0c 01
    65776607    mov word [bp+018h], ax                    ; 89 46 18
    6578     jmp short 048deh                          ; eb c5
     6608    jmp short 04924h                          ; eb c5
    65796609    test cl, cl                               ; 84 c9
    6580     jne short 0492ch                          ; 75 0f
     6610    jne short 04972h                          ; 75 0f
    65816611    or bh, 0b0h                               ; 80 cf b0
    65826612    mov word [bp+018h], bx                    ; 89 5e 18
    65836613    mov byte [bp+018h], cl                    ; 88 4e 18
    6584     jmp near 04bd9h                           ; e9 b0 02
    6585     jmp near 04bceh                           ; e9 a2 02
     6614    jmp near 04c1fh                           ; e9 b0 02
     6615    jmp near 04c14h                           ; e9 a2 02
    65866616    mov al, byte [bp-008h]                    ; 8a 46 f8
    65876617    xor ah, ah                                ; 30 e4
     
    65946624    mov byte [es:bx+025h], cl                 ; 26 88 4f 25
    65956625    test cl, cl                               ; 84 c9
    6596     jne short 04953h                          ; 75 0e
     6626    jne short 04999h                          ; 75 0e
    65976627    xor ax, ax                                ; 31 c0
    65986628    mov dx, word [bp+018h]                    ; 8b 56 18
     
    66006630    or dx, ax                                 ; 09 c2
    66016631    mov word [bp+018h], dx                    ; 89 56 18
    6602     jmp short 048deh                          ; eb 8b
     6632    jmp short 04924h                          ; eb 8b
    66036633    mov ax, strict word 00001h                ; b8 01 00
    6604     jmp short 04947h                          ; eb ef
     6634    jmp short 0498dh                          ; eb ef
    66056635    mov al, byte [bp-008h]                    ; 8a 46 f8
    66066636    xor ah, ah                                ; 30 e4
     
    66116641    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
    66126642    test cl, cl                               ; 84 c9
    6613     je short 04975h                           ; 74 06
     6643    je short 049bbh                           ; 74 06
    66146644    or bh, 0b1h                               ; 80 cf b1
    6615     jmp near 04738h                           ; e9 c3 fd
    6616     je short 0499ch                           ; 74 25
     6645    jmp near 0477eh                           ; e9 c3 fd
     6646    je short 049e2h                           ; 74 25
    66176647    mov ax, word [bp+018h]                    ; 8b 46 18
    66186648    xor ah, ah                                ; 30 e4
    66196649    or ah, 0b1h                               ; 80 cc b1
    6620     jmp near 04bd6h                           ; e9 54 02
     6650    jmp near 04c1ch                           ; e9 54 02
    66216651    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    66226652    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    66276657    mov word [bp-01eh], ax                    ; 89 46 e2
    66286658    cmp ax, strict word 0001ah                ; 3d 1a 00
    6629     jnc short 0499fh                          ; 73 05
    6630     jmp short 04929h                          ; eb 8d
    6631     jmp near 04b96h                           ; e9 f7 01
    6632     jc short 04a01h                           ; 72 60
     6659    jnc short 049e5h                          ; 73 05
     6660    jmp short 0496fh                          ; eb 8d
     6661    jmp near 04bdch                           ; e9 f7 01
     6662    jc short 04a47h                           ; 72 60
    66336663    mov al, byte [bp-008h]                    ; 8a 46 f8
    66346664    xor ah, ah                                ; 30 e4
     
    66536683    mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
    66546684    cmp word [bp-01eh], strict byte 0001eh    ; 83 7e e2 1e
    6655     jnc short 04a0ah                          ; 73 03
    6656     jmp near 04acah                           ; e9 c0 00
     6685    jnc short 04a50h                          ; 73 03
     6686    jmp near 04b10h                           ; e9 c0 00
    66576687    mov es, [bp-00ah]                         ; 8e 46 f6
    66586688    mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
     
    66996729    xor bl, bl                                ; 30 db
    67006730    xor bh, bh                                ; 30 ff
    6701     jmp short 04aaah                          ; eb 05
     6731    jmp short 04af0h                          ; eb 05
    67026732    cmp bh, 00fh                              ; 80 ff 0f
    6703     jnc short 04ac0h                          ; 73 16
     6733    jnc short 04b06h                          ; 73 16
    67046734    mov al, bh                                ; 88 f8
    67056735    xor ah, ah                                ; 30 e4
     
    67076737    add dx, 00356h                            ; 81 c2 56 03
    67086738    mov ax, word [bp-018h]                    ; 8b 46 e8
    6709     call 01652h                               ; e8 98 cb
     6739    call 01652h                               ; e8 52 cb
    67106740    add bl, al                                ; 00 c3
    67116741    db  0feh, 0c7h
    67126742    ; inc bh                                    ; fe c7
    6713     jmp short 04aa5h                          ; eb e5
     6743    jmp short 04aebh                          ; eb e5
    67146744    neg bl                                    ; f6 db
    67156745    les di, [bp-00eh]                         ; c4 7e f2
    67166746    mov byte [es:di+00243h], bl               ; 26 88 9d 43 02
    67176747    cmp word [bp-01eh], strict byte 00042h    ; 83 7e e2 42
    6718     jnc short 04ad3h                          ; 73 03
    6719     jmp near 04b96h                           ; e9 c3 00
     6748    jnc short 04b19h                          ; 73 03
     6749    jmp near 04bdch                           ; e9 c3 00
    67206750    mov al, byte [bp-008h]                    ; 8a 46 f8
    67216751    xor ah, ah                                ; 30 e4
     
    67376767    mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
    67386768    test al, al                               ; 84 c0
    6739     jne short 04b1dh                          ; 75 0c
     6769    jne short 04b63h                          ; 75 0c
    67406770    mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
    67416771    mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
     
    67466776    mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
    67476777    test al, al                               ; 84 c0
    6748     jne short 04b52h                          ; 75 16
     6778    jne short 04b98h                          ; 75 16
    67496779    mov word [es:si+030h], dx                 ; 26 89 54 30
    67506780    mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
     
    67616791    xor al, al                                ; 30 c0
    67626792    mov AH, strict byte 01eh                  ; b4 1e
    6763     jmp short 04b7dh                          ; eb 05
     6793    jmp short 04bc3h                          ; eb 05
    67646794    cmp ah, 040h                              ; 80 fc 40
    6765     jnc short 04b8dh                          ; 73 10
     6795    jnc short 04bd3h                          ; 73 10
    67666796    mov bl, ah                                ; 88 e3
    67676797    xor bh, bh                                ; 30 ff
     
    67716801    db  0feh, 0c4h
    67726802    ; inc ah                                    ; fe c4
    6773     jmp short 04b78h                          ; eb eb
     6803    jmp short 04bbeh                          ; eb eb
    67746804    neg al                                    ; f6 d8
    67756805    mov es, [bp-00ah]                         ; 8e 46 f6
     
    67796809    mov dx, strict word 00074h                ; ba 74 00
    67806810    mov ax, strict word 00040h                ; b8 40 00
    6781     call 01660h                               ; e8 bb ca
     6811    call 01660h                               ; e8 75 ca
    67826812    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    67836813    lea sp, [bp-004h]                         ; 8d 66 fc
     
    67886818    or bh, 006h                               ; 80 cf 06
    67896819    mov word [bp+018h], bx                    ; 89 5e 18
    6790     jmp short 04be7h                          ; eb 2f
     6820    jmp short 04c2dh                          ; eb 2f
    67916821    cmp bx, strict byte 00006h                ; 83 fb 06
    6792     je short 04b96h                           ; 74 d9
     6822    je short 04bdch                           ; 74 d9
    67936823    cmp bx, strict byte 00001h                ; 83 fb 01
    6794     jc short 04bceh                           ; 72 0c
    6795     jbe short 04b96h                          ; 76 d2
     6824    jc short 04c14h                           ; 72 0c
     6825    jbe short 04bdch                          ; 76 d2
    67966826    cmp bx, strict byte 00003h                ; 83 fb 03
    6797     jc short 04bceh                           ; 72 05
     6827    jc short 04c14h                           ; 72 05
    67986828    cmp bx, strict byte 00004h                ; 83 fb 04
    6799     jbe short 04b96h                          ; 76 c8
     6829    jbe short 04bdch                          ; 76 c8
    68006830    mov ax, word [bp+018h]                    ; 8b 46 18
    68016831    xor ah, ah                                ; 30 e4
     
    68066836    mov dx, strict word 00074h                ; ba 74 00
    68076837    mov ax, strict word 00040h                ; b8 40 00
    6808     call 01660h                               ; e8 79 ca
     6838    call 01660h                               ; e8 33 ca
    68096839    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6810     jmp short 04ba9h                          ; eb bc
    6811 print_boot_device_:                          ; 0xf4bed LB 0x51
     6840    jmp short 04befh                          ; eb bc
     6841print_boot_device_:                          ; 0xf4c33 LB 0x51
    68126842    push bp                                   ; 55
    68136843    mov bp, sp                                ; 89 e5
    68146844    push cx                                   ; 51
    68156845    test al, al                               ; 84 c0
    6816     je short 04bfah                           ; 74 05
     6846    je short 04c40h                           ; 74 05
    68176847    mov dx, strict word 00002h                ; ba 02 00
    6818     jmp short 04c14h                          ; eb 1a
     6848    jmp short 04c5ah                          ; eb 1a
    68196849    test dl, dl                               ; 84 d2
    6820     je short 04c03h                           ; 74 05
     6850    je short 04c49h                           ; 74 05
    68216851    mov dx, strict word 00003h                ; ba 03 00
    6822     jmp short 04c14h                          ; eb 11
     6852    jmp short 04c5ah                          ; eb 11
    68236853    test bl, 080h                             ; f6 c3 80
    6824     jne short 04c0ch                          ; 75 04
     6854    jne short 04c52h                          ; 75 04
    68256855    xor dh, dh                                ; 30 f6
    6826     jmp short 04c14h                          ; eb 08
     6856    jmp short 04c5ah                          ; eb 08
    68276857    test bl, 080h                             ; f6 c3 80
    6828     je short 04c38h                           ; 74 27
     6858    je short 04c7eh                           ; 74 27
    68296859    mov dx, strict word 00001h                ; ba 01 00
    68306860    mov bx, 00da0h                            ; bb a0 0d
    68316861    mov cx, ds                                ; 8c d9
    68326862    mov ax, strict word 00004h                ; b8 04 00
    6833     call 01933h                               ; e8 14 cd
     6863    call 01933h                               ; e8 ce cc
    68346864    mov ax, dx                                ; 89 d0
    68356865    mov dx, strict word 0000ah                ; ba 0a 00
     
    68416871    mov ax, strict word 00004h                ; b8 04 00
    68426872    push ax                                   ; 50
    6843     call 01976h                               ; e8 41 cd
     6873    call 01976h                               ; e8 fb cc
    68446874    add sp, strict byte 00006h                ; 83 c4 06
    68456875    lea sp, [bp-002h]                         ; 8d 66 fe
     
    68476877    pop bp                                    ; 5d
    68486878    retn                                      ; c3
    6849 print_boot_failure_:                         ; 0xf4c3e LB 0x9f
     6879print_boot_failure_:                         ; 0xf4c84 LB 0x9f
    68506880    push bp                                   ; 55
    68516881    mov bp, sp                                ; 89 e5
     
    68576887    mov si, cx                                ; 89 ce
    68586888    test al, al                               ; 84 c0
    6859     je short 04c70h                           ; 74 1f
     6889    je short 04cb6h                           ; 74 1f
    68606890    mov bx, 00da0h                            ; bb a0 0d
    68616891    mov cx, ds                                ; 8c d9
    68626892    mov ax, strict word 00004h                ; b8 04 00
    6863     call 01933h                               ; e8 d7 cc
     6893    call 01933h                               ; e8 91 cc
    68646894    mov cx, 00ddah                            ; b9 da 0d
    68656895    push cx                                   ; 51
     
    68686898    mov cx, strict word 00004h                ; b9 04 00
    68696899    push cx                                   ; 51
    6870     call 01976h                               ; e8 0b cd
     6900    call 01976h                               ; e8 c5 cc
    68716901    add sp, strict byte 00006h                ; 83 c4 06
    6872     jmp short 04cb8h                          ; eb 48
     6902    jmp short 04cfeh                          ; eb 48
    68736903    test dl, dl                               ; 84 d2
    6874     je short 04c84h                           ; 74 10
     6904    je short 04ccah                           ; 74 10
    68756905    mov bx, 00da0h                            ; bb a0 0d
    68766906    mov cx, ds                                ; 8c d9
    68776907    mov ax, strict word 00004h                ; b8 04 00
    6878     call 01933h                               ; e8 b4 cc
     6908    call 01933h                               ; e8 6e cc
    68796909    mov cx, 00de4h                            ; b9 e4 0d
    6880     jmp short 04c5fh                          ; eb db
     6910    jmp short 04ca5h                          ; eb db
    68816911    test bl, 080h                             ; f6 c3 80
    6882     je short 04c9ah                           ; 74 11
     6912    je short 04ce0h                           ; 74 11
    68836913    mov bx, 00da0h                            ; bb a0 0d
    68846914    mov cx, ds                                ; 8c d9
    68856915    mov ax, strict word 00004h                ; b8 04 00
    6886     call 01933h                               ; e8 9f cc
     6916    call 01933h                               ; e8 59 cc
    68876917    push si                                   ; 56
    68886918    mov cx, 00dd0h                            ; b9 d0 0d
    6889     jmp short 04ca9h                          ; eb 0f
     6919    jmp short 04cefh                          ; eb 0f
    68906920    mov bx, 00da0h                            ; bb a0 0d
    68916921    mov cx, ds                                ; 8c d9
    68926922    mov ax, strict word 00004h                ; b8 04 00
    6893     call 01933h                               ; e8 8e cc
     6923    call 01933h                               ; e8 48 cc
    68946924    push si                                   ; 56
    68956925    mov cx, 00dc6h                            ; b9 c6 0d
     
    68996929    mov cx, strict word 00004h                ; b9 04 00
    69006930    push cx                                   ; 51
    6901     call 01976h                               ; e8 c1 cc
     6931    call 01976h                               ; e8 7b cc
    69026932    add sp, strict byte 00008h                ; 83 c4 08
    69036933    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6904     jne short 04cd5h                          ; 75 17
     6934    jne short 04d1bh                          ; 75 17
    69056935    test dh, dh                               ; 84 f6
    6906     jne short 04cc7h                          ; 75 05
     6936    jne short 04d0dh                          ; 75 05
    69076937    mov dx, 004d5h                            ; ba d5 04
    6908     jmp short 04ccah                          ; eb 03
     6938    jmp short 04d10h                          ; eb 03
    69096939    mov dx, 004ffh                            ; ba ff 04
    69106940    push dx                                   ; 52
    69116941    mov dx, strict word 00007h                ; ba 07 00
    69126942    push dx                                   ; 52
    6913     call 01976h                               ; e8 a4 cc
     6943    call 01976h                               ; e8 5e cc
    69146944    add sp, strict byte 00004h                ; 83 c4 04
    69156945    lea sp, [bp-002h]                         ; 8d 66 fe
     
    69176947    pop bp                                    ; 5d
    69186948    retn 00002h                               ; c2 02 00
    6919 print_cdromboot_failure_:                    ; 0xf4cdd LB 0x2a
     6949print_cdromboot_failure_:                    ; 0xf4d23 LB 0x2a
    69206950    push bp                                   ; 55
    69216951    mov bp, sp                                ; 89 e5
     
    69276957    mov cx, ds                                ; 8c d9
    69286958    mov ax, strict word 00004h                ; b8 04 00
    6929     call 01933h                               ; e8 43 cc
     6959    call 01933h                               ; e8 fd cb
    69306960    push dx                                   ; 52
    69316961    mov dx, 00534h                            ; ba 34 05
     
    69336963    mov dx, strict word 00004h                ; ba 04 00
    69346964    push dx                                   ; 52
    6935     call 01976h                               ; e8 7a cc
     6965    call 01976h                               ; e8 34 cc
    69366966    add sp, strict byte 00006h                ; 83 c4 06
    69376967    lea sp, [bp-006h]                         ; 8d 66 fa
     
    69416971    pop bp                                    ; 5d
    69426972    retn                                      ; c3
    6943 _int19_function:                             ; 0xf4d07 LB 0x28d
     6973_int19_function:                             ; 0xf4d4d LB 0x28d
    69446974    push bp                                   ; 55
    69456975    mov bp, sp                                ; 89 e5
     
    69496979    mov dx, strict word 0000eh                ; ba 0e 00
    69506980    mov ax, strict word 00040h                ; b8 40 00
    6951     call 0166eh                               ; e8 56 c9
     6981    call 0166eh                               ; e8 10 c9
    69526982    mov bx, ax                                ; 89 c3
    69536983    mov di, ax                                ; 89 c7
    69546984    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    69556985    mov ax, strict word 0003dh                ; b8 3d 00
    6956     call 016aeh                               ; e8 88 c9
     6986    call 016aeh                               ; e8 42 c9
    69576987    mov dl, al                                ; 88 c2
    69586988    xor dh, dh                                ; 30 f6
    69596989    mov word [bp-00eh], dx                    ; 89 56 f2
    69606990    mov ax, strict word 00038h                ; b8 38 00
    6961     call 016aeh                               ; e8 7b c9
     6991    call 016aeh                               ; e8 35 c9
    69626992    and AL, strict byte 0f0h                  ; 24 f0
    69636993    mov byte [bp-010h], al                    ; 88 46 f0
     
    69696999    mov word [bp-00eh], dx                    ; 89 56 f2
    69707000    mov ax, strict word 0003ch                ; b8 3c 00
    6971     call 016aeh                               ; e8 61 c9
     7001    call 016aeh                               ; e8 1b c9
    69727002    and AL, strict byte 00fh                  ; 24 0f
    69737003    xor ah, ah                                ; 30 e4
     
    69777007    mov dx, 0037dh                            ; ba 7d 03
    69787008    mov ax, bx                                ; 89 d8
    6979     call 01652h                               ; e8 f2 c8
     7009    call 01652h                               ; e8 ac c8
    69807010    test al, al                               ; 84 c0
    6981     je short 04d71h                           ; 74 0d
     7011    je short 04db7h                           ; 74 0d
    69827012    mov dx, 0037dh                            ; ba 7d 03
    69837013    mov ax, bx                                ; 89 d8
    6984     call 01652h                               ; e8 e6 c8
     7014    call 01652h                               ; e8 a0 c8
    69857015    xor ah, ah                                ; 30 e4
    69867016    mov word [bp-00eh], ax                    ; 89 46 f2
    69877017    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6988     jne short 04d88h                          ; 75 11
     7018    jne short 04dceh                          ; 75 11
    69897019    mov ax, strict word 0003ch                ; b8 3c 00
    6990     call 016aeh                               ; e8 31 c9
     7020    call 016aeh                               ; e8 eb c8
    69917021    and AL, strict byte 0f0h                  ; 24 f0
    69927022    xor ah, ah                                ; 30 e4
    69937023    mov CL, strict byte 004h                  ; b1 04
    69947024    sar ax, CL                                ; d3 f8
    6995     call 07d94h                               ; e8 0c 30
     7025    call 07ddah                               ; e8 0c 30
    69967026    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6997     jne short 04d93h                          ; 75 05
     7027    jne short 04dd9h                          ; 75 05
    69987028    mov CL, strict byte 004h                  ; b1 04
    69997029    shr word [bp-00eh], CL                    ; d3 6e f2
    70007030    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    7001     jne short 04da1h                          ; 75 08
     7031    jne short 04de7h                          ; 75 08
    70027032    mov al, byte [bp-00dh]                    ; 8a 46 f3
    70037033    xor ah, ah                                ; 30 e4
    70047034    mov word [bp-00eh], ax                    ; 89 46 f2
    70057035    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    7006     jne short 04dach                          ; 75 05
     7036    jne short 04df2h                          ; 75 05
    70077037    mov CL, strict byte 00ch                  ; b1 0c
    70087038    shr word [bp-00eh], CL                    ; d3 6e f2
    70097039    cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
    7010     jnc short 04db6h                          ; 73 04
     7040    jnc short 04dfch                          ; 73 04
    70117041    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    70127042    xor al, al                                ; 30 c0
     
    70177047    mov cx, ds                                ; 8c d9
    70187048    mov ax, strict word 00004h                ; b8 04 00
    7019     call 01933h                               ; e8 67 cb
     7049    call 01933h                               ; e8 21 cb
    70207050    push word [bp-00eh]                       ; ff 76 f2
    70217051    mov al, byte [bp+004h]                    ; 8a 46 04
     
    70267056    mov ax, strict word 00004h                ; b8 04 00
    70277057    push ax                                   ; 50
    7028     call 01976h                               ; e8 96 cb
     7058    call 01976h                               ; e8 50 cb
    70297059    add sp, strict byte 00008h                ; 83 c4 08
    70307060    mov ax, word [bp-00eh]                    ; 8b 46 f2
    70317061    and ax, strict word 0000fh                ; 25 0f 00
    70327062    cmp ax, strict word 00002h                ; 3d 02 00
    7033     jc short 04dfch                           ; 72 0e
    7034     jbe short 04e0bh                          ; 76 1b
     7063    jc short 04e42h                           ; 72 0e
     7064    jbe short 04e51h                          ; 76 1b
    70357065    cmp ax, strict word 00004h                ; 3d 04 00
    7036     je short 04e28h                           ; 74 33
     7066    je short 04e6eh                           ; 74 33
    70377067    cmp ax, strict word 00003h                ; 3d 03 00
    7038     je short 04e1eh                           ; 74 24
    7039     jmp short 04e57h                          ; eb 5b
     7068    je short 04e64h                           ; 74 24
     7069    jmp short 04e9dh                          ; eb 5b
    70407070    cmp ax, strict word 00001h                ; 3d 01 00
    7041     jne short 04e57h                          ; 75 56
     7071    jne short 04e9dh                          ; 75 56
    70427072    xor al, al                                ; 30 c0
    70437073    mov byte [bp-006h], al                    ; 88 46 fa
    70447074    mov byte [bp-008h], al                    ; 88 46 f8
    7045     jmp short 04e6bh                          ; eb 60
     7075    jmp short 04eb1h                          ; eb 60
    70467076    mov dx, 0037ch                            ; ba 7c 03
    70477077    mov ax, di                                ; 89 f8
    7048     call 01652h                               ; e8 3f c8
     7078    call 01652h                               ; e8 f9 c7
    70497079    add AL, strict byte 080h                  ; 04 80
    70507080    mov byte [bp-006h], al                    ; 88 46 fa
    70517081    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    7052     jmp short 04e6bh                          ; eb 4d
     7082    jmp short 04eb1h                          ; eb 4d
    70537083    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    70547084    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    7055     jmp short 04e32h                          ; eb 0a
     7085    jmp short 04e78h                          ; eb 0a
    70567086    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    70577087    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7058     je short 04e6bh                           ; 74 39
    7059     call 03dd8h                               ; e8 a3 ef
     7088    je short 04eb1h                           ; 74 39
     7089    call 03e1eh                               ; e8 a3 ef
    70607090    mov bx, ax                                ; 89 c3
    70617091    test AL, strict byte 0ffh                 ; a8 ff
    7062     je short 04e5eh                           ; 74 23
    7063     call 04cddh                               ; e8 9f fe
     7092    je short 04ea4h                           ; 74 23
     7093    call 04d23h                               ; e8 9f fe
    70647094    mov al, byte [bp-00ch]                    ; 8a 46 f4
    70657095    xor ah, ah                                ; 30 e4
     
    70717101    mov al, byte [bp-008h]                    ; 8a 46 f8
    70727102    mov cx, strict word 00001h                ; b9 01 00
    7073     call 04c3eh                               ; e8 e7 fd
     7103    call 04c84h                               ; e8 e7 fd
    70747104    xor ax, ax                                ; 31 c0
    70757105    xor dx, dx                                ; 31 d2
    7076     jmp near 04f8dh                           ; e9 2f 01
     7106    jmp near 04fd3h                           ; e9 2f 01
    70777107    mov dx, 00372h                            ; ba 72 03
    70787108    mov ax, di                                ; 89 f8
    7079     call 0166eh                               ; e8 08 c8
     7109    call 0166eh                               ; e8 c2 c7
    70807110    mov si, ax                                ; 89 c6
    70817111    mov byte [bp-006h], bh                    ; 88 7e fa
    70827112    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
    7083     jne short 04ec6h                          ; 75 55
     7113    jne short 04f0ch                          ; 75 55
    70847114    xor si, si                                ; 31 f6
    70857115    mov ax, 0e200h                            ; b8 00 e2
    70867116    mov es, ax                                ; 8e c0
    70877117    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    7088     jne short 04e3eh                          ; 75 bf
     7118    jne short 04e84h                          ; 75 bf
    70897119    mov cx, ax                                ; 89 c1
    70907120    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    70917121    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    7092     jne short 04e3eh                          ; 75 b1
     7122    jne short 04e84h                          ; 75 b1
    70937123    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    7094     jne short 04e3eh                          ; 75 aa
     7124    jne short 04e84h                          ; 75 aa
    70957125    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
    70967126    mov dx, word [es:bx]                      ; 26 8b 17
    70977127    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
    70987128    cmp ax, 06568h                            ; 3d 68 65
    7099     jne short 04ec8h                          ; 75 24
     7129    jne short 04f0eh                          ; 75 24
    71007130    cmp dx, 07445h                            ; 81 fa 45 74
    7101     jne short 04ec8h                          ; 75 1e
     7131    jne short 04f0eh                          ; 75 1e
    71027132    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71037133    xor bh, bh                                ; 30 ff
     
    71067136    mov al, byte [bp-008h]                    ; 8a 46 f8
    71077137    xor ah, ah                                ; 30 e4
    7108     call 04bedh                               ; e8 31 fd
     7138    call 04c33h                               ; e8 31 fd
    71097139    mov word [bp-014h], strict word 00006h    ; c7 46 ec 06 00
    71107140    mov word [bp-012h], cx                    ; 89 4e ee
    7111     jmp short 04ee7h                          ; eb 21
    7112     jmp short 04eedh                          ; eb 25
     7141    jmp short 04f2dh                          ; eb 21
     7142    jmp short 04f33h                          ; eb 25
    71137143    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71147144    xor bh, bh                                ; 30 ff
     
    71177147    mov al, byte [bp-008h]                    ; 8a 46 f8
    71187148    xor ah, ah                                ; 30 e4
    7119     call 04bedh                               ; e8 13 fd
     7149    call 04c33h                               ; e8 13 fd
    71207150    sti                                       ; fb
    71217151    mov word [bp-012h], cx                    ; 89 4e ee
     
    71247154    mov word [bp-014h], ax                    ; 89 46 ec
    71257155    call far [bp-014h]                        ; ff 5e ec
    7126     jmp near 04e3eh                           ; e9 51 ff
     7156    jmp near 04e84h                           ; e9 51 ff
    71277157    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7128     jne short 04f1ah                          ; 75 27
     7158    jne short 04f60h                          ; 75 27
    71297159    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    7130     jne short 04f1ah                          ; 75 21
     7160    jne short 04f60h                          ; 75 21
    71317161    mov si, 007c0h                            ; be c0 07
    71327162    mov es, si                                ; 8e c6
     
    71417171    sbb ax, strict byte 00000h                ; 83 d8 00
    71427172    test ax, ax                               ; 85 c0
    7143     je short 04f1ah                           ; 74 03
    7144     jmp near 04e3eh                           ; e9 24 ff
     7173    je short 04f60h                           ; 74 03
     7174    jmp near 04e84h                           ; e9 24 ff
    71457175    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7146     je short 04f24h                           ; 74 04
     7176    je short 04f6ah                           ; 74 04
    71477177    xor bl, bl                                ; 30 db
    7148     jmp short 04f26h                          ; eb 02
     7178    jmp short 04f6ch                          ; eb 02
    71497179    mov BL, strict byte 001h                  ; b3 01
    71507180    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    7151     je short 04f2eh                           ; 74 02
     7181    je short 04f74h                           ; 74 02
    71527182    mov BL, strict byte 001h                  ; b3 01
    71537183    xor dx, dx                                ; 31 d2
    71547184    mov ax, si                                ; 89 f0
    7155     call 0166eh                               ; e8 39 c7
     7185    call 0166eh                               ; e8 f3 c6
    71567186    mov di, ax                                ; 89 c7
    71577187    mov dx, strict word 00002h                ; ba 02 00
    71587188    mov ax, si                                ; 89 f0
    7159     call 0166eh                               ; e8 2f c7
     7189    call 0166eh                               ; e8 e9 c6
    71607190    cmp di, ax                                ; 39 c7
    7161     je short 04f54h                           ; 74 11
     7191    je short 04f9ah                           ; 74 11
    71627192    test bl, bl                               ; 84 db
    7163     jne short 04f6ch                          ; 75 25
     7193    jne short 04fb2h                          ; 75 25
    71647194    mov dx, 001feh                            ; ba fe 01
    71657195    mov ax, si                                ; 89 f0
    7166     call 0166eh                               ; e8 1f c7
     7196    call 0166eh                               ; e8 d9 c6
    71677197    cmp ax, 0aa55h                            ; 3d 55 aa
    7168     je short 04f6ch                           ; 74 18
     7198    je short 04fb2h                           ; 74 18
    71697199    mov al, byte [bp-00ch]                    ; 8a 46 f4
    71707200    xor ah, ah                                ; 30 e4
     
    71767206    mov al, byte [bp-008h]                    ; 8a 46 f8
    71777207    xor cx, cx                                ; 31 c9
    7178     jmp near 04e54h                           ; e9 e8 fe
     7208    jmp near 04e9ah                           ; e9 e8 fe
    71797209    mov bl, byte [bp-006h]                    ; 8a 5e fa
    71807210    xor bh, bh                                ; 30 ff
     
    71837213    mov al, byte [bp-008h]                    ; 8a 46 f8
    71847214    xor ah, ah                                ; 30 e4
    7185     call 04bedh                               ; e8 6f fc
     7215    call 04c33h                               ; e8 6f fc
    71867216    mov al, byte [bp-006h]                    ; 8a 46 fa
    71877217    xor ah, ah                                ; 30 e4
     
    71967226    pop bp                                    ; 5d
    71977227    retn                                      ; c3
    7198 keyboard_panic_:                             ; 0xf4f94 LB 0x16
     7228keyboard_panic_:                             ; 0xf4fda LB 0x16
    71997229    push bp                                   ; 55
    72007230    mov bp, sp                                ; 89 e5
     
    72047234    mov ax, strict word 00007h                ; b8 07 00
    72057235    push ax                                   ; 50
    7206     call 01976h                               ; e8 d3 c9
     7236    call 01976h                               ; e8 8d c9
    72077237    add sp, strict byte 00006h                ; 83 c4 06
    72087238    mov sp, bp                                ; 89 ec
    72097239    pop bp                                    ; 5d
    72107240    retn                                      ; c3
    7211 _keyboard_init:                              ; 0xf4faa LB 0x26a
     7241_keyboard_init:                              ; 0xf4ff0 LB 0x26a
    72127242    push bp                                   ; 55
    72137243    mov bp, sp                                ; 89 e5
     
    72217251    ; sub ah, ah                                ; 2a e4
    72227252    test AL, strict byte 002h                 ; a8 02
    7223     je short 04fcdh                           ; 74 0d
     7253    je short 05013h                           ; 74 0d
    72247254    dec bx                                    ; 4b
    72257255    test bx, bx                               ; 85 db
    7226     jbe short 04fcdh                          ; 76 08
     7256    jbe short 05013h                          ; 76 08
    72277257    xor al, al                                ; 30 c0
    72287258    mov dx, 00080h                            ; ba 80 00
    72297259    out DX, AL                                ; ee
    7230     jmp short 04fb6h                          ; eb e9
     7260    jmp short 04ffch                          ; eb e9
    72317261    test bx, bx                               ; 85 db
    7232     jne short 04fd6h                          ; 75 05
     7262    jne short 0501ch                          ; 75 05
    72337263    xor ax, ax                                ; 31 c0
    7234     call 04f94h                               ; e8 be ff
     7264    call 04fdah                               ; e8 be ff
    72357265    mov bx, strict word 0ffffh                ; bb ff ff
    72367266    mov dx, strict word 00064h                ; ba 64 00
     
    72397269    ; sub ah, ah                                ; 2a e4
    72407270    test AL, strict byte 001h                 ; a8 01
    7241     jne short 04ff0h                          ; 75 0d
     7271    jne short 05036h                          ; 75 0d
    72427272    dec bx                                    ; 4b
    72437273    test bx, bx                               ; 85 db
    7244     jbe short 04ff0h                          ; 76 08
     7274    jbe short 05036h                          ; 76 08
    72457275    mov AL, strict byte 001h                  ; b0 01
    72467276    mov dx, 00080h                            ; ba 80 00
    72477277    out DX, AL                                ; ee
    7248     jmp short 04fd9h                          ; eb e9
     7278    jmp short 0501fh                          ; eb e9
    72497279    test bx, bx                               ; 85 db
    7250     jne short 04ffah                          ; 75 06
     7280    jne short 05040h                          ; 75 06
    72517281    mov ax, strict word 00001h                ; b8 01 00
    7252     call 04f94h                               ; e8 9a ff
     7282    call 04fdah                               ; e8 9a ff
    72537283    mov dx, strict word 00060h                ; ba 60 00
    72547284    in AL, DX                                 ; ec
     
    72567286    ; sub ah, ah                                ; 2a e4
    72577287    cmp ax, strict word 00055h                ; 3d 55 00
    7258     je short 0500bh                           ; 74 06
     7288    je short 05051h                           ; 74 06
    72597289    mov ax, 003dfh                            ; b8 df 03
    7260     call 04f94h                               ; e8 89 ff
     7290    call 04fdah                               ; e8 89 ff
    72617291    mov AL, strict byte 0abh                  ; b0 ab
    72627292    mov dx, strict word 00064h                ; ba 64 00
     
    72687298    ; sub ah, ah                                ; 2a e4
    72697299    test AL, strict byte 002h                 ; a8 02
    7270     je short 0502bh                           ; 74 0d
     7300    je short 05071h                           ; 74 0d
    72717301    dec bx                                    ; 4b
    72727302    test bx, bx                               ; 85 db
    7273     jbe short 0502bh                          ; 76 08
     7303    jbe short 05071h                          ; 76 08
    72747304    mov AL, strict byte 010h                  ; b0 10
    72757305    mov dx, 00080h                            ; ba 80 00
    72767306    out DX, AL                                ; ee
    7277     jmp short 05014h                          ; eb e9
     7307    jmp short 0505ah                          ; eb e9
    72787308    test bx, bx                               ; 85 db
    7279     jne short 05035h                          ; 75 06
     7309    jne short 0507bh                          ; 75 06
    72807310    mov ax, strict word 0000ah                ; b8 0a 00
    7281     call 04f94h                               ; e8 5f ff
     7311    call 04fdah                               ; e8 5f ff
    72827312    mov bx, strict word 0ffffh                ; bb ff ff
    72837313    mov dx, strict word 00064h                ; ba 64 00
     
    72867316    ; sub ah, ah                                ; 2a e4
    72877317    test AL, strict byte 001h                 ; a8 01
    7288     jne short 0504fh                          ; 75 0d
     7318    jne short 05095h                          ; 75 0d
    72897319    dec bx                                    ; 4b
    72907320    test bx, bx                               ; 85 db
    7291     jbe short 0504fh                          ; 76 08
     7321    jbe short 05095h                          ; 76 08
    72927322    mov AL, strict byte 011h                  ; b0 11
    72937323    mov dx, 00080h                            ; ba 80 00
    72947324    out DX, AL                                ; ee
    7295     jmp short 05038h                          ; eb e9
     7325    jmp short 0507eh                          ; eb e9
    72967326    test bx, bx                               ; 85 db
    7297     jne short 05059h                          ; 75 06
     7327    jne short 0509fh                          ; 75 06
    72987328    mov ax, strict word 0000bh                ; b8 0b 00
    7299     call 04f94h                               ; e8 3b ff
     7329    call 04fdah                               ; e8 3b ff
    73007330    mov dx, strict word 00060h                ; ba 60 00
    73017331    in AL, DX                                 ; ec
     
    73037333    ; sub ah, ah                                ; 2a e4
    73047334    test ax, ax                               ; 85 c0
    7305     je short 05069h                           ; 74 06
     7335    je short 050afh                           ; 74 06
    73067336    mov ax, 003e0h                            ; b8 e0 03
    7307     call 04f94h                               ; e8 2b ff
     7337    call 04fdah                               ; e8 2b ff
    73087338    mov AL, strict byte 0ffh                  ; b0 ff
    73097339    mov dx, strict word 00060h                ; ba 60 00
     
    73157345    ; sub ah, ah                                ; 2a e4
    73167346    test AL, strict byte 002h                 ; a8 02
    7317     je short 05089h                           ; 74 0d
     7347    je short 050cfh                           ; 74 0d
    73187348    dec bx                                    ; 4b
    73197349    test bx, bx                               ; 85 db
    7320     jbe short 05089h                          ; 76 08
     7350    jbe short 050cfh                          ; 76 08
    73217351    mov AL, strict byte 020h                  ; b0 20
    73227352    mov dx, 00080h                            ; ba 80 00
    73237353    out DX, AL                                ; ee
    7324     jmp short 05072h                          ; eb e9
     7354    jmp short 050b8h                          ; eb e9
    73257355    test bx, bx                               ; 85 db
    7326     jne short 05093h                          ; 75 06
     7356    jne short 050d9h                          ; 75 06
    73277357    mov ax, strict word 00014h                ; b8 14 00
    7328     call 04f94h                               ; e8 01 ff
     7358    call 04fdah                               ; e8 01 ff
    73297359    mov bx, strict word 0ffffh                ; bb ff ff
    73307360    mov dx, strict word 00064h                ; ba 64 00
     
    73337363    ; sub ah, ah                                ; 2a e4
    73347364    test AL, strict byte 001h                 ; a8 01
    7335     jne short 050adh                          ; 75 0d
     7365    jne short 050f3h                          ; 75 0d
    73367366    dec bx                                    ; 4b
    73377367    test bx, bx                               ; 85 db
    7338     jbe short 050adh                          ; 76 08
     7368    jbe short 050f3h                          ; 76 08
    73397369    mov AL, strict byte 021h                  ; b0 21
    73407370    mov dx, 00080h                            ; ba 80 00
    73417371    out DX, AL                                ; ee
    7342     jmp short 05096h                          ; eb e9
     7372    jmp short 050dch                          ; eb e9
    73437373    test bx, bx                               ; 85 db
    7344     jne short 050b7h                          ; 75 06
     7374    jne short 050fdh                          ; 75 06
    73457375    mov ax, strict word 00015h                ; b8 15 00
    7346     call 04f94h                               ; e8 dd fe
     7376    call 04fdah                               ; e8 dd fe
    73477377    mov dx, strict word 00060h                ; ba 60 00
    73487378    in AL, DX                                 ; ec
     
    73507380    ; sub ah, ah                                ; 2a e4
    73517381    cmp ax, 000fah                            ; 3d fa 00
    7352     je short 050c8h                           ; 74 06
     7382    je short 0510eh                           ; 74 06
    73537383    mov ax, 003e1h                            ; b8 e1 03
    7354     call 04f94h                               ; e8 cc fe
     7384    call 04fdah                               ; e8 cc fe
    73557385    mov dx, strict word 00064h                ; ba 64 00
    73567386    in AL, DX                                 ; ec
     
    73587388    ; sub ah, ah                                ; 2a e4
    73597389    test AL, strict byte 001h                 ; a8 01
    7360     jne short 050dah                          ; 75 08
     7390    jne short 05120h                          ; 75 08
    73617391    mov AL, strict byte 031h                  ; b0 31
    73627392    mov dx, 00080h                            ; ba 80 00
    73637393    out DX, AL                                ; ee
    7364     jmp short 050c8h                          ; eb ee
     7394    jmp short 0510eh                          ; eb ee
    73657395    mov dx, strict word 00060h                ; ba 60 00
    73667396    in AL, DX                                 ; ec
     
    73687398    ; sub ah, ah                                ; 2a e4
    73697399    cmp ax, 000aah                            ; 3d aa 00
    7370     je short 050f3h                           ; 74 0e
     7400    je short 05139h                           ; 74 0e
    73717401    in AL, DX                                 ; ec
    73727402    db  02ah, 0e4h
    73737403    ; sub ah, ah                                ; 2a e4
    73747404    cmp ax, 000aah                            ; 3d aa 00
    7375     je short 050f3h                           ; 74 06
     7405    je short 05139h                           ; 74 06
    73767406    mov ax, 003e2h                            ; b8 e2 03
    7377     call 04f94h                               ; e8 a1 fe
     7407    call 04fdah                               ; e8 a1 fe
    73787408    mov AL, strict byte 0f5h                  ; b0 f5
    73797409    mov dx, strict word 00060h                ; ba 60 00
     
    73857415    ; sub ah, ah                                ; 2a e4
    73867416    test AL, strict byte 002h                 ; a8 02
    7387     je short 05113h                           ; 74 0d
     7417    je short 05159h                           ; 74 0d
    73887418    dec bx                                    ; 4b
    73897419    test bx, bx                               ; 85 db
    7390     jbe short 05113h                          ; 76 08
     7420    jbe short 05159h                          ; 76 08
    73917421    mov AL, strict byte 040h                  ; b0 40
    73927422    mov dx, 00080h                            ; ba 80 00
    73937423    out DX, AL                                ; ee
    7394     jmp short 050fch                          ; eb e9
     7424    jmp short 05142h                          ; eb e9
    73957425    test bx, bx                               ; 85 db
    7396     jne short 0511dh                          ; 75 06
     7426    jne short 05163h                          ; 75 06
    73977427    mov ax, strict word 00028h                ; b8 28 00
    7398     call 04f94h                               ; e8 77 fe
     7428    call 04fdah                               ; e8 77 fe
    73997429    mov bx, strict word 0ffffh                ; bb ff ff
    74007430    mov dx, strict word 00064h                ; ba 64 00
     
    74037433    ; sub ah, ah                                ; 2a e4
    74047434    test AL, strict byte 001h                 ; a8 01
    7405     jne short 05137h                          ; 75 0d
     7435    jne short 0517dh                          ; 75 0d
    74067436    dec bx                                    ; 4b
    74077437    test bx, bx                               ; 85 db
    7408     jbe short 05137h                          ; 76 08
     7438    jbe short 0517dh                          ; 76 08
    74097439    mov AL, strict byte 041h                  ; b0 41
    74107440    mov dx, 00080h                            ; ba 80 00
    74117441    out DX, AL                                ; ee
    7412     jmp short 05120h                          ; eb e9
     7442    jmp short 05166h                          ; eb e9
    74137443    test bx, bx                               ; 85 db
    7414     jne short 05141h                          ; 75 06
     7444    jne short 05187h                          ; 75 06
    74157445    mov ax, strict word 00029h                ; b8 29 00
    7416     call 04f94h                               ; e8 53 fe
     7446    call 04fdah                               ; e8 53 fe
    74177447    mov dx, strict word 00060h                ; ba 60 00
    74187448    in AL, DX                                 ; ec
     
    74207450    ; sub ah, ah                                ; 2a e4
    74217451    cmp ax, 000fah                            ; 3d fa 00
    7422     je short 05152h                           ; 74 06
     7452    je short 05198h                           ; 74 06
    74237453    mov ax, 003e3h                            ; b8 e3 03
    7424     call 04f94h                               ; e8 42 fe
     7454    call 04fdah                               ; e8 42 fe
    74257455    mov AL, strict byte 060h                  ; b0 60
    74267456    mov dx, strict word 00064h                ; ba 64 00
     
    74327462    ; sub ah, ah                                ; 2a e4
    74337463    test AL, strict byte 002h                 ; a8 02
    7434     je short 05172h                           ; 74 0d
     7464    je short 051b8h                           ; 74 0d
    74357465    dec bx                                    ; 4b
    74367466    test bx, bx                               ; 85 db
    7437     jbe short 05172h                          ; 76 08
     7467    jbe short 051b8h                          ; 76 08
    74387468    mov AL, strict byte 050h                  ; b0 50
    74397469    mov dx, 00080h                            ; ba 80 00
    74407470    out DX, AL                                ; ee
    7441     jmp short 0515bh                          ; eb e9
     7471    jmp short 051a1h                          ; eb e9
    74427472    test bx, bx                               ; 85 db
    7443     jne short 0517ch                          ; 75 06
     7473    jne short 051c2h                          ; 75 06
    74447474    mov ax, strict word 00032h                ; b8 32 00
    7445     call 04f94h                               ; e8 18 fe
     7475    call 04fdah                               ; e8 18 fe
    74467476    mov AL, strict byte 065h                  ; b0 65
    74477477    mov dx, strict word 00060h                ; ba 60 00
     
    74537483    ; sub ah, ah                                ; 2a e4
    74547484    test AL, strict byte 002h                 ; a8 02
    7455     je short 0519ch                           ; 74 0d
     7485    je short 051e2h                           ; 74 0d
    74567486    dec bx                                    ; 4b
    74577487    test bx, bx                               ; 85 db
    7458     jbe short 0519ch                          ; 76 08
     7488    jbe short 051e2h                          ; 76 08
    74597489    mov AL, strict byte 060h                  ; b0 60
    74607490    mov dx, 00080h                            ; ba 80 00
    74617491    out DX, AL                                ; ee
    7462     jmp short 05185h                          ; eb e9
     7492    jmp short 051cbh                          ; eb e9
    74637493    test bx, bx                               ; 85 db
    7464     jne short 051a6h                          ; 75 06
     7494    jne short 051ech                          ; 75 06
    74657495    mov ax, strict word 0003ch                ; b8 3c 00
    7466     call 04f94h                               ; e8 ee fd
     7496    call 04fdah                               ; e8 ee fd
    74677497    mov AL, strict byte 0f4h                  ; b0 f4
    74687498    mov dx, strict word 00060h                ; ba 60 00
     
    74747504    ; sub ah, ah                                ; 2a e4
    74757505    test AL, strict byte 002h                 ; a8 02
    7476     je short 051c6h                           ; 74 0d
     7506    je short 0520ch                           ; 74 0d
    74777507    dec bx                                    ; 4b
    74787508    test bx, bx                               ; 85 db
    7479     jbe short 051c6h                          ; 76 08
     7509    jbe short 0520ch                          ; 76 08
    74807510    mov AL, strict byte 070h                  ; b0 70
    74817511    mov dx, 00080h                            ; ba 80 00
    74827512    out DX, AL                                ; ee
    7483     jmp short 051afh                          ; eb e9
     7513    jmp short 051f5h                          ; eb e9
    74847514    test bx, bx                               ; 85 db
    7485     jne short 051d0h                          ; 75 06
     7515    jne short 05216h                          ; 75 06
    74867516    mov ax, strict word 00046h                ; b8 46 00
    7487     call 04f94h                               ; e8 c4 fd
     7517    call 04fdah                               ; e8 c4 fd
    74887518    mov bx, strict word 0ffffh                ; bb ff ff
    74897519    mov dx, strict word 00064h                ; ba 64 00
     
    74927522    ; sub ah, ah                                ; 2a e4
    74937523    test AL, strict byte 001h                 ; a8 01
    7494     jne short 051eah                          ; 75 0d
     7524    jne short 05230h                          ; 75 0d
    74957525    dec bx                                    ; 4b
    74967526    test bx, bx                               ; 85 db
    7497     jbe short 051eah                          ; 76 08
     7527    jbe short 05230h                          ; 76 08
    74987528    mov AL, strict byte 071h                  ; b0 71
    74997529    mov dx, 00080h                            ; ba 80 00
    75007530    out DX, AL                                ; ee
    7501     jmp short 051d3h                          ; eb e9
     7531    jmp short 05219h                          ; eb e9
    75027532    test bx, bx                               ; 85 db
    7503     jne short 051f4h                          ; 75 06
     7533    jne short 0523ah                          ; 75 06
    75047534    mov ax, strict word 00046h                ; b8 46 00
    7505     call 04f94h                               ; e8 a0 fd
     7535    call 04fdah                               ; e8 a0 fd
    75067536    mov dx, strict word 00060h                ; ba 60 00
    75077537    in AL, DX                                 ; ec
     
    75097539    ; sub ah, ah                                ; 2a e4
    75107540    cmp ax, 000fah                            ; 3d fa 00
    7511     je short 05205h                           ; 74 06
     7541    je short 0524bh                           ; 74 06
    75127542    mov ax, 003e4h                            ; b8 e4 03
    7513     call 04f94h                               ; e8 8f fd
     7543    call 04fdah                               ; e8 8f fd
    75147544    mov AL, strict byte 0a8h                  ; b0 a8
    75157545    mov dx, strict word 00064h                ; ba 64 00
    75167546    out DX, AL                                ; ee
    75177547    xor ax, ax                                ; 31 c0
    7518     call 06704h                               ; e8 f4 14
     7548    call 0674ah                               ; e8 f4 14
    75197549    mov sp, bp                                ; 89 ec
    75207550    pop bp                                    ; 5d
    75217551    retn                                      ; c3
    7522 enqueue_key_:                                ; 0xf5214 LB 0x9e
     7552enqueue_key_:                                ; 0xf525a LB 0x9e
    75237553    push bp                                   ; 55
    75247554    mov bp, sp                                ; 89 e5
     
    75327562    mov dx, strict word 0001ah                ; ba 1a 00
    75337563    mov ax, strict word 00040h                ; b8 40 00
    7534     call 0166eh                               ; e8 44 c4
     7564    call 0166eh                               ; e8 fe c3
    75357565    mov di, ax                                ; 89 c7
    75367566    mov dx, strict word 0001ch                ; ba 1c 00
    75377567    mov ax, strict word 00040h                ; b8 40 00
    7538     call 0166eh                               ; e8 39 c4
     7568    call 0166eh                               ; e8 f3 c3
    75397569    mov si, ax                                ; 89 c6
    75407570    lea cx, [si+002h]                         ; 8d 4c 02
    75417571    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7542     jc short 05242h                           ; 72 03
     7572    jc short 05288h                           ; 72 03
    75437573    mov cx, strict word 0001eh                ; b9 1e 00
    75447574    cmp cx, di                                ; 39 f9
    7545     jne short 0524ah                          ; 75 04
     7575    jne short 05290h                          ; 75 04
    75467576    xor ax, ax                                ; 31 c0
    7547     jmp short 05274h                          ; eb 2a
     7577    jmp short 052bah                          ; eb 2a
    75487578    mov al, bl                                ; 88 d8
    75497579    xor ah, ah                                ; 30 e4
     
    75517581    mov dx, si                                ; 89 f2
    75527582    mov ax, strict word 00040h                ; b8 40 00
    7553     call 01660h                               ; e8 08 c4
     7583    call 01660h                               ; e8 c2 c3
    75547584    mov bl, byte [bp-00ah]                    ; 8a 5e f6
    75557585    xor bh, bh                                ; 30 ff
    75567586    lea dx, [si+001h]                         ; 8d 54 01
    75577587    mov ax, strict word 00040h                ; b8 40 00
    7558     call 01660h                               ; e8 fa c3
     7588    call 01660h                               ; e8 b4 c3
    75597589    mov bx, cx                                ; 89 cb
    75607590    mov dx, strict word 0001ch                ; ba 1c 00
    75617591    mov ax, strict word 00040h                ; b8 40 00
    7562     call 0167ch                               ; e8 0b c4
     7592    call 0167ch                               ; e8 c5 c3
    75637593    mov ax, strict word 00001h                ; b8 01 00
    75647594    lea sp, [bp-008h]                         ; 8d 66 f8
     
    75697599    pop bp                                    ; 5d
    75707600    retn                                      ; c3
    7571     aam 0c6h                                  ; d4 c6
    7572     lds di, [bp+si-04948h]                    ; c5 ba b8 b6
    7573     stosb                                     ; aa
    7574     popfw                                     ; 9d
    7575     push sp                                   ; 54
    7576     push bx                                   ; 53
    7577     inc si                                    ; 46
    7578     inc bp                                    ; 45
    7579     cmp bh, byte [bx+si]                      ; 3a 38
    7580     sub bl, byte [ss:di]                      ; 36 2a 1d
    7581     clc                                       ; f8
    7582     push bp                                   ; 55
    7583     mov BL, strict byte 053h                  ; b3 53
    7584     push bx                                   ; 53
    7585     push bx                                   ; 53
    7586     push bx                                   ; 53
    7587     push bx                                   ; 53
    7588     inc dx                                    ; 42
    7589     push sp                                   ; 54
    7590     and AL, strict byte 053h                  ; 24 53
    7591     db  0c6h, 054h, 037h, 055h
    7592     ; mov byte [si+037h], 055h                  ; c6 54 37 55
    7593     ficom word [di-044h]                      ; de 55 bc
    7594     push bp                                   ; 55
    7595     cli                                       ; fa
    7596     push bx                                   ; 53
    7597     push bx                                   ; 53
    7598     push bx                                   ; 53
    7599     push bx                                   ; 53
    7600     push bx                                   ; 53
    7601     test byte [si+044h], dl                   ; 84 54 44
    7602     push bx                                   ; 53
    7603     pop SS                                    ; 17
    7604     push bp                                   ; 55
    7605     pushfw                                    ; 9c
    7606     push bp                                   ; 55
    7607     xlatb                                     ; d7
    7608     push bp                                   ; 55
    7609 _int09_function:                             ; 0xf52b2 LB 0x4cd
     7601    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
     7602    db  01dh, 03eh, 056h, 0f9h, 053h, 099h, 053h, 099h, 053h, 088h, 054h, 06ah, 053h, 00ch, 055h, 07dh
     7603    db  055h, 024h, 056h, 002h, 056h, 040h, 054h, 099h, 053h, 099h, 053h, 0cah, 054h, 08ah, 053h, 05dh
     7604    db  055h, 0e2h, 055h, 01dh, 056h
     7605_int09_function:                             ; 0xf52f8 LB 0x4cd
    76107606    push bp                                   ; 55
    76117607    mov bp, sp                                ; 89 e5
     
    76157611    mov byte [bp-004h], al                    ; 88 46 fc
    76167612    test al, al                               ; 84 c0
    7617     jne short 052dfh                          ; 75 1c
     7613    jne short 05325h                          ; 75 1c
    76187614    mov bx, 00da0h                            ; bb a0 0d
    76197615    mov cx, ds                                ; 8c d9
    76207616    mov ax, strict word 00004h                ; b8 04 00
    7621     call 01933h                               ; e8 65 c6
     7617    call 01933h                               ; e8 1f c6
    76227618    mov ax, 00587h                            ; b8 87 05
    76237619    push ax                                   ; 50
    76247620    mov ax, strict word 00004h                ; b8 04 00
    76257621    push ax                                   ; 50
    7626     call 01976h                               ; e8 9d c6
     7622    call 01976h                               ; e8 57 c6
    76277623    add sp, strict byte 00004h                ; 83 c4 04
    7628     jmp near 053adh                           ; e9 ce 00
     7624    jmp near 053f3h                           ; e9 ce 00
    76297625    mov dx, strict word 00018h                ; ba 18 00
    76307626    mov ax, strict word 00040h                ; b8 40 00
    7631     call 01652h                               ; e8 6a c3
     7627    call 01652h                               ; e8 24 c3
    76327628    mov byte [bp-006h], al                    ; 88 46 fa
    76337629    mov byte [bp-008h], al                    ; 88 46 f8
    76347630    mov dx, 00096h                            ; ba 96 00
    76357631    mov ax, strict word 00040h                ; b8 40 00
    7636     call 01652h                               ; e8 5b c3
     7632    call 01652h                               ; e8 15 c3
    76377633    mov byte [bp-00ah], al                    ; 88 46 f6
    76387634    mov byte [bp-010h], al                    ; 88 46 f0
    76397635    mov dx, strict word 00017h                ; ba 17 00
    76407636    mov ax, strict word 00040h                ; b8 40 00
    7641     call 01652h                               ; e8 4c c3
     7637    call 01652h                               ; e8 06 c3
    76427638    mov byte [bp-00ch], al                    ; 88 46 f4
    76437639    mov byte [bp-00eh], al                    ; 88 46 f2
     
    76467642    pop ES                                    ; 07
    76477643    mov cx, strict word 00012h                ; b9 12 00
    7648     mov di, 0527dh                            ; bf 7d 52
     7644    mov di, 052c3h                            ; bf c3 52
    76497645    repne scasb                               ; f2 ae
    76507646    sal cx, 1                                 ; d1 e1
    76517647    mov di, cx                                ; 89 cf
    7652     mov ax, word [cs:di+0528eh]               ; 2e 8b 85 8e 52
     7648    mov ax, word [cs:di+052d4h]               ; 2e 8b 85 d4 52
    76537649    jmp ax                                    ; ff e0
    76547650    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
     
    76577653    mov dx, strict word 00017h                ; ba 17 00
    76587654    mov ax, strict word 00040h                ; b8 40 00
    7659     call 01660h                               ; e8 2a c3
     7655    call 01660h                               ; e8 e4 c2
    76607656    or byte [bp-008h], 040h                   ; 80 4e f8 40
    76617657    mov al, byte [bp-008h]                    ; 8a 46 f8
    76627658    xor ah, ah                                ; 30 e4
    76637659    mov bx, ax                                ; 89 c3
    7664     jmp near 055cch                           ; e9 88 02
     7660    jmp near 05612h                           ; e9 88 02
    76657661    mov al, byte [bp-006h]                    ; 8a 46 fa
    76667662    and AL, strict byte 0bfh                  ; 24 bf
     
    76687664    mov bl, al                                ; 88 c3
    76697665    xor bh, bh                                ; 30 ff
    7670     jmp near 055cch                           ; e9 79 02
     7666    jmp near 05612h                           ; e9 79 02
    76717667    test byte [bp-010h], 002h                 ; f6 46 f0 02
    7672     jne short 0538ch                          ; 75 33
     7668    jne short 053d2h                          ; 75 33
    76737669    mov al, byte [bp-004h]                    ; 8a 46 fc
    76747670    and AL, strict byte 07fh                  ; 24 7f
    76757671    cmp AL, strict byte 02ah                  ; 3c 2a
    7676     jne short 05367h                          ; 75 05
     7672    jne short 053adh                          ; 75 05
    76777673    mov bx, strict word 00002h                ; bb 02 00
    7678     jmp short 0536ah                          ; eb 03
     7674    jmp short 053b0h                          ; eb 03
    76797675    mov bx, strict word 00001h                ; bb 01 00
    76807676    test byte [bp-004h], 080h                 ; f6 46 fc 80
    7681     je short 05379h                           ; 74 09
     7677    je short 053bfh                           ; 74 09
    76827678    mov al, bl                                ; 88 d8
    76837679    not al                                    ; f6 d0
    76847680    and byte [bp-00eh], al                    ; 20 46 f2
    7685     jmp short 0537ch                          ; eb 03
     7681    jmp short 053c2h                          ; eb 03
    76867682    or byte [bp-00eh], bl                     ; 08 5e f2
    76877683    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    76907686    mov dx, strict word 00017h                ; ba 17 00
    76917687    mov ax, strict word 00040h                ; b8 40 00
    7692     call 01660h                               ; e8 d4 c2
     7688    call 01660h                               ; e8 8e c2
    76937689    mov al, byte [bp-004h]                    ; 8a 46 fc
    76947690    and AL, strict byte 07fh                  ; 24 7f
    76957691    cmp AL, strict byte 01dh                  ; 3c 1d
    7696     je short 05399h                           ; 74 04
     7692    je short 053dfh                           ; 74 04
    76977693    and byte [bp-010h], 0feh                  ; 80 66 f0 fe
    76987694    and byte [bp-010h], 0fdh                  ; 80 66 f0 fd
     
    77027698    mov dx, 00096h                            ; ba 96 00
    77037699    mov ax, strict word 00040h                ; b8 40 00
    7704     call 01660h                               ; e8 b3 c2
     7700    call 01660h                               ; e8 6d c2
    77057701    lea sp, [bp-002h]                         ; 8d 66 fe
    77067702    pop di                                    ; 5f
     
    77087704    retn                                      ; c3
    77097705    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7710     jne short 0538ch                          ; 75 d3
     7706    jne short 053d2h                          ; 75 d3
    77117707    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77127708    or AL, strict byte 004h                   ; 0c 04
     
    77167712    mov dx, strict word 00017h                ; ba 17 00
    77177713    mov ax, strict word 00040h                ; b8 40 00
    7718     call 01660h                               ; e8 92 c2
     7714    call 01660h                               ; e8 4c c2
    77197715    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77207716    test AL, strict byte 002h                 ; a8 02
    7721     je short 053e3h                           ; 74 0e
     7717    je short 05429h                           ; 74 0e
    77227718    or AL, strict byte 004h                   ; 0c 04
    77237719    mov byte [bp-010h], al                    ; 88 46 f0
     
    77257721    mov bx, ax                                ; 89 c3
    77267722    mov dx, 00096h                            ; ba 96 00
    7727     jmp short 053f2h                          ; eb 0f
     7723    jmp short 05438h                          ; eb 0f
    77287724    mov al, byte [bp-006h]                    ; 8a 46 fa
    77297725    or AL, strict byte 001h                   ; 0c 01
     
    77337729    mov dx, strict word 00018h                ; ba 18 00
    77347730    mov ax, strict word 00040h                ; b8 40 00
    7735     call 01660h                               ; e8 68 c2
    7736     jmp short 0538ch                          ; eb 92
     7731    call 01660h                               ; e8 22 c2
     7732    jmp short 053d2h                          ; eb 92
    77377733    test byte [bp-00ah], 001h                 ; f6 46 f6 01
    7738     jne short 0538ch                          ; 75 8c
     7734    jne short 053d2h                          ; 75 8c
    77397735    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77407736    and AL, strict byte 0fbh                  ; 24 fb
     
    77447740    mov dx, strict word 00017h                ; ba 17 00
    77457741    mov ax, strict word 00040h                ; b8 40 00
    7746     call 01660h                               ; e8 4b c2
     7742    call 01660h                               ; e8 05 c2
    77477743    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77487744    test AL, strict byte 002h                 ; a8 02
    7749     je short 0542ah                           ; 74 0e
     7745    je short 05470h                           ; 74 0e
    77507746    and AL, strict byte 0fbh                  ; 24 fb
    77517747    mov byte [bp-010h], al                    ; 88 46 f0
     
    77537749    mov bx, ax                                ; 89 c3
    77547750    mov dx, 00096h                            ; ba 96 00
    7755     jmp short 05439h                          ; eb 0f
     7751    jmp short 0547fh                          ; eb 0f
    77567752    mov al, byte [bp-006h]                    ; 8a 46 fa
    77577753    and AL, strict byte 0feh                  ; 24 fe
     
    77617757    mov dx, strict word 00018h                ; ba 18 00
    77627758    mov ax, strict word 00040h                ; b8 40 00
    7763     call 01660h                               ; e8 21 c2
    7764     jmp near 0538ch                           ; e9 4a ff
     7759    call 01660h                               ; e8 db c1
     7760    jmp near 053d2h                           ; e9 4a ff
    77657761    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77667762    or AL, strict byte 008h                   ; 0c 08
     
    77707766    mov dx, strict word 00017h                ; ba 17 00
    77717767    mov ax, strict word 00040h                ; b8 40 00
    7772     call 01660h                               ; e8 09 c2
     7768    call 01660h                               ; e8 c3 c1
    77737769    mov al, byte [bp-00ah]                    ; 8a 46 f6
    77747770    test AL, strict byte 002h                 ; a8 02
    7775     je short 0546ch                           ; 74 0e
     7771    je short 054b2h                           ; 74 0e
    77767772    or AL, strict byte 008h                   ; 0c 08
    77777773    mov byte [bp-010h], al                    ; 88 46 f0
     
    77797775    mov bx, ax                                ; 89 c3
    77807776    mov dx, 00096h                            ; ba 96 00
    7781     jmp short 0547bh                          ; eb 0f
     7777    jmp short 054c1h                          ; eb 0f
    77827778    mov al, byte [bp-006h]                    ; 8a 46 fa
    77837779    or AL, strict byte 002h                   ; 0c 02
     
    77877783    mov dx, strict word 00018h                ; ba 18 00
    77887784    mov ax, strict word 00040h                ; b8 40 00
    7789     call 01660h                               ; e8 df c1
    7790     jmp near 0538ch                           ; e9 08 ff
     7785    call 01660h                               ; e8 99 c1
     7786    jmp near 053d2h                           ; e9 08 ff
    77917787    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77927788    and AL, strict byte 0f7h                  ; 24 f7
     
    77967792    mov dx, strict word 00017h                ; ba 17 00
    77977793    mov ax, strict word 00040h                ; b8 40 00
    7798     call 01660h                               ; e8 c7 c1
     7794    call 01660h                               ; e8 81 c1
    77997795    mov al, byte [bp-00ah]                    ; 8a 46 f6
    78007796    test AL, strict byte 002h                 ; a8 02
    7801     je short 054aeh                           ; 74 0e
     7797    je short 054f4h                           ; 74 0e
    78027798    and AL, strict byte 0f7h                  ; 24 f7
    78037799    mov byte [bp-010h], al                    ; 88 46 f0
     
    78057801    mov bx, ax                                ; 89 c3
    78067802    mov dx, 00096h                            ; ba 96 00
    7807     jmp short 054bdh                          ; eb 0f
     7803    jmp short 05503h                          ; eb 0f
    78087804    mov al, byte [bp-006h]                    ; 8a 46 fa
    78097805    and AL, strict byte 0fdh                  ; 24 fd
     
    78137809    mov dx, strict word 00018h                ; ba 18 00
    78147810    mov ax, strict word 00040h                ; b8 40 00
    7815     call 01660h                               ; e8 9d c1
    7816     jmp near 0538ch                           ; e9 c6 fe
     7811    call 01660h                               ; e8 57 c1
     7812    jmp near 053d2h                           ; e9 c6 fe
    78177813    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7818     jne short 054e9h                          ; 75 1d
     7814    jne short 0552fh                          ; 75 1d
    78197815    mov al, byte [bp-006h]                    ; 8a 46 fa
    78207816    or AL, strict byte 020h                   ; 0c 20
     
    78247820    mov dx, strict word 00018h                ; ba 18 00
    78257821    mov ax, strict word 00040h                ; b8 40 00
    7826     call 01660h                               ; e8 7f c1
     7822    call 01660h                               ; e8 39 c1
    78277823    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78287824    xor AL, strict byte 020h                  ; 34 20
    7829     jmp near 0558ah                           ; e9 a1 00
     7825    jmp near 055d0h                           ; e9 a1 00
    78307826    mov al, byte [bp-006h]                    ; 8a 46 fa
    78317827    or AL, strict byte 008h                   ; 0c 08
     
    78357831    mov dx, strict word 00018h                ; ba 18 00
    78367832    mov ax, strict word 00040h                ; b8 40 00
    7837     call 01660h                               ; e8 62 c1
     7833    call 01660h                               ; e8 1c c1
    78387834    mov AL, strict byte 0aeh                  ; b0 ae
    78397835    mov dx, strict word 00064h                ; ba 64 00
    78407836    out DX, AL                                ; ee
    7841     call 0e034h                               ; e8 2d 8b
     7837    call 0e034h                               ; e8 e7 8a
    78427838    mov dx, strict word 00018h                ; ba 18 00
    78437839    mov ax, strict word 00040h                ; b8 40 00
    7844     call 01652h                               ; e8 42 c1
     7840    call 01652h                               ; e8 fc c0
    78457841    test AL, strict byte 008h                 ; a8 08
    7846     jne short 05507h                          ; 75 f3
    7847     jmp near 0538ch                           ; e9 75 fe
     7842    jne short 0554dh                          ; 75 f3
     7843    jmp near 053d2h                           ; e9 75 fe
    78487844    test byte [bp-00ah], 003h                 ; f6 46 f6 03
    7849     je short 05520h                           ; 74 03
    7850     jmp near 0538ch                           ; e9 6c fe
     7845    je short 05566h                           ; 74 03
     7846    jmp near 053d2h                           ; e9 6c fe
    78517847    mov al, byte [bp-006h]                    ; 8a 46 fa
    78527848    and AL, strict byte 0dfh                  ; 24 df
     
    78567852    mov dx, strict word 00018h                ; ba 18 00
    78577853    mov ax, strict word 00040h                ; b8 40 00
    7858     call 01660h                               ; e8 2b c1
    7859     jmp short 0551dh                          ; eb e6
     7854    call 01660h                               ; e8 e5 c0
     7855    jmp short 05563h                          ; eb e6
    78607856    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7861     je short 05570h                           ; 74 33
     7857    je short 055b6h                           ; 74 33
    78627858    mov dx, strict word 0001ah                ; ba 1a 00
    78637859    mov ax, strict word 00040h                ; b8 40 00
    7864     call 0166eh                               ; e8 28 c1
     7860    call 0166eh                               ; e8 e2 c0
    78657861    mov bx, ax                                ; 89 c3
    78667862    mov dx, strict word 0001ch                ; ba 1c 00
    78677863    mov ax, strict word 00040h                ; b8 40 00
    7868     call 0167ch                               ; e8 2b c1
     7864    call 0167ch                               ; e8 e5 c0
    78697865    mov bx, 00080h                            ; bb 80 00
    78707866    mov dx, strict word 00071h                ; ba 71 00
    78717867    mov ax, strict word 00040h                ; b8 40 00
    7872     call 01660h                               ; e8 03 c1
     7868    call 01660h                               ; e8 bd c0
    78737869    mov AL, strict byte 0aeh                  ; b0 ae
    78747870    mov dx, strict word 00064h                ; ba 64 00
     
    78797875    xor dx, dx                                ; 31 d2
    78807876    xor ax, ax                                ; 31 c0
    7881     call 05214h                               ; e8 a6 fc
    7882     jmp short 0551dh                          ; eb ad
     7877    call 0525ah                               ; e8 a6 fc
     7878    jmp short 05563h                          ; eb ad
    78837879    mov al, byte [bp-006h]                    ; 8a 46 fa
    78847880    or AL, strict byte 010h                   ; 0c 10
     
    78887884    mov dx, strict word 00018h                ; ba 18 00
    78897885    mov ax, strict word 00040h                ; b8 40 00
    7890     call 01660h                               ; e8 db c0
     7886    call 01660h                               ; e8 95 c0
    78917887    mov al, byte [bp-00ch]                    ; 8a 46 f4
    78927888    xor AL, strict byte 010h                  ; 34 10
     
    78967892    mov dx, strict word 00017h                ; ba 17 00
    78977893    mov ax, strict word 00040h                ; b8 40 00
    7898     call 01660h                               ; e8 c6 c0
    7899     jmp short 0551dh                          ; eb 81
     7894    call 01660h                               ; e8 80 c0
     7895    jmp short 05563h                          ; eb 81
    79007896    test byte [bp-00ah], 002h                 ; f6 46 f6 02
    7901     je short 055a5h                           ; 74 03
    7902     jmp near 0538ch                           ; e9 e7 fd
     7897    je short 055ebh                           ; 74 03
     7898    jmp near 053d2h                           ; e9 e7 fd
    79037899    mov al, byte [bp-006h]                    ; 8a 46 fa
    79047900    and AL, strict byte 0efh                  ; 24 ef
     
    79087904    mov dx, strict word 00018h                ; ba 18 00
    79097905    mov ax, strict word 00040h                ; b8 40 00
    7910     call 01660h                               ; e8 a6 c0
    7911     jmp short 055a2h                          ; eb e6
     7906    call 01660h                               ; e8 60 c0
     7907    jmp short 055e8h                          ; eb e6
    79127908    mov al, byte [bp-006h]                    ; 8a 46 fa
    79137909    test AL, strict byte 004h                 ; a8 04
    7914     jne short 055a2h                          ; 75 df
     7910    jne short 055e8h                          ; 75 df
    79157911    or AL, strict byte 004h                   ; 0c 04
    79167912    mov byte [bp-008h], al                    ; 88 46 f8
     
    79197915    mov dx, strict word 00018h                ; ba 18 00
    79207916    mov ax, strict word 00040h                ; b8 40 00
    7921     call 01660h                               ; e8 8b c0
    7922     jmp short 055a2h                          ; eb cb
     7917    call 01660h                               ; e8 45 c0
     7918    jmp short 055e8h                          ; eb cb
    79237919    mov al, byte [bp-006h]                    ; 8a 46 fa
    79247920    and AL, strict byte 0fbh                  ; 24 fb
    7925     jmp short 055c5h                          ; eb e7
     7921    jmp short 0560bh                          ; eb e7
    79267922    mov al, byte [bp-00ch]                    ; 8a 46 f4
    79277923    and AL, strict byte 00ch                  ; 24 0c
    79287924    cmp AL, strict byte 00ch                  ; 3c 0c
    7929     jne short 055f8h                          ; 75 11
     7925    jne short 0563eh                          ; 75 11
    79307926    mov bx, 01234h                            ; bb 34 12
    79317927    mov dx, strict word 00072h                ; ba 72 00
    79327928    mov ax, strict word 00040h                ; b8 40 00
    7933     call 0167ch                               ; e8 89 c0
     7929    call 0167ch                               ; e8 43 c0
    79347930    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    79357931    test byte [bp-008h], 008h                 ; f6 46 f8 08
    7936     je short 0560fh                           ; 74 11
     7932    je short 05655h                           ; 74 11
    79377933    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
    79387934    mov al, byte [bp-008h]                    ; 8a 46 f8
     
    79407936    mov bx, ax                                ; 89 c3
    79417937    mov dx, strict word 00018h                ; ba 18 00
    7942     jmp near 053a7h                           ; e9 98 fd
     7938    jmp near 053edh                           ; e9 98 fd
    79437939    mov al, byte [bp-004h]                    ; 8a 46 fc
    79447940    test AL, strict byte 080h                 ; a8 80
    7945     je short 0564dh                           ; 74 37
     7941    je short 05693h                           ; 74 37
    79467942    cmp AL, strict byte 0fah                  ; 3c fa
    7947     jne short 0562ch                          ; 75 12
     7943    jne short 05672h                          ; 75 12
    79487944    mov dx, 00097h                            ; ba 97 00
    79497945    mov ax, strict word 00040h                ; b8 40 00
    7950     call 01652h                               ; e8 2f c0
     7946    call 01652h                               ; e8 e9 bf
    79517947    mov bl, al                                ; 88 c3
    79527948    or bl, 010h                               ; 80 cb 10
    79537949    xor bh, bh                                ; 30 ff
    7954     jmp short 05642h                          ; eb 16
     7950    jmp short 05688h                          ; eb 16
    79557951    cmp AL, strict byte 0feh                  ; 3c fe
    7956     je short 05633h                           ; 74 03
    7957     jmp near 0538ch                           ; e9 59 fd
     7952    je short 05679h                           ; 74 03
     7953    jmp near 053d2h                           ; e9 59 fd
    79587954    mov dx, 00097h                            ; ba 97 00
    79597955    mov ax, strict word 00040h                ; b8 40 00
    7960     call 01652h                               ; e8 16 c0
     7956    call 01652h                               ; e8 d0 bf
    79617957    or AL, strict byte 020h                   ; 0c 20
    79627958    xor ah, ah                                ; 30 e4
     
    79647960    mov dx, 00097h                            ; ba 97 00
    79657961    mov ax, strict word 00040h                ; b8 40 00
    7966     call 01660h                               ; e8 15 c0
    7967     jmp short 05630h                          ; eb e3
     7962    call 01660h                               ; e8 cf bf
     7963    jmp short 05676h                          ; eb e3
    79687964    cmp byte [bp-004h], 058h                  ; 80 7e fc 58
    7969     jbe short 05675h                          ; 76 22
     7965    jbe short 056bbh                          ; 76 22
    79707966    mov bx, 00da0h                            ; bb a0 0d
    79717967    mov cx, ds                                ; 8c d9
    79727968    mov ax, strict word 00004h                ; b8 04 00
    7973     call 01933h                               ; e8 d5 c2
     7969    call 01933h                               ; e8 8f c2
    79747970    mov al, byte [bp-004h]                    ; 8a 46 fc
    79757971    xor ah, ah                                ; 30 e4
     
    79797975    mov ax, strict word 00004h                ; b8 04 00
    79807976    push ax                                   ; 50
    7981     call 01976h                               ; e8 07 c3
     7977    call 01976h                               ; e8 c1 c2
    79827978    add sp, strict byte 00006h                ; 83 c4 06
    7983     jmp near 053adh                           ; e9 38 fd
     7979    jmp near 053f3h                           ; e9 38 fd
    79847980    mov al, byte [bp-00eh]                    ; 8a 46 f2
    79857981    test AL, strict byte 008h                 ; a8 08
    7986     je short 05696h                           ; 74 1a
     7982    je short 056dch                           ; 74 1a
    79877983    mov al, byte [bp-004h]                    ; 8a 46 fc
    79887984    xor ah, ah                                ; 30 e4
     
    79937989    mov byte [bp-012h], al                    ; 88 46 ee
    79947990    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
    7995     jmp near 05748h                           ; e9 b2 00
     7991    jmp near 0578eh                           ; e9 b2 00
    79967992    test AL, strict byte 004h                 ; a8 04
    7997     je short 056b4h                           ; 74 1a
     7993    je short 056fah                           ; 74 1a
    79987994    mov al, byte [bp-004h]                    ; 8a 46 fc
    79997995    xor ah, ah                                ; 30 e4
     
    80048000    mov byte [bp-012h], al                    ; 88 46 ee
    80058001    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
    8006     jmp near 05748h                           ; e9 94 00
     8002    jmp near 0578eh                           ; e9 94 00
    80078003    mov al, byte [bp-010h]                    ; 8a 46 f0
    80088004    and AL, strict byte 002h                  ; 24 02
    80098005    test al, al                               ; 84 c0
    8010     jbe short 056d7h                          ; 76 1a
     8006    jbe short 0571dh                          ; 76 1a
    80118007    mov al, byte [bp-004h]                    ; 8a 46 fc
    80128008    cmp AL, strict byte 047h                  ; 3c 47
    8013     jc short 056d7h                           ; 72 13
     8009    jc short 0571dh                           ; 72 13
    80148010    cmp AL, strict byte 053h                  ; 3c 53
    8015     jnbe short 056d7h                         ; 77 0f
     8011    jnbe short 0571dh                         ; 77 0f
    80168012    mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
    80178013    xor ah, ah                                ; 30 e4
     
    80198015    imul dx                                   ; f7 ea
    80208016    mov bx, ax                                ; 89 c3
    8021     jmp short 05744h                          ; eb 6d
     8017    jmp short 0578ah                          ; eb 6d
    80228018    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    8023     je short 05715h                           ; 74 38
     8019    je short 0575bh                           ; 74 38
    80248020    mov al, byte [bp-004h]                    ; 8a 46 fc
    80258021    xor ah, ah                                ; 30 e4
     
    80328028    mov al, byte [bp-00eh]                    ; 8a 46 f2
    80338029    test ax, dx                               ; 85 d0
    8034     je short 05705h                           ; 74 0d
     8030    je short 0574bh                           ; 74 0d
    80358031    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    80368032    mov byte [bp-012h], al                    ; 88 46 ee
    80378033    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
    8038     jmp short 05710h                          ; eb 0b
     8034    jmp short 05756h                          ; eb 0b
    80398035    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    80408036    mov byte [bp-012h], al                    ; 88 46 ee
    80418037    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    80428038    mov byte [bp-004h], al                    ; 88 46 fc
    8043     jmp short 0574bh                          ; eb 36
     8039    jmp short 05791h                          ; eb 36
    80448040    mov al, byte [bp-004h]                    ; 8a 46 fc
    80458041    xor ah, ah                                ; 30 e4
     
    80528048    mov al, byte [bp-00eh]                    ; 8a 46 f2
    80538049    test ax, dx                               ; 85 d0
    8054     je short 0573dh                           ; 74 0d
     8050    je short 05783h                           ; 74 0d
    80558051    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
    80568052    mov byte [bp-012h], al                    ; 88 46 ee
    80578053    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
    8058     jmp short 05748h                          ; eb 0b
     8054    jmp short 0578eh                          ; eb 0b
    80598055    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
    80608056    mov byte [bp-012h], al                    ; 88 46 ee
     
    80628058    mov byte [bp-004h], al                    ; 88 46 fc
    80638059    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8064     jne short 05770h                          ; 75 1f
     8060    jne short 057b6h                          ; 75 1f
    80658061    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    8066     jne short 05770h                          ; 75 19
     8062    jne short 057b6h                          ; 75 19
    80678063    mov bx, 00da0h                            ; bb a0 0d
    80688064    mov cx, ds                                ; 8c d9
    80698065    mov ax, strict word 00004h                ; b8 04 00
    8070     call 01933h                               ; e8 d1 c1
     8066    call 01933h                               ; e8 8b c1
    80718067    mov ax, 005d8h                            ; b8 d8 05
    80728068    push ax                                   ; 50
    80738069    mov ax, strict word 00004h                ; b8 04 00
    80748070    push ax                                   ; 50
    8075     call 01976h                               ; e8 09 c2
     8071    call 01976h                               ; e8 c3 c1
    80768072    add sp, strict byte 00004h                ; 83 c4 04
    80778073    mov bl, byte [bp-012h]                    ; 8a 5e ee
     
    80808076    xor ah, ah                                ; 30 e4
    80818077    mov dx, bx                                ; 89 da
    8082     jmp near 0556bh                           ; e9 ec fd
    8083 dequeue_key_:                                ; 0xf577f LB 0x94
     8078    jmp near 055b1h                           ; e9 ec fd
     8079dequeue_key_:                                ; 0xf57c5 LB 0x94
    80848080    push bp                                   ; 55
    80858081    mov bp, sp                                ; 89 e5
     
    80948090    mov dx, strict word 0001ah                ; ba 1a 00
    80958091    mov ax, strict word 00040h                ; b8 40 00
    8096     call 0166eh                               ; e8 d5 be
     8092    call 0166eh                               ; e8 8f be
    80978093    mov bx, ax                                ; 89 c3
    80988094    mov dx, strict word 0001ch                ; ba 1c 00
    80998095    mov ax, strict word 00040h                ; b8 40 00
    8100     call 0166eh                               ; e8 ca be
     8096    call 0166eh                               ; e8 84 be
    81018097    cmp bx, ax                                ; 39 c3
    8102     je short 057e5h                           ; 74 3d
     8098    je short 0582bh                           ; 74 3d
    81038099    mov dx, bx                                ; 89 da
    81048100    mov ax, strict word 00040h                ; b8 40 00
    8105     call 01652h                               ; e8 a2 be
     8101    call 01652h                               ; e8 5c be
    81068102    mov cl, al                                ; 88 c1
    81078103    lea dx, [bx+001h]                         ; 8d 57 01
    81088104    mov ax, strict word 00040h                ; b8 40 00
    8109     call 01652h                               ; e8 97 be
     8105    call 01652h                               ; e8 51 be
    81108106    mov es, [bp-008h]                         ; 8e 46 f8
    81118107    mov byte [es:si], cl                      ; 26 88 0c
     
    81138109    mov byte [es:di], al                      ; 26 88 05
    81148110    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    8115     je short 057e0h                           ; 74 13
     8111    je short 05826h                           ; 74 13
    81168112    inc bx                                    ; 43
    81178113    inc bx                                    ; 43
    81188114    cmp bx, strict byte 0003eh                ; 83 fb 3e
    8119     jc short 057d7h                           ; 72 03
     8115    jc short 0581dh                           ; 72 03
    81208116    mov bx, strict word 0001eh                ; bb 1e 00
    81218117    mov dx, strict word 0001ah                ; ba 1a 00
    81228118    mov ax, strict word 00040h                ; b8 40 00
    8123     call 0167ch                               ; e8 9c be
     8119    call 0167ch                               ; e8 56 be
    81248120    mov ax, strict word 00001h                ; b8 01 00
    8125     jmp short 057e7h                          ; eb 02
     8121    jmp short 0582dh                          ; eb 02
    81268122    xor ax, ax                                ; 31 c0
    81278123    lea sp, [bp-004h]                         ; 8d 66 fc
     
    81348130    or cl, byte [bx+di]                       ; 0a 09
    81358131    add ax, 00102h                            ; 05 02 01
    8136     add byte [bx+di], bl                      ; 00 19
     8132    add byte [bx+059h], bl                    ; 00 5f 59
     8133    sbb bl, byte [bx+di-051h]                 ; 1a 59 af
    81378134    pop cx                                    ; 59
    8138     aam 058h                                  ; d4 58
    8139     imul bx, word [bx+di-053h], 0c059h        ; 69 59 ad 59 c0
     8135    db  0f3h, 059h
     8136    ; rep pop cx                                ; f3 59
     8137    push ES                                   ; 06
     8138    pop dx                                    ; 5a
     8139    sub ax, 0375ah                            ; 2d 5a 37
     8140    pop dx                                    ; 5a
     8141    cmpsb                                     ; a6
     8142    pop dx                                    ; 5a
     8143    fstp qword [bp+si+00dh]                   ; dd 5a 0d
     8144    pop bx                                    ; 5b
     8145    inc sp                                    ; 44
     8146    pop bx                                    ; 5b
     8147    db  0a9h
    81408148    pop cx                                    ; 59
    8141     out 059h, ax                              ; e7 59
    8142     db  0f1h
    8143     pop cx                                    ; 59
    8144     pushaw                                    ; 60
    8145     pop dx                                    ; 5a
    8146     xchg di, ax                               ; 97
    8147     pop dx                                    ; 5a
    8148     db  0c7h, 05ah, 0feh, 05ah, 063h
    8149     ; mov word [bp+si-002h], 0635ah             ; c7 5a fe 5a 63
    8150     pop cx                                    ; 59
    8151 _int16_function:                             ; 0xf5813 LB 0x2f6
     8149_int16_function:                             ; 0xf5859 LB 0x2f6
    81528150    push bp                                   ; 55
    81538151    mov bp, sp                                ; 89 e5
     
    81568154    mov dx, strict word 00017h                ; ba 17 00
    81578155    mov ax, strict word 00040h                ; b8 40 00
    8158     call 01652h                               ; e8 2f be
     8156    call 01652h                               ; e8 e9 bd
    81598157    mov cl, al                                ; 88 c1
    81608158    mov bh, al                                ; 88 c7
    81618159    mov dx, 00097h                            ; ba 97 00
    81628160    mov ax, strict word 00040h                ; b8 40 00
    8163     call 01652h                               ; e8 22 be
     8161    call 01652h                               ; e8 dc bd
    81648162    mov bl, al                                ; 88 c3
    81658163    mov dl, cl                                ; 88 ca
     
    81728170    xor al, dl                                ; 30 d0
    81738171    test ax, ax                               ; 85 c0
    8174     je short 058b3h                           ; 74 6c
     8172    je short 058f9h                           ; 74 6c
    81758173    cli                                       ; fa
    81768174    mov AL, strict byte 0edh                  ; b0 ed
     
    81828180    ; sub ah, ah                                ; 2a e4
    81838181    test AL, strict byte 001h                 ; a8 01
    8184     jne short 05860h                          ; 75 08
     8182    jne short 058a6h                          ; 75 08
    81858183    mov AL, strict byte 021h                  ; b0 21
    81868184    mov dx, 00080h                            ; ba 80 00
    81878185    out DX, AL                                ; ee
    8188     jmp short 0584eh                          ; eb ee
     8186    jmp short 05894h                          ; eb ee
    81898187    mov dx, strict word 00060h                ; ba 60 00
    81908188    in AL, DX                                 ; ec
     
    81928190    ; sub ah, ah                                ; 2a e4
    81938191    cmp ax, 000fah                            ; 3d fa 00
    8194     jne short 058b2h                          ; 75 47
     8192    jne short 058f8h                          ; 75 47
    81958193    and bl, 0c8h                              ; 80 e3 c8
    81968194    mov al, bh                                ; 88 f8
     
    82158213    ; sub ah, ah                                ; 2a e4
    82168214    test AL, strict byte 001h                 ; a8 01
    8217     jne short 058a1h                          ; 75 08
     8215    jne short 058e7h                          ; 75 08
    82188216    mov AL, strict byte 021h                  ; b0 21
    82198217    mov dx, 00080h                            ; ba 80 00
    82208218    out DX, AL                                ; ee
    8221     jmp short 0588fh                          ; eb ee
     8219    jmp short 058d5h                          ; eb ee
    82228220    mov dx, strict word 00060h                ; ba 60 00
    82238221    in AL, DX                                 ; ec
     
    82278225    mov dx, 00097h                            ; ba 97 00
    82288226    mov ax, strict word 00040h                ; b8 40 00
    8229     call 01660h                               ; e8 ae bd
     8227    call 01660h                               ; e8 68 bd
    82308228    sti                                       ; fb
    82318229    mov CL, strict byte 008h                  ; b1 08
     
    82338231    shr ax, CL                                ; d3 e8
    82348232    cmp ax, 000a2h                            ; 3d a2 00
    8235     jnbe short 05919h                         ; 77 5a
     8233    jnbe short 0595fh                         ; 77 5a
    82368234    push CS                                   ; 0e
    82378235    pop ES                                    ; 07
    82388236    mov cx, strict word 0000ch                ; b9 0c 00
    8239     mov di, 057f0h                            ; bf f0 57
     8237    mov di, 05836h                            ; bf 36 58
    82408238    repne scasb                               ; f2 ae
    82418239    sal cx, 1                                 ; d1 e1
    82428240    mov di, cx                                ; 89 cf
    8243     mov ax, word [cs:di+057fbh]               ; 2e 8b 85 fb 57
     8241    mov ax, word [cs:di+05841h]               ; 2e 8b 85 41 58
    82448242    jmp ax                                    ; ff e0
    82458243    mov ax, strict word 00001h                ; b8 01 00
     
    82498247    mov dx, ss                                ; 8c d2
    82508248    lea ax, [bp-008h]                         ; 8d 46 f8
    8251     call 0577fh                               ; e8 9a fe
     8249    call 057c5h                               ; e8 9a fe
    82528250    test ax, ax                               ; 85 c0
    8253     jne short 058f7h                          ; 75 0e
     8251    jne short 0593dh                          ; 75 0e
    82548252    mov ax, 0060fh                            ; b8 0f 06
    82558253    push ax                                   ; 50
    82568254    mov ax, strict word 00007h                ; b8 07 00
    82578255    push ax                                   ; 50
    8258     call 01976h                               ; e8 82 c0
     8256    call 01976h                               ; e8 3c c0
    82598257    add sp, strict byte 00004h                ; 83 c4 04
    82608258    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8261     je short 05903h                           ; 74 06
     8259    je short 05949h                           ; 74 06
    82628260    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8263     je short 05909h                           ; 74 06
     8261    je short 0594fh                           ; 74 06
    82648262    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    8265     jne short 0590dh                          ; 75 04
     8263    jne short 05953h                          ; 75 04
    82668264    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    82678265    mov ah, byte [bp-008h]                    ; 8a 66 f8
    82688266    mov al, byte [bp-006h]                    ; 8a 46 fa
    82698267    mov word [bp+012h], ax                    ; 89 46 12
    8270     jmp near 05963h                           ; e9 4a 00
     8268    jmp near 059a9h                           ; e9 4a 00
    82718269    mov bx, 00da0h                            ; bb a0 0d
    82728270    mov cx, ds                                ; 8c d9
    82738271    mov ax, strict word 00004h                ; b8 04 00
    8274     call 01933h                               ; e8 0f c0
     8272    call 01933h                               ; e8 c9 bf
    82758273    mov CL, strict byte 008h                  ; b1 08
    82768274    mov ax, word [bp+012h]                    ; 8b 46 12
     
    82818279    mov ax, strict word 00004h                ; b8 04 00
    82828280    push ax                                   ; 50
    8283     call 01976h                               ; e8 3f c0
     8281    call 01976h                               ; e8 f9 bf
    82848282    add sp, strict byte 00006h                ; 83 c4 06
    82858283    mov bx, 00da0h                            ; bb a0 0d
    82868284    mov cx, ds                                ; 8c d9
    82878285    mov ax, strict word 00004h                ; b8 04 00
    8288     call 01933h                               ; e8 ee bf
     8286    call 01933h                               ; e8 a8 bf
    82898287    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82908288    push ax                                   ; 50
     
    82998297    mov ax, strict word 00004h                ; b8 04 00
    83008298    push ax                                   ; 50
    8301     call 01976h                               ; e8 16 c0
     8299    call 01976h                               ; e8 d0 bf
    83028300    add sp, strict byte 0000ch                ; 83 c4 0c
    83038301    lea sp, [bp-002h]                         ; 8d 66 fe
     
    83128310    mov dx, ss                                ; 8c d2
    83138311    lea ax, [bp-008h]                         ; 8d 46 f8
    8314     call 0577fh                               ; e8 01 fe
     8312    call 057c5h                               ; e8 01 fe
    83158313    test ax, ax                               ; 85 c0
    8316     jne short 05988h                          ; 75 06
     8314    jne short 059ceh                          ; 75 06
    83178315    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    8318     jmp short 05963h                          ; eb db
     8316    jmp short 059a9h                          ; eb db
    83198317    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8320     je short 05994h                           ; 74 06
     8318    je short 059dah                           ; 74 06
    83218319    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8322     je short 0599ah                           ; 74 06
     8320    je short 059e0h                           ; 74 06
    83238321    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
    8324     jne short 0599eh                          ; 75 04
     8322    jne short 059e4h                          ; 75 04
    83258323    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    83268324    mov dh, byte [bp-008h]                    ; 8a 76 f8
     
    83288326    mov word [bp+012h], dx                    ; 89 56 12
    83298327    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    8330     jmp short 05963h                          ; eb b6
     8328    jmp short 059a9h                          ; eb b6
    83318329    mov dx, strict word 00017h                ; ba 17 00
    83328330    mov ax, strict word 00040h                ; b8 40 00
    8333     call 01652h                               ; e8 9c bc
     8331    call 01652h                               ; e8 56 bc
    83348332    mov dx, word [bp+012h]                    ; 8b 56 12
    83358333    mov dl, al                                ; 88 c2
    83368334    mov word [bp+012h], dx                    ; 89 56 12
    8337     jmp short 05963h                          ; eb a3
     8335    jmp short 059a9h                          ; eb a3
    83388336    mov dl, byte [bp+010h]                    ; 8a 56 10
    83398337    xor dh, dh                                ; 30 f6
     
    83428340    shr ax, CL                                ; d3 e8
    83438341    xor ah, ah                                ; 30 e4
    8344     call 05214h                               ; e8 43 f8
     8342    call 0525ah                               ; e8 43 f8
    83458343    test ax, ax                               ; 85 c0
    8346     jne short 059dfh                          ; 75 0a
     8344    jne short 05a25h                          ; 75 0a
    83478345    mov ax, word [bp+012h]                    ; 8b 46 12
    83488346    xor al, al                                ; 30 c0
    83498347    or AL, strict byte 001h                   ; 0c 01
    8350     jmp near 05913h                           ; e9 34 ff
     8348    jmp near 05959h                           ; e9 34 ff
    83518349    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8352     jmp near 05963h                           ; e9 7c ff
     8350    jmp near 059a9h                           ; e9 7c ff
    83538351    mov ax, word [bp+012h]                    ; 8b 46 12
    83548352    xor al, al                                ; 30 c0
    83558353    or AL, strict byte 030h                   ; 0c 30
    8356     jmp near 05913h                           ; e9 22 ff
     8354    jmp near 05959h                           ; e9 22 ff
    83578355    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    83588356    xor cx, cx                                ; 31 c9
     
    83678365    ; sub ah, ah                                ; 2a e4
    83688366    test AL, strict byte 001h                 ; a8 01
    8369     jne short 05a18h                          ; 75 0d
     8367    jne short 05a5eh                          ; 75 0d
    83708368    dec bx                                    ; 4b
    83718369    test bx, bx                               ; 85 db
    8372     jbe short 05a18h                          ; 76 08
     8370    jbe short 05a5eh                          ; 76 08
    83738371    mov dx, 00080h                            ; ba 80 00
    83748372    in AL, DX                                 ; ec
    83758373    db  02ah, 0e4h
    83768374    ; sub ah, ah                                ; 2a e4
    8377     jmp short 05a01h                          ; eb e9
     8375    jmp short 05a47h                          ; eb e9
    83788376    test bx, bx                               ; 85 db
    8379     jbe short 05a5ah                          ; 76 3e
     8377    jbe short 05aa0h                          ; 76 3e
    83808378    mov dx, strict word 00060h                ; ba 60 00
    83818379    in AL, DX                                 ; ec
     
    83838381    ; sub ah, ah                                ; 2a e4
    83848382    cmp ax, 000fah                            ; 3d fa 00
    8385     jne short 05a5ah                          ; 75 33
     8383    jne short 05aa0h                          ; 75 33
    83868384    mov bx, strict word 0ffffh                ; bb ff ff
    83878385    mov dx, strict word 00064h                ; ba 64 00
     
    83908388    ; sub ah, ah                                ; 2a e4
    83918389    test AL, strict byte 001h                 ; a8 01
    8392     jne short 05a41h                          ; 75 0d
     8390    jne short 05a87h                          ; 75 0d
    83938391    dec bx                                    ; 4b
    83948392    test bx, bx                               ; 85 db
    8395     jbe short 05a41h                          ; 76 08
     8393    jbe short 05a87h                          ; 76 08
    83968394    mov dx, 00080h                            ; ba 80 00
    83978395    in AL, DX                                 ; ec
    83988396    db  02ah, 0e4h
    83998397    ; sub ah, ah                                ; 2a e4
    8400     jmp short 05a2ah                          ; eb e9
     8398    jmp short 05a70h                          ; eb e9
    84018399    test bx, bx                               ; 85 db
    8402     jbe short 05a51h                          ; 76 0c
     8400    jbe short 05a97h                          ; 76 0c
    84038401    mov bl, ch                                ; 88 eb
    84048402    mov dx, strict word 00060h                ; ba 60 00
     
    84108408    dec byte [bp-004h]                        ; fe 4e fc
    84118409    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8412     jnbe short 05a27h                         ; 77 cd
     8410    jnbe short 05a6dh                         ; 77 cd
    84138411    mov word [bp+00ch], cx                    ; 89 4e 0c
    8414     jmp near 05963h                           ; e9 03 ff
     8412    jmp near 059a9h                           ; e9 03 ff
    84158413    mov ax, strict word 00001h                ; b8 01 00
    84168414    push ax                                   ; 50
     
    84198417    mov dx, ss                                ; 8c d2
    84208418    lea ax, [bp-008h]                         ; 8d 46 f8
    8421     call 0577fh                               ; e8 0e fd
     8419    call 057c5h                               ; e8 0e fd
    84228420    test ax, ax                               ; 85 c0
    8423     jne short 05a83h                          ; 75 0e
     8421    jne short 05ac9h                          ; 75 0e
    84248422    mov ax, 0060fh                            ; b8 0f 06
    84258423    push ax                                   ; 50
    84268424    mov ax, strict word 00007h                ; b8 07 00
    84278425    push ax                                   ; 50
    8428     call 01976h                               ; e8 f6 be
     8426    call 01976h                               ; e8 b0 be
    84298427    add sp, strict byte 00004h                ; 83 c4 04
    84308428    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8431     jne short 05a8ch                          ; 75 03
    8432     jmp near 0590dh                           ; e9 81 fe
     8429    jne short 05ad2h                          ; 75 03
     8430    jmp near 05953h                           ; e9 81 fe
    84338431    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8434     jne short 05a95h                          ; 75 03
    8435     jmp near 05909h                           ; e9 74 fe
    8436     jmp short 05a89h                          ; eb f2
     8432    jne short 05adbh                          ; 75 03
     8433    jmp near 0594fh                           ; e9 74 fe
     8434    jmp short 05acfh                          ; eb f2
    84378435    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    84388436    xor ax, ax                                ; 31 c0
     
    84428440    mov dx, ss                                ; 8c d2
    84438441    lea ax, [bp-008h]                         ; 8d 46 f8
    8444     call 0577fh                               ; e8 d3 fc
     8442    call 057c5h                               ; e8 d3 fc
    84458443    test ax, ax                               ; 85 c0
    8446     jne short 05ab3h                          ; 75 03
    8447     jmp near 05982h                           ; e9 cf fe
     8444    jne short 05af9h                          ; 75 03
     8445    jmp near 059c8h                           ; e9 cf fe
    84488446    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    8449     jne short 05abch                          ; 75 03
    8450     jmp near 0599eh                           ; e9 e2 fe
     8447    jne short 05b02h                          ; 75 03
     8448    jmp near 059e4h                           ; e9 e2 fe
    84518449    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
    8452     jne short 05ac5h                          ; 75 03
    8453     jmp near 0599ah                           ; e9 d5 fe
    8454     jmp short 05ab9h                          ; eb f2
     8450    jne short 05b0bh                          ; 75 03
     8451    jmp near 059e0h                           ; e9 d5 fe
     8452    jmp short 05affh                          ; eb f2
    84558453    mov dx, strict word 00017h                ; ba 17 00
    84568454    mov ax, strict word 00040h                ; b8 40 00
    8457     call 01652h                               ; e8 82 bb
     8455    call 01652h                               ; e8 3c bb
    84588456    mov dx, word [bp+012h]                    ; 8b 56 12
    84598457    mov dl, al                                ; 88 c2
     
    84618459    mov dx, strict word 00018h                ; ba 18 00
    84628460    mov ax, strict word 00040h                ; b8 40 00
    8463     call 01652h                               ; e8 71 bb
     8461    call 01652h                               ; e8 2b bb
    84648462    mov bh, al                                ; 88 c7
    84658463    and bh, 073h                              ; 80 e7 73
    84668464    mov dx, 00096h                            ; ba 96 00
    84678465    mov ax, strict word 00040h                ; b8 40 00
    8468     call 01652h                               ; e8 63 bb
     8466    call 01652h                               ; e8 1d bb
    84698467    mov ah, al                                ; 88 c4
    84708468    and ah, 00ch                              ; 80 e4 0c
     
    84728470    mov dx, word [bp+012h]                    ; 8b 56 12
    84738471    mov dh, ah                                ; 88 e6
    8474     jmp near 059bbh                           ; e9 bd fe
     8472    jmp near 05a01h                           ; e9 bd fe
    84758473    mov ax, word [bp+012h]                    ; 8b 46 12
    84768474    xor ah, ah                                ; 30 e4
    84778475    or ah, 080h                               ; 80 cc 80
    8478     jmp near 05913h                           ; e9 0a fe
    8479 set_geom_lba_:                               ; 0xf5b09 LB 0xeb
     8476    jmp near 05959h                           ; e9 0a fe
     8477set_geom_lba_:                               ; 0xf5b4f LB 0xeb
    84808478    push bx                                   ; 53
    84818479    push cx                                   ; 51
     
    84958493    mov dx, word [bp+00ch]                    ; 8b 56 0c
    84968494    mov si, strict word 00020h                ; be 20 00
    8497     call 0a060h                               ; e8 28 45
     8495    call 0a0a0h                               ; e8 22 45
    84988496    test ax, ax                               ; 85 c0
    8499     jne short 05b48h                          ; 75 0c
     8497    jne short 05b8eh                          ; 75 0c
    85008498    test bx, bx                               ; 85 db
    8501     jne short 05b48h                          ; 75 08
     8499    jne short 05b8eh                          ; 75 08
    85028500    test cx, cx                               ; 85 c9
    8503     jne short 05b48h                          ; 75 04
     8501    jne short 05b8eh                          ; 75 04
    85048502    test dx, dx                               ; 85 d2
    8505     je short 05b4fh                           ; 74 07
     8503    je short 05b95h                           ; 74 07
    85068504    mov bx, strict word 0ffffh                ; bb ff ff
    85078505    mov si, bx                                ; 89 de
    8508     jmp short 05b55h                          ; eb 06
     8506    jmp short 05b9bh                          ; eb 06
    85098507    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    85108508    mov si, word [bp+00eh]                    ; 8b 76 0e
    85118509    mov word [bp-004h], bx                    ; 89 5e fc
    85128510    xor bx, bx                                ; 31 db
    8513     jmp short 05b61h                          ; eb 05
     8511    jmp short 05ba7h                          ; eb 05
    85148512    cmp bx, strict byte 00004h                ; 83 fb 04
    8515     jnl short 05b84h                          ; 7d 23
     8513    jnl short 05bcah                          ; 7d 23
    85168514    mov ax, word [bp-006h]                    ; 8b 46 fa
    85178515    cmp si, ax                                ; 39 c6
    8518     jc short 05b72h                           ; 72 0a
    8519     jne short 05b7bh                          ; 75 11
     8516    jc short 05bb8h                           ; 72 0a
     8517    jne short 05bc1h                          ; 75 11
    85208518    mov ax, word [bp-004h]                    ; 8b 46 fc
    85218519    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8522     jnbe short 05b7bh                         ; 77 09
     8520    jnbe short 05bc1h                         ; 77 09
    85238521    mov ax, word [bp-002h]                    ; 8b 46 fe
    85248522    inc ax                                    ; 40
     
    85288526    rcr word [bp-008h], 1                     ; d1 5e f8
    85298527    inc bx                                    ; 43
    8530     jmp short 05b5ch                          ; eb d8
     8528    jmp short 05ba2h                          ; eb d8
    85318529    mov ax, word [bp-002h]                    ; 8b 46 fe
    85328530    xor dx, dx                                ; 31 d2
    85338531    mov bx, strict word 0003fh                ; bb 3f 00
    85348532    xor cx, cx                                ; 31 c9
    8535     call 0a010h                               ; e8 7f 44
     8533    call 0a050h                               ; e8 79 44
    85368534    mov bx, ax                                ; 89 c3
    85378535    mov cx, dx                                ; 89 d1
    85388536    mov ax, word [bp-004h]                    ; 8b 46 fc
    85398537    mov dx, si                                ; 89 f2
    8540     call 0a030h                               ; e8 93 44
     8538    call 0a070h                               ; e8 8d 44
    85418539    mov word [es:di+002h], ax                 ; 26 89 45 02
    85428540    cmp ax, 00400h                            ; 3d 00 04
    8543     jbe short 05bach                          ; 76 06
     8541    jbe short 05bf2h                          ; 76 06
    85448542    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    85458543    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    85538551    pop bx                                    ; 5b
    85548552    retn 00008h                               ; c2 08 00
    8555     jl short 05c20h                           ; 7c 5c
    8556     lea bx, [si-04bh]                         ; 8d 5c b5
     8553    retn 0d35ch                               ; c2 5c d3
    85578554    pop sp                                    ; 5c
    8558     mov CH, strict byte 05ch                  ; b5 5c
    8559     mov CH, strict byte 05ch                  ; b5 5c
    8560     mov word [0df5eh], ax                     ; a3 5e df
     8555    sti                                       ; fb
     8556    pop sp                                    ; 5c
     8557    sti                                       ; fb
     8558    pop sp                                    ; 5c
     8559    sti                                       ; fb
     8560    pop sp                                    ; 5c
     8561    jmp near 08173h                           ; e9 5e 25
     8562    pushaw                                    ; 60
     8563    and ax, 01960h                            ; 25 60 19
    85618564    pop di                                    ; 5f
    8562     fistp word [bx-02dh]                      ; df 5f d3
    8563     pop si                                    ; 5e
    8564     mov cx, 0df5fh                            ; b9 5f df
     8565    call far [bx+025h]                        ; ff 5f 25
     8566    pushaw                                    ; 60
     8567    and ax, 0ff60h                            ; 25 60 ff
    85658568    pop di                                    ; 5f
    8566     fistp word [bx-047h]                      ; df 5f b9
     8569    call far [bx+025h]                        ; ff 5f 25
     8570    pushaw                                    ; 60
     8571    and ax, 07f60h                            ; 25 60 7f
    85678572    pop di                                    ; 5f
    8568     mov cx, 0df5fh                            ; b9 5f df
     8573    call far [bx+025h]                        ; ff 5f 25
     8574    pushaw                                    ; 60
     8575    and ax, 0ff60h                            ; 25 60 ff
    85698576    pop di                                    ; 5f
    8570     fistp word [bx+039h]                      ; df 5f 39
    8571     pop di                                    ; 5f
    8572     mov cx, 0df5fh                            ; b9 5f df
    8573     pop di                                    ; 5f
    8574     fistp word [bx-047h]                      ; df 5f b9
    8575     pop di                                    ; 5f
    8576     push strict byte 0005fh                   ; 6a 5f
    8577     fistp word [bx-021h]                      ; df 5f df
    8578     pop di                                    ; 5f
    8579     db  0dfh
    8580     pop di                                    ; 5f
    8581 _int13_harddisk:                             ; 0xf5bf4 LB 0x446
     8577    mov AL, strict byte 05fh                  ; b0 5f
     8578    and ax, 02560h                            ; 25 60 25
     8579    pushaw                                    ; 60
     8580    db  025h
     8581    pushaw                                    ; 60
     8582_int13_harddisk:                             ; 0xf5c3a LB 0x446
    85828583    push bp                                   ; 55
    85838584    mov bp, sp                                ; 89 e5
     
    85858586    mov dx, strict word 0000eh                ; ba 0e 00
    85868587    mov ax, strict word 00040h                ; b8 40 00
    8587     call 0166eh                               ; e8 6b ba
     8588    call 0166eh                               ; e8 25 ba
    85888589    mov si, 00122h                            ; be 22 01
    85898590    mov word [bp-004h], ax                    ; 89 46 fc
     
    85918592    mov dx, 0008eh                            ; ba 8e 00
    85928593    mov ax, strict word 00040h                ; b8 40 00
    8593     call 01660h                               ; e8 4c ba
     8594    call 01660h                               ; e8 06 ba
    85948595    mov ax, word [bp+00eh]                    ; 8b 46 0e
    85958596    xor ah, ah                                ; 30 e4
    85968597    cmp ax, 00080h                            ; 3d 80 00
    8597     jc short 05c23h                           ; 72 05
     8598    jc short 05c69h                           ; 72 05
    85988599    cmp ax, 00090h                            ; 3d 90 00
    8599     jc short 05c42h                           ; 72 1f
     8600    jc short 05c88h                           ; 72 1f
    86008601    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86018602    xor ah, ah                                ; 30 e4
     
    86098610    mov ax, strict word 00004h                ; b8 04 00
    86108611    push ax                                   ; 50
    8611     call 01976h                               ; e8 3a bd
     8612    call 01976h                               ; e8 f4 bc
    86128613    add sp, strict byte 0000ah                ; 83 c4 0a
    8613     jmp near 05ffah                           ; e9 b8 03
     8614    jmp near 06040h                           ; e9 b8 03
    86148615    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86158616    xor ah, ah                                ; 30 e4
     
    86208621    mov byte [bp-002h], dl                    ; 88 56 fe
    86218622    cmp dl, 010h                              ; 80 fa 10
    8622     jc short 05c69h                           ; 72 0e
     8623    jc short 05cafh                           ; 72 0e
    86238624    push ax                                   ; 50
    86248625    mov al, byte [bp+017h]                    ; 8a 46 17
     
    86278628    push ax                                   ; 50
    86288629    mov ax, 006b8h                            ; b8 b8 06
    8629     jmp short 05c34h                          ; eb cb
     8630    jmp short 05c7ah                          ; eb cb
    86308631    mov al, byte [bp+017h]                    ; 8a 46 17
    86318632    xor ah, ah                                ; 30 e4
    86328633    cmp ax, strict word 00018h                ; 3d 18 00
    8633     jnbe short 05cb2h                         ; 77 3f
     8634    jnbe short 05cf8h                         ; 77 3f
    86348635    mov bx, ax                                ; 89 c3
    86358636    sal bx, 1                                 ; d1 e3
    8636     jmp word [cs:bx+05bc2h]                   ; 2e ff a7 c2 5b
     8637    jmp word [cs:bx+05c08h]                   ; 2e ff a7 08 5c
    86378638    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8638     jnc short 05c8ah                          ; 73 08
     8639    jnc short 05cd0h                          ; 73 08
    86398640    mov al, byte [bp-002h]                    ; 8a 46 fe
    86408641    xor ah, ah                                ; 30 e4
    8641     call 01db8h                               ; e8 2e c1
    8642     jmp near 05ebch                           ; e9 2f 02
     8642    call 01db8h                               ; e8 e8 c0
     8643    jmp near 05f02h                           ; e9 2f 02
    86438644    mov dx, strict word 00074h                ; ba 74 00
    86448645    mov ax, strict word 00040h                ; b8 40 00
    8645     call 01652h                               ; e8 bc b9
     8646    call 01652h                               ; e8 76 b9
    86468647    mov cl, al                                ; 88 c1
    86478648    mov dx, word [bp+016h]                    ; 8b 56 16
     
    86518652    mov dx, strict word 00074h                ; ba 74 00
    86528653    mov ax, strict word 00040h                ; b8 40 00
    8653     call 01660h                               ; e8 b5 b9
     8654    call 01660h                               ; e8 6f b9
    86548655    test cl, cl                               ; 84 c9
    8655     je short 05d11h                           ; 74 62
    8656     jmp near 06013h                           ; e9 61 03
    8657     jmp near 05fdfh                           ; e9 2a 03
     8656    je short 05d57h                           ; 74 62
     8657    jmp near 06059h                           ; e9 61 03
     8658    jmp near 06025h                           ; e9 2a 03
    86588659    mov ax, word [bp+016h]                    ; 8b 46 16
    86598660    xor ah, ah                                ; 30 e4
     
    86748675    mov ax, word [bp-00eh]                    ; 8b 46 f2
    86758676    cmp ax, 00080h                            ; 3d 80 00
    8676     jnbe short 05cebh                         ; 77 04
     8677    jnbe short 05d31h                         ; 77 04
    86778678    test ax, ax                               ; 85 c0
    8678     jne short 05d14h                          ; 75 29
     8679    jne short 05d5ah                          ; 75 29
    86798680    mov bx, 00da0h                            ; bb a0 0d
    86808681    mov cx, ds                                ; 8c d9
    86818682    mov ax, strict word 00004h                ; b8 04 00
    8682     call 01933h                               ; e8 3d bc
     8683    call 01933h                               ; e8 f7 bb
    86838684    mov al, byte [bp+017h]                    ; 8a 46 17
    86848685    xor ah, ah                                ; 30 e4
     
    86908691    mov ax, strict word 00004h                ; b8 04 00
    86918692    push ax                                   ; 50
    8692     call 01976h                               ; e8 6b bc
     8693    call 01976h                               ; e8 25 bc
    86938694    add sp, strict byte 00008h                ; 83 c4 08
    8694     jmp near 05ffah                           ; e9 e9 02
    8695     jmp near 05ec0h                           ; e9 ac 01
     8695    jmp near 06040h                           ; e9 e9 02
     8696    jmp near 05f06h                           ; e9 ac 01
    86968697    mov al, byte [bp-002h]                    ; 8a 46 fe
    86978698    xor ah, ah                                ; 30 e4
     
    87068707    mov word [bp-010h], dx                    ; 89 56 f0
    87078708    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8708     jbe short 05d42h                          ; 76 09
     8709    jbe short 05d88h                          ; 76 09
    87098710    cmp cx, word [bp-00ch]                    ; 3b 4e f4
    8710     jbe short 05d42h                          ; 76 04
     8711    jbe short 05d88h                          ; 76 04
    87118712    cmp di, dx                                ; 39 d7
    8712     jbe short 05d73h                          ; 76 31
     8713    jbe short 05db9h                          ; 76 31
    87138714    mov bx, 00da0h                            ; bb a0 0d
    87148715    mov cx, ds                                ; 8c d9
    87158716    mov ax, strict word 00004h                ; b8 04 00
    8716     call 01933h                               ; e8 e6 bb
     8717    call 01933h                               ; e8 a0 bb
    87178718    push di                                   ; 57
    87188719    push word [bp-00ch]                       ; ff 76 f4
     
    87298730    mov ax, strict word 00004h                ; b8 04 00
    87308731    push ax                                   ; 50
    8731     call 01976h                               ; e8 09 bc
     8732    call 01976h                               ; e8 c3 bb
    87328733    add sp, strict byte 00010h                ; 83 c4 10
    8733     jmp near 05ffah                           ; e9 87 02
     8734    jmp near 06040h                           ; e9 87 02
    87348735    mov al, byte [bp+017h]                    ; 8a 46 17
    87358736    xor ah, ah                                ; 30 e4
    87368737    cmp ax, strict word 00004h                ; 3d 04 00
    8737     je short 05d9dh                           ; 74 20
     8738    je short 05de3h                           ; 74 20
    87388739    mov al, byte [bp-002h]                    ; 8a 46 fe
    87398740    mov dx, strict word 0001ch                ; ba 1c 00
     
    87438744    add bx, ax                                ; 01 c3
    87448745    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8745     jne short 05da6h                          ; 75 14
     8746    jne short 05dech                          ; 75 14
    87468747    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    87478748    cmp ax, word [bp-010h]                    ; 3b 46 f0
    8748     je short 05da0h                           ; 74 05
    8749     jmp short 05da6h                          ; eb 09
    8750     jmp near 05ebch                           ; e9 1c 01
     8749    je short 05de6h                           ; 74 05
     8750    jmp short 05dech                          ; eb 09
     8751    jmp near 05f02h                           ; e9 1c 01
    87518752    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8752     jc short 05dd5h                           ; 72 2f
     8753    jc short 05e1bh                           ; 72 2f
    87538754    mov ax, word [bp-00ah]                    ; 8b 46 f6
    87548755    xor dx, dx                                ; 31 d2
    87558756    mov bx, cx                                ; 89 cb
    87568757    xor cx, cx                                ; 31 c9
    8757     call 0a010h                               ; e8 5e 42
     8758    call 0a050h                               ; e8 58 42
    87588759    xor bx, bx                                ; 31 db
    87598760    add ax, word [bp-00ch]                    ; 03 46 f4
     
    87618762    mov bx, word [bp-010h]                    ; 8b 5e f0
    87628763    xor cx, cx                                ; 31 c9
    8763     call 0a010h                               ; e8 4f 42
     8764    call 0a050h                               ; e8 49 42
    87648765    xor bx, bx                                ; 31 db
    87658766    add ax, di                                ; 01 f8
     
    88188819    mov word [bp+016h], bx                    ; 89 5e 16
    88198820    test dl, dl                               ; 84 d2
    8820     je short 05ebch                           ; 74 4a
     8821    je short 05f02h                           ; 74 4a
    88218822    mov bx, 00da0h                            ; bb a0 0d
    88228823    mov cx, ds                                ; 8c d9
    88238824    mov ax, strict word 00004h                ; b8 04 00
    8824     call 01933h                               ; e8 b6 ba
     8825    call 01933h                               ; e8 70 ba
    88258826    mov al, dl                                ; 88 d0
    88268827    xor ah, ah                                ; 30 e4
     
    88348835    mov ax, strict word 00004h                ; b8 04 00
    88358836    push ax                                   ; 50
    8836     call 01976h                               ; e8 e1 ba
     8837    call 01976h                               ; e8 9b ba
    88378838    add sp, strict byte 0000ah                ; 83 c4 0a
    88388839    mov ax, word [bp+016h]                    ; 8b 46 16
    88398840    xor ah, ah                                ; 30 e4
    88408841    or ah, 00ch                               ; 80 cc 0c
    8841     jmp near 06002h                           ; e9 5f 01
     8842    jmp near 06048h                           ; e9 5f 01
    88428843    mov bx, 00da0h                            ; bb a0 0d
    88438844    mov cx, ds                                ; 8c d9
    88448845    mov ax, strict word 00004h                ; b8 04 00
    8845     call 01933h                               ; e8 85 ba
     8846    call 01933h                               ; e8 3f ba
    88468847    mov ax, 0077ah                            ; b8 7a 07
    88478848    push ax                                   ; 50
    88488849    mov ax, strict word 00004h                ; b8 04 00
    88498850    push ax                                   ; 50
    8850     call 01976h                               ; e8 bd ba
     8851    call 01976h                               ; e8 77 ba
    88518852    add sp, strict byte 00004h                ; 83 c4 04
    88528853    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    88548855    mov dx, strict word 00074h                ; ba 74 00
    88558856    mov ax, strict word 00040h                ; b8 40 00
    8856     call 01660h                               ; e8 95 b7
     8857    call 01660h                               ; e8 4f b7
    88578858    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    88588859    mov sp, bp                                ; 89 ec
     
    88978898    or ax, dx                                 ; 09 d0
    88988899    mov word [bp+012h], ax                    ; 89 46 12
    8899     jmp short 05ebch                          ; eb 83
     8900    jmp short 05f02h                          ; eb 83
    89008901    mov al, byte [bp-002h]                    ; 8a 46 fe
    89018902    cwd                                       ; 99
     
    89148915    and AL, strict byte 0c0h                  ; 24 c0
    89158916    cmp AL, strict byte 040h                  ; 3c 40
    8916     jne short 05f5fh                          ; 75 03
    8917     jmp near 05ebch                           ; e9 5d ff
     8917    jne short 05fa5h                          ; 75 03
     8918    jmp near 05f02h                           ; e9 5d ff
    89188919    mov ax, word [bp+016h]                    ; 8b 46 16
    89198920    xor ah, ah                                ; 30 e4
    89208921    or ah, 0aah                               ; 80 cc aa
    8921     jmp near 06002h                           ; e9 98 00
     8922    jmp near 06048h                           ; e9 98 00
    89228923    mov al, byte [bp-002h]                    ; 8a 46 fe
    89238924    xor ah, ah                                ; 30 e4
     
    89358936    mov bx, word [bp-00ch]                    ; 8b 5e f4
    89368937    xor cx, cx                                ; 31 c9
    8937     call 0a010h                               ; e8 78 40
     8938    call 0a050h                               ; e8 72 40
    89388939    mov bx, di                                ; 89 fb
    89398940    xor cx, cx                                ; 31 c9
    8940     call 0a010h                               ; e8 71 40
     8941    call 0a050h                               ; e8 6b 40
    89418942    mov word [bp-008h], ax                    ; 89 46 f8
    89428943    mov word [bp-006h], dx                    ; 89 56 fa
     
    89478948    or ah, 003h                               ; 80 cc 03
    89488949    mov word [bp+016h], ax                    ; 89 46 16
    8949     jmp near 05ec0h                           ; e9 07 ff
     8950    jmp near 05f06h                           ; e9 07 ff
    89508951    mov bx, 00da0h                            ; bb a0 0d
    89518952    mov cx, ds                                ; 8c d9
    89528953    mov ax, strict word 00004h                ; b8 04 00
    8953     call 01933h                               ; e8 6f b9
     8954    call 01933h                               ; e8 29 b9
    89548955    mov al, byte [bp+017h]                    ; 8a 46 17
    89558956    xor ah, ah                                ; 30 e4
     
    89618962    mov ax, strict word 00004h                ; b8 04 00
    89628963    push ax                                   ; 50
    8963     call 01976h                               ; e8 9d b9
     8964    call 01976h                               ; e8 57 b9
    89648965    add sp, strict byte 00008h                ; 83 c4 08
    8965     jmp near 05ebch                           ; e9 dd fe
     8966    jmp near 05f02h                           ; e9 dd fe
    89668967    mov bx, 00da0h                            ; bb a0 0d
    89678968    mov cx, ds                                ; 8c d9
    89688969    mov ax, strict word 00004h                ; b8 04 00
    8969     call 01933h                               ; e8 49 b9
     8970    call 01933h                               ; e8 03 b9
    89708971    mov al, byte [bp+017h]                    ; 8a 46 17
    89718972    xor ah, ah                                ; 30 e4
     
    89748975    push ax                                   ; 50
    89758976    mov ax, 007c7h                            ; b8 c7 07
    8976     jmp near 05d03h                           ; e9 09 fd
     8977    jmp near 05d49h                           ; e9 09 fd
    89778978    mov ax, word [bp+016h]                    ; 8b 46 16
    89788979    xor ah, ah                                ; 30 e4
     
    89838984    mov dx, strict word 00074h                ; ba 74 00
    89848985    mov ax, strict word 00040h                ; b8 40 00
    8985     call 01660h                               ; e8 4d b6
     8986    call 01660h                               ; e8 07 b6
    89868987    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8987     jmp near 05ecfh                           ; e9 b5 fe
    8988     aam 060h                                  ; d4 60
    8989     pop ES                                    ; 07
     8988    jmp near 05f15h                           ; e9 b5 fe
     8989    sbb ah, byte [bx+di+04dh]                 ; 1a 61 4d
    89908990    popaw                                     ; 61
    8991     pop ES                                    ; 07
     8991    dec bp                                    ; 4d
    89928992    popaw                                     ; 61
    8993     pop ES                                    ; 07
     8993    dec bp                                    ; 4d
    89948994    popaw                                     ; 61
    8995     sbb word [di+07ch], sp                    ; 19 65 7c
    8996     bound ax, [bx]                            ; 62 07
     8995    pop di                                    ; 5f
     8996    db  065h, 0c2h, 062h, 04dh
     8997    ; gs retn 04d62h                            ; 65 c2 62 4d
    89978998    popaw                                     ; 61
    8998     db  082h, 062h, 019h, 065h
    8999     ; and byte [bp+si+019h], 065h               ; 82 62 19 65
    9000     in AL, DX                                 ; ec
    9001     pushaw                                    ; 60
    9002     in AL, DX                                 ; ec
    9003     pushaw                                    ; 60
    9004     in AL, DX                                 ; ec
    9005     pushaw                                    ; 60
    9006     in AL, DX                                 ; ec
    9007     pushaw                                    ; 60
    9008     xor byte [di-014h], ah                    ; 30 65 ec
    9009     pushaw                                    ; 60
    9010     in AL, DX                                 ; ec
    9011     pushaw                                    ; 60
    9012 _int13_harddisk_ext:                         ; 0xf603a LB 0x52b
     8999    enter 05f62h, 065h                        ; c8 62 5f 65
     9000    xor ah, byte [bx+di+032h]                 ; 32 61 32
     9001    popaw                                     ; 61
     9002    xor ah, byte [bx+di+032h]                 ; 32 61 32
     9003    popaw                                     ; 61
     9004    jbe short 060e1h                          ; 76 65
     9005    xor ah, byte [bx+di+032h]                 ; 32 61 32
     9006    popaw                                     ; 61
     9007_int13_harddisk_ext:                         ; 0xf6080 LB 0x52b
    90139008    push bp                                   ; 55
    90149009    mov bp, sp                                ; 89 e5
     
    90169011    mov dx, strict word 0000eh                ; ba 0e 00
    90179012    mov ax, strict word 00040h                ; b8 40 00
    9018     call 0166eh                               ; e8 25 b6
     9013    call 0166eh                               ; e8 df b5
    90199014    mov word [bp-018h], ax                    ; 89 46 e8
    90209015    mov dx, strict word 0000eh                ; ba 0e 00
    90219016    mov ax, strict word 00040h                ; b8 40 00
    9022     call 0166eh                               ; e8 19 b6
     9017    call 0166eh                               ; e8 d3 b5
    90239018    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    90249019    mov word [bp-006h], ax                    ; 89 46 fa
     
    90269021    mov dx, 0008eh                            ; ba 8e 00
    90279022    mov ax, strict word 00040h                ; b8 40 00
    9028     call 01660h                               ; e8 f8 b5
     9023    call 01660h                               ; e8 b2 b5
    90299024    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90309025    xor ah, ah                                ; 30 e4
    90319026    cmp ax, 00080h                            ; 3d 80 00
    9032     jc short 06077h                           ; 72 05
     9027    jc short 060bdh                           ; 72 05
    90339028    cmp ax, 00090h                            ; 3d 90 00
    9034     jc short 06096h                           ; 72 1f
     9029    jc short 060dch                           ; 72 1f
    90359030    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90369031    xor ah, ah                                ; 30 e4
     
    90449039    mov ax, strict word 00004h                ; b8 04 00
    90459040    push ax                                   ; 50
    9046     call 01976h                               ; e8 e6 b8
     9041    call 01976h                               ; e8 a0 b8
    90479042    add sp, strict byte 0000ah                ; 83 c4 0a
    9048     jmp near 06546h                           ; e9 b0 04
     9043    jmp near 0658ch                           ; e9 b0 04
    90499044    mov ax, word [bp+00eh]                    ; 8b 46 0e
    90509045    xor ah, ah                                ; 30 e4
     
    90549049    mov byte [bp-004h], dl                    ; 88 56 fc
    90559050    cmp dl, 010h                              ; 80 fa 10
    9056     jc short 060bbh                           ; 72 0e
     9051    jc short 06101h                           ; 72 0e
    90579052    push ax                                   ; 50
    90589053    mov al, byte [bp+017h]                    ; 8a 46 17
     
    90619056    push ax                                   ; 50
    90629057    mov ax, 006b8h                            ; b8 b8 06
    9063     jmp short 06088h                          ; eb cd
     9058    jmp short 060ceh                          ; eb cd
    90649059    mov bl, byte [bp+017h]                    ; 8a 5e 17
    90659060    xor bh, bh                                ; 30 ff
    90669061    sub bx, strict byte 00041h                ; 83 eb 41
    90679062    cmp bx, strict byte 0000fh                ; 83 fb 0f
    9068     jnbe short 060ech                         ; 77 24
     9063    jnbe short 06132h                         ; 77 24
    90699064    sal bx, 1                                 ; d1 e3
    90709065    mov ax, word [bp+016h]                    ; 8b 46 16
    90719066    xor ah, ah                                ; 30 e4
    9072     jmp word [cs:bx+0601ah]                   ; 2e ff a7 1a 60
     9067    jmp word [cs:bx+06060h]                   ; 2e ff a7 60 60
    90739068    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    90749069    mov ax, word [bp+016h]                    ; 8b 46 16
     
    90779072    mov word [bp+016h], ax                    ; 89 46 16
    90789073    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    9079     jmp near 0651dh                           ; e9 31 04
     9074    jmp near 06563h                           ; e9 31 04
    90809075    mov bx, 00da0h                            ; bb a0 0d
    90819076    mov cx, ds                                ; 8c d9
    90829077    mov ax, strict word 00004h                ; b8 04 00
    9083     call 01933h                               ; e8 3c b8
     9078    call 01933h                               ; e8 f6 b7
    90849079    mov al, byte [bp+017h]                    ; 8a 46 17
    90859080    xor ah, ah                                ; 30 e4
     
    90889083    push ax                                   ; 50
    90899084    mov ax, 007c7h                            ; b8 c7 07
    9090     jmp near 061a4h                           ; e9 9d 00
     9085    jmp near 061eah                           ; e9 9d 00
    90919086    mov di, word [bp+00ah]                    ; 8b 7e 0a
    90929087    mov es, [bp+004h]                         ; 8e 46 04
     
    91049099    xor bx, bx                                ; 31 db
    91059100    mov si, strict word 00020h                ; be 20 00
    9106     call 0a070h                               ; e8 36 3f
     9101    call 0a0b0h                               ; e8 30 3f
    91079102    mov word [bp-00eh], ax                    ; 89 46 f2
    91089103    mov word [bp-010h], bx                    ; 89 5e f0
     
    91219116    mov dx, word [bp-00eh]                    ; 8b 56 f2
    91229117    cmp dx, word [es:bx+03ch]                 ; 26 3b 57 3c
    9123     jnbe short 0618ch                         ; 77 22
    9124     jne short 061b2h                          ; 75 46
     9118    jnbe short 061d2h                         ; 77 22
     9119    jne short 061f8h                          ; 75 46
    91259120    mov dx, word [bp-010h]                    ; 8b 56 f0
    91269121    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9127     jnbe short 0618ch                         ; 77 17
     9122    jnbe short 061d2h                         ; 77 17
    91289123    mov dx, word [bp-010h]                    ; 8b 56 f0
    91299124    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
    9130     jne short 061b2h                          ; 75 34
     9125    jne short 061f8h                          ; 75 34
    91319126    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
    9132     jnbe short 0618ch                         ; 77 08
    9133     jne short 061b2h                          ; 75 2c
     9127    jnbe short 061d2h                         ; 77 08
     9128    jne short 061f8h                          ; 75 2c
    91349129    cmp si, word [es:bx+036h]                 ; 26 3b 77 36
    9135     jc short 061b2h                           ; 72 26
     9130    jc short 061f8h                           ; 72 26
    91369131    mov bx, 00da0h                            ; bb a0 0d
    91379132    mov cx, ds                                ; 8c d9
    91389133    mov ax, strict word 00004h                ; b8 04 00
    9139     call 01933h                               ; e8 9c b7
     9134    call 01933h                               ; e8 56 b7
    91409135    mov al, byte [bp+017h]                    ; 8a 46 17
    91419136    xor ah, ah                                ; 30 e4
     
    91479142    mov ax, strict word 00004h                ; b8 04 00
    91489143    push ax                                   ; 50
    9149     call 01976h                               ; e8 ca b7
     9144    call 01976h                               ; e8 84 b7
    91509145    add sp, strict byte 00008h                ; 83 c4 08
    9151     jmp near 06546h                           ; e9 94 03
     9146    jmp near 0658ch                           ; e9 94 03
    91529147    mov ah, byte [bp+017h]                    ; 8a 66 17
    91539148    mov byte [bp-012h], ah                    ; 88 66 ee
    91549149    mov byte [bp-011h], 000h                  ; c6 46 ef 00
    91559150    cmp word [bp-012h], strict byte 00044h    ; 83 7e ee 44
    9156     je short 061c8h                           ; 74 06
     9151    je short 0620eh                           ; 74 06
    91579152    cmp word [bp-012h], strict byte 00047h    ; 83 7e ee 47
    9158     jne short 061cbh                          ; 75 03
    9159     jmp near 06519h                           ; e9 4e 03
     9153    jne short 06211h                          ; 75 03
     9154    jmp near 0655fh                           ; e9 4e 03
    91609155    les bx, [bp-008h]                         ; c4 5e f8
    91619156    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
     
    91959190    mov word [es:bx+002h], ax                 ; 26 89 47 02
    91969191    test dl, dl                               ; 84 d2
    9197     je short 062a0h                           ; 74 54
     9192    je short 062e6h                           ; 74 54
    91989193    mov bx, 00da0h                            ; bb a0 0d
    91999194    mov cx, ds                                ; 8c d9
    92009195    mov ax, strict word 00004h                ; b8 04 00
    9201     call 01933h                               ; e8 dc b6
     9196    call 01933h                               ; e8 96 b6
    92029197    mov al, dl                                ; 88 d0
    92039198    xor ah, ah                                ; 30 e4
     
    92109205    mov ax, strict word 00004h                ; b8 04 00
    92119206    push ax                                   ; 50
    9212     call 01976h                               ; e8 08 b7
     9207    call 01976h                               ; e8 c2 b6
    92139208    add sp, strict byte 0000ah                ; 83 c4 0a
    92149209    mov ax, word [bp+016h]                    ; 8b 46 16
    92159210    xor ah, ah                                ; 30 e4
    92169211    or ah, 00ch                               ; 80 cc 0c
    9217     jmp near 0654eh                           ; e9 d2 02
     9212    jmp near 06594h                           ; e9 d2 02
    92189213    or ah, 0b2h                               ; 80 cc b2
    9219     jmp near 0654eh                           ; e9 cc 02
     9214    jmp near 06594h                           ; e9 cc 02
    92209215    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    92219216    mov ax, word [bp+004h]                    ; 8b 46 04
     
    92279222    mov word [bp-014h], ax                    ; 89 46 ec
    92289223    cmp ax, strict word 0001ah                ; 3d 1a 00
    9229     jnc short 062a3h                          ; 73 06
    9230     jmp near 06546h                           ; e9 a6 02
    9231     jmp near 06519h                           ; e9 76 02
    9232     jnc short 062a8h                          ; 73 03
    9233     jmp near 0633bh                           ; e9 93 00
     9224    jnc short 062e9h                          ; 73 06
     9225    jmp near 0658ch                           ; e9 a6 02
     9226    jmp near 0655fh                           ; e9 76 02
     9227    jnc short 062eeh                          ; 73 03
     9228    jmp near 06381h                           ; e9 93 00
    92349229    mov al, byte [bp-004h]                    ; 8a 46 fc
    92359230    xor ah, ah                                ; 30 e4
     
    92699264    mov dx, si                                ; 89 f2
    92709265    mov si, strict word 00020h                ; be 20 00
    9271     call 0a060h                               ; e8 2f 3d
     9266    call 0a0a0h                               ; e8 29 3d
    92729267    mov bx, di                                ; 89 fb
    92739268    mov word [es:bx+014h], dx                 ; 26 89 57 14
    92749269    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    92759270    cmp word [bp-014h], strict byte 0001eh    ; 83 7e ec 1e
    9276     jc short 063adh                           ; 72 6c
     9271    jc short 063f3h                           ; 72 6c
    92779272    mov es, [bp-00ah]                         ; 8e 46 f6
    92789273    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    93059300    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    93069301    test al, al                               ; 84 c0
    9307     jne short 0639eh                          ; 75 04
     9302    jne short 063e4h                          ; 75 04
    93089303    xor si, si                                ; 31 f6
    9309     jmp short 063a1h                          ; eb 03
     9304    jmp short 063e7h                          ; eb 03
    93109305    mov si, strict word 00008h                ; be 08 00
    93119306    or si, strict byte 00010h                 ; 83 ce 10
    93129307    cmp AL, strict byte 001h                  ; 3c 01
    9313     jne short 063b0h                          ; 75 08
     9308    jne short 063f6h                          ; 75 08
    93149309    mov dx, strict word 00001h                ; ba 01 00
    9315     jmp short 063b2h                          ; eb 05
    9316     jmp near 06448h                           ; e9 98 00
     9310    jmp short 063f8h                          ; eb 05
     9311    jmp near 0648eh                           ; e9 98 00
    93179312    xor dx, dx                                ; 31 d2
    93189313    or si, dx                                 ; 09 d6
    93199314    cmp AL, strict byte 003h                  ; 3c 03
    9320     jne short 063bdh                          ; 75 05
     9315    jne short 06403h                          ; 75 05
    93219316    mov ax, strict word 00003h                ; b8 03 00
    9322     jmp short 063bfh                          ; eb 02
     9317    jmp short 06405h                          ; eb 02
    93239318    xor ax, ax                                ; 31 c0
    93249319    or si, ax                                 ; 09 c6
     
    93499344    xor bl, bl                                ; 30 db
    93509345    xor bh, bh                                ; 30 ff
    9351     jmp short 06428h                          ; eb 05
     9346    jmp short 0646eh                          ; eb 05
    93529347    cmp bh, 00fh                              ; 80 ff 0f
    9353     jnc short 0643eh                          ; 73 16
     9348    jnc short 06484h                          ; 73 16
    93549349    mov al, bh                                ; 88 f8
    93559350    xor ah, ah                                ; 30 e4
     
    93579352    add dx, 00356h                            ; 81 c2 56 03
    93589353    mov ax, word [bp-018h]                    ; 8b 46 e8
    9359     call 01652h                               ; e8 1a b2
     9354    call 01652h                               ; e8 d4 b1
    93609355    add bl, al                                ; 00 c3
    93619356    db  0feh, 0c7h
    93629357    ; inc bh                                    ; fe c7
    9363     jmp short 06423h                          ; eb e5
     9358    jmp short 06469h                          ; eb e5
    93649359    neg bl                                    ; f6 db
    93659360    les si, [bp-008h]                         ; c4 76 f8
    93669361    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    93679362    cmp word [bp-014h], strict byte 00042h    ; 83 7e ec 42
    9368     jnc short 06451h                          ; 73 03
    9369     jmp near 06519h                           ; e9 c8 00
     9363    jnc short 06497h                          ; 73 03
     9364    jmp near 0655fh                           ; e9 c8 00
    93709365    mov al, byte [bp-004h]                    ; 8a 46 fc
    93719366    xor ah, ah                                ; 30 e4
     
    93879382    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    93889383    test al, al                               ; 84 c0
    9389     jne short 0649bh                          ; 75 0c
     9384    jne short 064e1h                          ; 75 0c
    93909385    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
    93919386    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
     
    93969391    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
    93979392    test al, al                               ; 84 c0
    9398     jne short 064d0h                          ; 75 16
     9393    jne short 06516h                          ; 75 16
    93999394    mov word [es:di+030h], dx                 ; 26 89 55 30
    94009395    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
     
    94119406    xor bl, bl                                ; 30 db
    94129407    mov BH, strict byte 01eh                  ; b7 1e
    9413     jmp short 064fbh                          ; eb 05
     9408    jmp short 06541h                          ; eb 05
    94149409    cmp bh, 040h                              ; 80 ff 40
    9415     jnc short 06510h                          ; 73 15
     9410    jnc short 06556h                          ; 73 15
    94169411    mov al, bh                                ; 88 f8
    94179412    xor ah, ah                                ; 30 e4
     
    94199414    add dx, ax                                ; 01 c2
    94209415    mov ax, word [bp+004h]                    ; 8b 46 04
    9421     call 01652h                               ; e8 48 b1
     9416    call 01652h                               ; e8 02 b1
    94229417    add bl, al                                ; 00 c3
    94239418    db  0feh, 0c7h
    94249419    ; inc bh                                    ; fe c7
    9425     jmp short 064f6h                          ; eb e6
     9420    jmp short 0653ch                          ; eb e6
    94269421    neg bl                                    ; f6 db
    94279422    mov es, [bp-00ah]                         ; 8e 46 f6
     
    94319426    mov dx, strict word 00074h                ; ba 74 00
    94329427    mov ax, strict word 00040h                ; b8 40 00
    9433     call 01660h                               ; e8 38 b1
     9428    call 01660h                               ; e8 f2 b0
    94349429    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    94359430    mov sp, bp                                ; 89 ec
     
    94379432    retn                                      ; c3
    94389433    cmp ax, strict word 00006h                ; 3d 06 00
    9439     je short 06519h                           ; 74 e4
     9434    je short 0655fh                           ; 74 e4
    94409435    cmp ax, strict word 00001h                ; 3d 01 00
    9441     jc short 06546h                           ; 72 0c
    9442     jbe short 06519h                          ; 76 dd
     9436    jc short 0658ch                           ; 72 0c
     9437    jbe short 0655fh                          ; 76 dd
    94439438    cmp ax, strict word 00003h                ; 3d 03 00
    9444     jc short 06546h                           ; 72 05
     9439    jc short 0658ch                           ; 72 05
    94459440    cmp ax, strict word 00004h                ; 3d 04 00
    9446     jbe short 06519h                          ; 76 d3
     9441    jbe short 0655fh                          ; 76 d3
    94479442    mov ax, word [bp+016h]                    ; 8b 46 16
    94489443    xor ah, ah                                ; 30 e4
     
    94539448    mov dx, strict word 00074h                ; ba 74 00
    94549449    mov ax, strict word 00040h                ; b8 40 00
    9455     call 01660h                               ; e8 01 b1
     9450    call 01660h                               ; e8 bb b0
    94569451    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9457     jmp short 0652ch                          ; eb c7
    9458 _int14_function:                             ; 0xf6565 LB 0x15c
     9452    jmp short 06572h                          ; eb c7
     9453_int14_function:                             ; 0xf65ab LB 0x15c
    94599454    push bp                                   ; 55
    94609455    mov bp, sp                                ; 89 e5
     
    94649459    sal dx, 1                                 ; d1 e2
    94659460    mov ax, strict word 00040h                ; b8 40 00
    9466     call 0166eh                               ; e8 f9 b0
     9461    call 0166eh                               ; e8 b3 b0
    94679462    mov si, ax                                ; 89 c6
    94689463    mov bx, ax                                ; 89 c3
     
    94709465    add dx, strict byte 0007ch                ; 83 c2 7c
    94719466    mov ax, strict word 00040h                ; b8 40 00
    9472     call 01652h                               ; e8 cd b0
     9467    call 01652h                               ; e8 87 b0
    94739468    mov cl, al                                ; 88 c1
    94749469    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9475     jnc short 06591h                          ; 73 04
     9470    jnc short 065d7h                          ; 73 04
    94769471    test si, si                               ; 85 f6
    9477     jnbe short 06594h                         ; 77 03
    9478     jmp near 066b7h                           ; e9 23 01
     9472    jnbe short 065dah                         ; 77 03
     9473    jmp near 066fdh                           ; e9 23 01
    94799474    mov al, byte [bp+013h]                    ; 8a 46 13
    94809475    cmp AL, strict byte 001h                  ; 3c 01
    9481     jc short 065a8h                           ; 72 0d
    9482     jbe short 06608h                          ; 76 6b
     9476    jc short 065eeh                           ; 72 0d
     9477    jbe short 0664eh                          ; 76 6b
    94839478    cmp AL, strict byte 003h                  ; 3c 03
    9484     je short 06600h                           ; 74 5f
     9479    je short 06646h                           ; 74 5f
    94859480    cmp AL, strict byte 002h                  ; 3c 02
    9486     je short 06603h                           ; 74 5e
    9487     jmp near 066b1h                           ; e9 09 01
     9481    je short 06649h                           ; 74 5e
     9482    jmp near 066f7h                           ; e9 09 01
    94889483    test al, al                               ; 84 c0
    9489     jne short 06605h                          ; 75 59
     9484    jne short 0664bh                          ; 75 59
    94909485    lea dx, [bx+003h]                         ; 8d 57 03
    94919486    in AL, DX                                 ; ec
     
    94979492    mov al, byte [bp+012h]                    ; 8a 46 12
    94989493    test AL, strict byte 0e0h                 ; a8 e0
    9499     jne short 065cbh                          ; 75 0c
     9494    jne short 06611h                          ; 75 0c
    95009495    mov AL, strict byte 017h                  ; b0 17
    95019496    mov dx, bx                                ; 89 da
     
    95049499    mov dx, si                                ; 89 f2
    95059500    out DX, AL                                ; ee
    9506     jmp short 065e2h                          ; eb 17
     9501    jmp short 06628h                          ; eb 17
    95079502    and AL, strict byte 0e0h                  ; 24 e0
    95089503    xor ah, ah                                ; 30 e4
     
    95319526    ; sub ah, ah                                ; 2a e4
    95329527    mov byte [bp+012h], al                    ; 88 46 12
    9533     jmp near 06692h                           ; e9 92 00
    9534     jmp near 066a0h                           ; e9 9d 00
    9535     jmp short 06656h                          ; eb 51
    9536     jmp near 066b1h                           ; e9 a9 00
     9528    jmp near 066d8h                           ; e9 92 00
     9529    jmp near 066e6h                           ; e9 9d 00
     9530    jmp short 0669ch                          ; eb 51
     9531    jmp near 066f7h                           ; e9 a9 00
    95379532    mov dx, strict word 0006ch                ; ba 6c 00
    95389533    mov ax, strict word 00040h                ; b8 40 00
    9539     call 0166eh                               ; e8 5d b0
     9534    call 0166eh                               ; e8 17 b0
    95409535    mov si, ax                                ; 89 c6
    95419536    lea dx, [bx+005h]                         ; 8d 57 05
     
    95459540    and ax, strict word 00060h                ; 25 60 00
    95469541    cmp ax, strict word 00060h                ; 3d 60 00
    9547     je short 06638h                           ; 74 17
     9542    je short 0667eh                           ; 74 17
    95489543    test cl, cl                               ; 84 c9
    9549     je short 06638h                           ; 74 13
     9544    je short 0667eh                           ; 74 13
    95509545    mov dx, strict word 0006ch                ; ba 6c 00
    95519546    mov ax, strict word 00040h                ; b8 40 00
    9552     call 0166eh                               ; e8 40 b0
     9547    call 0166eh                               ; e8 fa af
    95539548    cmp ax, si                                ; 39 f0
    9554     je short 06613h                           ; 74 e1
     9549    je short 06659h                           ; 74 e1
    95559550    mov si, ax                                ; 89 c6
    95569551    db  0feh, 0c9h
    95579552    ; dec cl                                    ; fe c9
    9558     jmp short 06613h                          ; eb db
     9553    jmp short 06659h                          ; eb db
    95599554    test cl, cl                               ; 84 c9
    9560     je short 06642h                           ; 74 06
     9555    je short 06688h                           ; 74 06
    95619556    mov al, byte [bp+012h]                    ; 8a 46 12
    95629557    mov dx, bx                                ; 89 da
     
    95689563    mov byte [bp+013h], al                    ; 88 46 13
    95699564    test cl, cl                               ; 84 c9
    9570     jne short 06692h                          ; 75 43
     9565    jne short 066d8h                          ; 75 43
    95719566    or AL, strict byte 080h                   ; 0c 80
    95729567    mov byte [bp+013h], al                    ; 88 46 13
    9573     jmp short 06692h                          ; eb 3c
     9568    jmp short 066d8h                          ; eb 3c
    95749569    mov dx, strict word 0006ch                ; ba 6c 00
    95759570    mov ax, strict word 00040h                ; b8 40 00
    9576     call 0166eh                               ; e8 0f b0
     9571    call 0166eh                               ; e8 c9 af
    95779572    mov si, ax                                ; 89 c6
    95789573    lea dx, [bx+005h]                         ; 8d 57 05
     
    95819576    ; sub ah, ah                                ; 2a e4
    95829577    test AL, strict byte 001h                 ; a8 01
    9583     jne short 06682h                          ; 75 17
     9578    jne short 066c8h                          ; 75 17
    95849579    test cl, cl                               ; 84 c9
    9585     je short 06682h                           ; 74 13
     9580    je short 066c8h                           ; 74 13
    95869581    mov dx, strict word 0006ch                ; ba 6c 00
    95879582    mov ax, strict word 00040h                ; b8 40 00
    9588     call 0166eh                               ; e8 f6 af
     9583    call 0166eh                               ; e8 b0 af
    95899584    cmp ax, si                                ; 39 f0
    9590     je short 06661h                           ; 74 e5
     9585    je short 066a7h                           ; 74 e5
    95919586    mov si, ax                                ; 89 c6
    95929587    db  0feh, 0c9h
    95939588    ; dec cl                                    ; fe c9
    9594     jmp short 06661h                          ; eb df
     9589    jmp short 066a7h                          ; eb df
    95959590    test cl, cl                               ; 84 c9
    9596     je short 06698h                           ; 74 12
     9591    je short 066deh                           ; 74 12
    95979592    mov byte [bp+013h], 000h                  ; c6 46 13 00
    95989593    mov dx, bx                                ; 89 da
     
    96029597    mov byte [bp+012h], al                    ; 88 46 12
    96039598    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9604     jmp short 066bbh                          ; eb 23
     9599    jmp short 06701h                          ; eb 23
    96059600    lea dx, [bx+005h]                         ; 8d 57 05
    96069601    in AL, DX                                 ; ec
    96079602    db  02ah, 0e4h
    96089603    ; sub ah, ah                                ; 2a e4
    9609     jmp short 06651h                          ; eb b1
     9604    jmp short 06697h                          ; eb b1
    96109605    lea dx, [si+005h]                         ; 8d 54 05
    96119606    in AL, DX                                 ; ec
     
    96179612    db  02ah, 0e4h
    96189613    ; sub ah, ah                                ; 2a e4
    9619     jmp short 0668fh                          ; eb de
     9614    jmp short 066d5h                          ; eb de
    96209615    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9621     jmp short 066bbh                          ; eb 04
     9616    jmp short 06701h                          ; eb 04
    96229617    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    96239618    lea sp, [bp-002h]                         ; 8d 66 fe
     
    96259620    pop bp                                    ; 5d
    96269621    retn                                      ; c3
    9627 timer_wait_:                                 ; 0xf66c1 LB 0x43
     9622timer_wait_:                                 ; 0xf6707 LB 0x43
    96289623    push bp                                   ; 55
    96299624    mov bp, sp                                ; 89 e5
     
    96339628    mov bx, strict word 0000fh                ; bb 0f 00
    96349629    xor cx, cx                                ; 31 c9
    9635     call 0a030h                               ; e8 61 39
     9630    call 0a070h                               ; e8 5b 39
    96369631    mov cx, ax                                ; 89 c1
    96379632    mov bx, dx                                ; 89 d3
     
    96459640    adc bx, strict byte 0ffffh                ; 83 d3 ff
    96469641    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9647     jne short 066eeh                          ; 75 05
     9642    jne short 06734h                          ; 75 05
    96489643    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9649     je short 066fdh                           ; 74 0f
     9644    je short 06743h                           ; 74 0f
    96509645    mov dx, strict word 00061h                ; ba 61 00
    96519646    in AL, DX                                 ; ec
     
    96549649    and AL, strict byte 010h                  ; 24 10
    96559650    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9656     jne short 066eeh                          ; 75 f3
    9657     jmp short 066deh                          ; eb e1
     9651    jne short 06734h                          ; 75 f3
     9652    jmp short 06724h                          ; eb e1
    96589653    lea sp, [bp-004h]                         ; 8d 66 fc
    96599654    pop cx                                    ; 59
     
    96619656    pop bp                                    ; 5d
    96629657    retn                                      ; c3
    9663 set_enable_a20_:                             ; 0xf6704 LB 0x30
     9658set_enable_a20_:                             ; 0xf674a LB 0x30
    96649659    push bp                                   ; 55
    96659660    mov bp, sp                                ; 89 e5
     
    96749669    mov cl, al                                ; 88 c1
    96759670    test bx, bx                               ; 85 db
    9676     je short 0671dh                           ; 74 05
     9671    je short 06763h                           ; 74 05
    96779672    or AL, strict byte 002h                   ; 0c 02
    96789673    out DX, AL                                ; ee
    9679     jmp short 06720h                          ; eb 03
     9674    jmp short 06766h                          ; eb 03
    96809675    and AL, strict byte 0fdh                  ; 24 fd
    96819676    out DX, AL                                ; ee
    96829677    test cl, 002h                             ; f6 c1 02
    9683     je short 0672ah                           ; 74 05
     9678    je short 06770h                           ; 74 05
    96849679    mov ax, strict word 00001h                ; b8 01 00
    9685     jmp short 0672ch                          ; eb 02
     9680    jmp short 06772h                          ; eb 02
    96869681    xor ax, ax                                ; 31 c0
    96879682    lea sp, [bp-006h]                         ; 8d 66 fa
     
    96919686    pop bp                                    ; 5d
    96929687    retn                                      ; c3
    9693 set_e820_range_:                             ; 0xf6734 LB 0x88
     9688set_e820_range_:                             ; 0xf677a LB 0x88
    96949689    push si                                   ; 56
    96959690    push bp                                   ; 55
     
    97219716    retn 0000ah                               ; c2 0a 00
    97229717    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9723     db  0c9h, 06ah, 0f8h, 067h, 00ch, 068h, 0a8h, 068h, 0aeh, 068h, 0b3h, 068h, 0b8h, 068h, 060h, 069h
    9724     db  084h, 069h, 0a1h, 068h, 0a1h, 068h, 04eh, 06ah, 079h, 06ah, 08ch, 06ah, 09bh, 06ah, 0a8h, 068h
    9725     db  0a4h, 06ah
    9726 _int15_function:                             ; 0xf67bc LB 0x343
     9718    db  00fh, 06bh, 03eh, 068h, 052h, 068h, 0eeh, 068h, 0f4h, 068h, 0f9h, 068h, 0feh, 068h, 0a6h, 069h
     9719    db  0cah, 069h, 0e7h, 068h, 0e7h, 068h, 094h, 06ah, 0bfh, 06ah, 0d2h, 06ah, 0e1h, 06ah, 0eeh, 068h
     9720    db  0eah, 06ah
     9721_int15_function:                             ; 0xf6802 LB 0x343
    97279722    push bp                                   ; 55
    97289723    mov bp, sp                                ; 89 e5
     
    97339728    mov dx, ax                                ; 89 c2
    97349729    cmp ax, 000ech                            ; 3d ec 00
    9735     jnbe short 06802h                         ; 77 35
     9730    jnbe short 06848h                         ; 77 35
    97369731    push CS                                   ; 0e
    97379732    pop ES                                    ; 07
    97389733    mov cx, strict word 00011h                ; b9 11 00
    9739     mov di, 0678ah                            ; bf 8a 67
     9734    mov di, 067d0h                            ; bf d0 67
    97409735    repne scasb                               ; f2 ae
    97419736    sal cx, 1                                 ; d1 e1
    97429737    mov di, cx                                ; 89 cf
    9743     mov si, word [cs:di+0679ah]               ; 2e 8b b5 9a 67
     9738    mov si, word [cs:di+067e0h]               ; 2e 8b b5 e0 67
    97449739    mov ax, word [bp+012h]                    ; 8b 46 12
    97459740    xor ah, ah                                ; 30 e4
     
    97549749    xor ah, ah                                ; 30 e4
    97559750    cmp ax, 000c0h                            ; 3d c0 00
    9756     je short 06805h                           ; 74 03
    9757     jmp near 06ac9h                           ; e9 c4 02
     9751    je short 0684bh                           ; 74 03
     9752    jmp near 06b0fh                           ; e9 c4 02
    97589753    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9759     jmp near 06a70h                           ; e9 64 02
     9754    jmp near 06ab6h                           ; e9 64 02
    97609755    mov dx, ax                                ; 89 c2
    97619756    cmp ax, strict word 00001h                ; 3d 01 00
    9762     jc short 06821h                           ; 72 0e
    9763     jbe short 06835h                          ; 76 20
     9757    jc short 06867h                           ; 72 0e
     9758    jbe short 0687bh                          ; 76 20
    97649759    cmp ax, strict word 00003h                ; 3d 03 00
    9765     je short 06866h                           ; 74 4c
     9760    je short 068ach                           ; 74 4c
    97669761    cmp ax, strict word 00002h                ; 3d 02 00
    9767     je short 06845h                           ; 74 26
    9768     jmp short 06873h                          ; eb 52
     9762    je short 0688bh                           ; 74 26
     9763    jmp short 068b9h                          ; eb 52
    97699764    test ax, ax                               ; 85 c0
    9770     jne short 06873h                          ; 75 4e
     9765    jne short 068b9h                          ; 75 4e
    97719766    xor ax, ax                                ; 31 c0
    9772     call 06704h                               ; e8 da fe
     9767    call 0674ah                               ; e8 da fe
    97739768    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97749769    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9775     jmp near 068a1h                           ; e9 6c 00
     9770    jmp near 068e7h                           ; e9 6c 00
    97769771    mov ax, strict word 00001h                ; b8 01 00
    9777     call 06704h                               ; e8 c9 fe
     9772    call 0674ah                               ; e8 c9 fe
    97789773    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97799774    mov byte [bp+013h], dh                    ; 88 76 13
    9780     jmp near 068a1h                           ; e9 5c 00
     9775    jmp near 068e7h                           ; e9 5c 00
    97819776    mov dx, 00092h                            ; ba 92 00
    97829777    in AL, DX                                 ; ec
     
    97929787    xor al, dl                                ; 30 d0
    97939788    mov byte [bp+013h], al                    ; 88 46 13
    9794     jmp near 068a1h                           ; e9 3b 00
     9789    jmp near 068e7h                           ; e9 3b 00
    97959790    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    97969791    mov byte [bp+013h], ah                    ; 88 66 13
    97979792    mov word [bp+00ch], ax                    ; 89 46 0c
    9798     jmp near 068a1h                           ; e9 2e 00
     9793    jmp near 068e7h                           ; e9 2e 00
    97999794    mov bx, 00da0h                            ; bb a0 0d
    98009795    mov cx, ds                                ; 8c d9
    98019796    mov ax, strict word 00004h                ; b8 04 00
    9802     call 01933h                               ; e8 b5 b0
     9797    call 01933h                               ; e8 6f b0
    98039798    mov ax, word [bp+012h]                    ; 8b 46 12
    98049799    xor ah, ah                                ; 30 e4
     
    98089803    mov ax, strict word 00004h                ; b8 04 00
    98099804    push ax                                   ; 50
    9810     call 01976h                               ; e8 e7 b0
     9805    call 01976h                               ; e8 a1 b0
    98119806    add sp, strict byte 00006h                ; 83 c4 06
    98129807    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    98219816    retn                                      ; c3
    98229817    mov word [bp+018h], dx                    ; 89 56 18
    9823     jmp near 0695ah                           ; e9 ac 00
     9818    jmp near 069a0h                           ; e9 ac 00
    98249819    mov word [bp+018h], dx                    ; 89 56 18
    9825     jmp short 068a1h                          ; eb ee
     9820    jmp short 068e7h                          ; eb ee
    98269821    mov word [bp+018h], cx                    ; 89 4e 18
    9827     jmp short 0689eh                          ; eb e6
     9822    jmp short 068e4h                          ; eb e6
    98289823    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9829     jne short 0692dh                          ; 75 6f
     9824    jne short 06973h                          ; 75 6f
    98309825    mov dx, 000a0h                            ; ba a0 00
    98319826    mov ax, strict word 00040h                ; b8 40 00
    9832     call 01652h                               ; e8 8b ad
     9827    call 01652h                               ; e8 45 ad
    98339828    test AL, strict byte 001h                 ; a8 01
    9834     jne short 0692ah                          ; 75 5f
     9829    jne short 06970h                          ; 75 5f
    98359830    mov bx, strict word 00001h                ; bb 01 00
    98369831    mov dx, 000a0h                            ; ba a0 00
    98379832    mov ax, strict word 00040h                ; b8 40 00
    9838     call 01660h                               ; e8 89 ad
     9833    call 01660h                               ; e8 43 ad
    98399834    mov bx, word [bp+014h]                    ; 8b 5e 14
    98409835    mov dx, 00098h                            ; ba 98 00
    98419836    mov ax, strict word 00040h                ; b8 40 00
    9842     call 0167ch                               ; e8 99 ad
     9837    call 0167ch                               ; e8 53 ad
    98439838    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    98449839    mov dx, 0009ah                            ; ba 9a 00
    98459840    mov ax, strict word 00040h                ; b8 40 00
    9846     call 0167ch                               ; e8 8d ad
     9841    call 0167ch                               ; e8 47 ad
    98479842    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    98489843    mov dx, 0009ch                            ; ba 9c 00
    98499844    mov ax, strict word 00040h                ; b8 40 00
    9850     call 0167ch                               ; e8 81 ad
     9845    call 0167ch                               ; e8 3b ad
    98519846    mov bx, word [bp+010h]                    ; 8b 5e 10
    98529847    mov dx, 0009eh                            ; ba 9e 00
    98539848    mov ax, strict word 00040h                ; b8 40 00
    9854     call 0167ch                               ; e8 75 ad
     9849    call 0167ch                               ; e8 2f ad
    98559850    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98569851    mov dx, 000a1h                            ; ba a1 00
     
    98619856    out DX, AL                                ; ee
    98629857    mov ax, strict word 0000bh                ; b8 0b 00
    9863     call 016aeh                               ; e8 94 ad
     9858    call 016aeh                               ; e8 4e ad
    98649859    mov dl, al                                ; 88 c2
    98659860    or dl, 040h                               ; 80 ca 40
    98669861    xor dh, dh                                ; 30 f6
    98679862    mov ax, strict word 0000bh                ; b8 0b 00
    9868     call 016c9h                               ; e8 a2 ad
    9869     jmp near 068a1h                           ; e9 77 ff
    9870     jmp near 06a67h                           ; e9 3a 01
     9863    call 016c9h                               ; e8 5c ad
     9864    jmp near 068e7h                           ; e9 77 ff
     9865    jmp near 06aadh                           ; e9 3a 01
    98719866    cmp ax, strict word 00001h                ; 3d 01 00
    9872     jne short 0694eh                          ; 75 1c
     9867    jne short 06994h                          ; 75 1c
    98739868    xor bx, bx                                ; 31 db
    98749869    mov dx, 000a0h                            ; ba a0 00
    98759870    mov ax, strict word 00040h                ; b8 40 00
    9876     call 01660h                               ; e8 23 ad
     9871    call 01660h                               ; e8 dd ac
    98779872    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    98789873    mov ax, strict word 0000bh                ; b8 0b 00
    9879     call 016aeh                               ; e8 67 ad
     9874    call 016aeh                               ; e8 21 ad
    98809875    mov dl, al                                ; 88 c2
    98819876    and dl, 0bfh                              ; 80 e2 bf
    9882     jmp short 0691fh                          ; eb d1
     9877    jmp short 06965h                          ; eb d1
    98839878    mov word [bp+018h], dx                    ; 89 56 18
    98849879    mov ax, bx                                ; 89 d8
     
    98889883    or bx, ax                                 ; 09 c3
    98899884    mov word [bp+012h], bx                    ; 89 5e 12
    9890     jmp near 068a1h                           ; e9 41 ff
     9885    jmp near 068e7h                           ; e9 41 ff
    98919886    mov ax, strict word 00031h                ; b8 31 00
    9892     call 016aeh                               ; e8 48 ad
     9887    call 016aeh                               ; e8 02 ad
    98939888    mov dh, al                                ; 88 c6
    98949889    mov ax, strict word 00030h                ; b8 30 00
    9895     call 016aeh                               ; e8 40 ad
     9890    call 016aeh                               ; e8 fa ac
    98969891    mov dl, al                                ; 88 c2
    98979892    mov word [bp+012h], dx                    ; 89 56 12
    98989893    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9899     jbe short 0697dh                          ; 76 05
     9894    jbe short 069c3h                          ; 76 05
    99009895    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    99019896    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9902     jmp near 068a1h                           ; e9 1d ff
     9897    jmp near 068e7h                           ; e9 1d ff
    99039898    cli                                       ; fa
    99049899    mov ax, strict word 00001h                ; b8 01 00
    9905     call 06704h                               ; e8 79 fd
     9900    call 0674ah                               ; e8 79 fd
    99069901    mov dx, word [bp+006h]                    ; 8b 56 06
    99079902    add dx, strict byte 00038h                ; 83 c2 38
    99089903    mov ax, word [bp+014h]                    ; 8b 46 14
    99099904    mov bx, strict word 0ffffh                ; bb ff ff
    9910     call 0167ch                               ; e8 e2 ac
     9905    call 0167ch                               ; e8 9c ac
    99119906    mov dx, word [bp+006h]                    ; 8b 56 06
    99129907    add dx, strict byte 0003ah                ; 83 c2 3a
    99139908    mov ax, word [bp+014h]                    ; 8b 46 14
    99149909    xor bx, bx                                ; 31 db
    9915     call 0167ch                               ; e8 d4 ac
     9910    call 0167ch                               ; e8 8e ac
    99169911    mov dx, word [bp+006h]                    ; 8b 56 06
    99179912    add dx, strict byte 0003ch                ; 83 c2 3c
    99189913    mov ax, word [bp+014h]                    ; 8b 46 14
    99199914    mov bx, strict word 0000fh                ; bb 0f 00
    9920     call 01660h                               ; e8 a9 ac
     9915    call 01660h                               ; e8 63 ac
    99219916    mov dx, word [bp+006h]                    ; 8b 56 06
    99229917    add dx, strict byte 0003dh                ; 83 c2 3d
    99239918    mov ax, word [bp+014h]                    ; 8b 46 14
    99249919    mov bx, 0009bh                            ; bb 9b 00
    9925     call 01660h                               ; e8 9a ac
     9920    call 01660h                               ; e8 54 ac
    99269921    mov dx, word [bp+006h]                    ; 8b 56 06
    99279922    add dx, strict byte 0003eh                ; 83 c2 3e
    99289923    mov ax, word [bp+014h]                    ; 8b 46 14
    99299924    xor bx, bx                                ; 31 db
    9930     call 0167ch                               ; e8 a8 ac
     9925    call 0167ch                               ; e8 62 ac
    99319926    mov AL, strict byte 011h                  ; b0 11
    99329927    mov dx, strict word 00020h                ; ba 20 00
     
    99579952    out DX, AL                                ; ee
    99589953    mov si, word [bp+006h]                    ; 8b 76 06
    9959     call 06a12h                               ; e8 00 00
     9954    call 06a58h                               ; e8 00 00
    99609955    pop di                                    ; 5f
    99619956    add di, strict byte 00018h                ; 83 c7 18
     
    99859980    push cx                                   ; 51
    99869981    retf                                      ; cb
    9987     jmp near 068a1h                           ; e9 53 fe
     9982    jmp near 068e7h                           ; e9 53 fe
    99889983    mov bx, 00da0h                            ; bb a0 0d
    99899984    mov cx, ds                                ; 8c d9
    99909985    mov ax, strict word 00004h                ; b8 04 00
    9991     call 01933h                               ; e8 da ae
     9986    call 01933h                               ; e8 94 ae
    99929987    mov ax, 0086eh                            ; b8 6e 08
    99939988    push ax                                   ; 50
    99949989    mov ax, strict word 00004h                ; b8 04 00
    99959990    push ax                                   ; 50
    9996     call 01976h                               ; e8 12 af
     9991    call 01976h                               ; e8 cc ae
    99979992    add sp, strict byte 00004h                ; 83 c4 04
    99989993    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    100019996    or ah, 086h                               ; 80 cc 86
    100029997    mov word [bp+012h], ax                    ; 89 46 12
    10003     jmp near 068a1h                           ; e9 28 fe
     9998    jmp near 068e7h                           ; e9 28 fe
    100049999    mov word [bp+018h], cx                    ; 89 4e 18
    1000510000    mov word [bp+012h], ax                    ; 89 46 12
    1000610001    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    1000710002    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    10008     jmp near 068a1h                           ; e9 15 fe
     10003    jmp near 068e7h                           ; e9 15 fe
    1000910004    mov dx, strict word 0000eh                ; ba 0e 00
    1001010005    mov ax, strict word 00040h                ; b8 40 00
    10011     call 0166eh                               ; e8 d9 ab
     10006    call 0166eh                               ; e8 93 ab
    1001210007    mov word [bp+014h], ax                    ; 89 46 14
    10013     jmp near 0697dh                           ; e9 e2 fe
     10008    jmp near 069c3h                           ; e9 e2 fe
    1001410009    mov ax, 0089dh                            ; b8 9d 08
    1001510010    push ax                                   ; 50
    1001610011    mov ax, strict word 00008h                ; b8 08 00
    10017     jmp short 06a60h                          ; eb bc
     10012    jmp short 06aa6h                          ; eb bc
    1001810013    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    10019     jne short 06ac9h                          ; 75 1f
     10014    jne short 06b0fh                          ; 75 1f
    1002010015    mov word [bp+012h], ax                    ; 89 46 12
    1002110016    mov ax, word [bp+00ch]                    ; 8b 46 0c
    1002210017    xor ah, ah                                ; 30 e4
    1002310018    cmp ax, strict word 00001h                ; 3d 01 00
    10024     jc short 06ac2h                           ; 72 0b
     10019    jc short 06b08h                           ; 72 0b
    1002510020    cmp ax, strict word 00003h                ; 3d 03 00
    10026     jnbe short 06ac2h                         ; 77 06
     10021    jnbe short 06b08h                         ; 77 06
    1002710022    mov word [bp+018h], cx                    ; 89 4e 18
    10028     jmp near 068a1h                           ; e9 df fd
     10023    jmp near 068e7h                           ; e9 df fd
    1002910024    or byte [bp+018h], 001h                   ; 80 4e 18 01
    10030     jmp near 068a1h                           ; e9 d8 fd
     10025    jmp near 068e7h                           ; e9 d8 fd
    1003110026    mov bx, 00da0h                            ; bb a0 0d
    1003210027    mov cx, ds                                ; 8c d9
    1003310028    mov ax, strict word 00004h                ; b8 04 00
    10034     call 01933h                               ; e8 5f ae
     10029    call 01933h                               ; e8 19 ae
    1003510030    push word [bp+00ch]                       ; ff 76 0c
    1003610031    push word [bp+012h]                       ; ff 76 12
     
    1003910034    mov ax, strict word 00004h                ; b8 04 00
    1004010035    push ax                                   ; 50
    10041     call 01976h                               ; e8 91 ae
     10036    call 01976h                               ; e8 4b ae
    1004210037    add sp, strict byte 00008h                ; 83 c4 08
    10043     jmp near 06a67h                           ; e9 7c ff
    10044     push 0926ch                               ; 68 6c 92
     10038    jmp near 06aadh                           ; e9 7c ff
     10039    scasb                                     ; ae
    1004510040    insb                                      ; 6c
    10046     jmp far 02f6dh:00f6ch                     ; ea 6c 0f 6d 2f
     10041    fsubr dword [si+030h]                     ; d8 6c 30
    1004710042    insw                                      ; 6d
    10048     dec si                                    ; 4e
     10043    push bp                                   ; 55
    1004910044    insw                                      ; 6d
    10050     je short 06b66h                           ; 74 6d
    10051     call far 00b6dh:0d76dh                    ; 9a 6d d7 6d 0b
     10045    jne short 06ba8h                          ; 75 6d
     10046    xchg sp, ax                               ; 94
     10047    insw                                      ; 6d
     10048    mov dx, 0e06dh                            ; ba 6d e0
     10049    insw                                      ; 6d
     10050    sbb ax, 0516eh                            ; 1d 6e 51
    1005210051    outsb                                     ; 6e
    10053 _int15_function32:                           ; 0xf6aff LB 0x39e
     10052_int15_function32:                           ; 0xf6b45 LB 0x39e
    1005410053    push bp                                   ; 55
    1005510054    mov bp, sp                                ; 89 e5
     
    1006310062    xor dh, dh                                ; 30 f6
    1006410063    cmp ax, 000e8h                            ; 3d e8 00
    10065     je short 06b65h                           ; 74 4a
     10064    je short 06babh                           ; 74 4a
    1006610065    cmp ax, 000d0h                            ; 3d d0 00
    10067     je short 06b32h                           ; 74 12
     10066    je short 06b78h                           ; 74 12
    1006810067    cmp ax, 00086h                            ; 3d 86 00
    10069     jne short 06b63h                          ; 75 3e
     10068    jne short 06ba9h                          ; 75 3e
    1007010069    sti                                       ; fb
    1007110070    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1007210071    mov ax, word [bp+018h]                    ; 8b 46 18
    10073     call 066c1h                               ; e8 92 fb
    10074     jmp near 06ce4h                           ; e9 b2 01
     10072    call 06707h                               ; e8 92 fb
     10073    jmp near 06d2ah                           ; e9 b2 01
    1007510074    cmp dx, strict byte 0004fh                ; 83 fa 4f
    10076     jne short 06b63h                          ; 75 2c
     10075    jne short 06ba9h                          ; 75 2c
    1007710076    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    10078     jne short 06b99h                          ; 75 5b
     10077    jne short 06bdfh                          ; 75 5b
    1007910078    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    10080     jne short 06b99h                          ; 75 54
     10079    jne short 06bdfh                          ; 75 54
    1008110080    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    10082     jne short 06b99h                          ; 75 4d
     10081    jne short 06bdfh                          ; 75 4d
    1008310082    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    10084     jne short 06b99h                          ; 75 46
     10083    jne short 06bdfh                          ; 75 46
    1008510084    mov ax, word [bp+00ah]                    ; 8b 46 0a
    1008610085    or ax, word [bp+008h]                     ; 0b 46 08
    10087     jne short 06b99h                          ; 75 3e
     10086    jne short 06bdfh                          ; 75 3e
    1008810087    mov ax, word [bp+006h]                    ; 8b 46 06
    1008910088    or ax, word [bp+004h]                     ; 0b 46 04
    10090     je short 06b67h                           ; 74 04
    10091     jmp short 06b99h                          ; eb 34
    10092     jmp short 06b8fh                          ; eb 28
     10089    je short 06badh                           ; 74 04
     10090    jmp short 06bdfh                          ; eb 34
     10091    jmp short 06bd5h                          ; eb 28
    1009310092    mov word [bp+028h], bx                    ; 89 5e 28
    1009410093    mov ax, word [bp+014h]                    ; 8b 46 14
     
    1010210101    mov word [bp+020h], 03332h                ; c7 46 20 32 33
    1010310102    mov word [bp+022h], 04941h                ; c7 46 22 41 49
    10104     jmp near 06ce4h                           ; e9 55 01
     10103    jmp near 06d2ah                           ; e9 55 01
    1010510104    cmp dx, strict byte 00020h                ; 83 fa 20
    10106     je short 06b9fh                           ; 74 0b
     10105    je short 06be5h                           ; 74 0b
    1010710106    cmp dx, strict byte 00001h                ; 83 fa 01
    10108     je short 06b9ch                           ; 74 03
    10109     jmp near 06cb7h                           ; e9 1b 01
    10110     jmp near 06e5dh                           ; e9 be 02
     10107    je short 06be2h                           ; 74 03
     10108    jmp near 06cfdh                           ; e9 1b 01
     10109    jmp near 06ea3h                           ; e9 be 02
    1011110110    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    10112     jne short 06b99h                          ; 75 f3
     10111    jne short 06bdfh                          ; 75 f3
    1011310112    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    10114     jne short 06b99h                          ; 75 ec
     10113    jne short 06bdfh                          ; 75 ec
    1011510114    mov ax, strict word 00035h                ; b8 35 00
    10116     call 016aeh                               ; e8 fb aa
     10115    call 016aeh                               ; e8 b5 aa
    1011710116    mov bl, al                                ; 88 c3
    1011810117    xor bh, bh                                ; 30 ff
     
    1012110120    sal bx, 1                                 ; d1 e3
    1012210121    rcl dx, 1                                 ; d1 d2
    10123     loop 06bbch                               ; e2 fa
     10122    loop 06c02h                               ; e2 fa
    1012410123    mov ax, strict word 00034h                ; b8 34 00
    10125     call 016aeh                               ; e8 e6 aa
     10124    call 016aeh                               ; e8 a0 aa
    1012610125    xor ah, ah                                ; 30 e4
    1012710126    mov dx, bx                                ; 89 da
     
    1013110130    adc dx, 00100h                            ; 81 d2 00 01
    1013210131    cmp dx, 00100h                            ; 81 fa 00 01
    10133     jc short 06be2h                           ; 72 06
    10134     jne short 06c10h                          ; 75 32
     10132    jc short 06c28h                           ; 72 06
     10133    jne short 06c56h                          ; 75 32
    1013510134    test bx, bx                               ; 85 db
    10136     jnbe short 06c10h                         ; 77 2e
     10135    jnbe short 06c56h                         ; 77 2e
    1013710136    mov ax, strict word 00031h                ; b8 31 00
    10138     call 016aeh                               ; e8 c6 aa
     10137    call 016aeh                               ; e8 80 aa
    1013910138    mov bl, al                                ; 88 c3
    1014010139    xor bh, bh                                ; 30 ff
     
    1014310142    sal bx, 1                                 ; d1 e3
    1014410143    rcl dx, 1                                 ; d1 d2
    10145     loop 06bf1h                               ; e2 fa
     10144    loop 06c37h                               ; e2 fa
    1014610145    mov ax, strict word 00030h                ; b8 30 00
    10147     call 016aeh                               ; e8 b1 aa
     10146    call 016aeh                               ; e8 6b aa
    1014810147    xor ah, ah                                ; 30 e4
    1014910148    or bx, ax                                 ; 09 c3
     
    1015110150    sal bx, 1                                 ; d1 e3
    1015210151    rcl dx, 1                                 ; d1 d2
    10153     loop 06c04h                               ; e2 fa
     10152    loop 06c4ah                               ; e2 fa
    1015410153    add bx, strict byte 00000h                ; 83 c3 00
    1015510154    adc dx, strict byte 00010h                ; 83 d2 10
    1015610155    mov ax, strict word 00062h                ; b8 62 00
    10157     call 016aeh                               ; e8 98 aa
     10156    call 016aeh                               ; e8 52 aa
    1015810157    xor ah, ah                                ; 30 e4
    1015910158    mov word [bp-00ah], ax                    ; 89 46 f6
     
    1016310162    sal word [bp-00ah], 1                     ; d1 66 f6
    1016410163    rcl word [bp-008h], 1                     ; d1 56 f8
    10165     loop 06c23h                               ; e2 f8
     10164    loop 06c69h                               ; e2 f8
    1016610165    mov ax, strict word 00061h                ; b8 61 00
    10167     call 016aeh                               ; e8 7d aa
     10166    call 016aeh                               ; e8 37 aa
    1016810167    xor ah, ah                                ; 30 e4
    1016910168    or word [bp-00ah], ax                     ; 09 46 f6
     
    1017210171    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    1017310172    mov ax, strict word 00063h                ; b8 63 00
    10174     call 016aeh                               ; e8 67 aa
     10173    call 016aeh                               ; e8 21 aa
    1017510174    mov byte [bp-004h], al                    ; 88 46 fc
    1017610175    mov byte [bp-006h], al                    ; 88 46 fa
    1017710176    mov ax, word [bp+014h]                    ; 8b 46 14
    1017810177    cmp ax, strict word 00009h                ; 3d 09 00
    10179     jnbe short 06cb7h                         ; 77 62
     10178    jnbe short 06cfdh                         ; 77 62
    1018010179    mov si, ax                                ; 89 c6
    1018110180    sal si, 1                                 ; d1 e6
     
    1018410183    mov cx, dx                                ; 89 d1
    1018510184    adc cx, strict byte 0ffffh                ; 83 d1 ff
    10186     jmp word [cs:si+06aebh]                   ; 2e ff a4 eb 6a
     10185    jmp word [cs:si+06b31h]                   ; 2e ff a4 31 6b
    1018710186    mov ax, strict word 00001h                ; b8 01 00
    1018810187    push ax                                   ; 50
     
    1019810197    xor bx, bx                                ; 31 db
    1019910198    xor cx, cx                                ; 31 c9
    10200     call 06734h                               ; e8 af fa
     10199    call 0677ah                               ; e8 af fa
    1020110200    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
    1020210201    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
    10203     jmp near 06e42h                           ; e9 b0 01
     10202    jmp near 06e88h                           ; e9 b0 01
    1020410203    mov ax, strict word 00002h                ; b8 02 00
    1020510204    push ax                                   ; 50
     
    1021510214    mov bx, 0fc00h                            ; bb 00 fc
    1021610215    mov cx, strict word 00009h                ; b9 09 00
    10217     call 06734h                               ; e8 84 fa
     10216    call 0677ah                               ; e8 84 fa
    1021810217    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
    10219     jmp short 06c8ah                          ; eb d3
     10218    jmp short 06cd0h                          ; eb d3
    1022010219    mov bx, 00da0h                            ; bb a0 0d
    1022110220    mov cx, ds                                ; 8c d9
    1022210221    mov ax, strict word 00004h                ; b8 04 00
    10223     call 01933h                               ; e8 71 ac
     10222    call 01933h                               ; e8 2b ac
    1022410223    push word [bp+014h]                       ; ff 76 14
    1022510224    push word [bp+020h]                       ; ff 76 20
     
    1022810227    mov ax, strict word 00004h                ; b8 04 00
    1022910228    push ax                                   ; 50
    10230     call 01976h                               ; e8 a3 ac
     10229    call 01976h                               ; e8 5d ac
    1023110230    add sp, strict byte 00008h                ; 83 c4 08
    1023210231    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    1025210251    xor bx, bx                                ; 31 db
    1025310252    mov cx, strict word 0000fh                ; b9 0f 00
    10254     call 06734h                               ; e8 2d fa
     10253    call 0677ah                               ; e8 2d fa
    1025510254    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
    10256     jmp near 06c8ah                           ; e9 7b ff
     10255    jmp near 06cd0h                           ; e9 7b ff
    1025710256    mov dx, strict word 00001h                ; ba 01 00
    1025810257    push dx                                   ; 52
     
    1026610265    xor bx, bx                                ; 31 db
    1026710266    mov cx, strict word 00010h                ; b9 10 00
    10268     call 06734h                               ; e8 0d fa
     10267    call 0677ah                               ; e8 0d fa
    1026910268    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
    10270     jmp near 06c8ah                           ; e9 5b ff
     10269    jmp near 06cd0h                           ; e9 5b ff
    1027110270    mov si, strict word 00003h                ; be 03 00
    1027210271    push si                                   ; 56
     
    1028010279    mov bx, ax                                ; 89 c3
    1028110280    mov ax, si                                ; 89 f0
    10282     call 06734h                               ; e8 ee f9
     10281    call 0677ah                               ; e8 ee f9
    1028310282    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
    10284     jmp near 06c8ah                           ; e9 3c ff
     10283    jmp near 06cd0h                           ; e9 3c ff
    1028510284    mov ax, strict word 00002h                ; b8 02 00
    1028610285    push ax                                   ; 50
     
    1029610295    xor bx, bx                                ; 31 db
    1029710296    mov cx, 0fec0h                            ; b9 c0 fe
    10298     call 06734h                               ; e8 c8 f9
     10297    call 0677ah                               ; e8 c8 f9
    1029910298    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
    10300     jmp near 06c8ah                           ; e9 16 ff
     10299    jmp near 06cd0h                           ; e9 16 ff
    1030110300    mov ax, strict word 00002h                ; b8 02 00
    1030210301    push ax                                   ; 50
     
    1031210311    xor bx, bx                                ; 31 db
    1031310312    mov cx, 0fee0h                            ; b9 e0 fe
    10314     call 06734h                               ; e8 a2 f9
     10313    call 0677ah                               ; e8 a2 f9
    1031510314    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    10316     jmp near 06c8ah                           ; e9 f0 fe
     10315    jmp near 06cd0h                           ; e9 f0 fe
    1031710316    mov ax, strict word 00002h                ; b8 02 00
    1031810317    push ax                                   ; 50
     
    1032610325    xor bx, bx                                ; 31 db
    1032710326    mov cx, strict word 0fffch                ; b9 fc ff
    10328     call 06734h                               ; e8 82 f9
     10327    call 0677ah                               ; e8 82 f9
    1032910328    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10330     jne short 06dbfh                          ; 75 07
     10329    jne short 06e05h                          ; 75 07
    1033110330    mov ax, word [bp-008h]                    ; 8b 46 f8
    1033210331    test ax, ax                               ; 85 c0
    10333     je short 06dcfh                           ; 74 10
     10332    je short 06e15h                           ; 74 10
    1033410333    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10335     jmp near 06c8ah                           ; e9 c3 fe
     10334    jmp near 06cd0h                           ; e9 c3 fe
    1033610335    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
    10337     jmp near 06c8ah                           ; e9 bb fe
     10336    jmp near 06cd0h                           ; e9 bb fe
    1033810337    mov word [bp+014h], ax                    ; 89 46 14
    1033910338    mov word [bp+016h], ax                    ; 89 46 16
    10340     jmp short 06e42h                          ; eb 6b
     10339    jmp short 06e88h                          ; eb 6b
    1034110340    mov ax, strict word 00002h                ; b8 02 00
    1034210341    push ax                                   ; 50
     
    1035010349    xor bx, bx                                ; 31 db
    1035110350    xor cx, cx                                ; 31 c9
    10352     call 06734h                               ; e8 46 f9
     10351    call 0677ah                               ; e8 46 f9
    1035310352    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10354     jne short 06dfbh                          ; 75 07
     10353    jne short 06e41h                          ; 75 07
    1035510354    mov ax, word [bp-008h]                    ; 8b 46 f8
    1035610355    test ax, ax                               ; 85 c0
    10357     je short 06e03h                           ; 74 08
     10356    je short 06e49h                           ; 74 08
    1035810357    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
    10359     jmp near 06c8ah                           ; e9 87 fe
     10358    jmp near 06cd0h                           ; e9 87 fe
    1036010359    mov word [bp+014h], ax                    ; 89 46 14
    1036110360    mov word [bp+016h], ax                    ; 89 46 16
    10362     jmp short 06e42h                          ; eb 37
     10361    jmp short 06e88h                          ; eb 37
    1036310362    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    10364     jne short 06e17h                          ; 75 06
     10363    jne short 06e5dh                          ; 75 06
    1036510364    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    10366     je short 06e42h                           ; 74 2b
     10365    je short 06e88h                           ; 74 2b
    1036710366    mov ax, strict word 00001h                ; b8 01 00
    1036810367    push ax                                   ; 50
     
    1038010379    xor bx, bx                                ; 31 db
    1038110380    xor cx, cx                                ; 31 c9
    10382     call 06734h                               ; e8 fa f8
     10381    call 0677ah                               ; e8 fa f8
    1038310382    xor ax, ax                                ; 31 c0
    1038410383    mov word [bp+014h], ax                    ; 89 46 14
     
    1038910388    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
    1039010389    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    10391     jmp near 06ce4h                           ; e9 87 fe
     10390    jmp near 06d2ah                           ; e9 87 fe
    1039210391    mov word [bp+028h], bx                    ; 89 5e 28
    1039310392    mov ax, strict word 00031h                ; b8 31 00
    10394     call 016aeh                               ; e8 48 a8
     10393    call 016aeh                               ; e8 02 a8
    1039510394    mov dh, al                                ; 88 c6
    1039610395    mov ax, strict word 00030h                ; b8 30 00
    10397     call 016aeh                               ; e8 40 a8
     10396    call 016aeh                               ; e8 fa a7
    1039810397    mov dl, al                                ; 88 c2
    1039910398    mov word [bp+01ch], dx                    ; 89 56 1c
    1040010399    cmp dx, 03c00h                            ; 81 fa 00 3c
    10401     jbe short 06e7eh                          ; 76 05
     10400    jbe short 06ec4h                          ; 76 05
    1040210401    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    1040310402    mov ax, strict word 00035h                ; b8 35 00
    10404     call 016aeh                               ; e8 2a a8
     10403    call 016aeh                               ; e8 e4 a7
    1040510404    mov dh, al                                ; 88 c6
    1040610405    mov ax, strict word 00034h                ; b8 34 00
    10407     call 016aeh                               ; e8 22 a8
     10406    call 016aeh                               ; e8 dc a7
    1040810407    mov dl, al                                ; 88 c2
    1040910408    mov word [bp+018h], dx                    ; 89 56 18
     
    1041110410    mov word [bp+020h], ax                    ; 89 46 20
    1041210411    mov word [bp+014h], dx                    ; 89 56 14
    10413     jmp near 06ce4h                           ; e9 47 fe
    10414 _inv_op_handler:                             ; 0xf6e9d LB 0x18f
     10412    jmp near 06d2ah                           ; e9 47 fe
     10413_inv_op_handler:                             ; 0xf6ee3 LB 0x18f
    1041510414    push bp                                   ; 55
    1041610415    mov bp, sp                                ; 89 e5
     
    1042110420    les bx, [bp+018h]                         ; c4 5e 18
    1042210421    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10423     jne short 06eb3h                          ; 75 06
     10422    jne short 06ef9h                          ; 75 06
    1042410423    inc word [bp+018h]                        ; ff 46 18
    10425     jmp near 07025h                           ; e9 72 01
     10424    jmp near 0706bh                           ; e9 72 01
    1042610425    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10427     je short 06ebdh                           ; 74 03
    10428     jmp near 07021h                           ; e9 64 01
     10426    je short 06f03h                           ; 74 03
     10427    jmp near 07067h                           ; e9 64 01
    1042910428    mov si, 00800h                            ; be 00 08
    1043010429    xor ax, ax                                ; 31 c0
     
    1045510454    sal ax, 1                                 ; d1 e0
    1045610455    rcl dx, 1                                 ; d1 d2
    10457     loop 06f0eh                               ; e2 fa
     10456    loop 06f54h                               ; e2 fa
    1045810457    cmp bx, dx                                ; 39 d3
    10459     jne short 06f1ch                          ; 75 04
     10458    jne short 06f62h                          ; 75 04
    1046010459    cmp di, ax                                ; 39 c7
    10461     je short 06f21h                           ; 74 05
     10460    je short 06f67h                           ; 74 05
    1046210461    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
    1046310462    mov es, [bp-008h]                         ; 8e 46 f8
     
    1047010469    sal ax, 1                                 ; d1 e0
    1047110470    rcl dx, 1                                 ; d1 d2
    10472     loop 06f37h                               ; e2 fa
     10471    loop 06f7dh                               ; e2 fa
    1047310472    cmp bx, dx                                ; 39 d3
    10474     jne short 06f45h                          ; 75 04
     10473    jne short 06f8bh                          ; 75 04
    1047510474    cmp di, ax                                ; 39 c7
    10476     je short 06f49h                           ; 74 04
     10475    je short 06f8fh                           ; 74 04
    1047710476    or byte [bp-006h], 002h                   ; 80 4e fa 02
    1047810477    xor ax, ax                                ; 31 c0
     
    1052410523    mov ax, strict word 00008h                ; b8 08 00
    1052510524    test cx, strict word 00001h               ; f7 c1 01 00
    10526     je near 06fdeh                            ; 0f 84 02 00
     10525    je near 07024h                            ; 0f 84 02 00
    1052710526    mov es, ax                                ; 8e c0
    1052810527    test cx, strict word 00002h               ; f7 c1 02 00
    10529     je near 07006h                            ; 0f 84 20 00
     10528    je near 0704ch                            ; 0f 84 20 00
    1053010529    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1053110530    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1054410543    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1054510544    iret                                      ; cf
    10546     jmp short 07025h                          ; eb 04
     10545    jmp short 0706bh                          ; eb 04
    1054710546    sti                                       ; fb
    1054810547    hlt                                       ; f4
    10549     jmp short 07022h                          ; eb fd
     10548    jmp short 07068h                          ; eb fd
    1055010549    lea sp, [bp-004h]                         ; 8d 66 fc
    1055110550    pop di                                    ; 5f
     
    1055310552    pop bp                                    ; 5d
    1055410553    retn                                      ; c3
    10555 init_rtc_:                                   ; 0xf702c LB 0x28
     10554init_rtc_:                                   ; 0xf7072 LB 0x28
    1055610555    push bp                                   ; 55
    1055710556    mov bp, sp                                ; 89 e5
     
    1055910558    mov dx, strict word 00026h                ; ba 26 00
    1056010559    mov ax, strict word 0000ah                ; b8 0a 00
    10561     call 016c9h                               ; e8 90 a6
     10560    call 016c9h                               ; e8 4a a6
    1056210561    mov dx, strict word 00002h                ; ba 02 00
    1056310562    mov ax, strict word 0000bh                ; b8 0b 00
    10564     call 016c9h                               ; e8 87 a6
     10563    call 016c9h                               ; e8 41 a6
    1056510564    mov ax, strict word 0000ch                ; b8 0c 00
    10566     call 016aeh                               ; e8 66 a6
     10565    call 016aeh                               ; e8 20 a6
    1056710566    mov ax, strict word 0000dh                ; b8 0d 00
    10568     call 016aeh                               ; e8 60 a6
     10567    call 016aeh                               ; e8 1a a6
    1056910568    lea sp, [bp-002h]                         ; 8d 66 fe
    1057010569    pop dx                                    ; 5a
    1057110570    pop bp                                    ; 5d
    1057210571    retn                                      ; c3
    10573 rtc_updating_:                               ; 0xf7054 LB 0x21
     10572rtc_updating_:                               ; 0xf709a LB 0x21
    1057410573    push bp                                   ; 55
    1057510574    mov bp, sp                                ; 89 e5
     
    1057710576    mov dx, 061a8h                            ; ba a8 61
    1057810577    dec dx                                    ; 4a
    10579     je short 0706ch                           ; 74 0e
     10578    je short 070b2h                           ; 74 0e
    1058010579    mov ax, strict word 0000ah                ; b8 0a 00
    10581     call 016aeh                               ; e8 4a a6
     10580    call 016aeh                               ; e8 04 a6
    1058210581    test AL, strict byte 080h                 ; a8 80
    10583     jne short 0705bh                          ; 75 f3
     10582    jne short 070a1h                          ; 75 f3
    1058410583    xor ax, ax                                ; 31 c0
    10585     jmp short 0706fh                          ; eb 03
     10584    jmp short 070b5h                          ; eb 03
    1058610585    mov ax, strict word 00001h                ; b8 01 00
    1058710586    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1058910588    pop bp                                    ; 5d
    1059010589    retn                                      ; c3
    10591 _int70_function:                             ; 0xf7075 LB 0xbf
     10590_int70_function:                             ; 0xf70bb LB 0xbf
    1059210591    push bp                                   ; 55
    1059310592    mov bp, sp                                ; 89 e5
     
    1059510594    push ax                                   ; 50
    1059610595    mov ax, strict word 0000bh                ; b8 0b 00
    10597     call 016aeh                               ; e8 2e a6
     10596    call 016aeh                               ; e8 e8 a5
    1059810597    mov bl, al                                ; 88 c3
    1059910598    mov byte [bp-004h], al                    ; 88 46 fc
    1060010599    mov ax, strict word 0000ch                ; b8 0c 00
    10601     call 016aeh                               ; e8 23 a6
     10600    call 016aeh                               ; e8 dd a5
    1060210601    mov dl, al                                ; 88 c2
    1060310602    test bl, 060h                             ; f6 c3 60
    10604     jne short 07095h                          ; 75 03
    10605     jmp near 0711bh                           ; e9 86 00
     10603    jne short 070dbh                          ; 75 03
     10604    jmp near 07161h                           ; e9 86 00
    1060610605    test AL, strict byte 020h                 ; a8 20
    10607     je short 0709dh                           ; 74 04
     10606    je short 070e3h                           ; 74 04
    1060810607    sti                                       ; fb
    1060910608    int 04ah                                  ; cd 4a
    1061010609    cli                                       ; fa
    1061110610    test dl, 040h                             ; f6 c2 40
    10612     je short 07105h                           ; 74 63
     10611    je short 0714bh                           ; 74 63
    1061310612    mov dx, 000a0h                            ; ba a0 00
    1061410613    mov ax, strict word 00040h                ; b8 40 00
    10615     call 01652h                               ; e8 a7 a5
     10614    call 01652h                               ; e8 61 a5
    1061610615    test al, al                               ; 84 c0
    10617     je short 0711bh                           ; 74 6c
     10616    je short 07161h                           ; 74 6c
    1061810617    mov dx, 0009ch                            ; ba 9c 00
    1061910618    mov ax, strict word 00040h                ; b8 40 00
    10620     call 0168ah                               ; e8 d2 a5
     10619    call 0168ah                               ; e8 8c a5
    1062110620    test dx, dx                               ; 85 d2
    10622     jne short 07107h                          ; 75 4b
     10621    jne short 0714dh                          ; 75 4b
    1062310622    cmp ax, 003d1h                            ; 3d d1 03
    10624     jnc short 07107h                          ; 73 46
     10623    jnc short 0714dh                          ; 73 46
    1062510624    mov dx, 00098h                            ; ba 98 00
    1062610625    mov ax, strict word 00040h                ; b8 40 00
    10627     call 0166eh                               ; e8 a4 a5
     10626    call 0166eh                               ; e8 5e a5
    1062810627    mov si, ax                                ; 89 c6
    1062910628    mov dx, 0009ah                            ; ba 9a 00
    1063010629    mov ax, strict word 00040h                ; b8 40 00
    10631     call 0166eh                               ; e8 99 a5
     10630    call 0166eh                               ; e8 53 a5
    1063210631    mov cx, ax                                ; 89 c1
    1063310632    xor bx, bx                                ; 31 db
    1063410633    mov dx, 000a0h                            ; ba a0 00
    1063510634    mov ax, strict word 00040h                ; b8 40 00
    10636     call 01660h                               ; e8 7e a5
     10635    call 01660h                               ; e8 38 a5
    1063710636    mov dl, byte [bp-004h]                    ; 8a 56 fc
    1063810637    and dl, 037h                              ; 80 e2 37
    1063910638    xor dh, dh                                ; 30 f6
    1064010639    mov ax, strict word 0000bh                ; b8 0b 00
    10641     call 016c9h                               ; e8 d9 a5
     10640    call 016c9h                               ; e8 93 a5
    1064210641    mov dx, cx                                ; 89 ca
    1064310642    mov ax, si                                ; 89 f0
    10644     call 01652h                               ; e8 5b a5
     10643    call 01652h                               ; e8 15 a5
    1064510644    mov bl, al                                ; 88 c3
    1064610645    or bl, 080h                               ; 80 cb 80
     
    1064810647    mov dx, cx                                ; 89 ca
    1064910648    mov ax, si                                ; 89 f0
    10650     call 01660h                               ; e8 5b a5
    10651     jmp short 0711bh                          ; eb 14
     10649    call 01660h                               ; e8 15 a5
     10650    jmp short 07161h                          ; eb 14
    1065210651    mov bx, ax                                ; 89 c3
    1065310652    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1065610655    mov dx, 0009ch                            ; ba 9c 00
    1065710656    mov ax, strict word 00040h                ; b8 40 00
    10658     call 0169ch                               ; e8 81 a5
    10659     call 0e030h                               ; e8 12 6f
     10657    call 0169ch                               ; e8 3b a5
     10658    call 0e030h                               ; e8 cc 6e
    1066010659    lea sp, [bp-002h]                         ; 8d 66 fe
    1066110660    pop si                                    ; 5e
    1066210661    pop bp                                    ; 5d
    1066310662    retn                                      ; c3
    10664     dec dx                                    ; 4a
    10665     jno short 07198h                          ; 71 71
    10666     jno short 070bfh                          ; 71 96
    10667     jno short 070fdh                          ; 71 d2
    10668     jno short 07151h                          ; 71 24
    10669     jc short 0718ah                           ; 72 5b
    10670     jc short 070d3h                           ; 72 a2
    10671     jc short 07130h                           ; 72 fd
    10672     db  072h
    10673 _int1a_function:                             ; 0xf7134 LB 0x1d9
     10663    nop                                       ; 90
     10664    jno short 07124h                          ; 71 b7
     10665    jno short 0714bh                          ; 71 dc
     10666    jno short 07189h                          ; 71 18
     10667    jc short 071ddh                           ; 72 6a
     10668    jc short 07116h                           ; 72 a1
     10669    jc short 0715fh                           ; 72 e8
     10670    jc short 071bch                           ; 72 43
     10671    db  073h
     10672_int1a_function:                             ; 0xf717a LB 0x1d9
    1067410673    push bp                                   ; 55
    1067510674    mov bp, sp                                ; 89 e5
     
    1067710676    mov al, byte [bp+013h]                    ; 8a 46 13
    1067810677    cmp AL, strict byte 007h                  ; 3c 07
    10679     jnbe short 0719dh                         ; 77 5e
     10678    jnbe short 071e3h                         ; 77 5e
    1068010679    mov bl, al                                ; 88 c3
    1068110680    xor bh, bh                                ; 30 ff
    1068210681    sal bx, 1                                 ; d1 e3
    10683     jmp word [cs:bx+07124h]                   ; 2e ff a7 24 71
     10682    jmp word [cs:bx+0716ah]                   ; 2e ff a7 6a 71
    1068410683    cli                                       ; fa
    1068510684    mov bx, 0046eh                            ; bb 6e 04
     
    1069610695    mov byte [es:bx], 000h                    ; 26 c6 07 00
    1069710696    sti                                       ; fb
    10698     jmp short 0719dh                          ; eb 2c
     10697    jmp short 071e3h                          ; eb 2c
    1069910698    cli                                       ; fa
    1070010699    mov bx, 0046eh                            ; bb 6e 04
     
    1071010709    sti                                       ; fb
    1071110710    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10712     jmp short 0719dh                          ; eb 07
    10713     call 07054h                               ; e8 bb fe
     10711    jmp short 071e3h                          ; eb 07
     10712    call 0709ah                               ; e8 bb fe
    1071410713    test ax, ax                               ; 85 c0
    10715     je short 071a0h                           ; 74 03
    10716     jmp near 071ceh                           ; e9 2e 00
     10714    je short 071e6h                           ; 74 03
     10715    jmp near 07214h                           ; e9 2e 00
    1071710716    xor ax, ax                                ; 31 c0
    10718     call 016aeh                               ; e8 09 a5
     10717    call 016aeh                               ; e8 c3 a4
    1071910718    mov byte [bp+00fh], al                    ; 88 46 0f
    1072010719    mov ax, strict word 00002h                ; b8 02 00
    10721     call 016aeh                               ; e8 00 a5
     10720    call 016aeh                               ; e8 ba a4
    1072210721    mov byte [bp+010h], al                    ; 88 46 10
    1072310722    mov ax, strict word 00004h                ; b8 04 00
    10724     call 016aeh                               ; e8 f7 a4
     10723    call 016aeh                               ; e8 b1 a4
    1072510724    mov dl, al                                ; 88 c2
    1072610725    mov byte [bp+011h], al                    ; 88 46 11
    1072710726    mov ax, strict word 0000bh                ; b8 0b 00
    10728     call 016aeh                               ; e8 ec a4
     10727    call 016aeh                               ; e8 a6 a4
    1072910728    and AL, strict byte 001h                  ; 24 01
    1073010729    mov byte [bp+00eh], al                    ; 88 46 0e
     
    1073410733    pop bp                                    ; 5d
    1073510734    retn                                      ; c3
    10736     call 07054h                               ; e8 7f fe
     10735    call 0709ah                               ; e8 7f fe
    1073710736    test ax, ax                               ; 85 c0
    10738     je short 071dch                           ; 74 03
    10739     call 0702ch                               ; e8 50 fe
     10737    je short 07222h                           ; 74 03
     10738    call 07072h                               ; e8 50 fe
    1074010739    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1074110740    xor dh, dh                                ; 30 f6
    1074210741    xor ax, ax                                ; 31 c0
    10743     call 016c9h                               ; e8 e3 a4
     10742    call 016c9h                               ; e8 9d a4
    1074410743    mov dl, byte [bp+010h]                    ; 8a 56 10
    1074510744    xor dh, dh                                ; 30 f6
    1074610745    mov ax, strict word 00002h                ; b8 02 00
    10747     call 016c9h                               ; e8 d8 a4
     10746    call 016c9h                               ; e8 92 a4
    1074810747    mov dl, byte [bp+011h]                    ; 8a 56 11
    1074910748    xor dh, dh                                ; 30 f6
    1075010749    mov ax, strict word 00004h                ; b8 04 00
    10751     call 016c9h                               ; e8 cd a4
     10750    call 016c9h                               ; e8 87 a4
    1075210751    mov ax, strict word 0000bh                ; b8 0b 00
    10753     call 016aeh                               ; e8 ac a4
     10752    call 016aeh                               ; e8 66 a4
    1075410753    mov bl, al                                ; 88 c3
    1075510754    and bl, 060h                              ; 80 e3 60
     
    1076110760    xor dh, dh                                ; 30 f6
    1076210761    mov ax, strict word 0000bh                ; b8 0b 00
    10763     call 016c9h                               ; e8 ae a4
     10762    call 016c9h                               ; e8 68 a4
    1076410763    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1076510764    mov byte [bp+012h], bl                    ; 88 5e 12
    10766     jmp short 071ceh                          ; eb aa
     10765    jmp short 07214h                          ; eb aa
    1076710766    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10768     call 07054h                               ; e8 29 fe
     10767    call 0709ah                               ; e8 29 fe
    1076910768    test ax, ax                               ; 85 c0
    10770     je short 07231h                           ; 74 02
    10771     jmp short 071ceh                          ; eb 9d
     10769    je short 07277h                           ; 74 02
     10770    jmp short 07214h                          ; eb 9d
    1077210771    mov ax, strict word 00009h                ; b8 09 00
    10773     call 016aeh                               ; e8 77 a4
     10772    call 016aeh                               ; e8 31 a4
    1077410773    mov byte [bp+010h], al                    ; 88 46 10
    1077510774    mov ax, strict word 00008h                ; b8 08 00
    10776     call 016aeh                               ; e8 6e a4
     10775    call 016aeh                               ; e8 28 a4
    1077710776    mov byte [bp+00fh], al                    ; 88 46 0f
    1077810777    mov ax, strict word 00007h                ; b8 07 00
    10779     call 016aeh                               ; e8 65 a4
     10778    call 016aeh                               ; e8 1f a4
    1078010779    mov byte [bp+00eh], al                    ; 88 46 0e
    1078110780    mov ax, strict word 00032h                ; b8 32 00
    10782     call 016aeh                               ; e8 5c a4
     10781    call 016aeh                               ; e8 16 a4
    1078310782    mov byte [bp+011h], al                    ; 88 46 11
    1078410783    mov byte [bp+012h], al                    ; 88 46 12
    10785     jmp near 071ceh                           ; e9 73 ff
    10786     call 07054h                               ; e8 f6 fd
     10784    jmp near 07214h                           ; e9 73 ff
     10785    call 0709ah                               ; e8 f6 fd
    1078710786    test ax, ax                               ; 85 c0
    10788     je short 07268h                           ; 74 06
    10789     call 0702ch                               ; e8 c7 fd
    10790     jmp near 071ceh                           ; e9 66 ff
     10787    je short 072aeh                           ; 74 06
     10788    call 07072h                               ; e8 c7 fd
     10789    jmp near 07214h                           ; e9 66 ff
    1079110790    mov dl, byte [bp+010h]                    ; 8a 56 10
    1079210791    xor dh, dh                                ; 30 f6
    1079310792    mov ax, strict word 00009h                ; b8 09 00
    10794     call 016c9h                               ; e8 56 a4
     10793    call 016c9h                               ; e8 10 a4
    1079510794    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1079610795    xor dh, dh                                ; 30 f6
    1079710796    mov ax, strict word 00008h                ; b8 08 00
    10798     call 016c9h                               ; e8 4b a4
     10797    call 016c9h                               ; e8 05 a4
    1079910798    mov dl, byte [bp+00eh]                    ; 8a 56 0e
    1080010799    xor dh, dh                                ; 30 f6
    1080110800    mov ax, strict word 00007h                ; b8 07 00
    10802     call 016c9h                               ; e8 40 a4
     10801    call 016c9h                               ; e8 fa a3
    1080310802    mov dl, byte [bp+011h]                    ; 8a 56 11
    1080410803    xor dh, dh                                ; 30 f6
    1080510804    mov ax, strict word 00032h                ; b8 32 00
    10806     call 016c9h                               ; e8 35 a4
     10805    call 016c9h                               ; e8 ef a3
    1080710806    mov ax, strict word 0000bh                ; b8 0b 00
    10808     call 016aeh                               ; e8 14 a4
     10807    call 016aeh                               ; e8 ce a3
    1080910808    mov bl, al                                ; 88 c3
    1081010809    and bl, 07fh                              ; 80 e3 7f
    10811     jmp near 07211h                           ; e9 6f ff
     10810    jmp near 07257h                           ; e9 6f ff
    1081210811    mov ax, strict word 0000bh                ; b8 0b 00
    10813     call 016aeh                               ; e8 06 a4
     10812    call 016aeh                               ; e8 c0 a3
    1081410813    mov bl, al                                ; 88 c3
    1081510814    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1081610815    test AL, strict byte 020h                 ; a8 20
    10817     je short 072b6h                           ; 74 03
    10818     jmp near 071ceh                           ; e9 18 ff
    10819     call 07054h                               ; e8 9b fd
     10816    je short 072fch                           ; 74 03
     10817    jmp near 07214h                           ; e9 18 ff
     10818    call 0709ah                               ; e8 9b fd
    1082010819    test ax, ax                               ; 85 c0
    10821     je short 072c0h                           ; 74 03
    10822     call 0702ch                               ; e8 6c fd
     10820    je short 07306h                           ; 74 03
     10821    call 07072h                               ; e8 6c fd
    1082310822    mov dl, byte [bp+00fh]                    ; 8a 56 0f
    1082410823    xor dh, dh                                ; 30 f6
    1082510824    mov ax, strict word 00001h                ; b8 01 00
    10826     call 016c9h                               ; e8 fe a3
     10825    call 016c9h                               ; e8 b8 a3
    1082710826    mov dl, byte [bp+010h]                    ; 8a 56 10
    1082810827    xor dh, dh                                ; 30 f6
    1082910828    mov ax, strict word 00003h                ; b8 03 00
    10830     call 016c9h                               ; e8 f3 a3
     10829    call 016c9h                               ; e8 ad a3
    1083110830    mov dl, byte [bp+011h]                    ; 8a 56 11
    1083210831    xor dh, dh                                ; 30 f6
    1083310832    mov ax, strict word 00005h                ; b8 05 00
    10834     call 016c9h                               ; e8 e8 a3
     10833    call 016c9h                               ; e8 a2 a3
    1083510834    mov dx, 000a1h                            ; ba a1 00
    1083610835    in AL, DX                                 ; ec
     
    1084410843    xor dh, dh                                ; 30 f6
    1084510844    mov ax, strict word 0000bh                ; b8 0b 00
    10846     call 016c9h                               ; e8 cf a3
    10847     jmp near 071ceh                           ; e9 d1 fe
     10845    call 016c9h                               ; e8 89 a3
     10846    jmp near 07214h                           ; e9 d1 fe
    1084810847    mov ax, strict word 0000bh                ; b8 0b 00
    10849     call 016aeh                               ; e8 ab a3
     10848    call 016aeh                               ; e8 65 a3
    1085010849    mov bl, al                                ; 88 c3
    1085110850    mov dl, al                                ; 88 c2
    1085210851    and dl, 057h                              ; 80 e2 57
    10853     jmp near 07213h                           ; e9 06 ff
    10854 send_to_mouse_ctrl_:                         ; 0xf730d LB 0x38
     10852    jmp near 07259h                           ; e9 06 ff
     10853send_to_mouse_ctrl_:                         ; 0xf7353 LB 0x38
    1085510854    push bp                                   ; 55
    1085610855    mov bp, sp                                ; 89 e5
     
    1086310862    ; sub ah, ah                                ; 2a e4
    1086410863    test AL, strict byte 002h                 ; a8 02
    10865     je short 07330h                           ; 74 12
     10864    je short 07376h                           ; 74 12
    1086610865    mov ax, 008eeh                            ; b8 ee 08
    1086710866    push ax                                   ; 50
     
    1087010869    mov ax, strict word 00007h                ; b8 07 00
    1087110870    push ax                                   ; 50
    10872     call 01976h                               ; e8 49 a6
     10871    call 01976h                               ; e8 03 a6
    1087310872    add sp, strict byte 00006h                ; 83 c4 06
    1087410873    mov AL, strict byte 0d4h                  ; b0 d4
     
    1088410883    pop bp                                    ; 5d
    1088510884    retn                                      ; c3
    10886 get_mouse_data_:                             ; 0xf7345 LB 0x5d
     10885get_mouse_data_:                             ; 0xf738b LB 0x5d
    1088710886    push bp                                   ; 55
    1088810887    mov bp, sp                                ; 89 e5
     
    1089910898    and ax, strict word 00021h                ; 25 21 00
    1090010899    cmp ax, strict word 00021h                ; 3d 21 00
    10901     je short 07388h                           ; 74 28
     10900    je short 073ceh                           ; 74 28
    1090210901    test cx, cx                               ; 85 c9
    10903     je short 07388h                           ; 74 24
     10902    je short 073ceh                           ; 74 24
    1090410903    mov dx, strict word 00061h                ; ba 61 00
    1090510904    in AL, DX                                 ; ec
     
    1091810917    xor ah, ah                                ; 30 e4
    1091910918    cmp dx, ax                                ; 39 c2
    10920     je short 0736fh                           ; 74 ea
     10919    je short 073b5h                           ; 74 ea
    1092110920    dec cx                                    ; 49
    10922     jmp short 07352h                          ; eb ca
     10921    jmp short 07398h                          ; eb ca
    1092310922    test cx, cx                               ; 85 c9
    10924     jne short 07390h                          ; 75 04
     10923    jne short 073d6h                          ; 75 04
    1092510924    mov AL, strict byte 001h                  ; b0 01
    10926     jmp short 0739bh                          ; eb 0b
     10925    jmp short 073e1h                          ; eb 0b
    1092710926    mov dx, strict word 00060h                ; ba 60 00
    1092810927    in AL, DX                                 ; ec
     
    1093610935    pop bp                                    ; 5d
    1093710936    retn                                      ; c3
    10938 set_kbd_command_byte_:                       ; 0xf73a2 LB 0x36
     10937set_kbd_command_byte_:                       ; 0xf73e8 LB 0x36
    1093910938    push bp                                   ; 55
    1094010939    mov bp, sp                                ; 89 e5
     
    1094710946    ; sub ah, ah                                ; 2a e4
    1094810947    test AL, strict byte 002h                 ; a8 02
    10949     je short 073c5h                           ; 74 12
     10948    je short 0740bh                           ; 74 12
    1095010949    mov ax, 008f8h                            ; b8 f8 08
    1095110950    push ax                                   ; 50
     
    1095410953    mov ax, strict word 00007h                ; b8 07 00
    1095510954    push ax                                   ; 50
    10956     call 01976h                               ; e8 b4 a5
     10955    call 01976h                               ; e8 6e a5
    1095710956    add sp, strict byte 00006h                ; 83 c4 06
    1095810957    mov AL, strict byte 060h                  ; b0 60
     
    1096710966    pop bp                                    ; 5d
    1096810967    retn                                      ; c3
    10969 _int74_function:                             ; 0xf73d8 LB 0xd2
     10968_int74_function:                             ; 0xf741e LB 0xd2
    1097010969    push bp                                   ; 55
    1097110970    mov bp, sp                                ; 89 e5
     
    1097310972    mov dx, strict word 0000eh                ; ba 0e 00
    1097410973    mov ax, strict word 00040h                ; b8 40 00
    10975     call 0166eh                               ; e8 87 a2
     10974    call 0166eh                               ; e8 41 a2
    1097610975    mov cx, ax                                ; 89 c1
    1097710976    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1098210981    and AL, strict byte 021h                  ; 24 21
    1098310982    cmp AL, strict byte 021h                  ; 3c 21
    10984     jne short 0741ch                          ; 75 22
     10983    jne short 07462h                          ; 75 22
    1098510984    mov dx, strict word 00060h                ; ba 60 00
    1098610985    in AL, DX                                 ; ec
     
    1099010989    mov dx, strict word 00026h                ; ba 26 00
    1099110990    mov ax, cx                                ; 89 c8
    10992     call 01652h                               ; e8 48 a2
     10991    call 01652h                               ; e8 02 a2
    1099310992    mov byte [bp-002h], al                    ; 88 46 fe
    1099410993    mov dx, strict word 00027h                ; ba 27 00
    1099510994    mov ax, cx                                ; 89 c8
    10996     call 01652h                               ; e8 3d a2
     10995    call 01652h                               ; e8 f7 a1
    1099710996    mov byte [bp-006h], al                    ; 88 46 fa
    1099810997    test AL, strict byte 080h                 ; a8 80
    10999     jne short 0741fh                          ; 75 03
    11000     jmp near 07496h                           ; e9 77 00
     10998    jne short 07465h                          ; 75 03
     10999    jmp near 074dch                           ; e9 77 00
    1100111000    mov al, byte [bp-006h]                    ; 8a 46 fa
    1100211001    and AL, strict byte 007h                  ; 24 07
     
    1101211011    add dx, strict byte 00028h                ; 83 c2 28
    1101311012    mov ax, cx                                ; 89 c8
    11014     call 01660h                               ; e8 1e a2
     11013    call 01660h                               ; e8 d8 a1
    1101511014    mov al, byte [bp-008h]                    ; 8a 46 f8
    1101611015    cmp al, byte [bp-004h]                    ; 3a 46 fc
    11017     jc short 07486h                           ; 72 3c
     11016    jc short 074cch                           ; 72 3c
    1101811017    mov dx, strict word 00028h                ; ba 28 00
    1101911018    mov ax, cx                                ; 89 c8
    11020     call 01652h                               ; e8 00 a2
     11019    call 01652h                               ; e8 ba a1
    1102111020    xor ah, ah                                ; 30 e4
    1102211021    mov word [bp+00ch], ax                    ; 89 46 0c
    1102311022    mov dx, strict word 00029h                ; ba 29 00
    1102411023    mov ax, cx                                ; 89 c8
    11025     call 01652h                               ; e8 f3 a1
     11024    call 01652h                               ; e8 ad a1
    1102611025    xor ah, ah                                ; 30 e4
    1102711026    mov word [bp+00ah], ax                    ; 89 46 0a
    1102811027    mov dx, strict word 0002ah                ; ba 2a 00
    1102911028    mov ax, cx                                ; 89 c8
    11030     call 01652h                               ; e8 e6 a1
     11029    call 01652h                               ; e8 a0 a1
    1103111030    xor ah, ah                                ; 30 e4
    1103211031    mov word [bp+008h], ax                    ; 89 46 08
     
    1103511034    mov byte [bp-002h], ah                    ; 88 66 fe
    1103611035    test byte [bp-006h], 080h                 ; f6 46 fa 80
    11037     je short 07489h                           ; 74 0a
     11036    je short 074cfh                           ; 74 0a
    1103811037    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    11039     jmp short 07489h                          ; eb 03
     11038    jmp short 074cfh                          ; eb 03
    1104011039    inc byte [bp-002h]                        ; fe 46 fe
    1104111040    mov bl, byte [bp-002h]                    ; 8a 5e fe
     
    1104311042    mov dx, strict word 00026h                ; ba 26 00
    1104411043    mov ax, cx                                ; 89 c8
    11045     call 01660h                               ; e8 ca a1
     11044    call 01660h                               ; e8 84 a1
    1104611045    mov sp, bp                                ; 89 ec
    1104711046    pop bp                                    ; 5d
    1104811047    retn                                      ; c3
    11049     in AL, DX                                 ; ec
    11050     je short 07505h                           ; 74 68
    11051     jne short 07487h                          ; 75 e8
    11052     jne short 0751eh                          ; 75 7d
    11053     jbe short 07492h                          ; 76 ef
    11054     jbe short 074d8h                          ; 76 33
    11055     jne short 074beh                          ; 75 17
    11056     jnbe short 0748dh                         ; 77 e4
    11057     db  077h
    11058 _int15_function_mouse:                       ; 0xf74aa LB 0x3a0
     11048    xor dh, byte [di-052h]                    ; 32 75 ae
     11049    jne short 07513h                          ; 75 2e
     11050    jbe short 074aah                          ; 76 c3
     11051    jbe short 0751eh                          ; 76 35
     11052    jnbe short 07564h                         ; 77 79
     11053    jne short 0754ah                          ; 75 5d
     11054    jnbe short 07519h                         ; 77 2a
     11055    db  078h
     11056_int15_function_mouse:                       ; 0xf74f0 LB 0x3a0
    1105911057    push bp                                   ; 55
    1106011058    mov bp, sp                                ; 89 e5
     
    1106311061    mov dx, strict word 0000eh                ; ba 0e 00
    1106411062    mov ax, strict word 00040h                ; b8 40 00
    11065     call 0166eh                               ; e8 b4 a1
     11063    call 0166eh                               ; e8 6e a1
    1106611064    mov cx, ax                                ; 89 c1
    1106711065    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    11068     jbe short 074cdh                          ; 76 0b
     11066    jbe short 07513h                          ; 76 0b
    1106911067    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1107011068    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11071     jmp near 07844h                           ; e9 77 03
     11069    jmp near 0788ah                           ; e9 77 03
    1107211070    mov ax, strict word 00065h                ; b8 65 00
    11073     call 073a2h                               ; e8 cf fe
     11071    call 073e8h                               ; e8 cf fe
    1107411072    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1107511073    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1107611074    mov bl, byte [bp+012h]                    ; 8a 5e 12
    1107711075    cmp bl, 007h                              ; 80 fb 07
    11078     jnbe short 07541h                         ; 77 5e
     11076    jnbe short 07587h                         ; 77 5e
    1107911077    xor bh, bh                                ; 30 ff
    1108011078    sal bx, 1                                 ; d1 e3
    11081     jmp word [cs:bx+0749ah]                   ; 2e ff a7 9a 74
     11079    jmp word [cs:bx+074e0h]                   ; 2e ff a7 e0 74
    1108211080    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    11083     jnbe short 07544h                         ; 77 52
     11081    jnbe short 0758ah                         ; 77 52
    1108411082    mov dx, strict word 00027h                ; ba 27 00
    1108511083    mov ax, cx                                ; 89 c8
    11086     call 01652h                               ; e8 58 a1
     11084    call 01652h                               ; e8 12 a1
    1108711085    test AL, strict byte 080h                 ; a8 80
    11088     jne short 07509h                          ; 75 0b
     11086    jne short 0754fh                          ; 75 0b
    1108911087    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109011088    mov byte [bp+013h], 005h                  ; c6 46 13 05
    11091     jmp near 0783eh                           ; e9 35 03
     11089    jmp near 07884h                           ; e9 35 03
    1109211090    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    11093     jne short 07513h                          ; 75 04
     11091    jne short 07559h                          ; 75 04
    1109411092    mov AL, strict byte 0f5h                  ; b0 f5
    11095     jmp short 07515h                          ; eb 02
     11093    jmp short 0755bh                          ; eb 02
    1109611094    mov AL, strict byte 0f4h                  ; b0 f4
    1109711095    xor ah, ah                                ; 30 e4
    11098     call 0730dh                               ; e8 f3 fd
     11096    call 07353h                               ; e8 f3 fd
    1109911097    test al, al                               ; 84 c0
    11100     jne short 07547h                          ; 75 29
     11098    jne short 0758dh                          ; 75 29
    1110111099    mov dx, ss                                ; 8c d2
    1110211100    lea ax, [bp-006h]                         ; 8d 46 fa
    11103     call 07345h                               ; e8 1f fe
     11101    call 0738bh                               ; e8 1f fe
    1110411102    test al, al                               ; 84 c0
    11105     je short 07530h                           ; 74 06
     11103    je short 07576h                           ; 74 06
    1110611104    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11107     jne short 07547h                          ; 75 17
    11108     jmp near 0783eh                           ; e9 0b 03
     11105    jne short 0758dh                          ; 75 17
     11106    jmp near 07884h                           ; e9 0b 03
    1110911107    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1111011108    cmp AL, strict byte 001h                  ; 3c 01
    11111     jc short 0753eh                           ; 72 04
     11109    jc short 07584h                           ; 72 04
    1111211110    cmp AL, strict byte 008h                  ; 3c 08
    11113     jbe short 0754ah                          ; 76 0c
    11114     jmp near 076e5h                           ; e9 a4 01
    11115     jmp near 07828h                           ; e9 e4 02
    11116     jmp near 07836h                           ; e9 ef 02
    11117     jmp near 077bch                           ; e9 72 02
     11111    jbe short 07590h                          ; 76 0c
     11112    jmp near 0772bh                           ; e9 a4 01
     11113    jmp near 0786eh                           ; e9 e4 02
     11114    jmp near 0787ch                           ; e9 ef 02
     11115    jmp near 07802h                           ; e9 72 02
    1111811116    mov dx, strict word 00027h                ; ba 27 00
    1111911117    mov ax, cx                                ; 89 c8
    11120     call 01652h                               ; e8 00 a1
     11118    call 01652h                               ; e8 ba a0
    1112111119    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1112211120    db  0feh, 0cch
     
    1112811126    mov dx, strict word 00027h                ; ba 27 00
    1112911127    mov ax, cx                                ; 89 c8
    11130     call 01660h                               ; e8 f8 a0
     11128    call 01660h                               ; e8 b2 a0
    1113111129    mov dx, strict word 00026h                ; ba 26 00
    1113211130    mov ax, cx                                ; 89 c8
    11133     call 01652h                               ; e8 e2 a0
     11131    call 01652h                               ; e8 9c a0
    1113411132    mov bl, al                                ; 88 c3
    1113511133    and bl, 0f8h                              ; 80 e3 f8
     
    1113711135    mov dx, strict word 00026h                ; ba 26 00
    1113811136    mov ax, cx                                ; 89 c8
    11139     call 01660h                               ; e8 e1 a0
     11137    call 01660h                               ; e8 9b a0
    1114011138    mov ax, 000ffh                            ; b8 ff 00
    11141     call 0730dh                               ; e8 88 fd
     11139    call 07353h                               ; e8 88 fd
    1114211140    test al, al                               ; 84 c0
    11143     jne short 07547h                          ; 75 be
     11141    jne short 0758dh                          ; 75 be
    1114411142    mov dx, ss                                ; 8c d2
    1114511143    lea ax, [bp-008h]                         ; 8d 46 f8
    11146     call 07345h                               ; e8 b4 fd
     11144    call 0738bh                               ; e8 b4 fd
    1114711145    mov cl, al                                ; 88 c1
    1114811146    cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
    11149     jne short 075a3h                          ; 75 0a
     11147    jne short 075e9h                          ; 75 0a
    1115011148    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1115111149    mov byte [bp+013h], 004h                  ; c6 46 13 04
    11152     jmp short 07530h                          ; eb 8d
     11150    jmp short 07576h                          ; eb 8d
    1115311151    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11154     je short 075bdh                           ; 74 14
     11152    je short 07603h                           ; 74 14
    1115511153    mov al, byte [bp-008h]                    ; 8a 46 f8
    1115611154    xor ah, ah                                ; 30 e4
     
    1116011158    mov ax, strict word 00007h                ; b8 07 00
    1116111159    push ax                                   ; 50
    11162     call 01976h                               ; e8 bc a3
     11160    call 01976h                               ; e8 76 a3
    1116311161    add sp, strict byte 00006h                ; 83 c4 06
    1116411162    test cl, cl                               ; 84 c9
    11165     jne short 07547h                          ; 75 86
     11163    jne short 0758dh                          ; 75 86
    1116611164    mov dx, ss                                ; 8c d2
    1116711165    lea ax, [bp-006h]                         ; 8d 46 fa
    11168     call 07345h                               ; e8 7c fd
     11166    call 0738bh                               ; e8 7c fd
    1116911167    test al, al                               ; 84 c0
    11170     jne short 07623h                          ; 75 56
     11168    jne short 07669h                          ; 75 56
    1117111169    mov dx, ss                                ; 8c d2
    1117211170    lea ax, [bp-004h]                         ; 8d 46 fc
    11173     call 07345h                               ; e8 70 fd
     11171    call 0738bh                               ; e8 70 fd
    1117411172    test al, al                               ; 84 c0
    11175     jne short 07623h                          ; 75 4a
     11173    jne short 07669h                          ; 75 4a
    1117611174    mov al, byte [bp-006h]                    ; 8a 46 fa
    1117711175    mov byte [bp+00ch], al                    ; 88 46 0c
    1117811176    mov al, byte [bp-004h]                    ; 8a 46 fc
    1117911177    mov byte [bp+00dh], al                    ; 88 46 0d
    11180     jmp near 0783eh                           ; e9 56 02
     11178    jmp near 07884h                           ; e9 56 02
    1118111179    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1118211180    cmp AL, strict byte 003h                  ; 3c 03
    11183     jc short 075ffh                           ; 72 10
    11184     jbe short 0761dh                          ; 76 2c
     11181    jc short 07645h                           ; 72 10
     11182    jbe short 07663h                          ; 76 2c
    1118511183    cmp AL, strict byte 006h                  ; 3c 06
    11186     je short 07632h                           ; 74 3d
     11184    je short 07678h                           ; 74 3d
    1118711185    cmp AL, strict byte 005h                  ; 3c 05
    11188     je short 0762ch                           ; 74 33
     11186    je short 07672h                           ; 74 33
    1118911187    cmp AL, strict byte 004h                  ; 3c 04
    11190     je short 07626h                           ; 74 29
    11191     jmp short 07638h                          ; eb 39
     11188    je short 0766ch                           ; 74 29
     11189    jmp short 0767eh                          ; eb 39
    1119211190    cmp AL, strict byte 002h                  ; 3c 02
    11193     je short 07617h                           ; 74 14
     11191    je short 0765dh                           ; 74 14
    1119411192    cmp AL, strict byte 001h                  ; 3c 01
    11195     je short 07611h                           ; 74 0a
     11193    je short 07657h                           ; 74 0a
    1119611194    test al, al                               ; 84 c0
    11197     jne short 07638h                          ; 75 2d
     11195    jne short 0767eh                          ; 75 2d
    1119811196    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
    11199     jmp short 0763ch                          ; eb 2b
     11197    jmp short 07682h                          ; eb 2b
    1120011198    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    11201     jmp short 0763ch                          ; eb 25
     11199    jmp short 07682h                          ; eb 25
    1120211200    mov byte [bp-006h], 028h                  ; c6 46 fa 28
    11203     jmp short 0763ch                          ; eb 1f
     11201    jmp short 07682h                          ; eb 1f
    1120411202    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
    11205     jmp short 0763ch                          ; eb 19
    11206     jmp near 077bch                           ; e9 96 01
     11203    jmp short 07682h                          ; eb 19
     11204    jmp near 07802h                           ; e9 96 01
    1120711205    mov byte [bp-006h], 050h                  ; c6 46 fa 50
    11208     jmp short 0763ch                          ; eb 10
     11206    jmp short 07682h                          ; eb 10
    1120911207    mov byte [bp-006h], 064h                  ; c6 46 fa 64
    11210     jmp short 0763ch                          ; eb 0a
     11208    jmp short 07682h                          ; eb 0a
    1121111209    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
    11212     jmp short 0763ch                          ; eb 04
     11210    jmp short 07682h                          ; eb 04
    1121311211    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1121411212    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    11215     jbe short 07672h                          ; 76 30
     11213    jbe short 076b8h                          ; 76 30
    1121611214    mov ax, 000f3h                            ; b8 f3 00
    11217     call 0730dh                               ; e8 c5 fc
     11215    call 07353h                               ; e8 c5 fc
    1121811216    test al, al                               ; 84 c0
    11219     jne short 07667h                          ; 75 1b
     11217    jne short 076adh                          ; 75 1b
    1122011218    mov dx, ss                                ; 8c d2
    1122111219    lea ax, [bp-004h]                         ; 8d 46 fc
    11222     call 07345h                               ; e8 f1 fc
     11220    call 0738bh                               ; e8 f1 fc
    1122311221    mov al, byte [bp-006h]                    ; 8a 46 fa
    1122411222    xor ah, ah                                ; 30 e4
    11225     call 0730dh                               ; e8 b1 fc
     11223    call 07353h                               ; e8 b1 fc
    1122611224    mov dx, ss                                ; 8c d2
    1122711225    lea ax, [bp-004h]                         ; 8d 46 fc
    11228     call 07345h                               ; e8 e1 fc
    11229     jmp near 0783eh                           ; e9 d7 01
     11226    call 0738bh                               ; e8 e1 fc
     11227    jmp near 07884h                           ; e9 d7 01
    1123011228    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123111229    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11232     jmp near 0783eh                           ; e9 cc 01
     11230    jmp near 07884h                           ; e9 cc 01
    1123311231    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1123411232    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11235     jmp near 0783eh                           ; e9 c1 01
     11233    jmp near 07884h                           ; e9 c1 01
    1123611234    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    11237     jnc short 076e5h                          ; 73 62
     11235    jnc short 0772bh                          ; 73 62
    1123811236    mov ax, 000e8h                            ; b8 e8 00
    11239     call 0730dh                               ; e8 84 fc
     11237    call 07353h                               ; e8 84 fc
    1124011238    test al, al                               ; 84 c0
    11241     jne short 076dbh                          ; 75 4e
     11239    jne short 07721h                          ; 75 4e
    1124211240    mov dx, ss                                ; 8c d2
    1124311241    lea ax, [bp-006h]                         ; 8d 46 fa
    11244     call 07345h                               ; e8 b0 fc
     11242    call 0738bh                               ; e8 b0 fc
    1124511243    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11246     je short 076afh                           ; 74 14
     11244    je short 076f5h                           ; 74 14
    1124711245    mov al, byte [bp-006h]                    ; 8a 46 fa
    1124811246    xor ah, ah                                ; 30 e4
     
    1125211250    mov ax, strict word 00007h                ; b8 07 00
    1125311251    push ax                                   ; 50
    11254     call 01976h                               ; e8 ca a2
     11252    call 01976h                               ; e8 84 a2
    1125511253    add sp, strict byte 00006h                ; 83 c4 06
    1125611254    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1125711255    xor ah, ah                                ; 30 e4
    11258     call 0730dh                               ; e8 56 fc
     11256    call 07353h                               ; e8 56 fc
    1125911257    mov dx, ss                                ; 8c d2
    1126011258    lea ax, [bp-006h]                         ; 8d 46 fa
    11261     call 07345h                               ; e8 86 fc
     11259    call 0738bh                               ; e8 86 fc
    1126211260    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11263     je short 07714h                           ; 74 4f
     11261    je short 0775ah                           ; 74 4f
    1126411262    mov al, byte [bp-006h]                    ; 8a 46 fa
    1126511263    xor ah, ah                                ; 30 e4
     
    1126911267    mov ax, strict word 00007h                ; b8 07 00
    1127011268    push ax                                   ; 50
    11271     call 01976h                               ; e8 a0 a2
     11269    call 01976h                               ; e8 5a a2
    1127211270    add sp, strict byte 00006h                ; 83 c4 06
    11273     jmp short 07714h                          ; eb 39
     11271    jmp short 0775ah                          ; eb 39
    1127411272    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127511273    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11276     jmp short 07714h                          ; eb 2f
     11274    jmp short 0775ah                          ; eb 2f
    1127711275    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1127811276    mov byte [bp+013h], 002h                  ; c6 46 13 02
    11279     jmp short 07714h                          ; eb 25
     11277    jmp short 0775ah                          ; eb 25
    1128011278    mov ax, 000f2h                            ; b8 f2 00
    11281     call 0730dh                               ; e8 18 fc
     11279    call 07353h                               ; e8 18 fc
    1128211280    test al, al                               ; 84 c0
    11283     jne short 0770ch                          ; 75 13
     11281    jne short 07752h                          ; 75 13
    1128411282    mov dx, ss                                ; 8c d2
    1128511283    lea ax, [bp-006h]                         ; 8d 46 fa
    11286     call 07345h                               ; e8 44 fc
     11284    call 0738bh                               ; e8 44 fc
    1128711285    mov dx, ss                                ; 8c d2
    1128811286    lea ax, [bp-004h]                         ; 8d 46 fc
    11289     call 07345h                               ; e8 3c fc
    11290     jmp near 075dfh                           ; e9 d3 fe
     11287    call 0738bh                               ; e8 3c fc
     11288    jmp near 07625h                           ; e9 d3 fe
    1129111289    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1129211290    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11293     jmp near 0783eh                           ; e9 27 01
     11291    jmp near 07884h                           ; e9 27 01
    1129411292    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1129511293    test al, al                               ; 84 c0
    11296     jbe short 07727h                          ; 76 09
     11294    jbe short 0776dh                          ; 76 09
    1129711295    cmp AL, strict byte 002h                  ; 3c 02
    11298     jbe short 07725h                          ; 76 03
    11299     jmp near 077c6h                           ; e9 a1 00
    11300     jmp short 07791h                          ; eb 6a
     11296    jbe short 0776bh                          ; 76 03
     11297    jmp near 0780ch                           ; e9 a1 00
     11298    jmp short 077d7h                          ; eb 6a
    1130111299    mov ax, 000e9h                            ; b8 e9 00
    11302     call 0730dh                               ; e8 e0 fb
     11300    call 07353h                               ; e8 e0 fb
    1130311301    test al, al                               ; 84 c0
    11304     jne short 0779ah                          ; 75 69
     11302    jne short 077e0h                          ; 75 69
    1130511303    mov dx, ss                                ; 8c d2
    1130611304    lea ax, [bp-006h]                         ; 8d 46 fa
    11307     call 07345h                               ; e8 0c fc
     11305    call 0738bh                               ; e8 0c fc
    1130811306    mov cl, al                                ; 88 c1
    1130911307    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11310     je short 07755h                           ; 74 14
     11308    je short 0779bh                           ; 74 14
    1131111309    mov al, byte [bp-006h]                    ; 8a 46 fa
    1131211310    xor ah, ah                                ; 30 e4
     
    1131611314    mov ax, strict word 00007h                ; b8 07 00
    1131711315    push ax                                   ; 50
    11318     call 01976h                               ; e8 24 a2
     11316    call 01976h                               ; e8 de a1
    1131911317    add sp, strict byte 00006h                ; 83 c4 06
    1132011318    test cl, cl                               ; 84 c9
    11321     jne short 077bch                          ; 75 63
     11319    jne short 07802h                          ; 75 63
    1132211320    mov dx, ss                                ; 8c d2
    1132311321    lea ax, [bp-006h]                         ; 8d 46 fa
    11324     call 07345h                               ; e8 e4 fb
     11322    call 0738bh                               ; e8 e4 fb
    1132511323    test al, al                               ; 84 c0
    11326     jne short 077bch                          ; 75 57
     11324    jne short 07802h                          ; 75 57
    1132711325    mov dx, ss                                ; 8c d2
    1132811326    lea ax, [bp-004h]                         ; 8d 46 fc
    11329     call 07345h                               ; e8 d8 fb
     11327    call 0738bh                               ; e8 d8 fb
    1133011328    test al, al                               ; 84 c0
    11331     jne short 077bch                          ; 75 4b
     11329    jne short 07802h                          ; 75 4b
    1133211330    mov dx, ss                                ; 8c d2
    1133311331    lea ax, [bp-008h]                         ; 8d 46 f8
    11334     call 07345h                               ; e8 cc fb
     11332    call 0738bh                               ; e8 cc fb
    1133511333    test al, al                               ; 84 c0
    11336     jne short 077bch                          ; 75 3f
     11334    jne short 07802h                          ; 75 3f
    1133711335    mov al, byte [bp-006h]                    ; 8a 46 fa
    1133811336    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1134111339    mov al, byte [bp-008h]                    ; 8a 46 f8
    1134211340    mov byte [bp+00eh], al                    ; 88 46 0e
    11343     jmp short 07714h                          ; eb 83
     11341    jmp short 0775ah                          ; eb 83
    1134411342    cmp AL, strict byte 001h                  ; 3c 01
    11345     jne short 0779ch                          ; 75 07
     11343    jne short 077e2h                          ; 75 07
    1134611344    mov ax, 000e6h                            ; b8 e6 00
    11347     jmp short 0779fh                          ; eb 05
    11348     jmp short 077bch                          ; eb 20
     11345    jmp short 077e5h                          ; eb 05
     11346    jmp short 07802h                          ; eb 20
    1134911347    mov ax, 000e7h                            ; b8 e7 00
    11350     call 0730dh                               ; e8 6b fb
     11348    call 07353h                               ; e8 6b fb
    1135111349    mov cl, al                                ; 88 c1
    1135211350    test cl, cl                               ; 84 c9
    11353     jne short 077b8h                          ; 75 10
     11351    jne short 077feh                          ; 75 10
    1135411352    mov dx, ss                                ; 8c d2
    1135511353    lea ax, [bp-006h]                         ; 8d 46 fa
    11356     call 07345h                               ; e8 95 fb
     11354    call 0738bh                               ; e8 95 fb
    1135711355    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
    11358     je short 077b8h                           ; 74 02
     11356    je short 077feh                           ; 74 02
    1135911357    mov CL, strict byte 001h                  ; b1 01
    1136011358    test cl, cl                               ; 84 c9
    11361     je short 07826h                           ; 74 6a
     11359    je short 0786ch                           ; 74 6a
    1136211360    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1136311361    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11364     jmp short 07826h                          ; eb 60
     11362    jmp short 0786ch                          ; eb 60
    1136511363    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1136611364    xor ah, ah                                ; 30 e4
     
    1137011368    mov ax, strict word 00007h                ; b8 07 00
    1137111369    push ax                                   ; 50
    11372     call 01976h                               ; e8 9f a1
     11370    call 01976h                               ; e8 59 a1
    1137311371    add sp, strict byte 00006h                ; 83 c4 06
    1137411372    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1137511373    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11376     jmp short 0783eh                          ; eb 5a
     11374    jmp short 07884h                          ; eb 5a
    1137711375    mov si, word [bp+00ch]                    ; 8b 76 0c
    1137811376    mov bx, si                                ; 89 f3
    1137911377    mov dx, strict word 00022h                ; ba 22 00
    1138011378    mov ax, cx                                ; 89 c8
    11381     call 0167ch                               ; e8 8b 9e
     11379    call 0167ch                               ; e8 45 9e
    1138211380    mov bx, word [bp+014h]                    ; 8b 5e 14
    1138311381    mov dx, strict word 00024h                ; ba 24 00
    1138411382    mov ax, cx                                ; 89 c8
    11385     call 0167ch                               ; e8 80 9e
     11383    call 0167ch                               ; e8 3a 9e
    1138611384    mov dx, strict word 00027h                ; ba 27 00
    1138711385    mov ax, cx                                ; 89 c8
    11388     call 01652h                               ; e8 4e 9e
     11386    call 01652h                               ; e8 08 9e
    1138911387    mov ah, al                                ; 88 c4
    1139011388    test si, si                               ; 85 f6
    11391     jne short 07818h                          ; 75 0e
     11389    jne short 0785eh                          ; 75 0e
    1139211390    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11393     jne short 07818h                          ; 75 08
     11391    jne short 0785eh                          ; 75 08
    1139411392    test AL, strict byte 080h                 ; a8 80
    11395     je short 0781ah                           ; 74 06
     11393    je short 07860h                           ; 74 06
    1139611394    and AL, strict byte 07fh                  ; 24 7f
    11397     jmp short 0781ah                          ; eb 02
     11395    jmp short 07860h                          ; eb 02
    1139811396    or AL, strict byte 080h                   ; 0c 80
    1139911397    mov bl, al                                ; 88 c3
     
    1140111399    mov dx, strict word 00027h                ; ba 27 00
    1140211400    mov ax, cx                                ; 89 c8
    11403     call 01660h                               ; e8 3a 9e
    11404     jmp short 0783eh                          ; eb 16
     11401    call 01660h                               ; e8 f4 9d
     11402    jmp short 07884h                          ; eb 16
    1140511403    mov ax, 00974h                            ; b8 74 09
    1140611404    push ax                                   ; 50
    1140711405    mov ax, strict word 00007h                ; b8 07 00
    1140811406    push ax                                   ; 50
    11409     call 01976h                               ; e8 43 a1
     11407    call 01976h                               ; e8 fd a0
    1141011408    add sp, strict byte 00004h                ; 83 c4 04
    1141111409    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1141211410    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1141311411    mov ax, strict word 00047h                ; b8 47 00
    11414     call 073a2h                               ; e8 5e fb
     11412    call 073e8h                               ; e8 5e fb
    1141511413    lea sp, [bp-002h]                         ; 8d 66 fe
    1141611414    pop si                                    ; 5e
    1141711415    pop bp                                    ; 5d
    1141811416    retn                                      ; c3
    11419 _int17_function:                             ; 0xf784a LB 0xac
     11417_int17_function:                             ; 0xf7890 LB 0xac
    1142011418    push bp                                   ; 55
    1142111419    mov bp, sp                                ; 89 e5
     
    1142711425    add dx, strict byte 00008h                ; 83 c2 08
    1142811426    mov ax, strict word 00040h                ; b8 40 00
    11429     call 0166eh                               ; e8 10 9e
     11427    call 0166eh                               ; e8 ca 9d
    1143011428    mov bx, ax                                ; 89 c3
    1143111429    mov si, ax                                ; 89 c6
    1143211430    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11433     jnc short 07874h                          ; 73 0c
     11431    jnc short 078bah                          ; 73 0c
    1143411432    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1143511433    cmp ax, strict word 00003h                ; 3d 03 00
    11436     jnc short 07874h                          ; 73 04
     11434    jnc short 078bah                          ; 73 04
    1143711435    test bx, bx                               ; 85 db
    11438     jnbe short 07877h                         ; 77 03
    11439     jmp near 078ech                           ; e9 75 00
     11436    jnbe short 078bdh                         ; 77 03
     11437    jmp near 07932h                           ; e9 75 00
    1144011438    mov dx, ax                                ; 89 c2
    1144111439    add dx, strict byte 00078h                ; 83 c2 78
    1144211440    mov ax, strict word 00040h                ; b8 40 00
    11443     call 01652h                               ; e8 d0 9d
     11441    call 01652h                               ; e8 8a 9d
    1144411442    mov ch, al                                ; 88 c5
    1144511443    xor cl, cl                                ; 30 c9
    1144611444    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11447     jne short 078b8h                          ; 75 2c
     11445    jne short 078feh                          ; 75 2c
    1144811446    mov al, byte [bp+012h]                    ; 8a 46 12
    1144911447    mov dx, bx                                ; 89 da
     
    1146511463    ; sub ah, ah                                ; 2a e4
    1146611464    test AL, strict byte 040h                 ; a8 40
    11467     je short 078b8h                           ; 74 07
     11465    je short 078feh                           ; 74 07
    1146811466    test cx, cx                               ; 85 c9
    11469     je short 078b8h                           ; 74 03
     11467    je short 078feh                           ; 74 03
    1147011468    dec cx                                    ; 49
    11471     jmp short 078a7h                          ; eb ef
     11469    jmp short 078edh                          ; eb ef
    1147211470    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11473     jne short 078d3h                          ; 75 15
     11471    jne short 07919h                          ; 75 15
    1147411472    lea dx, [si+002h]                         ; 8d 54 02
    1147511473    in AL, DX                                 ; ec
     
    1149011488    mov byte [bp+013h], al                    ; 88 46 13
    1149111489    test cx, cx                               ; 85 c9
    11492     jne short 078e6h                          ; 75 04
     11490    jne short 0792ch                          ; 75 04
    1149311491    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1149411492    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11495     jmp short 078f0h                          ; eb 04
     11493    jmp short 07936h                          ; eb 04
    1149611494    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1149711495    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1149911497    pop bp                                    ; 5d
    1150011498    retn                                      ; c3
    11501 wait_:                                       ; 0xf78f6 LB 0xb2
     11499wait_:                                       ; 0xf793c LB 0xb2
    1150211500    push bp                                   ; 55
    1150311501    mov bp, sp                                ; 89 e5
     
    1151711515    mov dx, 0046ch                            ; ba 6c 04
    1151811516    xor ax, ax                                ; 31 c0
    11519     call 0168ah                               ; e8 71 9d
     11517    call 0168ah                               ; e8 2b 9d
    1152011518    mov word [bp-00eh], ax                    ; 89 46 f2
    1152111519    mov bx, dx                                ; 89 d3
     
    1152311521    mov dx, 0046ch                            ; ba 6c 04
    1152411522    xor ax, ax                                ; 31 c0
    11525     call 0168ah                               ; e8 63 9d
     11523    call 0168ah                               ; e8 1d 9d
    1152611524    mov word [bp-012h], ax                    ; 89 46 ee
    1152711525    mov di, dx                                ; 89 d7
    1152811526    cmp dx, bx                                ; 39 da
    11529     jnbe short 07937h                         ; 77 07
    11530     jne short 0793eh                          ; 75 0c
     11527    jnbe short 0797dh                         ; 77 07
     11528    jne short 07984h                          ; 75 0c
    1153111529    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11532     jbe short 0793eh                          ; 76 07
     11530    jbe short 07984h                          ; 76 07
    1153311531    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1153411532    sbb dx, bx                                ; 19 da
    11535     jmp short 07949h                          ; eb 0b
     11533    jmp short 0798fh                          ; eb 0b
    1153611534    cmp dx, bx                                ; 39 da
    11537     jc short 07949h                           ; 72 07
    11538     jne short 0794dh                          ; 75 09
     11535    jc short 0798fh                           ; 72 07
     11536    jne short 07993h                          ; 75 09
    1153911537    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11540     jnc short 0794dh                          ; 73 04
     11538    jnc short 07993h                          ; 73 04
    1154111539    sub si, ax                                ; 29 c6
    1154211540    sbb cx, dx                                ; 19 d1
     
    1154611544    mov ax, 00100h                            ; b8 00 01
    1154711545    int 016h                                  ; cd 16
    11548     je short 07961h                           ; 74 05
     11546    je short 079a7h                           ; 74 05
    1154911547    mov AL, strict byte 001h                  ; b0 01
    11550     jmp near 07963h                           ; e9 02 00
     11548    jmp near 079a9h                           ; e9 02 00
    1155111549    db  032h, 0c0h
    1155211550    ; xor al, al                                ; 32 c0
    1155311551    test al, al                               ; 84 c0
    11554     je short 0798dh                           ; 74 26
     11552    je short 079d3h                           ; 74 26
    1155511553    db  033h, 0c0h
    1155611554    ; xor ax, ax                                ; 33 c0
     
    1156511563    mov ax, strict word 00004h                ; b8 04 00
    1156611564    push ax                                   ; 50
    11567     call 01976h                               ; e8 f6 9f
     11565    call 01976h                               ; e8 b0 9f
    1156811566    add sp, strict byte 00006h                ; 83 c4 06
    1156911567    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    11570     je short 0798dh                           ; 74 04
     11568    je short 079d3h                           ; 74 04
    1157111569    mov al, dl                                ; 88 d0
    11572     jmp short 0799fh                          ; eb 12
     11570    jmp short 079e5h                          ; eb 12
    1157311571    test cx, cx                               ; 85 c9
    11574     jnle short 0791eh                         ; 7f 8d
    11575     jne short 07997h                          ; 75 04
     11572    jnle short 07964h                         ; 7f 8d
     11573    jne short 079ddh                          ; 75 04
    1157611574    test si, si                               ; 85 f6
    11577     jnbe short 0791eh                         ; 77 87
     11575    jnbe short 07964h                         ; 77 87
    1157811576    mov ax, word [bp-010h]                    ; 8b 46 f0
    1157911577    push ax                                   ; 50
     
    1158711585    pop bp                                    ; 5d
    1158811586    retn                                      ; c3
    11589 read_logo_byte_:                             ; 0xf79a8 LB 0x16
     11587read_logo_byte_:                             ; 0xf79ee LB 0x16
    1159011588    push bp                                   ; 55
    1159111589    mov bp, sp                                ; 89 e5
     
    1160211600    pop bp                                    ; 5d
    1160311601    retn                                      ; c3
    11604 read_logo_word_:                             ; 0xf79be LB 0x14
     11602read_logo_word_:                             ; 0xf7a04 LB 0x14
    1160511603    push bp                                   ; 55
    1160611604    mov bp, sp                                ; 89 e5
     
    1161511613    pop bp                                    ; 5d
    1161611614    retn                                      ; c3
    11617 print_detected_harddisks_:                   ; 0xf79d2 LB 0x15a
     11615print_detected_harddisks_:                   ; 0xf7a18 LB 0x15a
    1161811616    push bp                                   ; 55
    1161911617    mov bp, sp                                ; 89 e5
     
    1162511623    mov dx, strict word 0000eh                ; ba 0e 00
    1162611624    mov ax, strict word 00040h                ; b8 40 00
    11627     call 0166eh                               ; e8 89 9c
     11625    call 0166eh                               ; e8 43 9c
    1162811626    mov si, ax                                ; 89 c6
    1162911627    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     
    1163111629    mov byte [bp-00ch], ch                    ; 88 6e f4
    1163211630    mov dx, 00304h                            ; ba 04 03
    11633     call 01652h                               ; e8 5c 9c
     11631    call 01652h                               ; e8 16 9c
    1163411632    mov byte [bp-00ah], al                    ; 88 46 f6
    1163511633    xor cl, cl                                ; 30 c9
    1163611634    cmp cl, byte [bp-00ah]                    ; 3a 4e f6
    11637     jnc short 07a5eh                          ; 73 5e
     11635    jnc short 07aa4h                          ; 73 5e
    1163811636    mov al, cl                                ; 88 c8
    1163911637    xor ah, ah                                ; 30 e4
     
    1164111639    add dx, 00305h                            ; 81 c2 05 03
    1164211640    mov ax, si                                ; 89 f0
    11643     call 01652h                               ; e8 43 9c
     11641    call 01652h                               ; e8 fd 9b
    1164411642    mov bl, al                                ; 88 c3
    1164511643    cmp AL, strict byte 00ch                  ; 3c 0c
    11646     jc short 07a40h                           ; 72 2b
     11644    jc short 07a86h                           ; 72 2b
    1164711645    test ch, ch                               ; 84 ed
    11648     jne short 07a29h                          ; 75 10
     11646    jne short 07a6fh                          ; 75 10
    1164911647    mov ax, 009a7h                            ; b8 a7 09
    1165011648    push ax                                   ; 50
    1165111649    mov ax, strict word 00002h                ; b8 02 00
    1165211650    push ax                                   ; 50
    11653     call 01976h                               ; e8 52 9f
     11651    call 01976h                               ; e8 0c 9f
    1165411652    add sp, strict byte 00004h                ; 83 c4 04
    1165511653    mov CH, strict byte 001h                  ; b5 01
     
    1166211660    mov ax, strict word 00002h                ; b8 02 00
    1166311661    push ax                                   ; 50
    11664     call 01976h                               ; e8 3c 9f
     11662    call 01976h                               ; e8 f6 9e
    1166511663    add sp, strict byte 00006h                ; 83 c4 06
    11666     jmp near 07af2h                           ; e9 b2 00
     11664    jmp near 07b38h                           ; e9 b2 00
    1166711665    cmp AL, strict byte 008h                  ; 3c 08
    11668     jc short 07a61h                           ; 72 1d
     11666    jc short 07aa7h                           ; 72 1d
    1166911667    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11670     jne short 07a5ch                          ; 75 12
     11668    jne short 07aa2h                          ; 75 12
    1167111669    mov ax, 009cfh                            ; b8 cf 09
    1167211670    push ax                                   ; 50
    1167311671    mov ax, strict word 00002h                ; b8 02 00
    1167411672    push ax                                   ; 50
    11675     call 01976h                               ; e8 21 9f
     11673    call 01976h                               ; e8 db 9e
    1167611674    add sp, strict byte 00004h                ; 83 c4 04
    1167711675    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11678     jmp short 07a29h                          ; eb cb
    11679     jmp near 07af7h                           ; e9 96 00
     11676    jmp short 07a6fh                          ; eb cb
     11677    jmp near 07b3dh                           ; e9 96 00
    1168011678    cmp AL, strict byte 004h                  ; 3c 04
    11681     jnc short 07a7fh                          ; 73 1a
     11679    jnc short 07ac5h                          ; 73 1a
    1168211680    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11683     jne short 07a7fh                          ; 75 14
     11681    jne short 07ac5h                          ; 75 14
    1168411682    mov ax, 009e4h                            ; b8 e4 09
    1168511683    push ax                                   ; 50
    1168611684    mov ax, strict word 00002h                ; b8 02 00
    1168711685    push ax                                   ; 50
    11688     call 01976h                               ; e8 00 9f
     11686    call 01976h                               ; e8 ba 9e
    1168911687    add sp, strict byte 00004h                ; 83 c4 04
    1169011688    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11691     jmp short 07a98h                          ; eb 19
     11689    jmp short 07adeh                          ; eb 19
    1169211690    cmp bl, 004h                              ; 80 fb 04
    11693     jc short 07a98h                           ; 72 14
     11691    jc short 07adeh                           ; 72 14
    1169411692    test ch, ch                               ; 84 ed
    11695     jne short 07a98h                          ; 75 10
     11693    jne short 07adeh                          ; 75 10
    1169611694    mov ax, 009f6h                            ; b8 f6 09
    1169711695    push ax                                   ; 50
    1169811696    mov ax, strict word 00002h                ; b8 02 00
    1169911697    push ax                                   ; 50
    11700     call 01976h                               ; e8 e3 9e
     11698    call 01976h                               ; e8 9d 9e
    1170111699    add sp, strict byte 00004h                ; 83 c4 04
    1170211700    mov CH, strict byte 001h                  ; b5 01
     
    1170911707    mov ax, strict word 00002h                ; b8 02 00
    1171011708    push ax                                   ; 50
    11711     call 01976h                               ; e8 cd 9e
     11709    call 01976h                               ; e8 87 9e
    1171211710    add sp, strict byte 00006h                ; 83 c4 06
    1171311711    cmp bl, 004h                              ; 80 fb 04
    11714     jc short 07ab4h                           ; 72 03
     11712    jc short 07afah                           ; 72 03
    1171511713    sub bl, 004h                              ; 80 eb 04
    1171611714    mov al, bl                                ; 88 d8
     
    1172111719    sar ax, 1                                 ; d1 f8
    1172211720    test ax, ax                               ; 85 c0
    11723     je short 07ac6h                           ; 74 05
     11721    je short 07b0ch                           ; 74 05
    1172411722    mov ax, 00a14h                            ; b8 14 0a
    11725     jmp short 07ac9h                          ; eb 03
     11723    jmp short 07b0fh                          ; eb 03
    1172611724    mov ax, 00a1fh                            ; b8 1f 0a
    1172711725    push ax                                   ; 50
    1172811726    mov ax, strict word 00002h                ; b8 02 00
    1172911727    push ax                                   ; 50
    11730     call 01976h                               ; e8 a5 9e
     11728    call 01976h                               ; e8 5f 9e
    1173111729    add sp, strict byte 00004h                ; 83 c4 04
    1173211730    mov al, bl                                ; 88 d8
     
    1173611734    idiv bx                                   ; f7 fb
    1173711735    test dx, dx                               ; 85 d2
    11738     je short 07ae7h                           ; 74 05
     11736    je short 07b2dh                           ; 74 05
    1173911737    mov ax, 00a28h                            ; b8 28 0a
    11740     jmp short 07aeah                          ; eb 03
     11738    jmp short 07b30h                          ; eb 03
    1174111739    mov ax, 00a2eh                            ; b8 2e 0a
    1174211740    push ax                                   ; 50
    1174311741    push bx                                   ; 53
    11744     call 01976h                               ; e8 87 9e
     11742    call 01976h                               ; e8 41 9e
    1174511743    add sp, strict byte 00004h                ; 83 c4 04
    1174611744    db  0feh, 0c1h
    1174711745    ; inc cl                                    ; fe c1
    11748     jmp near 079fbh                           ; e9 04 ff
     11746    jmp near 07a41h                           ; e9 04 ff
    1174911747    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11750     jne short 07b15h                          ; 75 18
     11748    jne short 07b5bh                          ; 75 18
    1175111749    test ch, ch                               ; 84 ed
    11752     jne short 07b15h                          ; 75 14
     11750    jne short 07b5bh                          ; 75 14
    1175311751    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11754     jne short 07b15h                          ; 75 0e
     11752    jne short 07b5bh                          ; 75 0e
    1175511753    mov ax, 00a35h                            ; b8 35 0a
    1175611754    push ax                                   ; 50
    1175711755    mov ax, strict word 00002h                ; b8 02 00
    1175811756    push ax                                   ; 50
    11759     call 01976h                               ; e8 64 9e
     11757    call 01976h                               ; e8 1e 9e
    1176011758    add sp, strict byte 00004h                ; 83 c4 04
    1176111759    mov ax, 00a49h                            ; b8 49 0a
     
    1176311761    mov ax, strict word 00002h                ; b8 02 00
    1176411762    push ax                                   ; 50
    11765     call 01976h                               ; e8 56 9e
     11763    call 01976h                               ; e8 10 9e
    1176611764    add sp, strict byte 00004h                ; 83 c4 04
    1176711765    lea sp, [bp-008h]                         ; 8d 66 f8
     
    1177211770    pop bp                                    ; 5d
    1177311771    retn                                      ; c3
    11774 get_boot_drive_:                             ; 0xf7b2c LB 0x28
     11772get_boot_drive_:                             ; 0xf7b72 LB 0x28
    1177511773    push bp                                   ; 55
    1177611774    mov bp, sp                                ; 89 e5
     
    1178011778    mov dx, strict word 0000eh                ; ba 0e 00
    1178111779    mov ax, strict word 00040h                ; b8 40 00
    11782     call 0166eh                               ; e8 32 9b
     11780    call 0166eh                               ; e8 ec 9a
    1178311781    mov dx, 00304h                            ; ba 04 03
    11784     call 01652h                               ; e8 10 9b
     11782    call 01652h                               ; e8 ca 9a
    1178511783    sub bl, 002h                              ; 80 eb 02
    1178611784    cmp bl, al                                ; 38 c3
    11787     jc short 07b4bh                           ; 72 02
     11785    jc short 07b91h                           ; 72 02
    1178811786    mov BL, strict byte 0ffh                  ; b3 ff
    1178911787    mov al, bl                                ; 88 d8
     
    1179311791    pop bp                                    ; 5d
    1179411792    retn                                      ; c3
    11795 show_logo_:                                  ; 0xf7b54 LB 0x240
     11793show_logo_:                                  ; 0xf7b9a LB 0x240
    1179611794    push bp                                   ; 55
    1179711795    mov bp, sp                                ; 89 e5
     
    1180411802    mov dx, strict word 0000eh                ; ba 0e 00
    1180511803    mov ax, strict word 00040h                ; b8 40 00
    11806     call 0166eh                               ; e8 06 9b
     11804    call 0166eh                               ; e8 c0 9a
    1180711805    mov si, ax                                ; 89 c6
    1180811806    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1181611814    mov al, cl                                ; 88 c8
    1181711815    xor ah, ah                                ; 30 e4
    11818     call 079beh                               ; e8 3b fe
     11816    call 07a04h                               ; e8 3b fe
    1181911817    cmp ax, 066bbh                            ; 3d bb 66
    11820     jne short 07b9ah                          ; 75 12
     11818    jne short 07be0h                          ; 75 12
    1182111819    push SS                                   ; 16
    1182211820    pop ES                                    ; 07
     
    1182611824    mov word [es:di], bx                      ; 26 89 1d
    1182711825    cmp ax, strict word 0004fh                ; 3d 4f 00
    11828     je short 07b9dh                           ; 74 03
    11829     jmp near 07c63h                           ; e9 c6 00
     11826    je short 07be3h                           ; 74 03
     11827    jmp near 07ca9h                           ; e9 c6 00
    1183011828    mov al, cl                                ; 88 c8
    1183111829    add AL, strict byte 004h                  ; 04 04
    1183211830    xor ah, ah                                ; 30 e4
    11833     call 079a8h                               ; e8 02 fe
     11831    call 079eeh                               ; e8 02 fe
    1183411832    mov bl, al                                ; 88 c3
    1183511833    mov byte [bp-014h], al                    ; 88 46 ec
     
    1183711835    add AL, strict byte 005h                  ; 04 05
    1183811836    xor ah, ah                                ; 30 e4
    11839     call 079a8h                               ; e8 f4 fd
     11837    call 079eeh                               ; e8 f4 fd
    1184011838    mov bh, al                                ; 88 c7
    1184111839    mov byte [bp-012h], al                    ; 88 46 ee
     
    1184311841    add AL, strict byte 002h                  ; 04 02
    1184411842    xor ah, ah                                ; 30 e4
    11845     call 079beh                               ; e8 fc fd
     11843    call 07a04h                               ; e8 fc fd
    1184611844    mov dx, ax                                ; 89 c2
    1184711845    mov word [bp-016h], ax                    ; 89 46 ea
     
    1184911847    add AL, strict byte 006h                  ; 04 06
    1185011848    xor ah, ah                                ; 30 e4
    11851     call 079a8h                               ; e8 d8 fd
     11849    call 079eeh                               ; e8 d8 fd
    1185211850    mov byte [bp-010h], al                    ; 88 46 f0
    1185311851    test bl, bl                               ; 84 db
    11854     jne short 07bdfh                          ; 75 08
     11852    jne short 07c25h                          ; 75 08
    1185511853    test bh, bh                               ; 84 ff
    11856     jne short 07bdfh                          ; 75 04
     11854    jne short 07c25h                          ; 75 04
    1185711855    test dx, dx                               ; 85 d2
    11858     je short 07b9ah                           ; 74 bb
     11856    je short 07be0h                           ; 74 bb
    1185911857    mov bx, 00142h                            ; bb 42 01
    1186011858    mov ax, 04f02h                            ; b8 02 4f
    1186111859    int 010h                                  ; cd 10
    1186211860    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11863     je short 07c12h                           ; 74 25
     11861    je short 07c58h                           ; 74 25
    1186411862    xor cx, cx                                ; 31 c9
    11865     jmp short 07bf7h                          ; eb 06
     11863    jmp short 07c3dh                          ; eb 06
    1186611864    inc cx                                    ; 41
    1186711865    cmp cx, strict byte 00010h                ; 83 f9 10
    11868     jnbe short 07c19h                         ; 77 22
     11866    jnbe short 07c5fh                         ; 77 22
    1186911867    mov ax, cx                                ; 89 c8
    1187011868    or ah, 002h                               ; 80 cc 02
     
    1187311871    xor dx, dx                                ; 31 d2
    1187411872    mov ax, strict word 00001h                ; b8 01 00
    11875     call 078f6h                               ; e8 ee fc
     11873    call 0793ch                               ; e8 ee fc
    1187611874    cmp AL, strict byte 086h                  ; 3c 86
    11877     jne short 07bf1h                          ; 75 e5
     11875    jne short 07c37h                          ; 75 e5
    1187811876    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11879     jmp short 07c19h                          ; eb 07
     11877    jmp short 07c5fh                          ; eb 07
    1188011878    mov ax, 00210h                            ; b8 10 02
    1188111879    mov dx, 003b8h                            ; ba b8 03
    1188211880    out DX, ax                                ; ef
    1188311881    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11884     jne short 07c34h                          ; 75 15
     11882    jne short 07c7ah                          ; 75 15
    1188511883    mov CL, strict byte 004h                  ; b1 04
    1188611884    mov ax, word [bp-016h]                    ; 8b 46 ea
    1188711885    shr ax, CL                                ; d3 e8
    1188811886    mov dx, strict word 00001h                ; ba 01 00
    11889     call 078f6h                               ; e8 ca fc
     11887    call 0793ch                               ; e8 ca fc
    1189011888    cmp AL, strict byte 086h                  ; 3c 86
    11891     jne short 07c34h                          ; 75 04
     11889    jne short 07c7ah                          ; 75 04
    1189211890    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1189311891    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11894     je short 07c63h                           ; 74 29
     11892    je short 07ca9h                           ; 74 29
    1189511893    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11896     jne short 07c63h                          ; 75 23
     11894    jne short 07ca9h                          ; 75 23
    1189711895    mov cx, strict word 00010h                ; b9 10 00
    11898     jmp short 07c4ah                          ; eb 05
     11896    jmp short 07c90h                          ; eb 05
    1189911897    dec cx                                    ; 49
    1190011898    test cx, cx                               ; 85 c9
    11901     jbe short 07c63h                          ; 76 19
     11899    jbe short 07ca9h                          ; 76 19
    1190211900    mov ax, cx                                ; 89 c8
    1190311901    or ah, 002h                               ; 80 cc 02
     
    1190611904    xor dx, dx                                ; 31 d2
    1190711905    mov ax, strict word 00001h                ; b8 01 00
    11908     call 078f6h                               ; e8 9b fc
     11906    call 0793ch                               ; e8 9b fc
    1190911907    cmp AL, strict byte 086h                  ; 3c 86
    11910     jne short 07c45h                          ; 75 e6
     11908    jne short 07c8bh                          ; 75 e6
    1191111909    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1191211910    xor bx, bx                                ; 31 db
    1191311911    mov dx, 0037dh                            ; ba 7d 03
    1191411912    mov ax, si                                ; 89 f0
    11915     call 01660h                               ; e8 f3 99
     11913    call 01660h                               ; e8 ad 99
    1191611914    mov AL, strict byte 003h                  ; b0 03
    1191711915    mov AH, strict byte 000h                  ; b4 00
    1191811916    int 010h                                  ; cd 10
    1191911917    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11920     je short 07c8dh                           ; 74 14
     11918    je short 07cd3h                           ; 74 14
    1192111919    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
    11922     jne short 07cbbh                          ; 75 3c
     11920    jne short 07d01h                          ; 75 3c
    1192311921    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11924     jne short 07cbbh                          ; 75 36
     11922    jne short 07d01h                          ; 75 36
    1192511923    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
    11926     je short 07c90h                           ; 74 05
    11927     jmp short 07cbbh                          ; eb 2e
    11928     jmp near 07d77h                           ; e9 e7 00
     11924    je short 07cd6h                           ; 74 05
     11925    jmp short 07d01h                          ; eb 2e
     11926    jmp near 07dbdh                           ; e9 e7 00
    1192911927    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
    11930     jne short 07ca4h                          ; 75 0e
     11928    jne short 07ceah                          ; 75 0e
    1193111929    mov ax, 00a4bh                            ; b8 4b 0a
    1193211930    push ax                                   ; 50
    1193311931    mov ax, strict word 00002h                ; b8 02 00
    1193411932    push ax                                   ; 50
    11935     call 01976h                               ; e8 d5 9c
     11933    call 01976h                               ; e8 8f 9c
    1193611934    add sp, strict byte 00004h                ; 83 c4 04
    1193711935    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11938     jne short 07cbbh                          ; 75 11
     11936    jne short 07d01h                          ; 75 11
    1193911937    mov dx, strict word 00001h                ; ba 01 00
    1194011938    mov ax, 000c0h                            ; b8 c0 00
    11941     call 078f6h                               ; e8 43 fc
     11939    call 0793ch                               ; e8 43 fc
    1194211940    cmp AL, strict byte 086h                  ; 3c 86
    11943     jne short 07cbbh                          ; 75 04
     11941    jne short 07d01h                          ; 75 04
    1194411942    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    1194511943    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11946     je short 07c8dh                           ; 74 cc
     11944    je short 07cd3h                           ; 74 cc
    1194711945    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1194811946    mov ax, 00100h                            ; b8 00 01
     
    1196511963    mov ax, strict word 00002h                ; b8 02 00
    1196611964    push ax                                   ; 50
    11967     call 01976h                               ; e8 89 9c
     11965    call 01976h                               ; e8 43 9c
    1196811966    add sp, strict byte 00004h                ; 83 c4 04
    11969     call 079d2h                               ; e8 df fc
     11967    call 07a18h                               ; e8 df fc
    1197011968    mov ax, 00ab1h                            ; b8 b1 0a
    1197111969    push ax                                   ; 50
    1197211970    mov ax, strict word 00002h                ; b8 02 00
    1197311971    push ax                                   ; 50
    11974     call 01976h                               ; e8 78 9c
     11972    call 01976h                               ; e8 32 9c
    1197511973    add sp, strict byte 00004h                ; 83 c4 04
    1197611974    mov dx, strict word 00001h                ; ba 01 00
    1197711975    mov ax, strict word 00040h                ; b8 40 00
    11978     call 078f6h                               ; e8 ec fb
     11976    call 0793ch                               ; e8 ec fb
    1197911977    mov cl, al                                ; 88 c1
    1198011978    test al, al                               ; 84 c0
    11981     je short 07d01h                           ; 74 f1
     11979    je short 07d47h                           ; 74 f1
    1198211980    cmp AL, strict byte 030h                  ; 3c 30
    11983     je short 07d64h                           ; 74 50
     11981    je short 07daah                           ; 74 50
    1198411982    cmp cl, 002h                              ; 80 f9 02
    11985     jc short 07d3dh                           ; 72 24
     11983    jc short 07d83h                           ; 72 24
    1198611984    cmp cl, 009h                              ; 80 f9 09
    11987     jnbe short 07d3dh                         ; 77 1f
     11985    jnbe short 07d83h                         ; 77 1f
    1198811986    mov al, cl                                ; 88 c8
    1198911987    xor ah, ah                                ; 30 e4
    11990     call 07b2ch                               ; e8 07 fe
     11988    call 07b72h                               ; e8 07 fe
    1199111989    cmp AL, strict byte 0ffh                  ; 3c ff
    11992     jne short 07d2bh                          ; 75 02
    11993     jmp short 07d01h                          ; eb d6
     11990    jne short 07d71h                          ; 75 02
     11991    jmp short 07d47h                          ; eb d6
    1199411992    mov bl, al                                ; 88 c3
    1199511993    xor bh, bh                                ; 30 ff
    1199611994    mov dx, 0037ch                            ; ba 7c 03
    1199711995    mov ax, si                                ; 89 f0
    11998     call 01660h                               ; e8 29 99
     11996    call 01660h                               ; e8 e3 98
    1199911997    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    12000     jmp short 07d64h                          ; eb 27
     11998    jmp short 07daah                          ; eb 27
    1200111999    cmp cl, 02eh                              ; 80 f9 2e
    12002     je short 07d52h                           ; 74 10
     12000    je short 07d98h                           ; 74 10
    1200312001    cmp cl, 026h                              ; 80 f9 26
    12004     je short 07d58h                           ; 74 11
     12002    je short 07d9eh                           ; 74 11
    1200512003    cmp cl, 021h                              ; 80 f9 21
    12006     jne short 07d5eh                          ; 75 12
     12004    jne short 07da4h                          ; 75 12
    1200712005    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    12008     jmp short 07d64h                          ; eb 12
     12006    jmp short 07daah                          ; eb 12
    1200912007    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    12010     jmp short 07d64h                          ; eb 0c
     12008    jmp short 07daah                          ; eb 0c
    1201112009    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    12012     jmp short 07d64h                          ; eb 06
     12010    jmp short 07daah                          ; eb 06
    1201312011    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    12014     je short 07d01h                           ; 74 9d
     12012    je short 07d47h                           ; 74 9d
    1201512013    mov bl, byte [bp-00eh]                    ; 8a 5e f2
    1201612014    xor bh, bh                                ; 30 ff
    1201712015    mov dx, 0037dh                            ; ba 7d 03
    1201812016    mov ax, si                                ; 89 f0
    12019     call 01660h                               ; e8 ef 98
     12017    call 01660h                               ; e8 a9 98
    1202012018    mov AL, strict byte 003h                  ; b0 03
    1202112019    mov AH, strict byte 000h                  ; b4 00
     
    1203012028    push DS                                   ; 1e
    1203112029    mov ds, ax                                ; 8e d8
    12032     call 0ede3h                               ; e8 5b 70
     12030    call 0ede3h                               ; e8 15 70
    1203312031    pop DS                                    ; 1f
    1203412032    pop bp                                    ; 5d
     
    1204112039    pop bp                                    ; 5d
    1204212040    retn                                      ; c3
    12043 delay_boot_:                                 ; 0xf7d94 LB 0x72
     12041delay_boot_:                                 ; 0xf7dda LB 0x72
    1204412042    push bp                                   ; 55
    1204512043    mov bp, sp                                ; 89 e5
     
    1205112049    mov bx, ax                                ; 89 c3
    1205212050    test ax, ax                               ; 85 c0
    12053     je short 07dfch                           ; 74 5a
     12051    je short 07e42h                           ; 74 5a
    1205412052    mov AL, strict byte 034h                  ; b0 34
    1205512053    out strict byte 043h, AL                  ; e6 43
     
    1206312061    mov ax, strict word 00002h                ; b8 02 00
    1206412062    push ax                                   ; 50
    12065     call 01976h                               ; e8 bc 9b
     12063    call 01976h                               ; e8 76 9b
    1206612064    add sp, strict byte 00006h                ; 83 c4 06
    1206712065    test bx, bx                               ; 85 db
    12068     jbe short 07ddbh                          ; 76 1a
     12066    jbe short 07e21h                          ; 76 1a
    1206912067    push bx                                   ; 53
    1207012068    mov ax, 00b19h                            ; b8 19 0b
     
    1207212070    mov ax, strict word 00002h                ; b8 02 00
    1207312071    push ax                                   ; 50
    12074     call 01976h                               ; e8 a9 9b
     12072    call 01976h                               ; e8 63 9b
    1207512073    add sp, strict byte 00006h                ; 83 c4 06
    1207612074    xor dx, dx                                ; 31 d2
    1207712075    mov ax, strict word 00040h                ; b8 40 00
    12078     call 078f6h                               ; e8 1e fb
     12076    call 0793ch                               ; e8 1e fb
    1207912077    dec bx                                    ; 4b
    12080     jmp short 07dbdh                          ; eb e2
     12078    jmp short 07e03h                          ; eb e2
    1208112079    mov bx, 00a49h                            ; bb 49 0a
    1208212080    push bx                                   ; 53
    1208312081    mov bx, strict word 00002h                ; bb 02 00
    1208412082    push bx                                   ; 53
    12085     call 01976h                               ; e8 90 9b
     12083    call 01976h                               ; e8 4a 9b
    1208612084    add sp, strict byte 00004h                ; 83 c4 04
    1208712085    mov AL, strict byte 034h                  ; b0 34
     
    1209412092    push DS                                   ; 1e
    1209512093    mov ds, ax                                ; 8e d8
    12096     call 0ede3h                               ; e8 e9 6f
     12094    call 0ede3h                               ; e8 a3 6f
    1209712095    pop DS                                    ; 1f
    1209812096    pop bp                                    ; 5d
     
    1210512103    pop bp                                    ; 5d
    1210612104    retn                                      ; c3
    12107 scsi_cmd_data_in_:                           ; 0xf7e06 LB 0xd5
     12105scsi_cmd_data_in_:                           ; 0xf7e4c LB 0xd5
    1210812106    push bp                                   ; 55
    1210912107    mov bp, sp                                ; 89 e5
     
    1212112119    ; sub ah, ah                                ; 2a e4
    1212212120    test AL, strict byte 001h                 ; a8 01
    12123     jne short 07e1ch                          ; 75 f7
     12121    jne short 07e62h                          ; 75 f7
    1212412122    mov al, byte [bp+004h]                    ; 8a 46 04
    1212512123    cmp AL, strict byte 010h                  ; 3c 10
    12126     jne short 07e30h                          ; 75 04
     12124    jne short 07e76h                          ; 75 04
    1212712125    xor ax, ax                                ; 31 c0
    12128     jmp short 07e32h                          ; eb 02
     12126    jmp short 07e78h                          ; eb 02
    1212912127    xor ah, ah                                ; 30 e4
    1213012128    mov di, ax                                ; 89 c7
     
    1213412132    shr dx, 1                                 ; d1 ea
    1213512133    rcr ax, 1                                 ; d1 d8
    12136     loop 07e3ch                               ; e2 fa
     12134    loop 07e82h                               ; e2 fa
    1213712135    mov cx, ax                                ; 89 c1
    1213812136    and cx, 000f0h                            ; 81 e1 f0 00
     
    1215212150    shr dx, 1                                 ; d1 ea
    1215312151    rcr ax, 1                                 ; d1 d8
    12154     loop 07e61h                               ; e2 fa
     12152    loop 07ea7h                               ; e2 fa
    1215512153    mov dx, si                                ; 89 f2
    1215612154    out DX, AL                                ; ee
     
    1215912157    xor ah, ah                                ; 30 e4
    1216012158    cmp cx, ax                                ; 39 c1
    12161     jnc short 07e83h                          ; 73 0e
     12159    jnc short 07ec9h                          ; 73 0e
    1216212160    les di, [bp-00ah]                         ; c4 7e f6
    1216312161    add di, cx                                ; 01 cf
     
    1216612164    out DX, AL                                ; ee
    1216712165    inc cx                                    ; 41
    12168     jmp short 07e6ch                          ; eb e9
     12166    jmp short 07eb2h                          ; eb e9
    1216912167    mov dx, si                                ; 89 f2
    1217012168    in AL, DX                                 ; ec
     
    1217212170    ; sub ah, ah                                ; 2a e4
    1217312171    test AL, strict byte 001h                 ; a8 01
    12174     jne short 07e83h                          ; 75 f7
     12172    jne short 07ec9h                          ; 75 f7
    1217512173    test AL, strict byte 002h                 ; a8 02
    12176     je short 07e9eh                           ; 74 0e
     12174    je short 07ee4h                           ; 74 0e
    1217712175    lea dx, [si+003h]                         ; 8d 54 03
    1217812176    xor al, al                                ; 30 c0
     
    1218212180    ; sub ah, ah                                ; 2a e4
    1218312181    mov di, strict word 00004h                ; bf 04 00
    12184     jmp short 07ed0h                          ; eb 32
     12182    jmp short 07f16h                          ; eb 32
    1218512183    lea dx, [si+001h]                         ; 8d 54 01
    1218612184    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12187     jne short 07eadh                          ; 75 06
     12185    jne short 07ef3h                          ; 75 06
    1218812186    cmp bx, 08000h                            ; 81 fb 00 80
    12189     jbe short 07ec7h                          ; 76 1a
     12187    jbe short 07f0dh                          ; 76 1a
    1219012188    mov cx, 08000h                            ; b9 00 80
    1219112189    les di, [bp+006h]                         ; c4 7e 06
     
    1219612194    add ax, 00800h                            ; 05 00 08
    1219712195    mov word [bp+008h], ax                    ; 89 46 08
    12198     jmp short 07e9eh                          ; eb d7
     12196    jmp short 07ee4h                          ; eb d7
    1219912197    mov cx, bx                                ; 89 d9
    1220012198    les di, [bp+006h]                         ; c4 7e 06
     
    1220712205    pop bp                                    ; 5d
    1220812206    retn 0000ah                               ; c2 0a 00
    12209 scsi_cmd_data_out_:                          ; 0xf7edb LB 0xd5
     12207scsi_cmd_data_out_:                          ; 0xf7f21 LB 0xd5
    1221012208    push bp                                   ; 55
    1221112209    mov bp, sp                                ; 89 e5
     
    1222312221    ; sub ah, ah                                ; 2a e4
    1222412222    test AL, strict byte 001h                 ; a8 01
    12225     jne short 07ef1h                          ; 75 f7
     12223    jne short 07f37h                          ; 75 f7
    1222612224    mov al, byte [bp+004h]                    ; 8a 46 04
    1222712225    cmp AL, strict byte 010h                  ; 3c 10
    12228     jne short 07f05h                          ; 75 04
     12226    jne short 07f4bh                          ; 75 04
    1222912227    xor ax, ax                                ; 31 c0
    12230     jmp short 07f07h                          ; eb 02
     12228    jmp short 07f4dh                          ; eb 02
    1223112229    xor ah, ah                                ; 30 e4
    1223212230    mov si, ax                                ; 89 c6
     
    1223612234    shr dx, 1                                 ; d1 ea
    1223712235    rcr ax, 1                                 ; d1 d8
    12238     loop 07f11h                               ; e2 fa
     12236    loop 07f57h                               ; e2 fa
    1223912237    mov cx, ax                                ; 89 c1
    1224012238    and cx, 000f0h                            ; 81 e1 f0 00
     
    1225412252    shr dx, 1                                 ; d1 ea
    1225512253    rcr ax, 1                                 ; d1 d8
    12256     loop 07f36h                               ; e2 fa
     12254    loop 07f7ch                               ; e2 fa
    1225712255    mov dx, di                                ; 89 fa
    1225812256    out DX, AL                                ; ee
     
    1226112259    xor ah, ah                                ; 30 e4
    1226212260    cmp cx, ax                                ; 39 c1
    12263     jnc short 07f58h                          ; 73 0e
     12261    jnc short 07f9eh                          ; 73 0e
    1226412262    les si, [bp-00ah]                         ; c4 76 f6
    1226512263    add si, cx                                ; 01 ce
     
    1226812266    out DX, AL                                ; ee
    1226912267    inc cx                                    ; 41
    12270     jmp short 07f41h                          ; eb e9
     12268    jmp short 07f87h                          ; eb e9
    1227112269    lea dx, [di+001h]                         ; 8d 55 01
    1227212270    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    12273     jne short 07f67h                          ; 75 06
     12271    jne short 07fadh                          ; 75 06
    1227412272    cmp bx, 08000h                            ; 81 fb 00 80
    12275     jbe short 07f82h                          ; 76 1b
     12273    jbe short 07fc8h                          ; 76 1b
    1227612274    mov cx, 08000h                            ; b9 00 80
    1227712275    les si, [bp+006h]                         ; c4 76 06
     
    1228312281    add ax, 00800h                            ; 05 00 08
    1228412282    mov word [bp+008h], ax                    ; 89 46 08
    12285     jmp short 07f58h                          ; eb d6
     12283    jmp short 07f9eh                          ; eb d6
    1228612284    mov cx, bx                                ; 89 d9
    1228712285    les si, [bp+006h]                         ; c4 76 06
     
    1229312291    ; sub ah, ah                                ; 2a e4
    1229412292    test AL, strict byte 001h                 ; a8 01
    12295     jne short 07f8ah                          ; 75 f7
     12293    jne short 07fd0h                          ; 75 f7
    1229612294    test AL, strict byte 002h                 ; a8 02
    12297     je short 07fa5h                           ; 74 0e
     12295    je short 07febh                           ; 74 0e
    1229812296    lea dx, [di+003h]                         ; 8d 55 03
    1229912297    xor al, al                                ; 30 c0
     
    1230312301    ; sub ah, ah                                ; 2a e4
    1230412302    mov ax, strict word 00004h                ; b8 04 00
    12305     jmp short 07fa7h                          ; eb 02
     12303    jmp short 07fedh                          ; eb 02
    1230612304    xor ax, ax                                ; 31 c0
    1230712305    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1231012308    pop bp                                    ; 5d
    1231112309    retn 0000ah                               ; c2 0a 00
    12312 @scsi_read_sectors:                          ; 0xf7fb0 LB 0xe9
     12310@scsi_read_sectors:                          ; 0xf7ff6 LB 0xe9
    1231312311    push bp                                   ; 55
    1231412312    mov bp, sp                                ; 89 e5
     
    1232212320    mov byte [bp-006h], al                    ; 88 46 fa
    1232312321    cmp AL, strict byte 004h                  ; 3c 04
    12324     jbe short 07fe0h                          ; 76 15
     12322    jbe short 08026h                          ; 76 15
    1232512323    xor ah, ah                                ; 30 e4
    1232612324    push ax                                   ; 50
     
    1233112329    mov ax, strict word 00007h                ; b8 07 00
    1233212330    push ax                                   ; 50
    12333     call 01976h                               ; e8 99 99
     12331    call 01976h                               ; e8 53 99
    1233412332    add sp, strict byte 00008h                ; 83 c4 08
    1233512333    mov es, [bp+006h]                         ; 8e 46 06
     
    1237212370    sal word [bp-00ah], 1                     ; d1 66 f6
    1237312371    rcl word [bp-008h], 1                     ; d1 56 f8
    12374     loop 0804bh                               ; e2 f8
     12372    loop 08091h                               ; e2 f8
    1237512373    push word [bp-008h]                       ; ff 76 f8
    1237612374    push word [bp-00ah]                       ; ff 76 f6
     
    1238312381    mov cx, ss                                ; 8c d1
    1238412382    lea bx, [bp-01ah]                         ; 8d 5e e6
    12385     call 07e06h                               ; e8 95 fd
     12383    call 07e4ch                               ; e8 95 fd
    1238612384    mov ah, al                                ; 88 c4
    1238712385    test al, al                               ; 84 c0
    12388     jne short 0808ch                          ; 75 15
     12386    jne short 080d2h                          ; 75 15
    1238912387    mov es, [bp+006h]                         ; 8e 46 06
    1239012388    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1240012398    pop bp                                    ; 5d
    1240112399    retn 00004h                               ; c2 04 00
    12402 @scsi_write_sectors:                         ; 0xf8099 LB 0xe9
     12400@scsi_write_sectors:                         ; 0xf80df LB 0xe9
    1240312401    push bp                                   ; 55
    1240412402    mov bp, sp                                ; 89 e5
     
    1241212410    mov byte [bp-006h], al                    ; 88 46 fa
    1241312411    cmp AL, strict byte 004h                  ; 3c 04
    12414     jbe short 080c9h                          ; 76 15
     12412    jbe short 0810fh                          ; 76 15
    1241512413    xor ah, ah                                ; 30 e4
    1241612414    push ax                                   ; 50
     
    1242112419    mov ax, strict word 00007h                ; b8 07 00
    1242212420    push ax                                   ; 50
    12423     call 01976h                               ; e8 b0 98
     12421    call 01976h                               ; e8 6a 98
    1242412422    add sp, strict byte 00008h                ; 83 c4 08
    1242512423    mov es, [bp+006h]                         ; 8e 46 06
     
    1246212460    sal word [bp-00ah], 1                     ; d1 66 f6
    1246312461    rcl word [bp-008h], 1                     ; d1 56 f8
    12464     loop 08134h                               ; e2 f8
     12462    loop 0817ah                               ; e2 f8
    1246512463    push word [bp-008h]                       ; ff 76 f8
    1246612464    push word [bp-00ah]                       ; ff 76 f6
     
    1247312471    mov cx, ss                                ; 8c d1
    1247412472    lea bx, [bp-01ah]                         ; 8d 5e e6
    12475     call 07edbh                               ; e8 81 fd
     12473    call 07f21h                               ; e8 81 fd
    1247612474    mov ah, al                                ; 88 c4
    1247712475    test al, al                               ; 84 c0
    12478     jne short 08175h                          ; 75 15
     12476    jne short 081bbh                          ; 75 15
    1247912477    mov es, [bp+006h]                         ; 8e 46 06
    1248012478    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1249012488    pop bp                                    ; 5d
    1249112489    retn 00004h                               ; c2 04 00
    12492 scsi_cmd_packet_:                            ; 0xf8182 LB 0x170
     12490scsi_cmd_packet_:                            ; 0xf81c8 LB 0x170
    1249312491    push bp                                   ; 55
    1249412492    mov bp, sp                                ; 89 e5
     
    1250212500    mov dx, strict word 0000eh                ; ba 0e 00
    1250312501    mov ax, strict word 00040h                ; b8 40 00
    12504     call 0166eh                               ; e8 d0 94
     12502    call 0166eh                               ; e8 8a 94
    1250512503    mov si, 00122h                            ; be 22 01
    1250612504    mov word [bp-00ch], ax                    ; 89 46 f4
    1250712505    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12508     jne short 081cdh                          ; 75 23
     12506    jne short 08213h                          ; 75 23
    1250912507    mov bx, 00da0h                            ; bb a0 0d
    1251012508    mov cx, ds                                ; 8c d9
    1251112509    mov ax, strict word 00004h                ; b8 04 00
    12512     call 01933h                               ; e8 7e 97
     12510    call 01933h                               ; e8 38 97
    1251312511    mov ax, 00b62h                            ; b8 62 0b
    1251412512    push ax                                   ; 50
     
    1251712515    mov ax, strict word 00004h                ; b8 04 00
    1251812516    push ax                                   ; 50
    12519     call 01976h                               ; e8 b2 97
     12517    call 01976h                               ; e8 6c 97
    1252012518    add sp, strict byte 00006h                ; 83 c4 06
    1252112519    mov dx, strict word 00001h                ; ba 01 00
    12522     jmp near 082e7h                           ; e9 1a 01
     12520    jmp near 0832dh                           ; e9 1a 01
    1252312521    sub di, strict byte 00008h                ; 83 ef 08
    1252412522    sal di, 1                                 ; d1 e7
     
    1253512533    ; sub ah, ah                                ; 2a e4
    1253612534    test AL, strict byte 001h                 ; a8 01
    12537     jne short 081eah                          ; 75 f7
     12535    jne short 08230h                          ; 75 f7
    1253812536    xor dx, bx                                ; 31 da
    1253912537    mov ax, word [bp+006h]                    ; 8b 46 06
     
    1255112549    shr dx, 1                                 ; d1 ea
    1255212550    rcr ax, 1                                 ; d1 d8
    12553     loop 08215h                               ; e2 fa
     12551    loop 0825bh                               ; e2 fa
    1255412552    and ax, 000f0h                            ; 25 f0 00
    1255512553    mov cl, byte [bp-006h]                    ; 8a 4e fa
     
    1257012568    shr dx, 1                                 ; d1 ea
    1257112569    rcr ax, 1                                 ; d1 d8
    12572     loop 0823dh                               ; e2 fa
     12570    loop 08283h                               ; e2 fa
    1257312571    mov dx, bx                                ; 89 da
    1257412572    out DX, AL                                ; ee
     
    1257712575    xor ah, ah                                ; 30 e4
    1257812576    cmp cx, ax                                ; 39 c1
    12579     jnc short 08262h                          ; 73 11
     12577    jnc short 082a8h                          ; 73 11
    1258012578    mov es, [bp-00ah]                         ; 8e 46 f6
    1258112579    mov di, word [bp-00eh]                    ; 8b 7e f2
     
    1258512583    out DX, AL                                ; ee
    1258612584    inc cx                                    ; 41
    12587     jmp short 08248h                          ; eb e6
     12585    jmp short 0828eh                          ; eb e6
    1258812586    mov dx, bx                                ; 89 da
    1258912587    in AL, DX                                 ; ec
     
    1259112589    ; sub ah, ah                                ; 2a e4
    1259212590    test AL, strict byte 001h                 ; a8 01
    12593     jne short 08262h                          ; 75 f7
     12591    jne short 082a8h                          ; 75 f7
    1259412592    test AL, strict byte 002h                 ; a8 02
    12595     je short 0827dh                           ; 74 0e
     12593    je short 082c3h                           ; 74 0e
    1259612594    lea dx, [bx+003h]                         ; 8d 57 03
    1259712595    xor al, al                                ; 30 c0
     
    1260112599    ; sub ah, ah                                ; 2a e4
    1260212600    mov dx, strict word 00003h                ; ba 03 00
    12603     jmp short 082e7h                          ; eb 6a
     12601    jmp short 0832dh                          ; eb 6a
    1260412602    mov ax, word [bp+004h]                    ; 8b 46 04
    1260512603    test ax, ax                               ; 85 c0
    12606     je short 0828ch                           ; 74 08
     12604    je short 082d2h                           ; 74 08
    1260712605    lea dx, [bx+001h]                         ; 8d 57 01
    1260812606    mov cx, ax                                ; 89 c1
    1260912607    in AL, DX                                 ; ec
    12610     loop 08289h                               ; e2 fd
     12608    loop 082cfh                               ; e2 fd
    1261112609    mov ax, word [bp+006h]                    ; 8b 46 06
    1261212610    mov es, [bp-00ch]                         ; 8e 46 f4
     
    1261612614    lea ax, [bx+001h]                         ; 8d 47 01
    1261712615    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12618     jne short 082adh                          ; 75 07
     12616    jne short 082f3h                          ; 75 07
    1261912617    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12620     jbe short 082cah                          ; 76 1d
     12618    jbe short 08310h                          ; 76 1d
    1262112619    mov dx, ax                                ; 89 c2
    1262212620    mov cx, 08000h                            ; b9 00 80
     
    1262812626    add ax, 00800h                            ; 05 00 08
    1262912627    mov word [bp+00eh], ax                    ; 89 46 0e
    12630     jmp short 0829dh                          ; eb d3
     12628    jmp short 082e3h                          ; eb d3
    1263112629    mov dx, ax                                ; 89 c2
    1263212630    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1263512633    mov es, [bp-00ch]                         ; 8e 46 f4
    1263612634    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12637     je short 082e5h                           ; 74 07
     12635    je short 0832bh                           ; 74 07
    1263812636    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1263912637    in AL, DX                                 ; ec
    12640     loop 082e2h                               ; e2 fd
     12638    loop 08328h                               ; e2 fd
    1264112639    xor dx, dx                                ; 31 d2
    1264212640    mov ax, dx                                ; 89 d0
     
    1264612644    pop bp                                    ; 5d
    1264712645    retn 0000ch                               ; c2 0c 00
    12648 scsi_enumerate_attached_devices_:            ; 0xf82f2 LB 0x4cb
     12646scsi_enumerate_attached_devices_:            ; 0xf8338 LB 0x4cb
    1264912647    push bp                                   ; 55
    1265012648    mov bp, sp                                ; 89 e5
     
    1265812656    mov dx, strict word 0000eh                ; ba 0e 00
    1265912657    mov ax, strict word 00040h                ; b8 40 00
    12660     call 0166eh                               ; e8 66 93
     12658    call 0166eh                               ; e8 20 93
    1266112659    mov di, 00122h                            ; bf 22 01
    1266212660    mov word [bp-016h], ax                    ; 89 46 ea
    1266312661    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
    12664     jmp near 08730h                           ; e9 1a 04
     12662    jmp near 08776h                           ; e9 1a 04
    1266512663    cmp AL, strict byte 004h                  ; 3c 04
    12666     jc short 0831dh                           ; 72 03
    12667     jmp near 087b3h                           ; e9 96 04
     12664    jc short 08363h                           ; 72 03
     12665    jmp near 087f9h                           ; e9 96 04
    1266812666    mov cx, strict word 00010h                ; b9 10 00
    1266912667    xor bx, bx                                ; 31 db
    1267012668    mov dx, ss                                ; 8c d2
    1267112669    lea ax, [bp-048h]                         ; 8d 46 b8
    12672     call 0a080h                               ; e8 56 1d
     12670    call 0a0c0h                               ; e8 50 1d
    1267312671    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
    1267412672    mov byte [bp-047h], 010h                  ; c6 46 b9 10
     
    1268812686    lea bx, [bp-048h]                         ; 8d 5e b8
    1268912687    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    12690     call 07e06h                               ; e8 ae fa
     12688    call 07e4ch                               ; e8 ae fa
    1269112689    test al, al                               ; 84 c0
    12692     je short 0836eh                           ; 74 12
     12690    je short 083b4h                           ; 74 12
    1269312691    mov ax, 00b92h                            ; b8 92 0b
    1269412692    push ax                                   ; 50
     
    1269712695    mov ax, strict word 00007h                ; b8 07 00
    1269812696    push ax                                   ; 50
    12699     call 01976h                               ; e8 0b 96
     12697    call 01976h                               ; e8 c5 95
    1270012698    add sp, strict byte 00006h                ; 83 c4 06
    1270112699    mov ax, word [bp-00242h]                  ; 8b 86 be fd
     
    1272912727    sal ax, 1                                 ; d1 e0
    1273012728    rcl dx, 1                                 ; d1 d2
    12731     loop 083bch                               ; e2 fa
     12729    loop 08402h                               ; e2 fa
    1273212730    or bx, ax                                 ; 09 c3
    1273312731    or dx, si                                 ; 09 f2
     
    1273712735    mov word [bp-01ch], bx                    ; 89 5e e4
    1273812736    test dx, dx                               ; 85 d2
    12739     jne short 083dbh                          ; 75 06
     12737    jne short 08421h                          ; 75 06
    1274012738    cmp bx, 00200h                            ; 81 fb 00 02
    12741     je short 083feh                           ; 74 23
     12739    je short 08444h                           ; 74 23
    1274212740    mov bx, 00da0h                            ; bb a0 0d
    1274312741    mov cx, ds                                ; 8c d9
    1274412742    mov ax, strict word 00004h                ; b8 04 00
    12745     call 01933h                               ; e8 4d 95
     12743    call 01933h                               ; e8 07 95
    1274612744    push dx                                   ; 52
    1274712745    push word [bp-01ch]                       ; ff 76 e4
     
    1275112749    mov ax, strict word 00004h                ; b8 04 00
    1275212750    push ax                                   ; 50
    12753     call 01976h                               ; e8 7e 95
     12751    call 01976h                               ; e8 38 95
    1275412752    add sp, strict byte 0000ah                ; 83 c4 0a
    12755     jmp near 08724h                           ; e9 26 03
     12753    jmp near 0876ah                           ; e9 26 03
    1275612754    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1275712755    cmp AL, strict byte 001h                  ; 3c 01
    12758     jc short 08411h                           ; 72 0c
    12759     jbe short 08419h                          ; 76 12
     12756    jc short 08457h                           ; 72 0c
     12757    jbe short 0845fh                          ; 76 12
    1276012758    cmp AL, strict byte 003h                  ; 3c 03
    12761     je short 08421h                           ; 74 16
     12759    je short 08467h                           ; 74 16
    1276212760    cmp AL, strict byte 002h                  ; 3c 02
    12763     je short 0841dh                           ; 74 0e
    12764     jmp short 08468h                          ; eb 57
     12761    je short 08463h                           ; 74 0e
     12762    jmp short 084aeh                          ; eb 57
    1276512763    test al, al                               ; 84 c0
    12766     jne short 08468h                          ; 75 53
     12764    jne short 084aeh                          ; 75 53
    1276712765    mov BL, strict byte 090h                  ; b3 90
    12768     jmp short 08423h                          ; eb 0a
     12766    jmp short 08469h                          ; eb 0a
    1276912767    mov BL, strict byte 098h                  ; b3 98
    12770     jmp short 08423h                          ; eb 06
     12768    jmp short 08469h                          ; eb 06
    1277112769    mov BL, strict byte 0a0h                  ; b3 a0
    12772     jmp short 08423h                          ; eb 02
     12770    jmp short 08469h                          ; eb 02
    1277312771    mov BL, strict byte 0a8h                  ; b3 a8
    1277412772    mov cl, bl                                ; 88 d9
     
    1277612774    xor ch, ch                                ; 30 ed
    1277712775    mov ax, cx                                ; 89 c8
    12778     call 016aeh                               ; e8 7f 92
     12776    call 016aeh                               ; e8 39 92
    1277912777    test al, al                               ; 84 c0
    12780     je short 08468h                           ; 74 35
     12778    je short 084aeh                           ; 74 35
    1278112779    mov al, bl                                ; 88 d8
    1278212780    db  0feh, 0c0h
    1278312781    ; inc al                                    ; fe c0
    1278412782    xor ah, ah                                ; 30 e4
    12785     call 016aeh                               ; e8 72 92
     12783    call 016aeh                               ; e8 2c 92
    1278612784    mov dh, al                                ; 88 c6
    1278712785    mov al, bl                                ; 88 d8
    1278812786    xor ah, ah                                ; 30 e4
    12789     call 016aeh                               ; e8 69 92
     12787    call 016aeh                               ; e8 23 92
    1279012788    mov ah, dh                                ; 88 f4
    1279112789    cwd                                       ; 99
     
    1279512793    add AL, strict byte 002h                  ; 04 02
    1279612794    xor ah, ah                                ; 30 e4
    12797     call 016aeh                               ; e8 58 92
     12795    call 016aeh                               ; e8 12 92
    1279812796    xor ah, ah                                ; 30 e4
    1279912797    mov word [bp-028h], ax                    ; 89 46 d8
    1280012798    mov ax, cx                                ; 89 c8
    12801     call 016aeh                               ; e8 4e 92
     12799    call 016aeh                               ; e8 08 92
    1280212800    xor ah, ah                                ; 30 e4
    1280312801    mov word [bp-01ah], ax                    ; 89 46 e6
    12804     jmp near 08555h                           ; e9 ed 00
     12802    jmp near 0859bh                           ; e9 ed 00
    1280512803    mov ax, word [bp-020h]                    ; 8b 46 e0
    1280612804    mov bx, word [bp-022h]                    ; 8b 5e de
     
    1280812806    mov dx, word [bp-024h]                    ; 8b 56 dc
    1280912807    mov si, strict word 0000ch                ; be 0c 00
    12810     call 0a060h                               ; e8 e6 1b
     12808    call 0a0a0h                               ; e8 e0 1b
    1281112809    mov word [bp-02ah], ax                    ; 89 46 d6
    1281212810    mov word [bp-02ch], bx                    ; 89 5e d4
     
    1281512813    mov ax, word [bp-020h]                    ; 8b 46 e0
    1281612814    test ax, ax                               ; 85 c0
    12817     jnbe short 084a2h                         ; 77 15
    12818     je short 08492h                           ; 74 03
    12819     jmp near 08515h                           ; e9 83 00
     12815    jnbe short 084e8h                         ; 77 15
     12816    je short 084d8h                           ; 74 03
     12817    jmp near 0855bh                           ; e9 83 00
    1282012818    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12821     jnbe short 084a2h                         ; 77 0a
    12822     jne short 0848fh                          ; 75 f5
     12819    jnbe short 084e8h                         ; 77 0a
     12820    jne short 084d5h                          ; 75 f5
    1282312821    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12824     jnbe short 084a2h                         ; 77 02
    12825     jne short 08515h                          ; 75 73
     12822    jnbe short 084e8h                         ; 77 02
     12823    jne short 0855bh                          ; 75 73
    1282612824    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
    1282712825    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
     
    1283012828    mov dx, word [bp-024h]                    ; 8b 56 dc
    1283112829    mov si, strict word 00006h                ; be 06 00
    12832     call 0a060h                               ; e8 a5 1b
     12830    call 0a0a0h                               ; e8 9f 1b
    1283312831    mov si, word [bp-018h]                    ; 8b 76 e8
    1283412832    add si, dx                                ; 01 d6
     
    1284812846    mov dx, si                                ; 89 f2
    1284912847    mov si, strict word 00008h                ; be 08 00
    12850     call 0a060h                               ; e8 75 1b
     12848    call 0a0a0h                               ; e8 6f 1b
    1285112849    mov word [bp-02eh], bx                    ; 89 5e d2
    1285212850    mov word [bp-030h], cx                    ; 89 4e d0
     
    1285712855    mov dx, word [bp-01eh]                    ; 8b 56 e2
    1285812856    mov si, strict word 00010h                ; be 10 00
    12859     call 0a060h                               ; e8 5a 1b
     12857    call 0a0a0h                               ; e8 54 1b
    1286012858    mov si, word [bp-032h]                    ; 8b 76 ce
    1286112859    add si, dx                                ; 01 d6
     
    1286312861    mov ax, word [bp-02eh]                    ; 8b 46 d2
    1286412862    adc ax, bx                                ; 11 d8
    12865     jmp short 08552h                          ; eb 3d
     12863    jmp short 08598h                          ; eb 3d
    1286612864    test ax, ax                               ; 85 c0
    12867     jnbe short 0852bh                         ; 77 12
    12868     jne short 08537h                          ; 75 1c
     12865    jnbe short 08571h                         ; 77 12
     12866    jne short 0857dh                          ; 75 1c
    1286912867    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
    12870     jnbe short 0852bh                         ; 77 0a
    12871     jne short 08537h                          ; 75 14
     12868    jnbe short 08571h                         ; 77 0a
     12869    jne short 0857dh                          ; 75 14
    1287212870    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12873     jnbe short 0852bh                         ; 77 02
    12874     jne short 08537h                          ; 75 0c
     12871    jnbe short 08571h                         ; 77 02
     12872    jne short 0857dh                          ; 75 0c
    1287512873    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
    1287612874    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
    12877     jmp short 08550h                          ; eb 19
     12875    jmp short 08596h                          ; eb 19
    1287812876    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
    1287912877    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
     
    1288212880    mov dx, word [bp-024h]                    ; 8b 56 dc
    1288312881    mov si, strict word 0000bh                ; be 0b 00
    12884     call 0a060h                               ; e8 10 1b
     12882    call 0a0a0h                               ; e8 0a 1b
    1288512883    mov si, dx                                ; 89 d6
    1288612884    mov word [bp-026h], cx                    ; 89 4e da
     
    1291912917    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1292012918    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
    12921     jne short 085cch                          ; 75 06
     12919    jne short 08612h                          ; 75 06
    1292212920    cmp si, 00400h                            ; 81 fe 00 04
    12923     jbe short 085dah                          ; 76 0e
     12921    jbe short 08620h                          ; 76 0e
    1292412922    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1292512923    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12926     jmp short 085e2h                          ; eb 08
     12924    jmp short 08628h                          ; eb 08
    1292712925    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1292812926    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1293012928    mov cx, ds                                ; 8c d9
    1293112929    mov ax, strict word 00004h                ; b8 04 00
    12932     call 01933h                               ; e8 46 93
     12930    call 01933h                               ; e8 00 93
    1293312931    push word [bp-020h]                       ; ff 76 e0
    1293412932    push word [bp-022h]                       ; ff 76 de
     
    1294712945    mov ax, strict word 00004h                ; b8 04 00
    1294812946    push ax                                   ; 50
    12949     call 01976h                               ; e8 5f 93
     12947    call 01976h                               ; e8 19 93
    1295012948    add sp, strict byte 00018h                ; 83 c4 18
    1295112949    mov al, byte [bp-00eh]                    ; 8a 46 f2
     
    1297612974    mov dx, strict word 00075h                ; ba 75 00
    1297712975    mov ax, strict word 00040h                ; b8 40 00
    12978     call 01652h                               ; e8 e5 8f
     12976    call 01652h                               ; e8 9f 8f
    1297912977    mov bl, al                                ; 88 c3
    1298012978    db  0feh, 0c3h
     
    1298312981    mov dx, strict word 00075h                ; ba 75 00
    1298412982    mov ax, strict word 00040h                ; b8 40 00
    12985     call 01660h                               ; e8 e4 8f
     12983    call 01660h                               ; e8 9e 8f
    1298612984    inc byte [bp-00ch]                        ; fe 46 f4
    12987     jmp near 08719h                           ; e9 97 00
     12985    jmp near 0875fh                           ; e9 97 00
    1298812986    mov bx, 00da0h                            ; bb a0 0d
    1298912987    mov cx, ds                                ; 8c d9
    1299012988    mov ax, strict word 00004h                ; b8 04 00
    12991     call 01933h                               ; e8 a6 92
     12989    call 01933h                               ; e8 60 92
    1299212990    push word [bp-014h]                       ; ff 76 ec
    1299312991    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1299812996    mov ax, strict word 00004h                ; b8 04 00
    1299912997    push ax                                   ; 50
    13000     call 01976h                               ; e8 d5 92
     12998    call 01976h                               ; e8 8f 92
    1300112999    add sp, strict byte 00008h                ; 83 c4 08
    1300213000    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1300413002    mov byte [bp-00eh], al                    ; 88 46 f2
    1300513003    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
    13006     je short 086b8h                           ; 74 05
     13004    je short 086feh                           ; 74 05
    1300713005    mov cx, strict word 00001h                ; b9 01 00
    13008     jmp short 086bah                          ; eb 02
     13006    jmp short 08700h                          ; eb 02
    1300913007    xor cx, cx                                ; 31 c9
    1301013008    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1304413042    inc word [bp-014h]                        ; ff 46 ec
    1304513043    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
    13046     jl short 08730h                           ; 7c 03
    13047     jmp near 087b3h                           ; e9 83 00
     13044    jl short 08776h                           ; 7c 03
     13045    jmp near 087f9h                           ; e9 83 00
    1304813046    mov byte [bp-048h], 012h                  ; c6 46 b8 12
    1304913047    xor al, al                                ; 30 c0
     
    1306713065    lea bx, [bp-048h]                         ; 8d 5e b8
    1306813066    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
    13069     call 07e06h                               ; e8 9e f6
     13067    call 07e4ch                               ; e8 9e f6
    1307013068    test al, al                               ; 84 c0
    13071     je short 0877eh                           ; 74 12
     13069    je short 087c4h                           ; 74 12
    1307213070    mov ax, 00b92h                            ; b8 92 0b
    1307313071    push ax                                   ; 50
     
    1307613074    mov ax, strict word 00007h                ; b8 07 00
    1307713075    push ax                                   ; 50
    13078     call 01976h                               ; e8 fb 91
     13076    call 01976h                               ; e8 b5 91
    1307913077    add sp, strict byte 00006h                ; 83 c4 06
    1308013078    mov es, [bp-016h]                         ; 8e 46 ea
     
    1308213080    mov byte [bp-00ch], al                    ; 88 46 f4
    1308313081    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13084     jne short 0879ah                          ; 75 0a
     13082    jne short 087e0h                          ; 75 0a
    1308513083    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
    13086     jne short 0879ah                          ; 75 03
    13087     jmp near 08316h                           ; e9 7c fb
     13084    jne short 087e0h                          ; 75 03
     13085    jmp near 0835ch                           ; e9 7c fb
    1308813086    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
    13089     je short 087a4h                           ; 74 03
    13090     jmp near 08719h                           ; e9 75 ff
     13087    je short 087eah                           ; 74 03
     13088    jmp near 0875fh                           ; e9 75 ff
    1309113089    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
    1309213090    and AL, strict byte 01fh                  ; 24 1f
    1309313091    cmp AL, strict byte 005h                  ; 3c 05
    13094     jne short 087b1h                          ; 75 03
    13095     jmp near 08682h                           ; e9 d1 fe
    13096     jmp short 087a1h                          ; eb ee
     13092    jne short 087f7h                          ; 75 03
     13093    jmp near 086c8h                           ; e9 d1 fe
     13094    jmp short 087e7h                          ; eb ee
    1309713095    lea sp, [bp-00ah]                         ; 8d 66 f6
    1309813096    pop di                                    ; 5f
     
    1310313101    pop bp                                    ; 5d
    1310413102    retn                                      ; c3
    13105 _scsi_init:                                  ; 0xf87bd LB 0x66
     13103_scsi_init:                                  ; 0xf8803 LB 0x66
    1310613104    push bp                                   ; 55
    1310713105    mov bp, sp                                ; 89 e5
    1310813106    mov dx, strict word 0000eh                ; ba 0e 00
    1310913107    mov ax, strict word 00040h                ; b8 40 00
    13110     call 0166eh                               ; e8 a5 8e
     13108    call 0166eh                               ; e8 5f 8e
    1311113109    mov bx, 00122h                            ; bb 22 01
    1311213110    mov es, ax                                ; 8e c0
     
    1311913117    ; sub ah, ah                                ; 2a e4
    1312013118    cmp AL, strict byte 055h                  ; 3c 55
    13121     jne short 087edh                          ; 75 0c
     13119    jne short 08833h                          ; 75 0c
    1312213120    xor al, al                                ; 30 c0
    1312313121    mov dx, 00433h                            ; ba 33 04
    1312413122    out DX, AL                                ; ee
    1312513123    mov ax, 00430h                            ; b8 30 04
    13126     call 082f2h                               ; e8 05 fb
     13124    call 08338h                               ; e8 05 fb
    1312713125    mov AL, strict byte 055h                  ; b0 55
    1312813126    mov dx, 00436h                            ; ba 36 04
     
    1313213130    ; sub ah, ah                                ; 2a e4
    1313313131    cmp AL, strict byte 055h                  ; 3c 55
    13134     jne short 08806h                          ; 75 0c
     13132    jne short 0884ch                          ; 75 0c
    1313513133    xor al, al                                ; 30 c0
    1313613134    mov dx, 00437h                            ; ba 37 04
    1313713135    out DX, AL                                ; ee
    1313813136    mov ax, 00434h                            ; b8 34 04
    13139     call 082f2h                               ; e8 ec fa
     13137    call 08338h                               ; e8 ec fa
    1314013138    mov AL, strict byte 055h                  ; b0 55
    1314113139    mov dx, 0043ah                            ; ba 3a 04
     
    1314513143    ; sub ah, ah                                ; 2a e4
    1314613144    cmp AL, strict byte 055h                  ; 3c 55
    13147     jne short 0881fh                          ; 75 0c
     13145    jne short 08865h                          ; 75 0c
    1314813146    xor al, al                                ; 30 c0
    1314913147    mov dx, 0043bh                            ; ba 3b 04
    1315013148    out DX, AL                                ; ee
    1315113149    mov ax, 00438h                            ; b8 38 04
    13152     call 082f2h                               ; e8 d3 fa
     13150    call 08338h                               ; e8 d3 fa
    1315313151    mov sp, bp                                ; 89 ec
    1315413152    pop bp                                    ; 5d
    1315513153    retn                                      ; c3
    13156 ahci_ctrl_extract_bits_:                     ; 0xf8823 LB 0x1c
     13154ahci_ctrl_extract_bits_:                     ; 0xf8869 LB 0x1c
    1315713155    push si                                   ; 56
    1315813156    push bp                                   ; 55
     
    1316313161    mov cl, byte [bp+006h]                    ; 8a 4e 06
    1316413162    xor ch, ch                                ; 30 ed
    13165     jcxz 0883ah                               ; e3 06
     13163    jcxz 08880h                               ; e3 06
    1316613164    shr dx, 1                                 ; d1 ea
    1316713165    rcr ax, 1                                 ; d1 d8
    13168     loop 08834h                               ; e2 fa
     13166    loop 0887ah                               ; e2 fa
    1316913167    pop bp                                    ; 5d
    1317013168    pop si                                    ; 5e
    1317113169    retn 00002h                               ; c2 02 00
    13172 ahci_addr_to_phys_:                          ; 0xf883f LB 0x1e
     13170ahci_addr_to_phys_:                          ; 0xf8885 LB 0x1e
    1317313171    push bx                                   ; 53
    1317413172    push cx                                   ; 51
     
    1318113179    sal ax, 1                                 ; d1 e0
    1318213180    rcl dx, 1                                 ; d1 d2
    13183     loop 0884dh                               ; e2 fa
     13181    loop 08893h                               ; e2 fa
    1318413182    xor cx, cx                                ; 31 c9
    1318513183    add ax, bx                                ; 01 d8
     
    1318913187    pop bx                                    ; 5b
    1319013188    retn                                      ; c3
    13191 ahci_port_cmd_sync_:                         ; 0xf885d LB 0x159
     13189ahci_port_cmd_sync_:                         ; 0xf88a3 LB 0x159
    1319213190    push bp                                   ; 55
    1319313191    mov bp, sp                                ; 89 e5
     
    1320413202    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1320513203    cmp AL, strict byte 0ffh                  ; 3c ff
    13206     jne short 08880h                          ; 75 03
    13207     jmp near 089aeh                           ; e9 2e 01
     13204    jne short 088c6h                          ; 75 03
     13205    jmp near 089f4h                           ; e9 2e 01
    1320813206    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
    1320913207    xor ah, ah                                ; 30 e4
     
    1321813216    lea ax, [si+00080h]                       ; 8d 84 80 00
    1321913217    mov dx, cx                                ; 89 ca
    13220     call 0883fh                               ; e8 92 ff
     13218    call 08885h                               ; e8 92 ff
    1322113219    mov es, cx                                ; 8e c1
    1322213220    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1328613284    xchg dx, ax                               ; 92
    1328713285    test dh, 040h                             ; f6 c6 40
    13288     jne short 08940h                          ; 75 04
     13286    jne short 08986h                          ; 75 04
    1328913287    test AL, strict byte 001h                 ; a8 01
    13290     je short 08944h                           ; 74 04
     13288    je short 0898ah                           ; 74 04
    1329113289    mov AL, strict byte 001h                  ; b0 01
    13292     jmp short 08946h                          ; eb 02
     13290    jmp short 0898ch                          ; eb 02
    1329313291    xor al, al                                ; 30 c0
    1329413292    test al, al                               ; 84 c0
    13295     je short 08912h                           ; 74 c8
     13293    je short 08958h                           ; 74 c8
    1329613294    mov al, byte [bp-008h]                    ; 8a 46 f8
    1329713295    xor ah, ah                                ; 30 e4
     
    1335013348    pop bp                                    ; 5d
    1335113349    retn                                      ; c3
    13352 ahci_cmd_data_:                              ; 0xf89b6 LB 0x262
     13350ahci_cmd_data_:                              ; 0xf89fc LB 0x262
    1335313351    push bp                                   ; 55
    1335413352    mov bp, sp                                ; 89 e5
     
    1337513373    mov ax, 00080h                            ; b8 80 00
    1337613374    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13377     call 0a080h                               ; e8 8c 16
     13375    call 0a0c0h                               ; e8 86 16
    1337813376    mov es, [bp-00ah]                         ; 8e 46 f6
    1337913377    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1339313391    mov dx, word [es:si]                      ; 26 8b 14
    1339413392    mov si, strict word 00008h                ; be 08 00
    13395     call 0a060h                               ; e8 28 16
     13393    call 0a0a0h                               ; e8 22 16
    1339613394    mov es, [bp-00ah]                         ; 8e 46 f6
    1339713395    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1340413402    mov dx, word [es:si]                      ; 26 8b 14
    1340513403    mov si, strict word 00010h                ; be 10 00
    13406     call 0a060h                               ; e8 02 16
     13404    call 0a0a0h                               ; e8 fc 15
    1340713405    mov es, [bp-00ah]                         ; 8e 46 f6
    1340813406    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1341613414    mov dx, word [es:si]                      ; 26 8b 14
    1341713415    mov si, strict word 00018h                ; be 18 00
    13418     call 0a060h                               ; e8 d6 15
     13416    call 0a0a0h                               ; e8 d0 15
    1341913417    mov es, [bp-00ah]                         ; 8e 46 f6
    1342013418    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1342713425    mov dx, word [es:si]                      ; 26 8b 14
    1342813426    mov si, strict word 00020h                ; be 20 00
    13429     call 0a060h                               ; e8 b0 15
     13427    call 0a0a0h                               ; e8 aa 15
    1343013428    mov es, [bp-00ah]                         ; 8e 46 f6
    1343113429    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1343813436    mov dx, word [es:si]                      ; 26 8b 14
    1343913437    mov si, strict word 00028h                ; be 28 00
    13440     call 0a060h                               ; e8 8a 15
     13438    call 0a0a0h                               ; e8 84 15
    1344113439    mov es, [bp-00ah]                         ; 8e 46 f6
    1344213440    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1345113449    mov bx, word [bp-012h]                    ; 8b 5e ee
    1345213450    xor cx, cx                                ; 31 c9
    13453     call 0a010h                               ; e8 08 15
     13451    call 0a050h                               ; e8 02 15
    1345413452    push dx                                   ; 52
    1345513453    push ax                                   ; 50
     
    1346113459    mov ax, 0026ah                            ; b8 6a 02
    1346213460    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13463     call 09f5fh                               ; e8 3b 14
     13461    call 09fa5h                               ; e8 3b 14
    1346413462    mov es, [bp-00ah]                         ; 8e 46 f6
    1346513463    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
     
    1348513483    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1348613484    test ax, ax                               ; 85 c0
    13487     je short 08bb4h                           ; 74 39
     13485    je short 08bfah                           ; 74 39
    1348813486    dec ax                                    ; 48
    1348913487    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1350313501    mov al, byte [bp-008h]                    ; 8a 46 f8
    1350413502    cmp AL, strict byte 035h                  ; 3c 35
    13505     jne short 08bc1h                          ; 75 06
     13503    jne short 08c07h                          ; 75 06
    1350613504    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13507     jmp short 08bd8h                          ; eb 17
     13505    jmp short 08c1eh                          ; eb 17
    1350813506    cmp AL, strict byte 0a0h                  ; 3c a0
    13509     jne short 08bd4h                          ; 75 0f
     13507    jne short 08c1ah                          ; 75 0f
    1351013508    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1351113509    les bx, [bp-00eh]                         ; c4 5e f2
    1351213510    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13513     jmp short 08bd8h                          ; eb 04
     13511    jmp short 08c1eh                          ; eb 04
    1351413512    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1351513513    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1351813516    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1351913517    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13520     call 0885dh                               ; e8 73 fc
     13518    call 088a3h                               ; e8 73 fc
    1352113519    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1352213520    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1352513523    add ax, 0026ah                            ; 05 6a 02
    1352613524    mov dx, cx                                ; 89 ca
    13527     call 09fd6h                               ; e8 d7 13
     13525    call 0a01ch                               ; e8 d7 13
    1352813526    mov es, cx                                ; 8e c1
    1352913527    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1353013528    test al, al                               ; 84 c0
    13531     je short 08c0eh                           ; 74 05
     13529    je short 08c54h                           ; 74 05
    1353213530    mov ax, strict word 00004h                ; b8 04 00
    13533     jmp short 08c10h                          ; eb 02
     13531    jmp short 08c56h                          ; eb 02
    1353413532    xor ah, ah                                ; 30 e4
    1353513533    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1353913537    pop bp                                    ; 5d
    1354013538    retn                                      ; c3
    13541 ahci_port_deinit_current_:                   ; 0xf8c18 LB 0x183
     13539ahci_port_deinit_current_:                   ; 0xf8c5e LB 0x183
    1354213540    push bp                                   ; 55
    1354313541    mov bp, sp                                ; 89 e5
     
    1355413552    mov byte [bp-00ah], al                    ; 88 46 f6
    1355513553    cmp AL, strict byte 0ffh                  ; 3c ff
    13556     je short 08c9bh                           ; 74 61
     13554    je short 08ce1h                           ; 74 61
    1355713555    xor ah, ah                                ; 30 e4
    1355813556    mov CL, strict byte 007h                  ; b1 07
     
    1360013598    xchg dx, ax                               ; 92
    1360113599    test ax, 0c011h                           ; a9 11 c0
    13602     je short 08c9eh                           ; 74 07
     13600    je short 08ce4h                           ; 74 07
    1360313601    mov AL, strict byte 001h                  ; b0 01
    13604     jmp short 08ca0h                          ; eb 05
    13605     jmp near 08d92h                           ; e9 f4 00
     13602    jmp short 08ce6h                          ; eb 05
     13603    jmp near 08dd8h                           ; e9 f4 00
    1360613604    xor al, al                                ; 30 c0
    1360713605    cmp AL, strict byte 001h                  ; 3c 01
    13608     je short 08c6dh                           ; 74 c9
     13606    je short 08cb3h                           ; 74 c9
    1360913607    mov cx, strict word 00020h                ; b9 20 00
    1361013608    xor bx, bx                                ; 31 db
    1361113609    mov ax, di                                ; 89 f8
    1361213610    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13613     call 0a080h                               ; e8 cf 13
     13611    call 0a0c0h                               ; e8 c9 13
    1361413612    lea ax, [di+00080h]                       ; 8d 85 80 00
    1361513613    mov cx, strict word 00040h                ; b9 40 00
    1361613614    xor bx, bx                                ; 31 db
    1361713615    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13618     call 0a080h                               ; e8 c0 13
     13616    call 0a0c0h                               ; e8 ba 13
    1361913617    lea ax, [di+00200h]                       ; 8d 85 00 02
    1362013618    mov cx, strict word 00060h                ; b9 60 00
    1362113619    xor bx, bx                                ; 31 db
    1362213620    mov dx, word [bp-00eh]                    ; 8b 56 f2
    13623     call 0a080h                               ; e8 b1 13
     13621    call 0a0c0h                               ; e8 ab 13
    1362413622    mov al, byte [bp-00ah]                    ; 8a 46 f6
    1362513623    xor ah, ah                                ; 30 e4
     
    1372713725    pop bp                                    ; 5d
    1372813726    retn                                      ; c3
    13729 ahci_port_init_:                             ; 0xf8d9b LB 0x250
     13727ahci_port_init_:                             ; 0xf8de1 LB 0x250
    1373013728    push bp                                   ; 55
    1373113729    mov bp, sp                                ; 89 e5
     
    1373713735    mov word [bp-00ah], dx                    ; 89 56 f6
    1373813736    mov byte [bp-008h], bl                    ; 88 5e f8
    13739     call 08c18h                               ; e8 69 fe
     13737    call 08c5eh                               ; e8 69 fe
    1374013738    mov al, bl                                ; 88 d8
    1374113739    xor ah, ah                                ; 30 e4
     
    1378813786    xchg dx, ax                               ; 92
    1378913787    test ax, 0c011h                           ; a9 11 c0
    13790     je short 08e22h                           ; 74 04
     13788    je short 08e68h                           ; 74 04
    1379113789    mov AL, strict byte 001h                  ; b0 01
    13792     jmp short 08e24h                          ; eb 02
     13790    jmp short 08e6ah                          ; eb 02
    1379313791    xor al, al                                ; 30 c0
    1379413792    cmp AL, strict byte 001h                  ; 3c 01
    13795     je short 08dech                           ; 74 c4
     13793    je short 08e32h                           ; 74 c4
    1379613794    mov cx, strict word 00020h                ; b9 20 00
    1379713795    xor bx, bx                                ; 31 db
    1379813796    mov ax, si                                ; 89 f0
    1379913797    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13800     call 0a080h                               ; e8 4b 12
     13798    call 0a0c0h                               ; e8 45 12
    1380113799    lea ax, [si+00080h]                       ; 8d 84 80 00
    1380213800    mov cx, strict word 00040h                ; b9 40 00
    1380313801    xor bx, bx                                ; 31 db
    1380413802    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13805     call 0a080h                               ; e8 3c 12
     13803    call 0a0c0h                               ; e8 36 12
    1380613804    lea di, [si+00200h]                       ; 8d bc 00 02
    1380713805    mov cx, strict word 00060h                ; b9 60 00
     
    1380913807    mov ax, di                                ; 89 f8
    1381013808    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13811     call 0a080h                               ; e8 2b 12
     13809    call 0a0c0h                               ; e8 25 12
    1381213810    mov bl, byte [bp-008h]                    ; 8a 5e f8
    1381313811    xor bh, bh                                ; 30 ff
     
    1382813826    mov ax, di                                ; 89 f8
    1382913827    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13830     call 0883fh                               ; e8 bb f9
     13828    call 08885h                               ; e8 bb f9
    1383113829    mov es, [bp-00ah]                         ; 8e 46 f6
    1383213830    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1387313871    mov ax, si                                ; 89 f0
    1387413872    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13875     call 0883fh                               ; e8 4f f9
     13873    call 08885h                               ; e8 4f f9
    1387613874    mov es, [bp-00ah]                         ; 8e 46 f6
    1387713875    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1397813976    pop bp                                    ; 5d
    1397913977    retn                                      ; c3
    13980 @ahci_read_sectors:                          ; 0xf8feb LB 0xaa
     13978@ahci_read_sectors:                          ; 0xf9031 LB 0xaa
    1398113979    push bp                                   ; 55
    1398213980    mov bp, sp                                ; 89 e5
     
    1398913987    sub di, strict byte 0000ch                ; 83 ef 0c
    1399013988    cmp di, strict byte 00004h                ; 83 ff 04
    13991     jbe short 09016h                          ; 76 13
     13989    jbe short 0905ch                          ; 76 13
    1399213990    push di                                   ; 57
    1399313991    mov ax, 00c62h                            ; b8 62 0c
     
    1399713995    mov ax, strict word 00007h                ; b8 07 00
    1399813996    push ax                                   ; 50
    13999     call 01976h                               ; e8 63 89
     13997    call 01976h                               ; e8 1d 89
    1400013998    add sp, strict byte 00008h                ; 83 c4 08
    1400113999    xor bx, bx                                ; 31 db
     
    1401114009    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1401214010    xor ax, ax                                ; 31 c0
    14013     call 08d9bh                               ; e8 5a fd
     14011    call 08de1h                               ; e8 5a fd
    1401414012    mov bx, strict word 00025h                ; bb 25 00
    1401514013    mov ax, si                                ; 89 f0
    1401614014    mov dx, word [bp+006h]                    ; 8b 56 06
    14017     call 089b6h                               ; e8 6a f9
     14015    call 089fch                               ; e8 6a f9
    1401814016    mov bx, ax                                ; 89 c3
    1401914017    mov es, [bp+006h]                         ; 8e 46 06
     
    1404514043    pop bp                                    ; 5d
    1404614044    retn 00004h                               ; c2 04 00
    14047 @ahci_write_sectors:                         ; 0xf9095 LB 0x88
     14045@ahci_write_sectors:                         ; 0xf90db LB 0x88
    1404814046    push bp                                   ; 55
    1404914047    mov bp, sp                                ; 89 e5
     
    1405714055    sub bx, strict byte 0000ch                ; 83 eb 0c
    1405814056    cmp bx, strict byte 00004h                ; 83 fb 04
    14059     jbe short 090c3h                          ; 76 13
     14057    jbe short 09109h                          ; 76 13
    1406014058    push bx                                   ; 53
    1406114059    mov ax, 00c93h                            ; b8 93 0c
     
    1406514063    mov ax, strict word 00007h                ; b8 07 00
    1406614064    push ax                                   ; 50
    14067     call 01976h                               ; e8 b6 88
     14065    call 01976h                               ; e8 70 88
    1406814066    add sp, strict byte 00008h                ; 83 c4 08
    1406914067    xor di, di                                ; 31 ff
     
    1407914077    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1408014078    xor ax, ax                                ; 31 c0
    14081     call 08d9bh                               ; e8 af fc
     14079    call 08de1h                               ; e8 af fc
    1408214080    mov bx, strict word 00035h                ; bb 35 00
    1408314081    mov ax, si                                ; 89 f0
    1408414082    mov dx, cx                                ; 89 ca
    14085     call 089b6h                               ; e8 c0 f8
     14083    call 089fch                               ; e8 c0 f8
    1408614084    mov dx, ax                                ; 89 c2
    1408714085    mov es, cx                                ; 8e c1
     
    1409814096    pop bp                                    ; 5d
    1409914097    retn 00004h                               ; c2 04 00
    14100 ahci_cmd_packet_:                            ; 0xf911d LB 0x18c
     14098ahci_cmd_packet_:                            ; 0xf9163 LB 0x18c
    1410114099    push bp                                   ; 55
    1410214100    mov bp, sp                                ; 89 e5
     
    1411014108    mov dx, strict word 0000eh                ; ba 0e 00
    1411114109    mov ax, strict word 00040h                ; b8 40 00
    14112     call 0166eh                               ; e8 36 85
     14110    call 0166eh                               ; e8 f0 84
    1411314111    mov si, 00122h                            ; be 22 01
    1411414112    mov word [bp-008h], ax                    ; 89 46 f8
    1411514113    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    14116     jne short 09167h                          ; 75 23
     14114    jne short 091adh                          ; 75 23
    1411714115    mov bx, 00da0h                            ; bb a0 0d
    1411814116    mov cx, ds                                ; 8c d9
    1411914117    mov ax, strict word 00004h                ; b8 04 00
    14120     call 01933h                               ; e8 e4 87
     14118    call 01933h                               ; e8 9e 87
    1412114119    mov ax, 00ca6h                            ; b8 a6 0c
    1412214120    push ax                                   ; 50
     
    1412514123    mov ax, strict word 00004h                ; b8 04 00
    1412614124    push ax                                   ; 50
    14127     call 01976h                               ; e8 18 88
     14125    call 01976h                               ; e8 d2 87
    1412814126    add sp, strict byte 00006h                ; 83 c4 06
    1412914127    mov ax, strict word 00001h                ; b8 01 00
    14130     jmp near 092a0h                           ; e9 39 01
     14128    jmp near 092e6h                           ; e9 39 01
    1413114129    test byte [bp+004h], 001h                 ; f6 46 04 01
    14132     jne short 09161h                          ; 75 f4
     14130    jne short 091a7h                          ; 75 f4
    1413314131    mov bx, word [bp+006h]                    ; 8b 5e 06
    1413414132    mov di, word [bp+008h]                    ; 8b 7e 08
     
    1413614134    sal bx, 1                                 ; d1 e3
    1413714135    rcl di, 1                                 ; d1 d7
    14138     loop 09176h                               ; e2 fa
     14136    loop 091bch                               ; e2 fa
    1413914137    mov es, [bp-008h]                         ; 8e 46 f8
    1414014138    mov word [es:si], bx                      ; 26 89 1c
     
    1415014148    mov dx, word [bp+008h]                    ; 8b 56 08
    1415114149    xor cx, cx                                ; 31 c9
    14152     call 0a030h                               ; e8 81 0e
     14150    call 0a070h                               ; e8 7b 0e
    1415314151    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1415414152    xor di, di                                ; 31 ff
     
    1416814166    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1416914167    xor ax, ax                                ; 31 c0
    14170     call 08d9bh                               ; e8 af fb
     14168    call 08de1h                               ; e8 af fb
    1417114169    mov al, byte [bp-006h]                    ; 8a 46 fa
    1417214170    xor ah, ah                                ; 30 e4
     
    1417614174    mov ax, 000c0h                            ; b8 c0 00
    1417714175    mov dx, word [bp-00ah]                    ; 8b 56 f6
    14178     call 0a090h                               ; e8 8f 0e
     14176    call 0a0d0h                               ; e8 89 0e
    1417914177    mov es, [bp-008h]                         ; 8e 46 f8
    1418014178    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1418314181    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1418414182    test ax, ax                               ; 85 c0
    14185     je short 0923fh                           ; 74 27
     14183    je short 09285h                           ; 74 27
    1418614184    dec ax                                    ; 48
    1418714185    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1419614194    mov ax, si                                ; 89 f0
    1419714195    mov dx, word [bp-008h]                    ; 8b 56 f8
    14198     call 089b6h                               ; e8 6c f7
     14196    call 089fch                               ; e8 6c f7
    1419914197    les bx, [bp-00eh]                         ; c4 5e f2
    1420014198    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
     
    1422314221    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1422414222    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    14225     jne short 0929eh                          ; 75 05
     14223    jne short 092e4h                          ; 75 05
    1422614224    mov ax, strict word 00004h                ; b8 04 00
    14227     jmp short 092a0h                          ; eb 02
     14225    jmp short 092e6h                          ; eb 02
    1422814226    xor ax, ax                                ; 31 c0
    1422914227    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1423214230    pop bp                                    ; 5d
    1423314231    retn 0000ch                               ; c2 0c 00
    14234 ahci_port_detect_device_:                    ; 0xf92a9 LB 0x4fe
     14232ahci_port_detect_device_:                    ; 0xf92ef LB 0x4fe
    1423514233    push bp                                   ; 55
    1423614234    mov bp, sp                                ; 89 e5
     
    1424814246    mov bx, word [bp-020h]                    ; 8b 5e e0
    1424914247    mov ax, si                                ; 89 f0
    14250     call 08d9bh                               ; e8 ce fa
     14248    call 08de1h                               ; e8 ce fa
    1425114249    mov dx, strict word 0000eh                ; ba 0e 00
    1425214250    mov ax, strict word 00040h                ; b8 40 00
    14253     call 0166eh                               ; e8 98 83
     14251    call 0166eh                               ; e8 52 83
    1425414252    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
    1425514253    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1432314321    mov bx, strict word 0000fh                ; bb 0f 00
    1432414322    xor cx, cx                                ; 31 c9
    14325     call 08823h                               ; e8 9f f4
     14323    call 08869h                               ; e8 9f f4
    1432614324    test ax, ax                               ; 85 c0
    14327     jne short 0938bh                          ; 75 03
    14328     jmp near 0979fh                           ; e9 14 04
     14325    jne short 093d1h                          ; 75 03
     14326    jmp near 097e5h                           ; e9 14 04
    1432914327    mov al, byte [bp-008h]                    ; 8a 46 f8
    1433014328    xor ah, ah                                ; 30 e4
     
    1435814356    xor cx, cx                                ; 31 c9
    1435914357    mov ax, di                                ; 89 f8
    14360     call 08823h                               ; e8 4d f4
     14358    call 08869h                               ; e8 4d f4
    1436114359    cmp ax, strict word 00001h                ; 3d 01 00
    14362     je short 0938bh                           ; 74 b0
     14360    je short 093d1h                           ; 74 b0
    1436314361    xor ax, ax                                ; 31 c0
    1436414362    push ax                                   ; 50
     
    1436714365    mov ax, di                                ; 89 f8
    1436814366    mov dx, word [bp-01ch]                    ; 8b 56 e4
    14369     call 08823h                               ; e8 38 f4
     14367    call 08869h                               ; e8 38 f4
    1437014368    cmp ax, strict word 00003h                ; 3d 03 00
    14371     jne short 09388h                          ; 75 98
     14369    jne short 093ceh                          ; 75 98
    1437214370    mov ax, word [bp-016h]                    ; 8b 46 ea
    1437314371    add ax, 00130h                            ; 05 30 01
     
    1439714395    mov byte [bp-00ch], al                    ; 88 46 f4
    1439814396    cmp AL, strict byte 004h                  ; 3c 04
    14399     jc short 0943ah                           ; 72 03
    14400     jmp near 0979fh                           ; e9 65 03
     14397    jc short 09480h                           ; 72 03
     14398    jmp near 097e5h                           ; e9 65 03
    1440114399    mov ax, word [bp-016h]                    ; 8b 46 ea
    1440214400    add ax, 00118h                            ; 05 18 01
     
    1445014448    add cl, 00ch                              ; 80 c1 0c
    1445114449    test dx, dx                               ; 85 d2
    14452     jne short 09505h                          ; 75 55
     14450    jne short 0954bh                          ; 75 55
    1445314451    cmp bx, 00101h                            ; 81 fb 01 01
    14454     jne short 09505h                          ; 75 4f
     14452    jne short 0954bh                          ; 75 4f
    1445514453    mov es, [bp-00eh]                         ; 8e 46 f2
    1445614454    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1446714465    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1446814466    mov dx, es                                ; 8c c2
    14469     call 089b6h                               ; e8 c0 f4
     14467    call 089fch                               ; e8 c0 f4
    1447014468    mov byte [bp-00ah], cl                    ; 88 4e f6
    1447114469    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14472     je short 09508h                           ; 74 08
     14470    je short 0954eh                           ; 74 08
    1447314471    mov ax, strict word 00001h                ; b8 01 00
    14474     jmp short 0950ah                          ; eb 05
    14475     jmp near 096dah                           ; e9 d2 01
     14472    jmp short 09550h                          ; eb 05
     14473    jmp near 09720h                           ; e9 d2 01
    1447614474    xor ax, ax                                ; 31 c0
    1447714475    mov cl, al                                ; 88 c1
     
    1448914487    mov word [bp-012h], ax                    ; 89 46 ee
    1449014488    cmp di, 00fffh                            ; 81 ff ff 0f
    14491     jne short 09559h                          ; 75 1f
     14489    jne short 0959fh                          ; 75 1f
    1449214490    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
    14493     jne short 09559h                          ; 75 19
     14491    jne short 0959fh                          ; 75 19
    1449414492    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
    1449514493    mov word [bp-012h], ax                    ; 89 46 ee
     
    1453114529    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1453214530    cmp AL, strict byte 001h                  ; 3c 01
    14533     jc short 095d6h                           ; 72 0c
    14534     jbe short 095deh                          ; 76 12
     14531    jc short 0961ch                           ; 72 0c
     14532    jbe short 09624h                          ; 76 12
    1453514533    cmp AL, strict byte 003h                  ; 3c 03
    14536     je short 095e6h                           ; 74 16
     14534    je short 0962ch                           ; 74 16
    1453714535    cmp AL, strict byte 002h                  ; 3c 02
    14538     je short 095e2h                           ; 74 0e
    14539     jmp short 09629h                          ; eb 53
     14536    je short 09628h                           ; 74 0e
     14537    jmp short 0966fh                          ; eb 53
    1454014538    test al, al                               ; 84 c0
    14541     jne short 09629h                          ; 75 4f
     14539    jne short 0966fh                          ; 75 4f
    1454214540    mov DL, strict byte 040h                  ; b2 40
    14543     jmp short 095e8h                          ; eb 0a
     14541    jmp short 0962eh                          ; eb 0a
    1454414542    mov DL, strict byte 048h                  ; b2 48
    14545     jmp short 095e8h                          ; eb 06
     14543    jmp short 0962eh                          ; eb 06
    1454614544    mov DL, strict byte 050h                  ; b2 50
    14547     jmp short 095e8h                          ; eb 02
     14545    jmp short 0962eh                          ; eb 02
    1454814546    mov DL, strict byte 058h                  ; b2 58
    1454914547    mov bl, dl                                ; 88 d3
     
    1455114549    xor bh, bh                                ; 30 ff
    1455214550    mov ax, bx                                ; 89 d8
    14553     call 016aeh                               ; e8 ba 80
     14551    call 016aeh                               ; e8 74 80
    1455414552    test al, al                               ; 84 c0
    14555     je short 09629h                           ; 74 31
     14553    je short 0966fh                           ; 74 31
    1455614554    mov al, dl                                ; 88 d0
    1455714555    db  0feh, 0c0h
    1455814556    ; inc al                                    ; fe c0
    1455914557    xor ah, ah                                ; 30 e4
    14560     call 016aeh                               ; e8 ad 80
     14558    call 016aeh                               ; e8 67 80
    1456114559    mov ch, al                                ; 88 c5
    1456214560    mov al, dl                                ; 88 d0
    1456314561    xor ah, ah                                ; 30 e4
    14564     call 016aeh                               ; e8 a4 80
     14562    call 016aeh                               ; e8 5e 80
    1456514563    mov ah, ch                                ; 88 ec
    1456614564    mov word [bp-028h], ax                    ; 89 46 d8
     
    1456814566    add AL, strict byte 002h                  ; 04 02
    1456914567    xor ah, ah                                ; 30 e4
    14570     call 016aeh                               ; e8 96 80
     14568    call 016aeh                               ; e8 50 80
    1457114569    xor ah, ah                                ; 30 e4
    1457214570    mov word [bp-02ah], ax                    ; 89 46 d6
    1457314571    mov ax, bx                                ; 89 d8
    14574     call 016aeh                               ; e8 8c 80
     14572    call 016aeh                               ; e8 46 80
    1457514573    xor ah, ah                                ; 30 e4
    1457614574    mov word [bp-026h], ax                    ; 89 46 da
    14577     jmp short 0963bh                          ; eb 12
     14575    jmp short 09681h                          ; eb 12
    1457814576    push word [bp-012h]                       ; ff 76 ee
    1457914577    push word [bp-01eh]                       ; ff 76 e2
     
    1458214580    mov dx, ss                                ; 8c d2
    1458314581    lea ax, [bp-02ah]                         ; 8d 46 d6
    14584     call 05b09h                               ; e8 ce c4
     14582    call 05b4fh                               ; e8 ce c4
    1458514583    mov bx, 00da0h                            ; bb a0 0d
    1458614584    mov cx, ds                                ; 8c d9
    1458714585    mov ax, strict word 00004h                ; b8 04 00
    14588     call 01933h                               ; e8 ed 82
     14586    call 01933h                               ; e8 a7 82
    1458914587    push word [bp-012h]                       ; ff 76 ee
    1459014588    push word [bp-01eh]                       ; ff 76 e2
     
    1460914607    mov ax, strict word 00004h                ; b8 04 00
    1461014608    push ax                                   ; 50
    14611     call 01976h                               ; e8 fc 82
     14609    call 01976h                               ; e8 b6 82
    1461214610    add sp, strict byte 0001ch                ; 83 c4 1c
    1461314611    mov al, byte [bp-00ah]                    ; 8a 46 f6
     
    1464114639    mov dx, strict word 00075h                ; ba 75 00
    1464214640    mov ax, strict word 00040h                ; b8 40 00
    14643     call 01652h                               ; e8 8a 7f
     14641    call 01652h                               ; e8 44 7f
    1464414642    mov bl, al                                ; 88 c3
    1464514643    db  0feh, 0c3h
     
    1464814646    mov dx, strict word 00075h                ; ba 75 00
    1464914647    mov ax, strict word 00040h                ; b8 40 00
    14650     call 01660h                               ; e8 89 7f
    14651     jmp near 0978eh                           ; e9 b4 00
     14648    call 01660h                               ; e8 43 7f
     14649    jmp near 097d4h                           ; e9 b4 00
    1465214650    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14653     jne short 09735h                          ; 75 55
     14651    jne short 0977bh                          ; 75 55
    1465414652    cmp bx, 00101h                            ; 81 fb 01 01
    14655     jne short 09735h                          ; 75 4f
     14653    jne short 0977bh                          ; 75 4f
    1465614654    mov es, [bp-00eh]                         ; 8e 46 f2
    1465714655    mov bx, word [bp-01ah]                    ; 8b 5e e6
     
    1466814666    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1466914667    mov dx, es                                ; 8c c2
    14670     call 089b6h                               ; e8 90 f2
     14668    call 089fch                               ; e8 90 f2
    1467114669    mov byte [bp-00ah], cl                    ; 88 4e f6
    1467214670    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    14673     je short 09737h                           ; 74 07
     14671    je short 0977dh                           ; 74 07
    1467414672    mov cx, strict word 00001h                ; b9 01 00
    14675     jmp short 09739h                          ; eb 04
    14676     jmp short 0978eh                          ; eb 57
     14673    jmp short 0977fh                          ; eb 04
     14674    jmp short 097d4h                          ; eb 57
    1467714675    xor cx, cx                                ; 31 c9
    1467814676    mov bl, byte [bp-00ch]                    ; 8a 5e f4
     
    1471414712    pop bp                                    ; 5d
    1471514713    retn                                      ; c3
    14716 ahci_mem_alloc_:                             ; 0xf97a7 LB 0x43
     14714ahci_mem_alloc_:                             ; 0xf97ed LB 0x43
    1471714715    push bp                                   ; 55
    1471814716    mov bp, sp                                ; 89 e5
     
    1472414722    mov dx, 00413h                            ; ba 13 04
    1472514723    xor ax, ax                                ; 31 c0
    14726     call 0166eh                               ; e8 b7 7e
     14724    call 0166eh                               ; e8 71 7e
    1472714725    test ax, ax                               ; 85 c0
    14728     je short 097e0h                           ; 74 25
     14726    je short 09826h                           ; 74 25
    1472914727    dec ax                                    ; 48
    1473014728    mov bx, ax                                ; 89 c3
     
    1473314731    sal ax, 1                                 ; d1 e0
    1473414732    rcl dx, 1                                 ; d1 d2
    14735     loop 097c3h                               ; e2 fa
     14733    loop 09809h                               ; e2 fa
    1473614734    mov si, ax                                ; 89 c6
    1473714735    mov di, dx                                ; 89 d7
     
    1473914737    shr di, 1                                 ; d1 ef
    1474014738    rcr si, 1                                 ; d1 de
    14741     loop 097d0h                               ; e2 fa
     14739    loop 09816h                               ; e2 fa
    1474214740    mov dx, 00413h                            ; ba 13 04
    1474314741    xor ax, ax                                ; 31 c0
    14744     call 0167ch                               ; e8 9e 7e
     14742    call 0167ch                               ; e8 58 7e
    1474514743    mov ax, si                                ; 89 f0
    1474614744    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1475214750    pop bp                                    ; 5d
    1475314751    retn                                      ; c3
    14754 ahci_hba_init_:                              ; 0xf97ea LB 0x16e
     14752ahci_hba_init_:                              ; 0xf9830 LB 0x16e
    1475514753    push bp                                   ; 55
    1475614754    mov bp, sp                                ; 89 e5
     
    1476414762    mov dx, strict word 0000eh                ; ba 0e 00
    1476514763    mov ax, strict word 00040h                ; b8 40 00
    14766     call 0166eh                               ; e8 6e 7e
     14764    call 0166eh                               ; e8 28 7e
    1476714765    mov bx, 00122h                            ; bb 22 01
    1476814766    mov di, ax                                ; 89 c7
     
    1478114779    shr eax, 010h                             ; 66 c1 e8 10
    1478214780    xchg dx, ax                               ; 92
    14783     call 097a7h                               ; e8 83 ff
     14781    call 097edh                               ; e8 83 ff
    1478414782    mov word [bp-010h], ax                    ; 89 46 f0
    1478514783    test ax, ax                               ; 85 c0
    14786     jne short 0982eh                          ; 75 03
    14787     jmp near 09937h                           ; e9 09 01
     14784    jne short 09874h                          ; 75 03
     14785    jmp near 0997dh                           ; e9 09 01
    1478814786    mov ax, word [bp-010h]                    ; 8b 46 f0
    1478914787    mov es, di                                ; 8e c7
     
    1483514833    xchg dx, ax                               ; 92
    1483614834    test AL, strict byte 001h                 ; a8 01
    14837     jne short 09888h                          ; 75 de
     14835    jne short 098ceh                          ; 75 de
    1483814836    xor ax, ax                                ; 31 c0
    1483914837    xor cx, cx                                ; 31 c9
     
    1485414852    mov bx, strict word 0001fh                ; bb 1f 00
    1485514853    xor cx, cx                                ; 31 c9
    14856     call 08823h                               ; e8 54 ef
     14854    call 08869h                               ; e8 54 ef
    1485714855    db  0feh, 0c0h
    1485814856    ; inc al                                    ; fe c0
    1485914857    mov byte [bp-00eh], al                    ; 88 46 f2
    1486014858    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14861     jmp short 098fbh                          ; eb 21
     14859    jmp short 09941h                          ; eb 21
    1486214860    xor al, al                                ; 30 c0
    1486314861    test al, al                               ; 84 c0
    14864     je short 098f2h                           ; 74 12
     14862    je short 09938h                           ; 74 12
    1486514863    mov bl, byte [bp-00ch]                    ; 8a 5e f4
    1486614864    xor bh, bh                                ; 30 ff
    1486714865    xor ax, ax                                ; 31 c0
    1486814866    mov dx, word [bp-010h]                    ; 8b 56 f0
    14869     call 092a9h                               ; e8 bc f9
     14867    call 092efh                               ; e8 bc f9
    1487014868    dec byte [bp-00eh]                        ; fe 4e f2
    14871     je short 09935h                           ; 74 43
     14869    je short 0997bh                           ; 74 43
    1487214870    inc byte [bp-00ch]                        ; fe 46 f4
    1487314871    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14874     jnc short 09935h                          ; 73 3a
     14872    jnc short 0997bh                          ; 73 3a
    1487514873    mov cl, byte [bp-00ch]                    ; 8a 4e f4
    1487614874    xor ch, ch                                ; 30 ed
    1487714875    mov bx, strict word 00001h                ; bb 01 00
    1487814876    xor di, di                                ; 31 ff
    14879     jcxz 0990dh                               ; e3 06
     14877    jcxz 09953h                               ; e3 06
    1488014878    sal bx, 1                                 ; d1 e3
    1488114879    rcl di, 1                                 ; d1 d7
    14882     loop 09907h                               ; e2 fa
     14880    loop 0994dh                               ; e2 fa
    1488314881    mov ax, strict word 0000ch                ; b8 0c 00
    1488414882    xor cx, cx                                ; 31 c9
     
    1489614894    xchg dx, ax                               ; 92
    1489714895    test dx, di                               ; 85 fa
    14898     jne short 09931h                          ; 75 04
     14896    jne short 09977h                          ; 75 04
    1489914897    test ax, bx                               ; 85 d8
    14900     je short 098dah                           ; 74 a9
     14898    je short 09920h                           ; 74 a9
    1490114899    mov AL, strict byte 001h                  ; b0 01
    14902     jmp short 098dch                          ; eb a7
     14900    jmp short 09922h                          ; eb a7
    1490314901    xor ax, ax                                ; 31 c0
    1490414902    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1491014908    pop bp                                    ; 5d
    1491114909    retn                                      ; c3
    14912     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 03dh, 09ah, 01bh, 09ah, 021h, 09ah, 027h, 09ah, 02dh
    14913     db  09ah, 033h, 09ah, 039h, 09ah, 03dh, 09ah
    14914 _ahci_init:                                  ; 0xf9958 LB 0x11a
     14910    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 083h, 09ah, 061h, 09ah, 067h, 09ah, 06dh, 09ah, 073h
     14911    db  09ah, 079h, 09ah, 07fh, 09ah, 083h, 09ah
     14912_ahci_init:                                  ; 0xf999e LB 0x11a
    1491514913    push bp                                   ; 55
    1491614914    mov bp, sp                                ; 89 e5
     
    1491914917    mov ax, 00601h                            ; b8 01 06
    1492014918    mov dx, strict word 00001h                ; ba 01 00
    14921     call 09e91h                               ; e8 29 05
     14919    call 09ed7h                               ; e8 29 05
    1492214920    mov dx, ax                                ; 89 c2
    1492314921    cmp ax, strict word 0ffffh                ; 3d ff ff
    14924     je short 099b8h                           ; 74 49
     14922    je short 099feh                           ; 74 49
    1492514923    mov al, ah                                ; 88 e0
    1492614924    mov byte [bp-006h], ah                    ; 88 66 fa
     
    1492914927    xor ah, ah                                ; 30 e4
    1493014928    mov bx, strict word 00034h                ; bb 34 00
    14931     call 09e99h                               ; e8 18 05
     14929    call 09edfh                               ; e8 18 05
    1493214930    mov cl, al                                ; 88 c1
    1493314931    test cl, cl                               ; 84 c9
    14934     je short 099bbh                           ; 74 34
     14932    je short 09a01h                           ; 74 34
    1493514933    mov bl, cl                                ; 88 cb
    1493614934    xor bh, bh                                ; 30 ff
     
    1494314941    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1494414942    mov ax, word [bp-010h]                    ; 8b 46 f0
    14945     call 09e99h                               ; e8 f3 04
     14943    call 09edfh                               ; e8 f3 04
    1494614944    cmp AL, strict byte 012h                  ; 3c 12
    14947     je short 099bbh                           ; 74 11
     14945    je short 09a01h                           ; 74 11
    1494814946    mov bl, cl                                ; 88 cb
    1494914947    db  0feh, 0c3h
     
    1495214950    mov dx, word [bp-00ch]                    ; 8b 56 f4
    1495314951    mov ax, word [bp-010h]                    ; 8b 46 f0
    14954     jmp short 0997eh                          ; eb c6
    14955     jmp near 09a6ch                           ; e9 b1 00
     14952    jmp short 099c4h                          ; eb c6
     14953    jmp near 09ab2h                           ; e9 b1 00
    1495614954    test cl, cl                               ; 84 c9
    14957     je short 099b8h                           ; 74 f9
     14955    je short 099feh                           ; 74 f9
    1495814956    add cl, 002h                              ; 80 c1 02
    1495914957    mov bl, cl                                ; 88 cb
     
    1496714965    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1496814966    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14969     call 09e99h                               ; e8 b8 04
     14967    call 09edfh                               ; e8 b8 04
    1497014968    cmp AL, strict byte 010h                  ; 3c 10
    14971     jne short 099b8h                          ; 75 d3
     14969    jne short 099feh                          ; 75 d3
    1497214970    mov byte [bp-004h], 000h                  ; c6 46 fc 00
    1497314971    mov bl, cl                                ; 88 cb
     
    1497614974    mov dx, word [bp-00eh]                    ; 8b 56 f2
    1497714975    mov ax, word [bp-00ah]                    ; 8b 46 f6
    14978     call 09ec0h                               ; e8 c7 04
     14976    call 09f06h                               ; e8 c7 04
    1497914977    mov dx, ax                                ; 89 c2
    1498014978    and ax, strict word 0000fh                ; 25 0f 00
    1498114979    sub ax, strict word 00004h                ; 2d 04 00
    1498214980    cmp ax, strict word 0000bh                ; 3d 0b 00
    14983     jnbe short 09a3dh                         ; 77 37
     14981    jnbe short 09a83h                         ; 77 37
    1498414982    push CS                                   ; 0e
    1498514983    pop ES                                    ; 07
    1498614984    mov cx, strict word 00008h                ; b9 08 00
    14987     mov di, 09941h                            ; bf 41 99
     14985    mov di, 09987h                            ; bf 87 99
    1498814986    repne scasb                               ; f2 ae
    1498914987    sal cx, 1                                 ; d1 e1
    1499014988    mov di, cx                                ; 89 cf
    14991     mov ax, word [cs:di-066b8h]               ; 2e 8b 85 48 99
     14989    mov ax, word [cs:di-06672h]               ; 2e 8b 85 8e 99
    1499214990    jmp ax                                    ; ff e0
    1499314991    mov byte [bp-004h], 010h                  ; c6 46 fc 10
    14994     jmp short 09a3dh                          ; eb 1c
     14992    jmp short 09a83h                          ; eb 1c
    1499514993    mov byte [bp-004h], 014h                  ; c6 46 fc 14
    14996     jmp short 09a3dh                          ; eb 16
     14994    jmp short 09a83h                          ; eb 16
    1499714995    mov byte [bp-004h], 018h                  ; c6 46 fc 18
    14998     jmp short 09a3dh                          ; eb 10
     14996    jmp short 09a83h                          ; eb 10
    1499914997    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
    15000     jmp short 09a3dh                          ; eb 0a
     14998    jmp short 09a83h                          ; eb 0a
    1500114999    mov byte [bp-004h], 020h                  ; c6 46 fc 20
    15002     jmp short 09a3dh                          ; eb 04
     15000    jmp short 09a83h                          ; eb 04
    1500315001    mov byte [bp-004h], 024h                  ; c6 46 fc 24
    1500415002    mov CL, strict byte 004h                  ; b1 04
     
    1501015008    mov al, byte [bp-004h]                    ; 8a 46 fc
    1501115009    test al, al                               ; 84 c0
    15012     je short 09a6ch                           ; 74 1c
     15010    je short 09ab2h                           ; 74 1c
    1501315011    mov bl, al                                ; 88 c3
    1501415012    xor bh, bh                                ; 30 ff
     
    1501715015    mov al, byte [bp-006h]                    ; 8a 46 fa
    1501815016    xor ah, ah                                ; 30 e4
    15019     call 09ee5h                               ; e8 84 04
     15017    call 09f2bh                               ; e8 84 04
    1502015018    test AL, strict byte 001h                 ; a8 01
    15021     je short 09a6ch                           ; 74 07
     15019    je short 09ab2h                           ; 74 07
    1502215020    and AL, strict byte 0f0h                  ; 24 f0
    1502315021    add ax, cx                                ; 01 c8
    15024     call 097eah                               ; e8 7e fd
     15022    call 09830h                               ; e8 7e fd
    1502515023    lea sp, [bp-002h]                         ; 8d 66 fe
    1502615024    pop di                                    ; 5f
    1502715025    pop bp                                    ; 5d
    1502815026    retn                                      ; c3
    15029 apm_out_str_:                                ; 0xf9a72 LB 0x39
     15027apm_out_str_:                                ; 0xf9ab8 LB 0x39
    1503015028    push bp                                   ; 55
    1503115029    mov bp, sp                                ; 89 e5
     
    1503315031    mov bx, ax                                ; 89 c3
    1503415032    cmp byte [bx], 000h                       ; 80 3f 00
    15035     je short 09a87h                           ; 74 0a
     15033    je short 09acdh                           ; 74 0a
    1503615034    mov al, byte [bx]                         ; 8a 07
    1503715035    out DX, AL                                ; ee
     
    1504015038    db  00ah, 0c0h
    1504115039    ; or al, al                                 ; 0a c0
    15042     jne short 09a7fh                          ; 75 f8
     15040    jne short 09ac5h                          ; 75 f8
    1504315041    lea sp, [bp-002h]                         ; 8d 66 fe
    1504415042    pop bx                                    ; 5b
    1504515043    pop bp                                    ; 5d
    1504615044    retn                                      ; c3
    15047     int3                                      ; cc
    15048     call far 09adeh:09b57h                    ; 9a 57 9b de 9a
    15049     stc                                       ; f9
    15050     call far 09b24h:09b57h                    ; 9a 57 9b 24 9b
    15051     push di                                   ; 57
     15045    adc bl, byte [bp+di-06463h]               ; 12 9b 9d 9b
     15046    and AL, strict byte 09bh                  ; 24 9b
     15047    aas                                       ; 3f
    1505215048    wait                                      ; 9b
    15053     pop bp                                    ; 5d
     15049    popfw                                     ; 9d
    1505415050    wait                                      ; 9b
    15055     sub word [bp+di-064d7h], bx               ; 29 9b 29 9b
    15056     sub word [bp+di-06464h], bx               ; 29 9b 9c 9b
    15057     sub word [bp+di-064d7h], bx               ; 29 9b 29 9b
    15058     xchg bp, ax                               ; 95
     15051    push strict byte 0ff9bh                   ; 6a 9b
     15052    popfw                                     ; 9d
    1505915053    wait                                      ; 9b
    15060 _apm_function:                               ; 0xf9aab LB 0xf6
     15054    mov word [06f9bh], ax                     ; a3 9b 6f
     15055    wait                                      ; 9b
     15056    outsw                                     ; 6f
     15057    wait                                      ; 9b
     15058    outsw                                     ; 6f
     15059    wait                                      ; 9b
     15060    loop 09a86h                               ; e2 9b
     15061    outsw                                     ; 6f
     15062    wait                                      ; 9b
     15063    outsw                                     ; 6f
     15064    wait                                      ; 9b
     15065    db  0dbh
     15066    wait                                      ; 9b
     15067_apm_function:                               ; 0xf9af1 LB 0xf6
    1506115068    push bp                                   ; 55
    1506215069    mov bp, sp                                ; 89 e5
     
    1506615073    xor ah, ah                                ; 30 e4
    1506715074    cmp ax, strict word 0000eh                ; 3d 0e 00
    15068     jnbe short 09b29h                         ; 77 6c
     15075    jnbe short 09b6fh                         ; 77 6c
    1506915076    mov bx, ax                                ; 89 c3
    1507015077    sal bx, 1                                 ; d1 e3
    1507115078    mov dx, word [bp+018h]                    ; 8b 56 18
    1507215079    or dl, 001h                               ; 80 ca 01
    15073     jmp word [cs:bx-06573h]                   ; 2e ff a7 8d 9a
     15080    jmp word [cs:bx-0652dh]                   ; 2e ff a7 d3 9a
    1507415081    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1507515082    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1507615083    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    15077     jmp near 09b57h                           ; e9 79 00
     15084    jmp near 09b9dh                           ; e9 79 00
    1507815085    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    15079     mov word [bp+00ch], 0a104h                ; c7 46 0c 04 a1
     15086    mov word [bp+00ch], 0a144h                ; c7 46 0c 44 a1
    1508015087    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1508115088    mov ax, strict word 0fff0h                ; b8 f0 ff
    1508215089    mov word [bp+006h], ax                    ; 89 46 06
    1508315090    mov word [bp+004h], ax                    ; 89 46 04
    15084     jmp near 09b57h                           ; e9 5e 00
     15091    jmp near 09b9dh                           ; e9 5e 00
    1508515092    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1508615093    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1509515102    mov si, ax                                ; 89 c6
    1509615103    sal esi, 010h                             ; 66 c1 e6 10
    15097     jmp near 09b57h                           ; e9 33 00
     15104    jmp near 09b9dh                           ; e9 33 00
    1509815105    sti                                       ; fb
    1509915106    hlt                                       ; f4
    15100     jmp near 09b57h                           ; e9 2e 00
     15107    jmp near 09b9dh                           ; e9 2e 00
    1510115108    mov bx, 00da0h                            ; bb a0 0d
    1510215109    mov cx, ds                                ; 8c d9
    1510315110    mov ax, strict word 00004h                ; b8 04 00
    15104     call 01933h                               ; e8 ff 7d
     15111    call 01933h                               ; e8 b9 7d
    1510515112    push word [bp+00ch]                       ; ff 76 0c
    1510615113    push word [bp+012h]                       ; ff 76 12
     
    1510915116    mov ax, strict word 00004h                ; b8 04 00
    1511015117    push ax                                   ; 50
    15111     call 01976h                               ; e8 31 7e
     15118    call 01976h                               ; e8 eb 7d
    1511215119    add sp, strict byte 00008h                ; 83 c4 08
    1511315120    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1512115128    retn                                      ; c3
    1512215129    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    15123     je short 09b82h                           ; 74 1f
     15130    je short 09bc8h                           ; 74 1f
    1512415131    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    15125     je short 09b7ah                           ; 74 11
     15132    je short 09bc0h                           ; 74 11
    1512615133    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    15127     jne short 09b8ah                          ; 75 1b
     15134    jne short 09bd0h                          ; 75 1b
    1512815135    mov dx, 08900h                            ; ba 00 89
    1512915136    mov ax, 00d10h                            ; b8 10 0d
    15130     call 09a72h                               ; e8 fa fe
    15131     jmp short 09b57h                          ; eb dd
     15137    call 09ab8h                               ; e8 fa fe
     15138    jmp short 09b9dh                          ; eb dd
    1513215139    mov dx, 08900h                            ; ba 00 89
    1513315140    mov ax, 00d18h                            ; b8 18 0d
    15134     jmp short 09b75h                          ; eb f3
     15141    jmp short 09bbbh                          ; eb f3
    1513515142    mov dx, 08900h                            ; ba 00 89
    1513615143    mov ax, 00d20h                            ; b8 20 0d
    15137     jmp short 09b75h                          ; eb eb
     15144    jmp short 09bbbh                          ; eb eb
    1513815145    or ah, 00ah                               ; 80 cc 0a
    1513915146    mov word [bp+012h], ax                    ; 89 46 12
    1514015147    mov word [bp+018h], dx                    ; 89 56 18
    15141     jmp short 09b57h                          ; eb c2
     15148    jmp short 09b9dh                          ; eb c2
    1514215149    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    15143     jmp short 09b57h                          ; eb bb
     15150    jmp short 09b9dh                          ; eb bb
    1514415151    or ah, 080h                               ; 80 cc 80
    15145     jmp short 09b8dh                          ; eb ec
    15146 pci16_select_reg_:                           ; 0xf9ba1 LB 0x24
     15152    jmp short 09bd3h                          ; eb ec
     15153pci16_select_reg_:                           ; 0xf9be7 LB 0x24
    1514715154    push bp                                   ; 55
    1514815155    mov bp, sp                                ; 89 e5
     
    1516115168    pop bp                                    ; 5d
    1516215169    retn                                      ; c3
    15163 pci16_find_device_:                          ; 0xf9bc5 LB 0xf7
     15170pci16_find_device_:                          ; 0xf9c0b LB 0xf7
    1516415171    push bp                                   ; 55
    1516515172    mov bp, sp                                ; 89 e5
     
    1517515182    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1517615183    test bl, 007h                             ; f6 c3 07
    15177     jne short 09c0dh                          ; 75 2d
     15184    jne short 09c53h                          ; 75 2d
    1517815185    mov dx, strict word 0000eh                ; ba 0e 00
    1517915186    mov ax, bx                                ; 89 d8
    15180     call 09ba1h                               ; e8 b9 ff
     15187    call 09be7h                               ; e8 b9 ff
    1518115188    mov dx, 00cfeh                            ; ba fe 0c
    1518215189    in AL, DX                                 ; ec
     
    1518515192    mov byte [bp-008h], al                    ; 88 46 f8
    1518615193    cmp AL, strict byte 0ffh                  ; 3c ff
    15187     jne short 09bfbh                          ; 75 06
     15194    jne short 09c41h                          ; 75 06
    1518815195    add bx, strict byte 00008h                ; 83 c3 08
    15189     jmp near 09c8dh                           ; e9 92 00
     15196    jmp near 09cd3h                           ; e9 92 00
    1519015197    test byte [bp-008h], 080h                 ; f6 46 f8 80
    15191     je short 09c08h                           ; 74 07
     15198    je short 09c4eh                           ; 74 07
    1519215199    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
    15193     jmp short 09c0dh                          ; eb 05
     15200    jmp short 09c53h                          ; eb 05
    1519415201    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
    1519515202    mov al, byte [bp-008h]                    ; 8a 46 f8
    1519615203    and AL, strict byte 007h                  ; 24 07
    1519715204    cmp AL, strict byte 001h                  ; 3c 01
    15198     jne short 09c34h                          ; 75 1e
     15205    jne short 09c7ah                          ; 75 1e
    1519915206    mov al, bh                                ; 88 f8
    1520015207    xor ah, ah                                ; 30 e4
    1520115208    test ax, ax                               ; 85 c0
    15202     jne short 09c34h                          ; 75 16
     15209    jne short 09c7ah                          ; 75 16
    1520315210    mov dx, strict word 0001ah                ; ba 1a 00
    1520415211    mov ax, bx                                ; 89 d8
    15205     call 09ba1h                               ; e8 7b ff
     15212    call 09be7h                               ; e8 7b ff
    1520615213    mov dx, 00cfeh                            ; ba fe 0c
    1520715214    in AL, DX                                 ; ec
     
    1520915216    ; sub ah, ah                                ; 2a e4
    1521015217    cmp al, byte [bp-006h]                    ; 3a 46 fa
    15211     jbe short 09c34h                          ; 76 03
     15218    jbe short 09c7ah                          ; 76 03
    1521215219    mov byte [bp-006h], al                    ; 88 46 fa
    1521315220    test di, di                               ; 85 ff
    15214     je short 09c3dh                           ; 74 05
     15221    je short 09c83h                           ; 74 05
    1521515222    mov dx, strict word 00008h                ; ba 08 00
    15216     jmp short 09c3fh                          ; eb 02
     15223    jmp short 09c85h                          ; eb 02
    1521715224    xor dx, dx                                ; 31 d2
    1521815225    mov ax, bx                                ; 89 d8
    15219     call 09ba1h                               ; e8 5d ff
     15226    call 09be7h                               ; e8 5d ff
    1522015227    mov dx, 00cfch                            ; ba fc 0c
    1522115228    in eax, DX                                ; 66 ed
     
    1522815235    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
    1522915236    test di, di                               ; 85 ff
    15230     je short 09c6eh                           ; 74 0f
     15237    je short 09cb4h                           ; 74 0f
    1523115238    mov cx, strict word 00008h                ; b9 08 00
    1523215239    shr dx, 1                                 ; d1 ea
    1523315240    rcr ax, 1                                 ; d1 d8
    15234     loop 09c62h                               ; e2 fa
     15241    loop 09ca8h                               ; e2 fa
    1523515242    mov word [bp-00ah], ax                    ; 89 46 f6
    1523615243    mov word [bp-010h], dx                    ; 89 56 f0
    1523715244    mov ax, word [bp-010h]                    ; 8b 46 f0
    1523815245    cmp ax, word [bp-014h]                    ; 3b 46 ec
    15239     jne short 09c7eh                          ; 75 08
     15246    jne short 09cc4h                          ; 75 08
    1524015247    mov ax, word [bp-00ah]                    ; 8b 46 f6
    1524115248    cmp ax, word [bp-012h]                    ; 3b 46 ee
    15242     je short 09c84h                           ; 74 06
     15249    je short 09ccah                           ; 74 06
    1524315250    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
    15244     je short 09c8ah                           ; 74 06
     15251    je short 09cd0h                           ; 74 06
    1524515252    dec si                                    ; 4e
    1524615253    cmp si, strict byte 0ffffh                ; 83 fe ff
    15247     je short 09c9dh                           ; 74 13
     15254    je short 09ce3h                           ; 74 13
    1524815255    add bx, word [bp-00eh]                    ; 03 5e f2
    1524915256    mov al, bh                                ; 88 f8
     
    1525215259    xor dh, dh                                ; 30 f6
    1525315260    cmp ax, dx                                ; 39 d0
    15254     jnbe short 09c9dh                         ; 77 03
    15255     jmp near 09bdbh                           ; e9 3e ff
     15261    jnbe short 09ce3h                         ; 77 03
     15262    jmp near 09c21h                           ; e9 3e ff
    1525615263    cmp si, strict byte 0ffffh                ; 83 fe ff
    15257     jne short 09ca6h                          ; 75 04
     15264    jne short 09cech                          ; 75 04
    1525815265    mov ax, bx                                ; 89 d8
    15259     jmp short 09ca9h                          ; eb 03
     15266    jmp short 09cefh                          ; eb 03
    1526015267    mov ax, strict word 0ffffh                ; b8 ff ff
    1526115268    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1526415271    pop bp                                    ; 5d
    1526515272    retn                                      ; c3
     15273    jcxz 09c95h                               ; e3 9d
     15274    cld                                       ; fc
    1526615275    popfw                                     ; 9d
    15267     popfw                                     ; 9d
    15268     mov DH, strict byte 09dh                  ; b6 9d
    15269     enter 0dc9dh, 09dh                        ; c8 9d dc 9d
    15270     out DX, AL                                ; ee
    15271     popfw                                     ; 9d
    15272     db  001h
     15276    push CS                                   ; 0e
    1527315277    sahf                                      ; 9e
    15274 _pci16_function:                             ; 0xf9cbc LB 0x1d5
     15278    and bl, byte [bp-061cch]                  ; 22 9e 34 9e
     15279    inc di                                    ; 47
     15280    sahf                                      ; 9e
     15281_pci16_function:                             ; 0xf9d02 LB 0x1d5
    1527515282    push bp                                   ; 55
    1527615283    mov bp, sp                                ; 89 e5
     
    1528615293    xor ah, ah                                ; 30 e4
    1528715294    cmp bx, strict byte 00003h                ; 83 fb 03
    15288     jc short 09ceeh                           ; 72 13
    15289     jbe short 09d41h                          ; 76 64
     15295    jc short 09d34h                           ; 72 13
     15296    jbe short 09d87h                          ; 76 64
    1529015297    cmp bx, strict byte 0000eh                ; 83 fb 0e
    15291     je short 09d49h                           ; 74 67
     15298    je short 09d8fh                           ; 74 67
    1529215299    cmp bx, strict byte 00008h                ; 83 fb 08
    15293     jc short 09cf8h                           ; 72 11
     15300    jc short 09d3eh                           ; 72 11
    1529415301    cmp bx, strict byte 0000dh                ; 83 fb 0d
    15295     jbe short 09d4ch                          ; 76 60
    15296     jmp short 09cf8h                          ; eb 0a
     15302    jbe short 09d92h                          ; 76 60
     15303    jmp short 09d3eh                          ; eb 0a
    1529715304    cmp bx, strict byte 00002h                ; 83 fb 02
    15298     je short 09d17h                           ; 74 24
     15305    je short 09d5dh                           ; 74 24
    1529915306    cmp bx, strict byte 00001h                ; 83 fb 01
    15300     je short 09cfbh                           ; 74 03
    15301     jmp near 09e5ah                           ; e9 5f 01
     15307    je short 09d41h                           ; 74 03
     15308    jmp near 09ea0h                           ; e9 5f 01
    1530215309    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1530315310    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1530515312    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1530615313    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    15307     jmp near 09e8ah                           ; e9 73 01
     15314    jmp near 09ed0h                           ; e9 73 01
    1530815315    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    15309     jne short 09d23h                          ; 75 06
     15316    jne short 09d69h                          ; 75 06
    1531015317    or ah, 083h                               ; 80 cc 83
    15311     jmp near 09e83h                           ; e9 60 01
     15318    jmp near 09ec9h                           ; e9 60 01
    1531215319    mov bx, word [bp+008h]                    ; 8b 5e 08
    1531315320    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1531415321    mov ax, word [bp+018h]                    ; 8b 46 18
    1531515322    xor cx, cx                                ; 31 c9
    15316     call 09bc5h                               ; e8 94 fe
     15323    call 09c0bh                               ; e8 94 fe
    1531715324    cmp ax, strict word 0ffffh                ; 3d ff ff
    15318     jne short 09d43h                          ; 75 0d
     15325    jne short 09d89h                          ; 75 0d
    1531915326    mov ax, word [bp+020h]                    ; 8b 46 20
    1532015327    xor ah, ah                                ; 30 e4
    1532115328    or ah, 086h                               ; 80 cc 86
    15322     jmp near 09e83h                           ; e9 42 01
    15323     jmp short 09d4eh                          ; eb 0b
     15329    jmp near 09ec9h                           ; e9 42 01
     15330    jmp short 09d94h                          ; eb 0b
    1532415331    mov word [bp+014h], ax                    ; 89 46 14
    15325     jmp near 09e8ah                           ; e9 41 01
    15326     jmp near 09e15h                           ; e9 c9 00
    15327     jmp short 09d73h                          ; eb 25
     15332    jmp near 09ed0h                           ; e9 41 01
     15333    jmp near 09e5bh                           ; e9 c9 00
     15334    jmp short 09db9h                          ; eb 25
    1532815335    mov bx, word [bp+008h]                    ; 8b 5e 08
    1532915336    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1533015337    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1533115338    mov cx, strict word 00001h                ; b9 01 00
    15332     call 09bc5h                               ; e8 68 fe
     15339    call 09c0bh                               ; e8 68 fe
    1533315340    cmp ax, strict word 0ffffh                ; 3d ff ff
    15334     jne short 09d6dh                          ; 75 0b
     15341    jne short 09db3h                          ; 75 0b
    1533515342    mov ax, word [bp+020h]                    ; 8b 46 20
    1533615343    xor ah, ah                                ; 30 e4
    1533715344    or ah, 086h                               ; 80 cc 86
    15338     jmp near 09e83h                           ; e9 16 01
     15345    jmp near 09ec9h                           ; e9 16 01
    1533915346    mov word [bp+014h], ax                    ; 89 46 14
    15340     jmp near 09e8ah                           ; e9 17 01
     15347    jmp near 09ed0h                           ; e9 17 01
    1534115348    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    15342     jc short 09d80h                           ; 72 06
     15349    jc short 09dc6h                           ; 72 06
    1534315350    or ah, 087h                               ; 80 cc 87
    15344     jmp near 09e83h                           ; e9 03 01
     15351    jmp near 09ec9h                           ; e9 03 01
    1534515352    mov dx, word [bp+004h]                    ; 8b 56 04
    1534615353    mov ax, word [bp+014h]                    ; 8b 46 14
    15347     call 09ba1h                               ; e8 18 fe
     15354    call 09be7h                               ; e8 18 fe
    1534815355    mov bx, word [bp+020h]                    ; 8b 5e 20
    1534915356    xor bh, bh                                ; 30 ff
    1535015357    sub bx, strict byte 00008h                ; 83 eb 08
    1535115358    cmp bx, strict byte 00005h                ; 83 fb 05
    15352     jnbe short 09dfeh                         ; 77 68
     15359    jnbe short 09e44h                         ; 77 68
    1535315360    sal bx, 1                                 ; d1 e3
    15354     jmp word [cs:bx-06350h]                   ; 2e ff a7 b0 9c
     15361    jmp word [cs:bx-0630ah]                   ; 2e ff a7 f6 9c
    1535515362    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1535615363    xor bl, bl                                ; 30 db
     
    1536315370    or bx, ax                                 ; 09 c3
    1536415371    mov word [bp+01ch], bx                    ; 89 5e 1c
    15365     jmp short 09dfeh                          ; eb 48
     15372    jmp short 09e44h                          ; eb 48
    1536615373    mov dx, word [bp+004h]                    ; 8b 56 04
    1536715374    xor dh, dh                                ; 30 f6
     
    1537015377    in ax, DX                                 ; ed
    1537115378    mov word [bp+01ch], ax                    ; 89 46 1c
    15372     jmp short 09dfeh                          ; eb 36
     15379    jmp short 09e44h                          ; eb 36
    1537315380    mov dx, 00cfch                            ; ba fc 0c
    1537415381    in eax, DX                                ; 66 ed
     
    1537915386    mov word [bp+01ch], ax                    ; 89 46 1c
    1538015387    mov word [bp+01eh], dx                    ; 89 56 1e
    15381     jmp short 09dfeh                          ; eb 22
     15388    jmp short 09e44h                          ; eb 22
    1538215389    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1538315390    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1538615393    add dx, 00cfch                            ; 81 c2 fc 0c
    1538715394    out DX, AL                                ; ee
    15388     jmp short 09dfeh                          ; eb 10
     15395    jmp short 09e44h                          ; eb 10
    1538915396    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539015397    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1539315400    add dx, 00cfch                            ; 81 c2 fc 0c
    1539415401    out DX, ax                                ; ef
    15395     jmp near 09e8ah                           ; e9 89 00
     15402    jmp near 09ed0h                           ; e9 89 00
    1539615403    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1539715404    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1540215409    ; mov ax, cx                                ; 8b c1
    1540315410    out DX, eax                               ; 66 ef
    15404     jmp short 09e8ah                          ; eb 75
     15411    jmp short 09ed0h                          ; eb 75
    1540515412    mov bx, word [bp+004h]                    ; 8b 5e 04
    1540615413    mov es, [bp+026h]                         ; 8e 46 26
     
    1540915416    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
    1541015417    cmp cx, word [es:bx]                      ; 26 3b 0f
    15411     jbe short 09e3bh                          ; 76 11
     15418    jbe short 09e81h                          ; 76 11
    1541215419    mov ax, word [bp+020h]                    ; 8b 46 20
    1541315420    xor ah, ah                                ; 30 e4
     
    1541515422    mov word [bp+020h], ax                    ; 89 46 20
    1541615423    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    15417     jmp short 09e4fh                          ; eb 14
     15424    jmp short 09e95h                          ; eb 14
    1541815425    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1541915426    mov si, 0f2c0h                            ; be c0 f2
     
    1542715434    les bx, [bp-008h]                         ; c4 5e f8
    1542815435    mov word [es:bx], ax                      ; 26 89 07
    15429     jmp short 09e8ah                          ; eb 30
     15436    jmp short 09ed0h                          ; eb 30
    1543015437    mov bx, 00da0h                            ; bb a0 0d
    1543115438    mov cx, ds                                ; 8c d9
    1543215439    mov ax, strict word 00004h                ; b8 04 00
    15433     call 01933h                               ; e8 ce 7a
     15440    call 01933h                               ; e8 88 7a
    1543415441    mov ax, word [bp+014h]                    ; 8b 46 14
    1543515442    push ax                                   ; 50
     
    1544015447    mov ax, strict word 00004h                ; b8 04 00
    1544115448    push ax                                   ; 50
    15442     call 01976h                               ; e8 fe 7a
     15449    call 01976h                               ; e8 b8 7a
    1544315450    add sp, strict byte 00008h                ; 83 c4 08
    1544415451    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1545215459    pop bp                                    ; 5d
    1545315460    retn                                      ; c3
    15454 pci_find_classcode_:                         ; 0xf9e91 LB 0x8
     15461pci_find_classcode_:                         ; 0xf9ed7 LB 0x8
    1545515462    push bp                                   ; 55
    1545615463    mov bp, sp                                ; 89 e5
     
    1545815465    pop bp                                    ; 5d
    1545915466    retn                                      ; c3
    15460 pci_read_config_byte_:                       ; 0xf9e99 LB 0x27
     15467pci_read_config_byte_:                       ; 0xf9edf LB 0x27
    1546115468    push bp                                   ; 55
    1546215469    mov bp, sp                                ; 89 e5
     
    1548115488    pop bp                                    ; 5d
    1548215489    retn                                      ; c3
    15483 pci_read_config_word_:                       ; 0xf9ec0 LB 0x25
     15490pci_read_config_word_:                       ; 0xf9f06 LB 0x25
    1548415491    push bp                                   ; 55
    1548515492    mov bp, sp                                ; 89 e5
     
    1550315510    pop bp                                    ; 5d
    1550415511    retn                                      ; c3
    15505 pci_read_config_dword_:                      ; 0xf9ee5 LB 0x3f
     15512pci_read_config_dword_:                      ; 0xf9f2b LB 0x3f
    1550615513    push bp                                   ; 55
    1550715514    mov bp, sp                                ; 89 e5
     
    1551815525    int 01ah                                  ; cd 1a
    1551915526    test cx, cx                               ; 85 c9
    15520     jne short 09f15h                          ; 75 14
     15527    jne short 09f5bh                          ; 75 14
    1552115528    mov al, byte [bp-006h]                    ; 8a 46 fa
    1552215529    xor ah, ah                                ; 30 e4
     
    1552815535    int 01ah                                  ; cd 1a
    1552915536    test cx, cx                               ; 85 c9
    15530     je short 09f1ah                           ; 74 05
     15537    je short 09f60h                           ; 74 05
    1553115538    mov ax, strict word 00001h                ; b8 01 00
    15532     jmp short 09f1ch                          ; eb 02
     15539    jmp short 09f62h                          ; eb 02
    1553315540    xor ax, ax                                ; 31 c0
    1553415541    cwd                                       ; 99
     
    1553815545    pop bp                                    ; 5d
    1553915546    retn                                      ; c3
    15540 vds_is_present_:                             ; 0xf9f24 LB 0x1d
     15547vds_is_present_:                             ; 0xf9f6a LB 0x1d
    1554115548    push bx                                   ; 53
    1554215549    push bp                                   ; 55
     
    1554615553    mov es, ax                                ; 8e c0
    1554715554    test byte [es:bx], 020h                   ; 26 f6 07 20
    15548     je short 09f3ch                           ; 74 06
     15555    je short 09f82h                           ; 74 06
    1554915556    mov ax, strict word 00001h                ; b8 01 00
    1555015557    pop bp                                    ; 5d
     
    1555515562    pop bx                                    ; 5b
    1555615563    retn                                      ; c3
    15557 vds_real_to_lin_:                            ; 0xf9f41 LB 0x1e
     15564vds_real_to_lin_:                            ; 0xf9f87 LB 0x1e
    1555815565    push bx                                   ; 53
    1555915566    push cx                                   ; 51
     
    1556615573    sal ax, 1                                 ; d1 e0
    1556715574    rcl dx, 1                                 ; d1 d2
    15568     loop 09f4fh                               ; e2 fa
     15575    loop 09f95h                               ; e2 fa
    1556915576    xor cx, cx                                ; 31 c9
    1557015577    add ax, bx                                ; 01 d8
     
    1557415581    pop bx                                    ; 5b
    1557515582    retn                                      ; c3
    15576 vds_build_sg_list_:                          ; 0xf9f5f LB 0x77
     15583vds_build_sg_list_:                          ; 0xf9fa5 LB 0x77
    1557715584    push bp                                   ; 55
    1557815585    mov bp, sp                                ; 89 e5
     
    1558815595    mov bx, word [bp+006h]                    ; 8b 5e 06
    1558915596    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15590     call 09f41h                               ; e8 c3 ff
     15597    call 09f87h                               ; e8 c3 ff
    1559115598    mov es, si                                ; 8e c6
    1559215599    mov word [es:di+004h], ax                 ; 26 89 45 04
    1559315600    mov word [es:di+006h], dx                 ; 26 89 55 06
    1559415601    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15595     call 09f24h                               ; e8 93 ff
     15602    call 09f6ah                               ; e8 93 ff
    1559615603    test ax, ax                               ; 85 c0
    15597     je short 09fa6h                           ; 74 11
     15604    je short 09fech                           ; 74 11
    1559815605    mov es, si                                ; 8e c6
    1559915606    mov ax, 08105h                            ; b8 05 81
    1560015607    mov dx, strict word 00000h                ; ba 00 00
    1560115608    int 04bh                                  ; cd 4b
    15602     jc short 09fa3h                           ; 72 02
     15609    jc short 09fe9h                           ; 72 02
    1560315610    db  032h, 0c0h
    1560415611    ; xor al, al                                ; 32 c0
    1560515612    cbw                                       ; 98
    15606     jmp short 09fcdh                          ; eb 27
     15613    jmp short 0a013h                          ; eb 27
    1560715614    mov es, si                                ; 8e c6
    1560815615    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1562115628    pop bp                                    ; 5d
    1562215629    retn 00004h                               ; c2 04 00
    15623 vds_free_sg_list_:                           ; 0xf9fd6 LB 0x3a
     15630vds_free_sg_list_:                           ; 0xfa01c LB 0x34
    1562415631    push bp                                   ; 55
    1562515632    mov bp, sp                                ; 89 e5
     
    1562715634    push di                                   ; 57
    1562815635    mov bx, ax                                ; 89 c3
    15629     call 09f24h                               ; e8 44 ff
     15636    call 09f6ah                               ; e8 44 ff
    1563015637    test ax, ax                               ; 85 c0
    15631     je short 09ff5h                           ; 74 11
     15638    je short 0a03bh                           ; 74 11
    1563215639    mov di, bx                                ; 89 df
    1563315640    mov es, dx                                ; 8e c2
     
    1563515642    mov dx, strict word 00000h                ; ba 00 00
    1563615643    int 04bh                                  ; cd 4b
    15637     jc short 09ff4h                           ; 72 02
     15644    jc short 0a03ah                           ; 72 02
    1563815645    db  032h, 0c0h
    1563915646    ; xor al, al                                ; 32 c0
     
    1564615653    pop bp                                    ; 5d
    1564715654    retn                                      ; c3
    15648     times 0xc db 0
    15649 __U4M:                                       ; 0xfa010 LB 0x20
     15655    times 0x6 db 0
     15656__U4M:                                       ; 0xfa050 LB 0x20
    1565015657    pushfw                                    ; 9c
    1565115658    push si                                   ; 56
     
    1567415681    retn                                      ; c3
    1567515682    times 0x4 db 0
    15676 __U4D:                                       ; 0xfa030 LB 0x30
     15683__U4D:                                       ; 0xfa070 LB 0x30
    1567715684    pushfw                                    ; 9c
    1567815685    push DS                                   ; 1e
     
    1568915696    push dx                                   ; 52
    1569015697    push ax                                   ; 50
    15691     call 0a115h                               ; e8 d0 00
     15698    call 0a155h                               ; e8 d0 00
    1569215699    mov cx, word [bp-002h]                    ; 8b 4e fe
    1569315700    mov bx, word [bp-004h]                    ; 8b 5e fc
     
    1570015707    retn                                      ; c3
    1570115708    times 0xe db 0
    15702 __U8RS:                                      ; 0xfa060 LB 0x10
     15709__U8RS:                                      ; 0xfa0a0 LB 0x10
    1570315710    test si, si                               ; 85 f6
    15704     je short 0a06fh                           ; 74 0b
     15711    je short 0a0afh                           ; 74 0b
    1570515712    shr ax, 1                                 ; d1 e8
    1570615713    rcr bx, 1                                 ; d1 db
     
    1570815715    rcr dx, 1                                 ; d1 da
    1570915716    dec si                                    ; 4e
    15710     jne short 0a064h                          ; 75 f5
     15717    jne short 0a0a4h                          ; 75 f5
    1571115718    retn                                      ; c3
    15712 __U8LS:                                      ; 0xfa070 LB 0x10
     15719__U8LS:                                      ; 0xfa0b0 LB 0x10
    1571315720    test si, si                               ; 85 f6
    15714     je short 0a07fh                           ; 74 0b
     15721    je short 0a0bfh                           ; 74 0b
    1571515722    sal dx, 1                                 ; d1 e2
    1571615723    rcl cx, 1                                 ; d1 d1
     
    1571815725    rcl ax, 1                                 ; d1 d0
    1571915726    dec si                                    ; 4e
    15720     jne short 0a074h                          ; 75 f5
     15727    jne short 0a0b4h                          ; 75 f5
    1572115728    retn                                      ; c3
    15722 _fmemset_:                                   ; 0xfa080 LB 0x10
     15729_fmemset_:                                   ; 0xfa0c0 LB 0x10
    1572315730    push di                                   ; 57
    1572415731    mov es, dx                                ; 8e c2
     
    1573115738    retn                                      ; c3
    1573215739    times 0x3 db 0
    15733 _fmemcpy_:                                   ; 0xfa090 LB 0x3a
     15740_fmemcpy_:                                   ; 0xfa0d0 LB 0x3a
    1573415741    push bp                                   ; 55
    1573515742    db  08bh, 0ech
     
    1575315760    pop bp                                    ; 5d
    1575415761    retn                                      ; c3
    15755     db  000h, 000h, 000h, 000h, 000h, 000h, 0e0h, 0a0h, 0e2h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h
    15756     db  0e8h, 0a0h, 0e8h, 0a0h, 0eah, 0a0h, 0eeh, 0a0h, 0eeh, 0a0h, 0f0h, 0a0h, 0f5h, 0a0h, 0f7h, 0a0h
    15757 apm_worker:                                  ; 0xfa0ca LB 0x3a
     15762    add byte [bx+si], al                      ; 00 00
     15763    add byte [bx+si], al                      ; 00 00
     15764    add byte [bx+si], al                      ; 00 00
     15765    and byte [bx+di-05edeh], ah               ; 20 a1 22 a1
     15766    mov ax, word [es:0a126h]                  ; 26 a1 26 a1
     15767    mov ax, word [es:0a128h]                  ; 26 a1 28 a1
     15768    sub byte [bx+di-05ed6h], ah               ; 28 a1 2a a1
     15769    mov ax, word [cs:0a12eh]                  ; 2e a1 2e a1
     15770    xor byte [bx+di-05ecbh], ah               ; 30 a1 35 a1
     15771    aaa                                       ; 37
     15772    db  0a1h
     15773apm_worker:                                  ; 0xfa10a LB 0x3a
    1575815774    sti                                       ; fb
    1575915775    push ax                                   ; 50
     
    1576715783    pop ax                                    ; 58
    1576815784    mov AH, strict byte 053h                  ; b4 53
    15769     jnc short 0a100h                          ; 73 25
    15770     jmp word [cs:bp-05f50h]                   ; 2e ff a6 b0 a0
    15771     jmp short 0a0feh                          ; eb 1c
     15785    jnc short 0a140h                          ; 73 25
     15786    jmp word [cs:bp-05f10h]                   ; 2e ff a6 f0 a0
     15787    jmp short 0a13eh                          ; eb 1c
    1577215788    sti                                       ; fb
    1577315789    hlt                                       ; f4
    15774     jmp short 0a0feh                          ; eb 18
    15775     jmp short 0a0feh                          ; eb 16
    15776     jmp short 0a100h                          ; eb 16
     15790    jmp short 0a13eh                          ; eb 18
     15791    jmp short 0a13eh                          ; eb 16
     15792    jmp short 0a140h                          ; eb 16
    1577715793    mov AH, strict byte 080h                  ; b4 80
    15778     jmp short 0a102h                          ; eb 14
    15779     jmp short 0a100h                          ; eb 10
     15794    jmp short 0a142h                          ; eb 14
     15795    jmp short 0a140h                          ; eb 10
    1578015796    mov ax, 00102h                            ; b8 02 01
    15781     jmp short 0a0feh                          ; eb 09
    15782     jmp short 0a0feh                          ; eb 07
     15797    jmp short 0a13eh                          ; eb 09
     15798    jmp short 0a13eh                          ; eb 07
    1578315799    mov BL, strict byte 000h                  ; b3 00
    1578415800    mov cx, strict word 00000h                ; b9 00 00
    15785     jmp short 0a0feh                          ; eb 00
     15801    jmp short 0a13eh                          ; eb 00
    1578615802    clc                                       ; f8
    1578715803    retn                                      ; c3
     
    1578915805    stc                                       ; f9
    1579015806    retn                                      ; c3
    15791 apm_pm16_entry:                              ; 0xfa104 LB 0x11
     15807apm_pm16_entry:                              ; 0xfa144 LB 0x11
    1579215808    mov AH, strict byte 002h                  ; b4 02
    1579315809    push DS                                   ; 1e
     
    1579715813    add bp, strict byte 00008h                ; 83 c5 08
    1579815814    mov ds, bp                                ; 8e dd
    15799     call 0a0cah                               ; e8 b8 ff
     15815    call 0a10ah                               ; e8 b8 ff
    1580015816    pop bp                                    ; 5d
    1580115817    pop DS                                    ; 1f
    1580215818    retf                                      ; cb
    15803 _DoUInt32Div:                                ; 0xfa115 LB 0x26b
     15819_DoUInt32Div:                                ; 0xfa155 LB 0x26b
    1580415820    push bp                                   ; 55
    1580515821    mov bp, sp                                ; 89 e5
     
    1581915835    mov [bp-006h], ds                         ; 8c 5e fa
    1582015836    cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
    15821     jne short 0a165h                          ; 75 22
     15837    jne short 0a1a5h                          ; 75 22
    1582215838    mov ax, word [bx]                         ; 8b 07
    1582315839    test ax, ax                               ; 85 c0
    15824     je short 0a162h                           ; 74 19
     15840    je short 0a1a2h                           ; 74 19
    1582515841    cmp ax, strict word 00001h                ; 3d 01 00
    15826     jne short 0a165h                          ; 75 17
     15842    jne short 0a1a5h                          ; 75 17
    1582715843    xor ax, ax                                ; 31 c0
    1582815844    mov word [bp+00ah], ax                    ; 89 46 0a
     
    1583215848    mov ax, word [bp-01ah]                    ; 8b 46 e6
    1583315849    mov word [bp+006h], ax                    ; 89 46 06
    15834     jmp near 0a36dh                           ; e9 08 02
     15850    jmp near 0a3adh                           ; e9 08 02
    1583515851    lds bx, [bp-00ch]                         ; c5 5e f4
    1583615852    mov ax, word [bx+002h]                    ; 8b 47 02
    1583715853    mov ds, [bp-006h]                         ; 8e 5e fa
    1583815854    cmp ax, word [si+002h]                    ; 3b 44 02
    15839     je short 0a18bh                           ; 74 18
     15855    je short 0a1cbh                           ; 74 18
    1584015856    mov ds, [bp-00ah]                         ; 8e 5e f6
    1584115857    mov ax, word [bx+002h]                    ; 8b 47 02
    1584215858    mov ds, [bp-006h]                         ; 8e 5e fa
    1584315859    cmp ax, word [si+002h]                    ; 3b 44 02
    15844     jbe short 0a186h                          ; 76 05
     15860    jbe short 0a1c6h                          ; 76 05
    1584515861    mov ax, strict word 00001h                ; b8 01 00
    15846     jmp short 0a1ach                          ; eb 26
     15862    jmp short 0a1ech                          ; eb 26
    1584715863    mov ax, strict word 0ffffh                ; b8 ff ff
    15848     jmp short 0a1ach                          ; eb 21
     15864    jmp short 0a1ech                          ; eb 21
    1584915865    mov ds, [bp-00ah]                         ; 8e 5e f6
    1585015866    mov ax, word [bx]                         ; 8b 07
    1585115867    mov ds, [bp-006h]                         ; 8e 5e fa
    1585215868    cmp ax, word [si]                         ; 3b 04
    15853     je short 0a1aah                           ; 74 13
     15869    je short 0a1eah                           ; 74 13
    1585415870    mov ds, [bp-00ah]                         ; 8e 5e f6
    1585515871    mov ax, word [bx]                         ; 8b 07
    1585615872    mov ds, [bp-006h]                         ; 8e 5e fa
    1585715873    cmp ax, word [si]                         ; 3b 04
    15858     jbe short 0a1a5h                          ; 76 02
    15859     jmp short 0a181h                          ; eb dc
     15874    jbe short 0a1e5h                          ; 76 02
     15875    jmp short 0a1c1h                          ; eb dc
    1586015876    mov ax, strict word 0ffffh                ; b8 ff ff
    15861     jmp short 0a1ach                          ; eb 02
     15877    jmp short 0a1ech                          ; eb 02
    1586215878    xor ax, ax                                ; 31 c0
    1586315879    test ax, ax                               ; 85 c0
    15864     jnl short 0a1ceh                          ; 7d 1e
     15880    jnl short 0a20eh                          ; 7d 1e
    1586515881    lds bx, [bp-00ch]                         ; c5 5e f4
    1586615882    mov ax, word [bx]                         ; 8b 07
     
    1587215888    mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
    1587315889    mov word [bx], strict word 00000h         ; c7 07 00 00
    15874     jmp short 0a162h                          ; eb 94
    15875     jne short 0a1e5h                          ; 75 15
     15890    jmp short 0a1a2h                          ; eb 94
     15891    jne short 0a225h                          ; 75 15
    1587615892    mov ds, [bp-008h]                         ; 8e 5e f8
    1587715893    mov word [di+002h], ax                    ; 89 45 02
     
    1588015896    mov word [bx], strict word 00001h         ; c7 07 01 00
    1588115897    mov word [bx+002h], ax                    ; 89 47 02
    15882     jmp near 0a36dh                           ; e9 88 01
     15898    jmp near 0a3adh                           ; e9 88 01
    1588315899    lds bx, [bp-00ch]                         ; c5 5e f4
    1588415900    mov ax, word [bx+002h]                    ; 8b 47 02
    1588515901    test ax, ax                               ; 85 c0
    15886     je short 0a200h                           ; 74 11
     15902    je short 0a240h                           ; 74 11
    1588715903    push ax                                   ; 50
    1588815904    mov ax, 0f000h                            ; b8 00 f0
    1588915905    mov ds, ax                                ; 8e d8
    15890     call 0a380h                               ; e8 88 01
     15906    call 0a3c0h                               ; e8 88 01
    1589115907    add sp, strict byte 00002h                ; 83 c4 02
    1589215908    add ax, strict word 00010h                ; 05 10 00
    15893     jmp short 0a20dh                          ; eb 0d
     15909    jmp short 0a24dh                          ; eb 0d
    1589415910    push word [bx]                            ; ff 37
    1589515911    mov ax, 0f000h                            ; b8 00 f0
    1589615912    mov ds, ax                                ; 8e d8
    15897     call 0a380h                               ; e8 76 01
     15913    call 0a3c0h                               ; e8 76 01
    1589815914    add sp, strict byte 00002h                ; 83 c4 02
    1589915915    mov word [bp-014h], ax                    ; 89 46 ec
     
    1590115917    mov ax, word [si+002h]                    ; 8b 44 02
    1590215918    test ax, ax                               ; 85 c0
    15903     je short 0a22bh                           ; 74 11
     15919    je short 0a26bh                           ; 74 11
    1590415920    push ax                                   ; 50
    1590515921    mov ax, 0f000h                            ; b8 00 f0
    1590615922    mov ds, ax                                ; 8e d8
    15907     call 0a380h                               ; e8 5d 01
     15923    call 0a3c0h                               ; e8 5d 01
    1590815924    add sp, strict byte 00002h                ; 83 c4 02
    1590915925    add ax, strict word 00010h                ; 05 10 00
    15910     jmp short 0a238h                          ; eb 0d
     15926    jmp short 0a278h                          ; eb 0d
    1591115927    push word [si]                            ; ff 34
    1591215928    mov ax, 0f000h                            ; b8 00 f0
    1591315929    mov ds, ax                                ; 8e d8
    15914     call 0a380h                               ; e8 4b 01
     15930    call 0a3c0h                               ; e8 4b 01
    1591515931    add sp, strict byte 00002h                ; 83 c4 02
    1591615932    mov dx, word [bp-014h]                    ; 8b 56 ec
     
    1592315939    mov word [bp-016h], ax                    ; 89 46 ea
    1592415940    test dx, dx                               ; 85 d2
    15925     je short 0a2a8h                           ; 74 56
     15941    je short 0a2e8h                           ; 74 56
    1592615942    mov cx, dx                                ; 89 d1
    1592715943    xor ch, dh                                ; 30 f5
     
    1592915945    mov ax, word [si]                         ; 8b 04
    1593015946    mov dx, word [si+002h]                    ; 8b 54 02
    15931     jcxz 0a266h                               ; e3 06
     15947    jcxz 0a2a6h                               ; e3 06
    1593215948    sal ax, 1                                 ; d1 e0
    1593315949    rcl dx, 1                                 ; d1 d2
    15934     loop 0a260h                               ; e2 fa
     15950    loop 0a2a0h                               ; e2 fa
    1593515951    mov word [bp-018h], ax                    ; 89 46 e8
    1593615952    mov word [bp-016h], dx                    ; 89 56 ea
     
    1593815954    lds bx, [bp-00ch]                         ; c5 5e f4
    1593915955    cmp ax, word [bx+002h]                    ; 3b 47 02
    15940     jnbe short 0a286h                         ; 77 0f
     15956    jnbe short 0a2c6h                         ; 77 0f
    1594115957    mov ax, word [bp-016h]                    ; 8b 46 ea
    1594215958    cmp ax, word [bx+002h]                    ; 3b 47 02
    15943     jne short 0a28ah                          ; 75 0b
     15959    jne short 0a2cah                          ; 75 0b
    1594415960    mov ax, word [bp-018h]                    ; 8b 46 e8
    1594515961    cmp ax, word [bx]                         ; 3b 07
    15946     jbe short 0a28ah                          ; 76 04
     15962    jbe short 0a2cah                          ; 76 04
    1594715963    mov AL, strict byte 001h                  ; b0 01
    15948     jmp short 0a28ch                          ; eb 02
     15964    jmp short 0a2cch                          ; eb 02
    1594915965    xor al, al                                ; 30 c0
    1595015966    test al, al                               ; 84 c0
    15951     je short 0a2b3h                           ; 74 23
     15967    je short 0a2f3h                           ; 74 23
    1595215968    shr word [bp-016h], 1                     ; d1 6e ea
    1595315969    rcr word [bp-018h], 1                     ; d1 5e e8
    1595415970    dec word [bp-012h]                        ; ff 4e ee
    15955     jmp short 0a2b3h                          ; eb 18
     15971    jmp short 0a2f3h                          ; eb 18
    1595615972    mov cx, strict word 0001fh                ; b9 1f 00
    1595715973    sal word [bp-018h], 1                     ; d1 66 e8
    1595815974    rcl word [bp-016h], 1                     ; d1 56 ea
    15959     loop 0a29eh                               ; e2 f8
    15960     jmp short 0a296h                          ; eb ee
     15975    loop 0a2deh                               ; e2 f8
     15976    jmp short 0a2d6h                          ; eb ee
    1596115977    mov ax, word [si]                         ; 8b 04
    1596215978    mov word [bp-018h], ax                    ; 89 46 e8
     
    1597515991    mov ds, [bp-006h]                         ; 8e 5e fa
    1597615992    cmp ax, word [si+002h]                    ; 3b 44 02
    15977     jnbe short 0a2dfh                         ; 77 06
    15978     jne short 0a2e3h                          ; 75 08
     15993    jnbe short 0a31fh                         ; 77 06
     15994    jne short 0a323h                          ; 75 08
    1597915995    cmp dx, word [si]                         ; 3b 14
    15980     jc short 0a2e3h                           ; 72 04
     15996    jc short 0a323h                           ; 72 04
    1598115997    mov AL, strict byte 001h                  ; b0 01
    15982     jmp short 0a2e5h                          ; eb 02
     15998    jmp short 0a325h                          ; eb 02
    1598315999    xor al, al                                ; 30 c0
    1598416000    test al, al                               ; 84 c0
    15985     je short 0a34ah                           ; 74 61
     16001    je short 0a38ah                           ; 74 61
    1598616002    mov ds, [bp-008h]                         ; 8e 5e f8
    1598716003    mov ax, word [di+002h]                    ; 8b 45 02
    1598816004    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15989     jnbe short 0a300h                         ; 77 0c
     16005    jnbe short 0a340h                         ; 77 0c
    1599016006    cmp ax, word [bp-016h]                    ; 3b 46 ea
    15991     jne short 0a304h                          ; 75 0b
     16007    jne short 0a344h                          ; 75 0b
    1599216008    mov ax, word [di]                         ; 8b 05
    1599316009    cmp ax, word [bp-018h]                    ; 3b 46 e8
    15994     jc short 0a304h                           ; 72 04
     16010    jc short 0a344h                           ; 72 04
    1599516011    mov AL, strict byte 001h                  ; b0 01
    15996     jmp short 0a306h                          ; eb 02
     16012    jmp short 0a346h                          ; eb 02
    1599716013    xor al, al                                ; 30 c0
    1599816014    test al, al                               ; 84 c0
    15999     je short 0a330h                           ; 74 26
     16015    je short 0a370h                           ; 74 26
    1600016016    mov ax, word [bp-018h]                    ; 8b 46 e8
    1600116017    mov ds, [bp-008h]                         ; 8e 5e f8
     
    1600616022    xor dx, dx                                ; 31 d2
    1600716023    mov cx, word [bp-012h]                    ; 8b 4e ee
    16008     jcxz 0a328h                               ; e3 06
     16024    jcxz 0a368h                               ; e3 06
    1600916025    sal ax, 1                                 ; d1 e0
    1601016026    rcl dx, 1                                 ; d1 d2
    16011     loop 0a322h                               ; e2 fa
     16027    loop 0a362h                               ; e2 fa
    1601216028    lds bx, [bp-010h]                         ; c5 5e f0
    1601316029    or word [bx], ax                          ; 09 07
     
    1601816034    mov ds, [bp-006h]                         ; 8e 5e fa
    1601916035    cmp ax, word [si+002h]                    ; 3b 44 02
    16020     jc short 0a346h                           ; 72 06
    16021     jne short 0a34ch                          ; 75 0a
     16036    jc short 0a386h                           ; 72 06
     16037    jne short 0a38ch                          ; 75 0a
    1602216038    cmp dx, word [si]                         ; 3b 14
    16023     jnc short 0a34ch                          ; 73 06
     16039    jnc short 0a38ch                          ; 73 06
    1602416040    mov AL, strict byte 001h                  ; b0 01
    16025     jmp short 0a34eh                          ; eb 04
    16026     jmp short 0a36dh                          ; eb 21
     16041    jmp short 0a38eh                          ; eb 04
     16042    jmp short 0a3adh                          ; eb 21
    1602716043    xor al, al                                ; 30 c0
    1602816044    test al, al                               ; 84 c0
    16029     je short 0a361h                           ; 74 0f
    16030     jmp short 0a36dh                          ; eb 19
     16045    je short 0a3a1h                           ; 74 0f
     16046    jmp short 0a3adh                          ; eb 19
    1603116047    mov cx, strict word 0001fh                ; b9 1f 00
    1603216048    sal word [bp-018h], 1                     ; d1 66 e8
    1603316049    rcl word [bp-016h], 1                     ; d1 56 ea
    16034     loop 0a357h                               ; e2 f8
    16035     jmp short 0a367h                          ; eb 06
     16050    loop 0a397h                               ; e2 f8
     16051    jmp short 0a3a7h                          ; eb 06
    1603616052    shr word [bp-016h], 1                     ; d1 6e ea
    1603716053    rcr word [bp-018h], 1                     ; d1 5e e8
    1603816054    dec word [bp-012h]                        ; ff 4e ee
    16039     jmp near 0a2e9h                           ; e9 7c ff
     16055    jmp near 0a329h                           ; e9 7c ff
    1604016056    mov ax, word [bp-01ch]                    ; 8b 46 e4
    1604116057    mov dx, word [bp-01ah]                    ; 8b 56 e6
     
    1604616062    retn                                      ; c3
    1604716063    times 0x6 db 0
    16048 _ASMBitLastSetU16:                           ; 0xfa380 LB 0x18
     16064_ASMBitLastSetU16:                           ; 0xfa3c0 LB 0x18
    1604916065    push bp                                   ; 55
    1605016066    db  08bh, 0ech
     
    1605216068    mov cx, word [bp+004h]                    ; 8b 4e 04
    1605316069    test cx, cx                               ; 85 c9
    16054     je short 0a394h                           ; 74 0a
     16070    je short 0a3d4h                           ; 74 0a
    1605516071    mov ax, strict word 00010h                ; b8 10 00
    1605616072    sal cx, 1                                 ; d1 e1
    16057     jc short 0a396h                           ; 72 05
     16073    jc short 0a3d6h                           ; 72 05
    1605816074    dec ax                                    ; 48
    16059     jmp short 0a38dh                          ; eb f9
     16075    jmp short 0a3cdh                          ; eb f9
    1606016076    db  033h, 0c0h
    1606116077    ; xor ax, ax                                ; 33 c0
     
    1606316079    retn                                      ; c3
    1606416080
    16065   ; Padding 0x3668 bytes at 0xfa398
    16066   times 13928 db 0
     16081  ; Padding 0x3628 bytes at 0xfa3d8
     16082  times 13864 db 0
    1606716083
    1606816084section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1611116127    add bp, strict byte 00008h                ; 83 c5 08
    1611216128    push ebp                                  ; 66 55
    16113     mov bp, 0a106h                            ; bd 06 a1
     16129    mov bp, 0a146h                            ; bd 46 a1
    1611416130    add byte [bx+si], al                      ; 00 00
    1611516131    push ebp                                  ; 66 55
     
    1671816734    mov dx, 0c800h                            ; ba 00 c8
    1671916735    call 01600h                               ; e8 f0 33
    16720     call 04faah                               ; e8 97 6d
     16736    call 04ff0h                               ; e8 dd 6d
    1672116737    pop DS                                    ; 1f
    1672216738    mov ax, 0ff53h                            ; b8 53 ff
     
    1684116857    call 01cc5h                               ; e8 89 39
    1684216858    call 02154h                               ; e8 15 3e
    16843     call 09958h                               ; e8 16 b6
    16844     call 087bdh                               ; e8 78 a4
     16859    call 0999eh                               ; e8 5c b6
     16860    call 08803h                               ; e8 be a4
    1684516861    call 0ed4ch                               ; e8 04 0a
    1684616862    call 0e2d2h                               ; e8 87 ff
     
    1685216868    call 01600h                               ; e8 a9 32
    1685316869    call 01799h                               ; e8 3f 34
    16854     call 03bc4h                               ; e8 67 58
     16870    call 03c0ah                               ; e8 ad 58
    1685516871    sti                                       ; fb
    1685616872    int 019h                                  ; cd 19
     
    1696116977    pop DS                                    ; 1f
    1696216978    cld                                       ; fc
    16963     call 06565h                               ; e8 1c 7e
     16979    call 065abh                               ; e8 62 7e
    1696416980    pop di                                    ; 5f
    1696516981    pop si                                    ; 5e
     
    1706517081    pop DS                                    ; 1f
    1706617082    cld                                       ; fc
    17067     call 05813h                               ; e8 ca 6f
     17083    call 05859h                               ; e8 10 70
    1706817084    pop di                                    ; 5f
    1706917085    pop si                                    ; 5e
     
    1708917105    pop DS                                    ; 1f
    1709017106    cld                                       ; fc
    17091     call 05813h                               ; e8 a5 6f
     17107    call 05859h                               ; e8 eb 6f
    1709217108    pop di                                    ; 5f
    1709317109    pop si                                    ; 5e
     
    1714817164    pop DS                                    ; 1f
    1714917165    cld                                       ; fc
    17150     call 052b2h                               ; e8 e2 68
     17166    call 052f8h                               ; e8 28 69
    1715117167    pop ES                                    ; 07
    1715217168    pop di                                    ; 5f
     
    1717817194    pop DS                                    ; 1f
    1717917195    cld                                       ; fc
    17180     call 06e9dh                               ; e8 a9 84
     17196    call 06ee3h                               ; e8 ef 84
    1718117197    pop DS                                    ; 1f
    1718217198    pop ES                                    ; 07
     
    1721417230    cld                                       ; fc
    1721517231    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17216     jmp near 03c08h                           ; e9 8e 4f
     17232    jmp near 03c4eh                           ; e9 d4 4f
    1721717233jmp_call_ret_int13_out:                      ; 0xfec7a LB 0x4a
    1721817234    db  0ffh
     
    1722317239    push cx                                   ; 51
    1722417240    push dx                                   ; 52
    17225     call 03bdch                               ; e8 58 4f
     17241    call 03c22h                               ; e8 9e 4f
    1722617242    cmp AL, strict byte 000h                  ; 3c 00
    1722717243    je short 0ecbfh                           ; 74 37
    17228     call 03bf2h                               ; e8 67 4f
     17244    call 03c38h                               ; e8 ad 4f
    1722917245    pop dx                                    ; 5a
    1723017246    push dx                                   ; 52
     
    1725117267    cld                                       ; fc
    1725217268    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17253     jmp near 04215h                           ; e9 6a 55
     17269    jmp near 0425bh                           ; e9 b0 55
    1725417270    and dl, 0e0h                              ; 80 e2 e0
    1725517271    db  03ah, 0c2h
     
    1729117307    jne short 0ecdeh                          ; 75 08
    1729217308    push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
    17293     jmp near 0320fh                           ; e9 31 45
     17309    jmp near 0322dh                           ; e9 4f 45
    1729417310int13_notfloppy:                             ; 0xfecde LB 0x14
    1729517311    cmp dl, 0e0h                              ; 80 fa e0
     
    1729717313    shr ebx, 010h                             ; 66 c1 eb 10
    1729817314    push bx                                   ; 53
    17299     call 04668h                               ; e8 7d 59
     17315    call 046aeh                               ; e8 c3 59
    1730017316    pop bx                                    ; 5b
    1730117317    sal ebx, 010h                             ; 66 c1 e3 10
     
    1730417320    cmp ah, 040h                              ; 80 fc 40
    1730517321    jnbe short 0ecfch                         ; 77 05
    17306     call 05bf4h                               ; e8 fa 6e
     17322    call 05c3ah                               ; e8 40 6f
    1730717323    jmp short 0ecffh                          ; eb 03
    17308     call 0603ah                               ; e8 3b 73
     17324    call 06080h                               ; e8 81 73
    1730917325int13_out:                                   ; 0xfecff LB 0xb
    1731017326    pop DS                                    ; 1f
     
    1754017556    pop DS                                    ; 1f
    1754117557    cld                                       ; fc
    17542     call 0784ah                               ; e8 66 88
     17558    call 07890h                               ; e8 ac 88
    1754317559    pop di                                    ; 5f
    1754417560    pop si                                    ; 5e
     
    1759817614    mov ax, strict word 00001h                ; b8 01 00
    1759917615    push ax                                   ; 50
    17600     call 04d07h                               ; e8 37 5c
     17616    call 04d4dh                               ; e8 7d 5c
    1760117617    inc sp                                    ; 44
    1760217618    inc sp                                    ; 44
     
    1760517621    mov ax, strict word 00002h                ; b8 02 00
    1760617622    push ax                                   ; 50
    17607     call 04d07h                               ; e8 2a 5c
     17623    call 04d4dh                               ; e8 70 5c
    1760817624    inc sp                                    ; 44
    1760917625    inc sp                                    ; 44
     
    1761217628    mov ax, strict word 00003h                ; b8 03 00
    1761317629    push ax                                   ; 50
    17614     call 04d07h                               ; e8 1d 5c
     17630    call 04d4dh                               ; e8 63 5c
    1761517631    inc sp                                    ; 44
    1761617632    inc sp                                    ; 44
     
    1761917635    mov ax, strict word 00004h                ; b8 04 00
    1762017636    push ax                                   ; 50
    17621     call 04d07h                               ; e8 10 5c
     17637    call 04d4dh                               ; e8 56 5c
    1762217638    inc sp                                    ; 44
    1762317639    inc sp                                    ; 44
     
    1792217938    cmp ah, 0c2h                              ; 80 fc c2
    1792317939    je short 0f895h                           ; 74 15
    17924     call 067bch                               ; e8 39 6f
     17940    call 06802h                               ; e8 7f 6f
    1792517941    pop di                                    ; 5f
    1792617942    pop si                                    ; 5e
     
    1793517951    popfw                                     ; 9d
    1793617952    jmp short 0f8afh                          ; eb 1f
    17937     call 09aabh                               ; e8 18 a2
     17953    call 09af1h                               ; e8 5e a2
    1793817954    jmp short 0f883h                          ; eb ee
    1793917955int15_handler_mouse:                         ; 0xff895 LB 0x5
    17940     call 074aah                               ; e8 12 7c
     17956    call 074f0h                               ; e8 58 7c
    1794117957    jmp short 0f883h                          ; eb e9
    1794217958int15_handler32:                             ; 0xff89a LB 0x15
     
    1794917965    push si                                   ; 56
    1795017966    push di                                   ; 57
    17951     call 06affh                               ; e8 5a 72
     17967    call 06b45h                               ; e8 a0 72
    1795217968    pop di                                    ; 5f
    1795317969    pop si                                    ; 5e
     
    1799518011    pop DS                                    ; 1f
    1799618012    cld                                       ; fc
    17997     call 073d8h                               ; e8 fd 7a
     18013    call 0741eh                               ; e8 43 7b
    1799818014    pop cx                                    ; 59
    1799918015    jcxz 0f8ebh                               ; e3 0d
     
    1804318059    pop DS                                    ; 1f
    1804418060    cld                                       ; fc
    18045     call 07075h                               ; e8 56 77
     18061    call 070bbh                               ; e8 9c 77
    1804618062    pop di                                    ; 5f
    1804718063    pop si                                    ; 5e
     
    1814618162    pop DS                                    ; 1f
    1814718163    cld                                       ; fc
    18148     call 07134h                               ; e8 b6 72
     18164    call 0717ah                               ; e8 fc 72
    1814918165    pop di                                    ; 5f
    1815018166    pop si                                    ; 5e
     
    1825818274cpu_reset:                                   ; 0xffff0 LB 0x10
    1825918275    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    18260     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 04bh
     18276    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 037h
  • trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum

    r62178 r62406  
    1 054d96b31388917aaa057b74cc4153b3 *VBoxPcBios8086.rom
     1330a9aa8398ed5ec4c2d8ab184d0b782 *VBoxPcBios8086.rom
Note: See TracChangeset for help on using the changeset viewer.

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