VirtualBox

Ignore:
Timestamp:
Jul 4, 2017 11:02:25 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
116682
Message:

updated alternative system BIOS and VGA BIOS sources

File:
1 edited

Legend:

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

    r67683 r67771  
    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, 05dh, 02ch, 006h, 082h, 02dh, 091h
     953    db  000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 016h, 082h, 03dh, 091h
    954954_softrst:                                    ; 0xf0076 LB 0xc
    955     db  000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0aah, 03ch, 0aah, 03ch
     955    db  000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0b6h, 03ch, 0b6h, 03ch
    956956_dskacc:                                     ; 0xf0082 LB 0x2e
    957957    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h
    958     db  050h, 080h, 02bh, 081h, 003h, 090h, 0a9h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     958    db  060h, 080h, 03bh, 081h, 013h, 090h, 0b9h, 090h, 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
     
    11541154  times 1126 db 0
    11551155
    1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b15 class=CODE group=AUTO
     1156section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b25 class=CODE group=AUTO
    11571157rom_scan_:                                   ; 0xf1600 LB 0x50
    11581158    push bp                                   ; 55
     
    15301530    int 010h                                  ; cd 10
    15311531    jmp short 018bah                          ; eb 03
    1532     call 07c0eh                               ; e8 54 63
     1532    call 07c1eh                               ; e8 64 63
    15331533    mov sp, bp                                ; 89 ec
    15341534    pop bp                                    ; 5d
     
    16761676    mov bx, strict word 0000ah                ; bb 0a 00
    16771677    xor cx, cx                                ; 31 c9
    1678     call 0a020h                               ; e8 4e 86
     1678    call 0a030h                               ; e8 5e 86
    16791679    mov word [bp-008h], ax                    ; 89 46 f8
    16801680    mov cx, dx                                ; 89 d1
     
    19021902    mov dx, word [bp-026h]                    ; 8b 56 da
    19031903    mov si, word [bp-01eh]                    ; 8b 76 e2
    1904     call 0a060h                               ; e8 5c 84
     1904    call 0a070h                               ; e8 6c 84
    19051905    mov ax, dx                                ; 89 d0
    19061906    xor ah, dh                                ; 30 f4
     
    23442344    mov dx, word [es:si]                      ; 26 8b 14
    23452345    mov si, strict word 00018h                ; be 18 00
    2346     call 0a060h                               ; e8 00 80
     2346    call 0a070h                               ; e8 10 80
    23472347    xor dh, dh                                ; 30 f6
    23482348    mov word [bp-016h], dx                    ; 89 56 ea
     
    23542354    mov dx, word [es:si]                      ; 26 8b 14
    23552355    mov si, strict word 00020h                ; be 20 00
    2356     call 0a060h                               ; e8 e0 7f
     2356    call 0a070h                               ; e8 f0 7f
    23572357    mov bx, dx                                ; 89 d3
    23582358    mov ax, word [bp-01eh]                    ; 8b 46 e2
     
    23852385    mov dx, word [es:si]                      ; 26 8b 14
    23862386    mov si, strict word 00008h                ; be 08 00
    2387     call 0a060h                               ; e8 8f 7f
     2387    call 0a070h                               ; e8 9f 7f
    23882388    mov word [bp-014h], dx                    ; 89 56 ec
    23892389    mov bx, word [bp-018h]                    ; 8b 5e e8
     
    23942394    mov dx, word [es:si]                      ; 26 8b 14
    23952395    mov si, strict word 00018h                ; be 18 00
    2396     call 0a060h                               ; e8 71 7f
     2396    call 0a070h                               ; e8 81 7f
    23972397    and dx, strict byte 0000fh                ; 83 e2 0f
    23982398    or dl, 040h                               ; 80 ca 40
     
    27872787    mov dx, ss                                ; 8c d2
    27882788    lea ax, [bp-03ah]                         ; 8d 46 c6
    2789     call 05ac0h                               ; e8 ef 35
     2789    call 05acch                               ; e8 fb 35
    27902790    mov bx, 00db2h                            ; bb b2 0d
    27912791    mov cx, ds                                ; 8c d9
     
    29502950    mov dx, word [es:si+036h]                 ; 26 8b 54 36
    29512951    mov si, strict word 0000bh                ; be 0b 00
    2952     call 0a060h                               ; e8 a9 79
     2952    call 0a070h                               ; e8 b9 79
    29532953    mov word [bp-030h], dx                    ; 89 56 d0
    29542954    mov word [bp-02eh], cx                    ; 89 4e d2
     
    32213221    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32223222    mov si, strict word 00018h                ; be 18 00
    3223     call 0a060h                               ; e8 d3 76
     3223    call 0a070h                               ; e8 e3 76
    32243224    xor dh, dh                                ; 30 f6
    32253225    mov word [bp-01ch], dx                    ; 89 56 e4
     
    32293229    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32303230    mov si, strict word 00020h                ; be 20 00
    3231     call 0a060h                               ; e8 bc 76
     3231    call 0a070h                               ; e8 cc 76
    32323232    mov bx, dx                                ; 89 d3
    32333233    mov ax, word [bp-01ah]                    ; 8b 46 e6
     
    32633263    mov dx, word [bp-01eh]                    ; 8b 56 e2
    32643264    mov si, strict word 00008h                ; be 08 00
    3265     call 0a060h                               ; e8 68 76
     3265    call 0a070h                               ; e8 78 76
    32663266    mov word [bp-010h], ax                    ; 89 46 f0
    32673267    mov word [bp-014h], bx                    ; 89 5e ec
     
    32703270    mov word [bp-026h], dx                    ; 89 56 da
    32713271    mov si, strict word 00010h                ; be 10 00
    3272     call 0a060h                               ; e8 53 76
     3272    call 0a070h                               ; e8 63 76
    32733273    mov word [bp-01eh], dx                    ; 89 56 e2
    32743274    mov ax, dx                                ; 89 d0
     
    42914291    add AL, strict byte 003h                  ; 04 03
    42924292    add al, byte [bx+di]                      ; 02 01
    4293     add byte [bx+si+03ch], bl                 ; 00 58 3c
    4294     aas                                       ; 3f
    4295     xor di, word [si-023cdh]                  ; 33 bc 33 dc
    4296     db  033h, 0dch
    4297     ; xor bx, sp                                ; 33 dc
    4298     db  033h, 0dch
    4299     ; xor bx, sp                                ; 33 dc
    4300     xor dx, word [bx+037h]                    ; 33 57 37
    4301     or ax, 0fd39h                             ; 0d 39 fd
    4302     cmp word [bx], di                         ; 39 3f
    4303     cmp dh, byte [bp+di+03ah]                 ; 3a 73 3a
    4304     in ax, 03ah                               ; e5 3a
    4305 _int13_diskette_function:                    ; 0xf3303 LB 0x978
     4293    add byte [si+03ch], ah                    ; 00 64 3c
     4294    inc bx                                    ; 43
     4295    db  033h, 0c0h
     4296    ; xor ax, ax                                ; 33 c0
     4297    db  033h, 0e0h
     4298    ; xor sp, ax                                ; 33 e0
     4299    db  033h, 0e0h
     4300    ; xor sp, ax                                ; 33 e0
     4301    db  033h, 0e0h
     4302    ; xor sp, ax                                ; 33 e0
     4303    xor bx, word [bp+di+037h]                 ; 33 5b 37
     4304    sbb word [bx+di], di                      ; 19 39
     4305    or word [bp+si], di                       ; 09 3a
     4306    dec bx                                    ; 4b
     4307    cmp bh, byte [bx+03ah]                    ; 3a 7f 3a
     4308    db  0f1h
     4309    db  03ah
     4310_int13_diskette_function:                    ; 0xf3303 LB 0x984
    43064311    push bp                                   ; 55
    43074312    mov bp, sp                                ; 89 e5
    4308     sub sp, strict byte 0000ah                ; 83 ec 0a
     4313    sub sp, strict byte 0000ch                ; 83 ec 0c
     4314    or byte [bp+01dh], 002h                   ; 80 4e 1d 02
    43094315    mov ax, word [bp+016h]                    ; 8b 46 16
    43104316    shr ax, 008h                              ; c1 e8 08
    43114317    cmp ax, strict word 00018h                ; 3d 18 00
    4312     jnbe near 03c58h                          ; 0f 87 42 09
     4318    jnbe near 03c64h                          ; 0f 87 4a 09
    43134319    push CS                                   ; 0e
    43144320    pop ES                                    ; 07
     
    43294335    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    43304336    cmp bl, 001h                              ; 80 fb 01
    4331     jbe short 03361h                          ; 76 1a
     4337    jbe short 03365h                          ; 76 1a
    43324338    mov ax, word [bp+016h]                    ; 8b 46 16
    43334339    xor ah, ah                                ; 30 e4
     
    43384344    mov es, ax                                ; 8e c0
    43394345    mov byte [es:bx], 001h                    ; 26 c6 07 01
    4340     jmp near 03b45h                           ; e9 e4 07
     4346    jmp near 03b51h                           ; e9 ec 07
    43414347    mov ax, strict word 00010h                ; b8 10 00
    4342     call 017a5h                               ; e8 3e e4
     4348    call 017a5h                               ; e8 3a e4
    43434349    test bl, bl                               ; 84 db
    4344     jne short 03372h                          ; 75 07
     4350    jne short 03376h                          ; 75 07
    43454351    mov dl, al                                ; 88 c2
    43464352    shr dl, 004h                              ; c0 ea 04
    4347     jmp short 03377h                          ; eb 05
     4353    jmp short 0337bh                          ; eb 05
    43484354    mov dl, al                                ; 88 c2
    43494355    and dl, 00fh                              ; 80 e2 0f
    43504356    test dl, dl                               ; 84 d2
    4351     jne short 03395h                          ; 75 1a
     4357    jne short 03399h                          ; 75 1a
    43524358    mov ax, word [bp+016h]                    ; 8b 46 16
    43534359    xor ah, ah                                ; 30 e4
     
    43584364    mov es, ax                                ; 8e c0
    43594365    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4360     jmp near 03b45h                           ; e9 b0 07
     4366    jmp near 03b51h                           ; e9 b8 07
    43614367    mov si, strict word 0003eh                ; be 3e 00
    43624368    mov ax, strict word 00040h                ; b8 40 00
     
    43704376    movzx ax, bl                              ; 0f b6 c3
    43714377    xor dx, dx                                ; 31 d2
    4372     call 02fc5h                               ; e8 0d fc
     4378    call 02fc5h                               ; e8 09 fc
    43734379    mov sp, bp                                ; 89 ec
    43744380    pop bp                                    ; 5d
     
    43844390    mov word [bp+016h], dx                    ; 89 56 16
    43854391    test al, al                               ; 84 c0
    4386     je short 033b8h                           ; 74 df
    4387     jmp near 03b45h                           ; e9 69 07
     4392    je short 033bch                           ; 74 df
     4393    jmp near 03b51h                           ; e9 71 07
    43884394    mov bh, byte [bp+016h]                    ; 8a 7e 16
    43894395    mov ax, word [bp+014h]                    ; 8b 46 14
     
    43974403    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    43984404    cmp bl, 001h                              ; 80 fb 01
    4399     jnbe short 0340ch                         ; 77 0d
     4405    jnbe short 03410h                         ; 77 0d
    44004406    cmp AL, strict byte 001h                  ; 3c 01
    4401     jnbe short 0340ch                         ; 77 09
     4407    jnbe short 03410h                         ; 77 09
    44024408    test bh, bh                               ; 84 ff
    4403     je short 0340ch                           ; 74 05
     4409    je short 03410h                           ; 74 05
    44044410    cmp bh, 048h                              ; 80 ff 48
    4405     jbe short 0343fh                          ; 76 33
     4411    jbe short 03443h                          ; 76 33
    44064412    mov bx, 00db2h                            ; bb b2 0d
    44074413    mov cx, ds                                ; 8c d9
    44084414    mov ax, strict word 00004h                ; b8 04 00
    4409     call 01a2ah                               ; e8 13 e6
     4415    call 01a2ah                               ; e8 0f e6
    44104416    push 00287h                               ; 68 87 02
    44114417    push 0029fh                               ; 68 9f 02
    44124418    push strict byte 00004h                   ; 6a 04
    4413     call 01a6bh                               ; e8 49 e6
     4419    call 01a6bh                               ; e8 45 e6
    44144420    add sp, strict byte 00006h                ; 83 c4 06
    44154421    mov ax, word [bp+016h]                    ; 8b 46 16
     
    44214427    mov es, ax                                ; 8e c0
    44224428    mov byte [es:bx], 001h                    ; 26 c6 07 01
    4423     jmp near 034cah                           ; e9 8b 00
     4429    jmp near 034ceh                           ; e9 8b 00
    44244430    movzx ax, bl                              ; 0f b6 c3
    4425     call 032bch                               ; e8 77 fe
     4431    call 032bch                               ; e8 73 fe
    44264432    test ax, ax                               ; 85 c0
    4427     je near 03561h                            ; 0f 84 16 01
     4433    je near 03565h                            ; 0f 84 16 01
    44284434    movzx cx, bl                              ; 0f b6 cb
    44294435    mov ax, cx                                ; 89 c8
    4430     call 03100h                               ; e8 ad fc
     4436    call 03100h                               ; e8 a9 fc
    44314437    test ax, ax                               ; 85 c0
    4432     jne short 03479h                          ; 75 22
     4438    jne short 0347dh                          ; 75 22
    44334439    mov ax, cx                                ; 89 c8
    4434     call 031d8h                               ; e8 7c fd
     4440    call 031d8h                               ; e8 78 fd
    44354441    test ax, ax                               ; 85 c0
    4436     jne short 03479h                          ; 75 19
     4442    jne short 0347dh                          ; 75 19
    44374443    mov ax, word [bp+016h]                    ; 8b 46 16
    44384444    xor ah, ah                                ; 30 e4
     
    44434449    mov es, ax                                ; 8e c0
    44444450    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
    4445     jmp short 034cah                          ; eb 51
     4451    jmp short 034ceh                          ; eb 51
    44464452    mov ax, word [bp+016h]                    ; 8b 46 16
    44474453    shr ax, 008h                              ; c1 e8 08
    44484454    cmp ax, strict word 00002h                ; 3d 02 00
    4449     jne near 03615h                           ; 0f 85 8f 01
     4455    jne near 03619h                           ; 0f 85 8f 01
    44504456    mov dx, word [bp+006h]                    ; 8b 56 06
    44514457    shr dx, 00ch                              ; c1 ea 0c
     
    44574463    mov word [bp-008h], si                    ; 89 76 f8
    44584464    cmp cx, si                                ; 39 f1
    4459     jbe short 034a2h                          ; 76 02
     4465    jbe short 034a6h                          ; 76 02
    44604466    db  0feh, 0c4h
    44614467    ; inc ah                                    ; fe c4
     
    44664472    add dx, cx                                ; 01 ca
    44674473    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4468     jnc short 034d1h                          ; 73 1e
     4474    jnc short 034d5h                          ; 73 1e
    44694475    mov ax, word [bp+016h]                    ; 8b 46 16
    44704476    xor ah, ah                                ; 30 e4
     
    44764482    mov byte [es:bx], 009h                    ; 26 c6 07 09
    44774483    mov byte [bp+016h], 000h                  ; c6 46 16 00
    4478     jmp near 03b45h                           ; e9 74 06
     4484    jmp near 03b51h                           ; e9 7c 06
    44794485    mov AL, strict byte 006h                  ; b0 06
    44804486    mov dx, strict word 0000ah                ; ba 0a 00
     
    45114517    movzx cx, bl                              ; 0f b6 cb
    45124518    mov ax, cx                                ; 89 c8
    4513     call 0308ch                               ; e8 70 fb
     4519    call 0308ch                               ; e8 6c fb
    45144520    mov AL, strict byte 0e6h                  ; b0 e6
    45154521    mov dx, 003f5h                            ; ba f5 03
     
    45394545    mov AL, strict byte 0ffh                  ; b0 ff
    45404546    out DX, AL                                ; ee
    4541     call 03012h                               ; e8 ba fa
     4547    call 03012h                               ; e8 b6 fa
    45424548    test al, al                               ; 84 c0
    4543     jne short 0357bh                          ; 75 1f
     4549    jne short 0357fh                          ; 75 1f
    45444550    mov ax, cx                                ; 89 c8
    4545     call 0304ah                               ; e8 e9 fa
     4551    call 0304ah                               ; e8 e5 fa
    45464552    mov ax, word [bp+016h]                    ; 8b 46 16
    45474553    xor ah, ah                                ; 30 e4
     
    45524558    mov es, ax                                ; 8e c0
    45534559    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4554     jmp near 034cah                           ; e9 4f ff
     4560    jmp near 034ceh                           ; e9 4f ff
    45554561    mov dx, 003f4h                            ; ba f4 03
    45564562    in AL, DX                                 ; ec
     
    45594565    and AL, strict byte 0c0h                  ; 24 c0
    45604566    cmp AL, strict byte 0c0h                  ; 3c c0
    4561     je short 03595h                           ; 74 0e
     4567    je short 03599h                           ; 74 0e
    45624568    push 00287h                               ; 68 87 02
    45634569    push 002bah                               ; 68 ba 02
    45644570    push strict byte 00007h                   ; 6a 07
    4565     call 01a6bh                               ; e8 d9 e4
     4571    call 01a6bh                               ; e8 d5 e4
    45664572    add sp, strict byte 00006h                ; 83 c4 06
    45674573    xor cx, cx                                ; 31 c9
    4568     jmp short 0359eh                          ; eb 05
     4574    jmp short 035a2h                          ; eb 05
    45694575    cmp cx, strict byte 00007h                ; 83 f9 07
    4570     jnl short 035b4h                          ; 7d 16
     4576    jnl short 035b8h                          ; 7d 16
    45714577    mov dx, 003f5h                            ; ba f5 03
    45724578    in AL, DX                                 ; ec
     
    45794585    mov byte [es:si], al                      ; 26 88 04
    45804586    inc cx                                    ; 41
    4581     jmp short 03599h                          ; eb e5
     4587    jmp short 0359dh                          ; eb e5
    45824588    mov si, strict word 00042h                ; be 42 00
    45834589    mov ax, strict word 00040h                ; b8 40 00
     
    45854591    mov al, byte [es:si]                      ; 26 8a 04
    45864592    test AL, strict byte 0c0h                 ; a8 c0
    4587     je short 035e3h                           ; 74 20
     4593    je short 035e7h                           ; 74 20
    45884594    movzx ax, bl                              ; 0f b6 c3
    4589     call 0304ah                               ; e8 81 fa
     4595    call 0304ah                               ; e8 7d fa
    45904596    mov ax, word [bp+016h]                    ; 8b 46 16
    45914597    xor ah, ah                                ; 30 e4
     
    45964602    mov es, ax                                ; 8e c0
    45974603    mov byte [es:bx], 020h                    ; 26 c6 07 20
    4598     jmp near 034cah                           ; e9 e7 fe
     4604    jmp near 034ceh                           ; e9 e7 fe
    45994605    movzx ax, bh                              ; 0f b6 c7
    46004606    sal ax, 009h                              ; c1 e0 09
     
    46144620    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    46154621    movzx ax, bl                              ; 0f b6 c3
    4616     call 02fc5h                               ; e8 bb f9
     4622    call 02fc5h                               ; e8 b7 f9
    46174623    mov byte [bp+017h], 000h                  ; c6 46 17 00
    46184624    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    4619     jmp near 033b8h                           ; e9 a3 fd
     4625    jmp near 033bch                           ; e9 a3 fd
    46204626    mov ax, word [bp+016h]                    ; 8b 46 16
    46214627    shr ax, 008h                              ; c1 e8 08
    46224628    cmp ax, strict word 00003h                ; 3d 03 00
    4623     jne near 03742h                           ; 0f 85 20 01
     4629    jne near 03746h                           ; 0f 85 20 01
    46244630    mov cx, word [bp+006h]                    ; 8b 4e 06
    46254631    shr cx, 00ch                              ; c1 e9 0c
     
    46314637    mov word [bp-008h], si                    ; 89 76 f8
    46324638    cmp dx, si                                ; 39 f2
    4633     jbe short 0363eh                          ; 76 02
     4639    jbe short 03642h                          ; 76 02
    46344640    db  0feh, 0c4h
    46354641    ; inc ah                                    ; fe c4
     
    46404646    add dx, cx                                ; 01 ca
    46414647    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4642     jc near 034b3h                            ; 0f 82 62 fe
     4648    jc near 034b7h                            ; 0f 82 62 fe
    46434649    mov AL, strict byte 006h                  ; b0 06
    46444650    mov dx, strict word 0000ah                ; ba 0a 00
     
    46754681    movzx cx, bl                              ; 0f b6 cb
    46764682    mov ax, cx                                ; 89 c8
    4677     call 0308ch                               ; e8 f0 f9
     4683    call 0308ch                               ; e8 ec f9
    46784684    mov AL, strict byte 0c5h                  ; b0 c5
    46794685    mov dx, 003f5h                            ; ba f5 03
     
    47034709    mov AL, strict byte 0ffh                  ; b0 ff
    47044710    out DX, AL                                ; ee
    4705     call 03012h                               ; e8 3a f9
     4711    call 03012h                               ; e8 36 f9
    47064712    test al, al                               ; 84 c0
    4707     je near 0355ch                            ; 0f 84 7e fe
     4713    je near 03560h                            ; 0f 84 7e fe
    47084714    mov dx, 003f4h                            ; ba f4 03
    47094715    in AL, DX                                 ; ec
     
    47124718    and AL, strict byte 0c0h                  ; 24 c0
    47134719    cmp AL, strict byte 0c0h                  ; 3c c0
    4714     je short 036f8h                           ; 74 0e
     4720    je short 036fch                           ; 74 0e
    47154721    push 00287h                               ; 68 87 02
    47164722    push 002bah                               ; 68 ba 02
    47174723    push strict byte 00007h                   ; 6a 07
    4718     call 01a6bh                               ; e8 76 e3
     4724    call 01a6bh                               ; e8 72 e3
    47194725    add sp, strict byte 00006h                ; 83 c4 06
    47204726    xor cx, cx                                ; 31 c9
    4721     jmp short 03701h                          ; eb 05
     4727    jmp short 03705h                          ; eb 05
    47224728    cmp cx, strict byte 00007h                ; 83 f9 07
    4723     jnl short 03717h                          ; 7d 16
     4729    jnl short 0371bh                          ; 7d 16
    47244730    mov dx, 003f5h                            ; ba f5 03
    47254731    in AL, DX                                 ; ec
     
    47324738    mov byte [es:si], al                      ; 26 88 04
    47334739    inc cx                                    ; 41
    4734     jmp short 036fch                          ; eb e5
     4740    jmp short 03700h                          ; eb e5
    47354741    mov si, strict word 00042h                ; be 42 00
    47364742    mov ax, strict word 00040h                ; b8 40 00
     
    47384744    mov al, byte [es:si]                      ; 26 8a 04
    47394745    test AL, strict byte 0c0h                 ; a8 c0
    4740     je near 03600h                            ; 0f 84 d8 fe
     4746    je near 03604h                            ; 0f 84 d8 fe
    47414747    mov bx, strict word 00043h                ; bb 43 00
    47424748    mov al, byte [es:bx]                      ; 26 8a 07
    47434749    test AL, strict byte 002h                 ; a8 02
    4744     je short 0373ah                           ; 74 08
     4750    je short 0373eh                           ; 74 08
    47454751    mov word [bp+016h], 00300h                ; c7 46 16 00 03
    4746     jmp near 03b45h                           ; e9 0b 04
     4752    jmp near 03b51h                           ; e9 13 04
    47474753    mov word [bp+016h], 00100h                ; c7 46 16 00 01
    4748     jmp near 03b45h                           ; e9 03 04
     4754    jmp near 03b51h                           ; e9 0b 04
    47494755    movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
    47504756    movzx ax, bl                              ; 0f b6 c3
    4751     call 02fc5h                               ; e8 79 f8
     4757    call 02fc5h                               ; e8 75 f8
    47524758    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    47534759    mov byte [bp+017h], 000h                  ; c6 46 17 00
    4754     jmp near 033b8h                           ; e9 61 fc
     4760    jmp near 033bch                           ; e9 61 fc
    47554761    mov bh, byte [bp+016h]                    ; 8a 7e 16
    4756     mov dx, word [bp+014h]                    ; 8b 56 14
     4762    mov ax, word [bp+014h]                    ; 8b 46 14
     4763    shr ax, 008h                              ; c1 e8 08
     4764    mov byte [bp-002h], al                    ; 88 46 fe
     4765    mov dx, word [bp+012h]                    ; 8b 56 12
    47574766    shr dx, 008h                              ; c1 ea 08
    4758     mov byte [bp-002h], dl                    ; 88 56 fe
    4759     mov ax, word [bp+012h]                    ; 8b 46 12
    4760     shr ax, 008h                              ; c1 e8 08
    4761     mov byte [bp-004h], al                    ; 88 46 fc
     4767    mov byte [bp-004h], dl                    ; 88 56 fc
    47624768    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
    47634769    cmp bl, 001h                              ; 80 fb 01
    4764     jnbe short 03786h                         ; 77 12
    4765     cmp AL, strict byte 001h                  ; 3c 01
    4766     jnbe short 03786h                         ; 77 0e
    4767     cmp dl, 04fh                              ; 80 fa 4f
    4768     jnbe short 03786h                         ; 77 09
     4770    jnbe short 0378ah                         ; 77 12
     4771    cmp dl, 001h                              ; 80 fa 01
     4772    jnbe short 0378ah                         ; 77 0d
     4773    cmp AL, strict byte 04fh                  ; 3c 4f
     4774    jnbe short 0378ah                         ; 77 09
    47694775    test bh, bh                               ; 84 ff
    4770     je short 03786h                           ; 74 05
     4776    je short 0378ah                           ; 74 05
    47714777    cmp bh, 012h                              ; 80 ff 12
    4772     jbe short 037a1h                          ; 76 1b
     4778    jbe short 037a5h                          ; 76 1b
    47734779    mov ax, word [bp+016h]                    ; 8b 46 16
    47744780    xor ah, ah                                ; 30 e4
     
    47814787    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    47824788    movzx ax, bl                              ; 0f b6 c3
    4783     call 032bch                               ; e8 15 fb
     4789    call 032bch                               ; e8 11 fb
    47844790    test ax, ax                               ; 85 c0
    4785     jne short 037c5h                          ; 75 1a
     4791    jne short 037c9h                          ; 75 1a
    47864792    mov ax, word [bp+016h]                    ; 8b 46 16
    47874793    xor ah, ah                                ; 30 e4
     
    47924798    mov es, ax                                ; 8e c0
    47934799    mov byte [es:bx], 080h                    ; 26 c6 07 80
    4794     jmp near 03b45h                           ; e9 80 03
     4800    jmp near 03b51h                           ; e9 88 03
    47954801    movzx cx, bl                              ; 0f b6 cb
    47964802    mov ax, cx                                ; 89 c8
    4797     call 03100h                               ; e8 33 f9
     4803    call 03100h                               ; e8 2f f9
    47984804    test ax, ax                               ; 85 c0
    4799     jne short 037dch                          ; 75 0b
     4805    jne short 037e0h                          ; 75 0b
    48004806    mov ax, cx                                ; 89 c8
    4801     call 031d8h                               ; e8 02 fa
     4807    call 031d8h                               ; e8 fe f9
    48024808    test ax, ax                               ; 85 c0
    4803     je near 03460h                            ; 0f 84 84 fc
     4809    je near 03464h                            ; 0f 84 84 fc
    48044810    mov dx, word [bp+006h]                    ; 8b 56 06
    48054811    shr dx, 00ch                              ; c1 ea 0c
     
    48114817    mov word [bp-008h], si                    ; 89 76 f8
    48124818    cmp cx, si                                ; 39 f1
    4813     jbe short 037f8h                          ; 76 02
     4819    jbe short 037fch                          ; 76 02
    48144820    db  0feh, 0c4h
    48154821    ; inc ah                                    ; fe c4
     
    48204826    add dx, cx                                ; 01 ca
    48214827    cmp dx, word [bp-008h]                    ; 3b 56 f8
    4822     jc near 034b3h                            ; 0f 82 a8 fc
     4828    jc near 034b7h                            ; 0f 82 a8 fc
    48234829    mov AL, strict byte 006h                  ; b0 06
    48244830    mov dx, strict word 0000ah                ; ba 0a 00
     
    48534859    mov dx, strict word 0000ah                ; ba 0a 00
    48544860    out DX, AL                                ; ee
    4855     movzx si, bl                              ; 0f b6 f3
    4856     mov ax, si                                ; 89 f0
    4857     call 0308ch                               ; e8 36 f8
     4861    movzx cx, bl                              ; 0f b6 cb
     4862    mov ax, cx                                ; 89 c8
     4863    call 0308ch                               ; e8 32 f8
    48584864    mov AL, strict byte 00fh                  ; b0 0f
    48594865    mov dx, 003f5h                            ; ba f5 03
    48604866    out DX, AL                                ; ee
    4861     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    4862     sal ax, 002h                              ; c1 e0 02
    4863     movzx cx, bl                              ; 0f b6 cb
    4864     or cx, ax                                 ; 09 c1
    4865     mov al, cl                                ; 88 c8
     4867    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     4868    sal dx, 002h                              ; c1 e2 02
     4869    movzx ax, bl                              ; 0f b6 c3
     4870    or dx, ax                                 ; 09 c2
     4871    mov word [bp-00ah], dx                    ; 89 56 f6
     4872    mov al, byte [bp-00ah]                    ; 8a 46 f6
     4873    mov dx, 003f5h                            ; ba f5 03
    48664874    out DX, AL                                ; ee
    48674875    mov al, byte [bp-002h]                    ; 8a 46 fe
     
    48694877    mov AL, strict byte 04dh                  ; b0 4d
    48704878    out DX, AL                                ; ee
    4871     mov al, cl                                ; 88 c8
     4879    mov al, byte [bp-00ah]                    ; 8a 46 f6
    48724880    out DX, AL                                ; ee
    48734881    mov AL, strict byte 002h                  ; b0 02
     
    48794887    mov AL, strict byte 0f6h                  ; b0 f6
    48804888    out DX, AL                                ; ee
    4881     call 03012h                               ; e8 8e f7
     4889    call 03012h                               ; e8 82 f7
    48824890    test al, al                               ; 84 c0
    4883     jne short 03890h                          ; 75 08
    4884     mov ax, si                                ; 89 f0
    4885     call 0304ah                               ; e8 bd f7
    4886     jmp near 037abh                           ; e9 1b ff
     4891    jne short 0389ch                          ; 75 08
     4892    mov ax, cx                                ; 89 c8
     4893    call 0304ah                               ; e8 b1 f7
     4894    jmp near 037afh                           ; e9 13 ff
    48874895    mov dx, 003f4h                            ; ba f4 03
    48884896    in AL, DX                                 ; ec
     
    48914899    and AL, strict byte 0c0h                  ; 24 c0
    48924900    cmp AL, strict byte 0c0h                  ; 3c c0
    4893     je short 038aah                           ; 74 0e
     4901    je short 038b6h                           ; 74 0e
    48944902    push 00287h                               ; 68 87 02
    48954903    push 002bah                               ; 68 ba 02
    48964904    push strict byte 00007h                   ; 6a 07
    4897     call 01a6bh                               ; e8 c4 e1
     4905    call 01a6bh                               ; e8 b8 e1
    48984906    add sp, strict byte 00006h                ; 83 c4 06
    48994907    xor cx, cx                                ; 31 c9
    4900     jmp short 038b3h                          ; eb 05
     4908    jmp short 038bfh                          ; eb 05
    49014909    cmp cx, strict byte 00007h                ; 83 f9 07
    4902     jnl short 038c9h                          ; 7d 16
     4910    jnl short 038d5h                          ; 7d 16
    49034911    mov dx, 003f5h                            ; ba f5 03
    49044912    in AL, DX                                 ; ec
     
    49114919    mov byte [es:si], al                      ; 26 88 04
    49124920    inc cx                                    ; 41
    4913     jmp short 038aeh                          ; eb e5
     4921    jmp short 038bah                          ; eb e5
    49144922    mov si, strict word 00042h                ; be 42 00
    49154923    mov ax, strict word 00040h                ; b8 40 00
     
    49174925    mov al, byte [es:si]                      ; 26 8a 04
    49184926    test AL, strict byte 0c0h                 ; a8 c0
    4919     je short 038f2h                           ; 74 1a
     4927    je short 038feh                           ; 74 1a
    49204928    mov si, strict word 00043h                ; be 43 00
    49214929    mov al, byte [es:si]                      ; 26 8a 04
    49224930    test AL, strict byte 002h                 ; a8 02
    4923     jne near 03732h                           ; 0f 85 4e fe
     4931    jne near 03736h                           ; 0f 85 46 fe
    49244932    push 00287h                               ; 68 87 02
    49254933    push 002ceh                               ; 68 ce 02
    49264934    push strict byte 00007h                   ; 6a 07
    4927     call 01a6bh                               ; e8 7c e1
     4935    call 01a6bh                               ; e8 70 e1
    49284936    add sp, strict byte 00006h                ; 83 c4 06
    49294937    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    49344942    movzx ax, bl                              ; 0f b6 c3
    49354943    xor dx, dx                                ; 31 d2
    4936     call 02fc5h                               ; e8 bb f6
    4937     jmp near 0360eh                           ; e9 01 fd
     4944    call 02fc5h                               ; e8 af f6
     4945    jmp near 03612h                           ; e9 f9 fc
    49384946    mov bl, ah                                ; 88 e3
    49394947    cmp ah, 001h                              ; 80 fc 01
    4940     jbe short 03931h                          ; 76 1d
     4948    jbe short 0393dh                          ; 76 1d
    49414949    xor ax, ax                                ; 31 c0
    49424950    mov word [bp+016h], ax                    ; 89 46 16
     
    49484956    movzx ax, bh                              ; 0f b6 c7
    49494957    mov word [bp+012h], ax                    ; 89 46 12
    4950     jmp near 03a53h                           ; e9 22 01
     4958    jmp near 03a5fh                           ; e9 22 01
    49514959    mov ax, strict word 00010h                ; b8 10 00
    4952     call 017a5h                               ; e8 6e de
     4960    call 017a5h                               ; e8 62 de
    49534961    mov dl, al                                ; 88 c2
    49544962    xor bh, bh                                ; 30 ff
    49554963    test AL, strict byte 0f0h                 ; a8 f0
    4956     je short 03941h                           ; 74 02
     4964    je short 0394dh                           ; 74 02
    49574965    mov BH, strict byte 001h                  ; b7 01
    49584966    test dl, 00fh                             ; f6 c2 0f
    4959     je short 03948h                           ; 74 02
     4967    je short 03954h                           ; 74 02
    49604968    db  0feh, 0c7h
    49614969    ; inc bh                                    ; fe c7
    49624970    test bl, bl                               ; 84 db
    4963     jne short 03951h                          ; 75 05
     4971    jne short 0395dh                          ; 75 05
    49644972    shr dl, 004h                              ; c0 ea 04
    4965     jmp short 03954h                          ; eb 03
     4973    jmp short 03960h                          ; eb 03
    49664974    and dl, 00fh                              ; 80 e2 0f
    49674975    mov byte [bp+011h], 000h                  ; c6 46 11 00
     
    49794987    mov word [bp+012h], ax                    ; 89 46 12
    49804988    cmp dl, 003h                              ; 80 fa 03
    4981     jc short 03994h                           ; 72 15
    4982     jbe short 039bbh                          ; 76 3a
     4989    jc short 039a0h                           ; 72 15
     4990    jbe short 039c7h                          ; 76 3a
    49834991    cmp dl, 005h                              ; 80 fa 05
    4984     jc short 039c2h                           ; 72 3c
    4985     jbe short 039c9h                          ; 76 41
     4992    jc short 039ceh                           ; 72 3c
     4993    jbe short 039d5h                          ; 76 41
    49864994    cmp dl, 00fh                              ; 80 fa 0f
    4987     je short 039d7h                           ; 74 4a
     4995    je short 039e3h                           ; 74 4a
    49884996    cmp dl, 00eh                              ; 80 fa 0e
    4989     je short 039d0h                           ; 74 3e
    4990     jmp short 039deh                          ; eb 4a
     4997    je short 039dch                           ; 74 3e
     4998    jmp short 039eah                          ; eb 4a
    49914999    cmp dl, 002h                              ; 80 fa 02
    4992     je short 039b4h                           ; 74 1b
     5000    je short 039c0h                           ; 74 1b
    49935001    cmp dl, 001h                              ; 80 fa 01
    4994     je short 039adh                           ; 74 0f
     5002    je short 039b9h                           ; 74 0f
    49955003    test dl, dl                               ; 84 d2
    4996     jne short 039deh                          ; 75 3c
     5004    jne short 039eah                          ; 75 3c
    49975005    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
    49985006    mov byte [bp+013h], 000h                  ; c6 46 13 00
    4999     jmp short 039ech                          ; eb 3f
     5007    jmp short 039f8h                          ; eb 3f
    50005008    mov word [bp+014h], 02709h                ; c7 46 14 09 27
    5001     jmp short 039ech                          ; eb 38
     5009    jmp short 039f8h                          ; eb 38
    50025010    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
    5003     jmp short 039ech                          ; eb 31
     5011    jmp short 039f8h                          ; eb 31
    50045012    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
    5005     jmp short 039ech                          ; eb 2a
     5013    jmp short 039f8h                          ; eb 2a
    50065014    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
    5007     jmp short 039ech                          ; eb 23
     5015    jmp short 039f8h                          ; eb 23
    50085016    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
    5009     jmp short 039ech                          ; eb 1c
     5017    jmp short 039f8h                          ; eb 1c
    50105018    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
    5011     jmp short 039ech                          ; eb 15
     5019    jmp short 039f8h                          ; eb 15
    50125020    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
    5013     jmp short 039ech                          ; eb 0e
     5021    jmp short 039f8h                          ; eb 0e
    50145022    push 00287h                               ; 68 87 02
    50155023    push 002dfh                               ; 68 df 02
    50165024    push strict byte 00007h                   ; 6a 07
    5017     call 01a6bh                               ; e8 82 e0
     5025    call 01a6bh                               ; e8 76 e0
    50185026    add sp, strict byte 00006h                ; 83 c4 06
    50195027    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    50205028    movzx ax, dl                              ; 0f b6 c2
    5021     call 03c7bh                               ; e8 84 02
     5029    call 03c87h                               ; e8 84 02
    50225030    mov word [bp+008h], ax                    ; 89 46 08
    5023     jmp near 0360eh                           ; e9 11 fc
     5031    jmp near 03612h                           ; e9 09 fc
    50245032    mov bl, ah                                ; 88 e3
    50255033    cmp ah, 001h                              ; 80 fc 01
    5026     jbe short 03a09h                          ; 76 05
     5034    jbe short 03a15h                          ; 76 05
    50275035    mov word [bp+016h], dx                    ; 89 56 16
    5028     jmp short 03a53h                          ; eb 4a
     5036    jmp short 03a5fh                          ; eb 4a
    50295037    mov ax, strict word 00010h                ; b8 10 00
    5030     call 017a5h                               ; e8 96 dd
     5038    call 017a5h                               ; e8 8a dd
    50315039    test bl, bl                               ; 84 db
    5032     jne short 03a1ah                          ; 75 07
     5040    jne short 03a26h                          ; 75 07
    50335041    mov dl, al                                ; 88 c2
    50345042    shr dl, 004h                              ; c0 ea 04
    5035     jmp short 03a1fh                          ; eb 05
     5043    jmp short 03a2bh                          ; eb 05
    50365044    mov dl, al                                ; 88 c2
    50375045    and dl, 00fh                              ; 80 e2 0f
     
    50405048    xor ah, ah                                ; 30 e4
    50415049    test dl, dl                               ; 84 d2
    5042     je short 03a39h                           ; 74 0d
     5050    je short 03a45h                           ; 74 0d
    50435051    cmp dl, 001h                              ; 80 fa 01
    5044     jbe short 03a36h                          ; 76 05
     5052    jbe short 03a42h                          ; 76 05
    50455053    or ah, 002h                               ; 80 cc 02
    5046     jmp short 03a39h                          ; eb 03
     5054    jmp short 03a45h                          ; eb 03
    50475055    or ah, 001h                               ; 80 cc 01
    50485056    mov word [bp+016h], ax                    ; 89 46 16
    5049     jmp near 033b8h                           ; e9 79 f9
     5057    jmp near 033bch                           ; e9 71 f9
    50505058    cmp ah, 001h                              ; 80 fc 01
    5051     jbe short 03a59h                          ; 76 15
     5059    jbe short 03a65h                          ; 76 15
    50525060    mov word [bp+016h], si                    ; 89 76 16
    50535061    mov bx, strict word 00041h                ; bb 41 00
     
    50565064    mov byte [es:bx], 001h                    ; 26 c6 07 01
    50575065    mov word [bp+01ch], cx                    ; 89 4e 1c
    5058     jmp near 033b8h                           ; e9 5f f9
     5066    jmp near 033bch                           ; e9 57 f9
    50595067    mov ax, word [bp+016h]                    ; 8b 46 16
    50605068    xor ah, ah                                ; 30 e4
     
    50655073    mov es, ax                                ; 8e c0
    50665074    mov byte [es:bx], 006h                    ; 26 c6 07 06
    5067     jmp near 03b45h                           ; e9 d2 00
     5075    jmp near 03b51h                           ; e9 d2 00
    50685076    mov bl, ah                                ; 88 e3
    50695077    mov dl, byte [bp+016h]                    ; 8a 56 16
    50705078    cmp ah, 001h                              ; 80 fc 01
    5071     jnbe short 03a44h                         ; 77 c7
     5079    jnbe short 03a50h                         ; 77 c7
    50725080    movzx ax, bl                              ; 0f b6 c3
    5073     call 032bch                               ; e8 39 f8
     5081    call 032bch                               ; e8 2d f8
    50745082    test ax, ax                               ; 85 c0
    5075     je near 037abh                            ; 0f 84 22 fd
     5083    je near 037afh                            ; 0f 84 1a fd
    50765084    test bl, bl                               ; 84 db
    50775085    db  00fh, 095h, 0c0h
     
    50855093    and bl, 00fh                              ; 80 e3 0f
    50865094    cmp dl, 002h                              ; 80 fa 02
    5087     jc short 03ab7h                           ; 72 0f
    5088     jbe short 03ac4h                          ; 76 1a
     5095    jc short 03ac3h                           ; 72 0f
     5096    jbe short 03ad0h                          ; 76 1a
    50895097    cmp dl, 004h                              ; 80 fa 04
    5090     je short 03abfh                           ; 74 10
     5098    je short 03acbh                           ; 74 10
    50915099    cmp dl, 003h                              ; 80 fa 03
    5092     je short 03ac9h                           ; 74 15
    5093     jmp near 03347h                           ; e9 90 f8
     5100    je short 03ad5h                           ; 74 15
     5101    jmp near 0334bh                           ; e9 88 f8
    50945102    cmp dl, 001h                              ; 80 fa 01
    5095     je short 03abfh                           ; 74 03
    5096     jmp near 03347h                           ; e9 88 f8
     5103    je short 03acbh                           ; 74 03
     5104    jmp near 0334bh                           ; e9 80 f8
    50975105    or bl, 090h                               ; 80 cb 90
    5098     jmp short 03acch                          ; eb 08
     5106    jmp short 03ad8h                          ; eb 08
    50995107    or bl, 070h                               ; 80 cb 70
    5100     jmp short 03acch                          ; eb 03
     5108    jmp short 03ad8h                          ; eb 03
    51015109    or bl, 010h                               ; 80 cb 10
    51025110    mov ax, strict word 00040h                ; b8 40 00
     
    51085116    mov bx, strict word 00041h                ; bb 41 00
    51095117    mov byte [es:bx], al                      ; 26 88 07
    5110     jmp near 0360eh                           ; e9 29 fb
     5118    jmp near 03612h                           ; e9 21 fb
    51115119    mov bl, ah                                ; 88 e3
    51125120    mov dl, byte [bp+014h]                    ; 8a 56 14
     
    51165124    sar dx, 006h                              ; c1 fa 06
    51175125    sal dx, 008h                              ; c1 e2 08
    5118     mov word [bp-00ah], dx                    ; 89 56 f6
     5126    mov word [bp-00ch], dx                    ; 89 56 f4
    51195127    mov dx, word [bp+014h]                    ; 8b 56 14
    51205128    shr dx, 008h                              ; c1 ea 08
    5121     add dx, word [bp-00ah]                    ; 03 56 f6
     5129    add dx, word [bp-00ch]                    ; 03 56 f4
    51225130    mov byte [bp-002h], dl                    ; 88 56 fe
    51235131    cmp ah, 001h                              ; 80 fc 01
    5124     jnbe near 03a44h                          ; 0f 87 37 ff
     5132    jnbe near 03a50h                          ; 0f 87 37 ff
    51255133    movzx ax, bl                              ; 0f b6 c3
    5126     call 032bch                               ; e8 a9 f7
     5134    call 032bch                               ; e8 9d f7
    51275135    test ax, ax                               ; 85 c0
    5128     je near 037abh                            ; 0f 84 92 fc
     5136    je near 037afh                            ; 0f 84 8a fc
    51295137    movzx cx, bl                              ; 0f b6 cb
    51305138    mov ax, cx                                ; 89 c8
    5131     call 03100h                               ; e8 df f5
     5139    call 03100h                               ; e8 d3 f5
    51325140    test ax, ax                               ; 85 c0
    5133     jne short 03b4ch                          ; 75 27
     5141    jne short 03b58h                          ; 75 27
    51345142    mov ax, cx                                ; 89 c8
    5135     call 031d8h                               ; e8 ae f6
     5143    call 031d8h                               ; e8 a2 f6
    51365144    test ax, ax                               ; 85 c0
    5137     jne short 03b4ch                          ; 75 1e
     5145    jne short 03b58h                          ; 75 1e
    51385146    mov ax, word [bp+016h]                    ; 8b 46 16
    51395147    xor ah, ah                                ; 30 e4
     
    51455153    mov byte [es:bx], 00ch                    ; 26 c6 07 0c
    51465154    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5147     jmp near 033b8h                           ; e9 6c f8
     5155    jmp near 033bch                           ; e9 64 f8
    51485156    mov ax, strict word 00010h                ; b8 10 00
    5149     call 017a5h                               ; e8 53 dc
     5157    call 017a5h                               ; e8 47 dc
    51505158    test bl, bl                               ; 84 db
    5151     jne short 03b5dh                          ; 75 07
     5159    jne short 03b69h                          ; 75 07
    51525160    mov dl, al                                ; 88 c2
    51535161    shr dl, 004h                              ; c0 ea 04
    5154     jmp short 03b62h                          ; eb 05
     5162    jmp short 03b6eh                          ; eb 05
    51555163    mov dl, al                                ; 88 c2
    51565164    and dl, 00fh                              ; 80 e2 0f
     
    51665174    and bl, 00fh                              ; 80 e3 0f
    51675175    cmp dl, 003h                              ; 80 fa 03
    5168     jc short 03b9eh                           ; 72 1d
     5176    jc short 03baah                           ; 72 1d
     5177    mov al, bl                                ; 88 d8
     5178    or AL, strict byte 090h                   ; 0c 90
     5179    cmp dl, 003h                              ; 80 fa 03
     5180    jbe short 03bebh                          ; 76 55
    51695181    mov ah, bl                                ; 88 dc
    5170     or ah, 090h                               ; 80 cc 90
    5171     cmp dl, 003h                              ; 80 fa 03
    5172     jbe short 03bdfh                          ; 76 54
    5173     mov al, bl                                ; 88 d8
    5174     or AL, strict byte 010h                   ; 0c 10
     5182    or ah, 010h                               ; 80 cc 10
    51755183    cmp dl, 005h                              ; 80 fa 05
    5176     je near 03c04h                            ; 0f 84 6e 00
     5184    je near 03c10h                            ; 0f 84 6e 00
    51775185    cmp dl, 004h                              ; 80 fa 04
    5178     je short 03beeh                           ; 74 53
    5179     jmp near 03c20h                           ; e9 82 00
     5186    je short 03bfah                           ; 74 53
     5187    jmp near 03c2ch                           ; e9 82 00
    51805188    cmp dl, 002h                              ; 80 fa 02
    5181     je short 03bbfh                           ; 74 1c
     5189    je short 03bcbh                           ; 74 1c
    51825190    cmp dl, 001h                              ; 80 fa 01
    5183     jne near 03c20h                           ; 0f 85 76 00
     5191    jne near 03c2ch                           ; 0f 85 76 00
    51845192    cmp byte [bp-002h], 027h                  ; 80 7e fe 27
    5185     jne near 03c20h                           ; 0f 85 6e 00
     5193    jne near 03c2ch                           ; 0f 85 6e 00
    51865194    cmp bh, 009h                              ; 80 ff 09
    5187     jne near 03c20h                           ; 0f 85 67 00
     5195    jne near 03c2ch                           ; 0f 85 67 00
    51885196    or bl, 090h                               ; 80 cb 90
    5189     jmp near 03c20h                           ; e9 61 00
     5197    jmp near 03c2ch                           ; e9 61 00
    51905198    cmp byte [bp-002h], 027h                  ; 80 7e fe 27
    5191     jne short 03bcfh                          ; 75 0a
     5199    jne short 03bdbh                          ; 75 0a
    51925200    cmp bh, 009h                              ; 80 ff 09
    5193     jne short 03bcfh                          ; 75 05
     5201    jne short 03bdbh                          ; 75 05
    51945202    or bl, 070h                               ; 80 cb 70
    5195     jmp short 03c20h                          ; eb 51
     5203    jmp short 03c2ch                          ; eb 51
    51965204    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
    5197     jne short 03c20h                          ; 75 4b
     5205    jne short 03c2ch                          ; 75 4b
    51985206    cmp bh, 00fh                              ; 80 ff 0f
    5199     jne short 03c20h                          ; 75 46
     5207    jne short 03c2ch                          ; 75 46
    52005208    or bl, 010h                               ; 80 cb 10
    5201     jmp short 03c20h                          ; eb 41
     5209    jmp short 03c2ch                          ; eb 41
    52025210    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
    5203     jne short 03c20h                          ; 75 3b
     5211    jne short 03c2ch                          ; 75 3b
    52045212    cmp bh, 009h                              ; 80 ff 09
    5205     jne short 03c20h                          ; 75 36
     5213    jne short 03c2ch                          ; 75 36
     5214    mov bl, al                                ; 88 c3
     5215    jmp short 03c2ch                          ; eb 32
     5216    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
     5217    jne short 03c2ch                          ; 75 2c
     5218    cmp bh, 009h                              ; 80 ff 09
     5219    jne short 03c07h                          ; 75 02
     5220    jmp short 03bf6h                          ; eb ef
     5221    cmp bh, 012h                              ; 80 ff 12
     5222    jne short 03c2ch                          ; 75 20
    52065223    mov bl, ah                                ; 88 e3
    5207     jmp short 03c20h                          ; eb 32
     5224    jmp short 03c2ch                          ; eb 1c
    52085225    cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
    5209     jne short 03c20h                          ; 75 2c
     5226    jne short 03c2ch                          ; 75 16
    52105227    cmp bh, 009h                              ; 80 ff 09
    5211     jne short 03bfbh                          ; 75 02
    5212     jmp short 03beah                          ; eb ef
     5228    jne short 03c1dh                          ; 75 02
     5229    jmp short 03bf6h                          ; eb d9
    52135230    cmp bh, 012h                              ; 80 ff 12
    5214     jne short 03c20h                          ; 75 20
    5215     mov bl, al                                ; 88 c3
    5216     jmp short 03c20h                          ; eb 1c
    5217     cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
    5218     jne short 03c20h                          ; 75 16
    5219     cmp bh, 009h                              ; 80 ff 09
    5220     jne short 03c11h                          ; 75 02
    5221     jmp short 03beah                          ; eb d9
    5222     cmp bh, 012h                              ; 80 ff 12
    5223     jne short 03c18h                          ; 75 02
    5224     jmp short 03c00h                          ; eb e8
     5231    jne short 03c24h                          ; 75 02
     5232    jmp short 03c0ch                          ; eb e8
    52255233    cmp bh, 024h                              ; 80 ff 24
    5226     jne short 03c20h                          ; 75 03
     5234    jne short 03c2ch                          ; 75 03
    52275235    or bl, 0d0h                               ; 80 cb d0
    52285236    movzx ax, bl                              ; 0f b6 c3
    52295237    sar ax, 004h                              ; c1 f8 04
    52305238    test AL, strict byte 001h                 ; a8 01
    5231     je near 03b2eh                            ; 0f 84 02 ff
     5239    je near 03b3ah                            ; 0f 84 02 ff
    52325240    mov ax, strict word 00040h                ; b8 40 00
    52335241    mov es, ax                                ; 8e c0
     
    52365244    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    52375245    movzx ax, dl                              ; 0f b6 c2
    5238     call 03c7bh                               ; e8 39 00
     5246    call 03c87h                               ; e8 39 00
    52395247    mov word [bp+008h], ax                    ; 89 46 08
    52405248    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    52435251    mov es, ax                                ; 8e c0
    52445252    mov byte [es:bx], 000h                    ; 26 c6 07 00
    5245     jmp near 0360eh                           ; e9 b6 f9
     5253    jmp near 03612h                           ; e9 ae f9
    52465254    mov bx, 00db2h                            ; bb b2 0d
    52475255    mov cx, ds                                ; 8c d9
    52485256    mov ax, strict word 00004h                ; b8 04 00
    5249     call 01a2ah                               ; e8 c7 dd
     5257    call 01a2ah                               ; e8 bb dd
    52505258    mov ax, word [bp+016h]                    ; 8b 46 16
    52515259    shr ax, 008h                              ; c1 e8 08
     
    52545262    push 002f4h                               ; 68 f4 02
    52555263    push strict byte 00004h                   ; 6a 04
    5256     call 01a6bh                               ; e8 f6 dd
     5264    call 01a6bh                               ; e8 ea dd
    52575265    add sp, strict byte 00008h                ; 83 c4 08
    5258     jmp near 03347h                           ; e9 cc f6
    5259 get_floppy_dpt_:                             ; 0xf3c7b LB 0x2f
     5266    jmp near 0334bh                           ; e9 c4 f6
     5267get_floppy_dpt_:                             ; 0xf3c87 LB 0x2f
    52605268    push bx                                   ; 53
    52615269    push dx                                   ; 52
     
    52645272    mov dl, al                                ; 88 c2
    52655273    xor ax, ax                                ; 31 c0
    5266     jmp short 03c8ch                          ; eb 06
     5274    jmp short 03c98h                          ; eb 06
    52675275    inc ax                                    ; 40
    52685276    cmp ax, strict word 00007h                ; 3d 07 00
    5269     jnc short 03ca3h                          ; 73 17
     5277    jnc short 03cafh                          ; 73 17
    52705278    mov bx, ax                                ; 89 c3
    52715279    add bx, ax                                ; 01 c3
    52725280    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
    5273     jne short 03c86h                          ; 75 f0
     5281    jne short 03c92h                          ; 75 f0
    52745282    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
    52755283    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
    52765284    add ax, strict word 00000h                ; 05 00 00
    5277     jmp short 03ca6h                          ; eb 03
     5285    jmp short 03cb2h                          ; eb 03
    52785286    mov ax, strict word 00041h                ; b8 41 00
    52795287    pop bp                                    ; 5d
     
    52815289    pop bx                                    ; 5b
    52825290    retn                                      ; c3
    5283 dummy_soft_reset_:                           ; 0xf3caa LB 0x7
     5291dummy_soft_reset_:                           ; 0xf3cb6 LB 0x7
    52845292    push bp                                   ; 55
    52855293    mov bp, sp                                ; 89 e5
     
    52875295    pop bp                                    ; 5d
    52885296    retn                                      ; c3
    5289 _cdemu_init:                                 ; 0xf3cb1 LB 0x18
     5297_cdemu_init:                                 ; 0xf3cbd LB 0x18
    52905298    push bp                                   ; 55
    52915299    mov bp, sp                                ; 89 e5
    52925300    mov dx, strict word 0000eh                ; ba 0e 00
    52935301    mov ax, strict word 00040h                ; b8 40 00
    5294     call 01765h                               ; e8 a8 da
     5302    call 01765h                               ; e8 9c da
    52955303    xor bx, bx                                ; 31 db
    52965304    mov dx, 00366h                            ; ba 66 03
    5297     call 01757h                               ; e8 92 da
     5305    call 01757h                               ; e8 86 da
    52985306    mov sp, bp                                ; 89 ec
    52995307    pop bp                                    ; 5d
    53005308    retn                                      ; c3
    5301 _cdemu_isactive:                             ; 0xf3cc9 LB 0x16
     5309_cdemu_isactive:                             ; 0xf3cd5 LB 0x16
    53025310    push bp                                   ; 55
    53035311    mov bp, sp                                ; 89 e5
    53045312    mov dx, strict word 0000eh                ; ba 0e 00
    53055313    mov ax, strict word 00040h                ; b8 40 00
    5306     call 01765h                               ; e8 90 da
     5314    call 01765h                               ; e8 84 da
    53075315    mov dx, 00366h                            ; ba 66 03
    5308     call 01749h                               ; e8 6e da
     5316    call 01749h                               ; e8 62 da
    53095317    mov sp, bp                                ; 89 ec
    53105318    pop bp                                    ; 5d
    53115319    retn                                      ; c3
    5312 _cdemu_emulated_drive:                       ; 0xf3cdf LB 0x16
     5320_cdemu_emulated_drive:                       ; 0xf3ceb LB 0x16
    53135321    push bp                                   ; 55
    53145322    mov bp, sp                                ; 89 e5
    53155323    mov dx, strict word 0000eh                ; ba 0e 00
    53165324    mov ax, strict word 00040h                ; b8 40 00
    5317     call 01765h                               ; e8 7a da
     5325    call 01765h                               ; e8 6e da
    53185326    mov dx, 00368h                            ; ba 68 03
    5319     call 01749h                               ; e8 58 da
     5327    call 01749h                               ; e8 4c da
    53205328    mov sp, bp                                ; 89 ec
    53215329    pop bp                                    ; 5d
    53225330    retn                                      ; c3
    5323 _int13_eltorito:                             ; 0xf3cf5 LB 0x189
     5331_int13_eltorito:                             ; 0xf3d01 LB 0x189
    53245332    push bp                                   ; 55
    53255333    mov bp, sp                                ; 89 e5
     
    53285336    mov dx, strict word 0000eh                ; ba 0e 00
    53295337    mov ax, strict word 00040h                ; b8 40 00
    5330     call 01765h                               ; e8 62 da
     5338    call 01765h                               ; e8 56 da
    53315339    mov si, 00366h                            ; be 66 03
    53325340    mov di, ax                                ; 89 c7
     
    53345342    shr ax, 008h                              ; c1 e8 08
    53355343    cmp ax, strict word 0004bh                ; 3d 4b 00
    5336     jc short 03d1dh                           ; 72 0a
    5337     jbe short 03d43h                          ; 76 2e
     5344    jc short 03d29h                           ; 72 0a
     5345    jbe short 03d4fh                          ; 76 2e
    53385346    cmp ax, strict word 0004dh                ; 3d 4d 00
    5339     jbe short 03d24h                          ; 76 0a
    5340     jmp near 03e42h                           ; e9 25 01
     5347    jbe short 03d30h                          ; 76 0a
     5348    jmp near 03e4eh                           ; e9 25 01
    53415349    cmp ax, strict word 0004ah                ; 3d 4a 00
    5342     jne near 03e42h                           ; 0f 85 1e 01
     5350    jne near 03e4eh                           ; 0f 85 1e 01
    53435351    mov bx, 00db2h                            ; bb b2 0d
    53445352    mov cx, ds                                ; 8c d9
    53455353    mov ax, strict word 00004h                ; b8 04 00
    5346     call 01a2ah                               ; e8 fb dc
     5354    call 01a2ah                               ; e8 ef dc
    53475355    push word [bp+016h]                       ; ff 76 16
    53485356    push 0030eh                               ; 68 0e 03
    53495357    push 0031dh                               ; 68 1d 03
    53505358    push strict byte 00004h                   ; 6a 04
    5351     call 01a6bh                               ; e8 2e dd
     5359    call 01a6bh                               ; e8 22 dd
    53525360    add sp, strict byte 00008h                ; 83 c4 08
    5353     jmp near 03e5dh                           ; e9 1a 01
     5361    jmp near 03e69h                           ; e9 1a 01
    53545362    mov dx, word [bp+00ah]                    ; 8b 56 0a
    53555363    mov ax, word [bp+004h]                    ; 8b 46 04
    53565364    mov bx, strict word 00013h                ; bb 13 00
    5357     call 01757h                               ; e8 08 da
     5365    call 01757h                               ; e8 fc d9
    53585366    mov es, di                                ; 8e c7
    53595367    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
     
    53615369    inc dx                                    ; 42
    53625370    mov ax, word [bp+004h]                    ; 8b 46 04
    5363     call 01757h                               ; e8 f7 d9
     5371    call 01757h                               ; e8 eb d9
    53645372    mov es, di                                ; 8e c7
    53655373    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
     
    53685376    inc dx                                    ; 42
    53695377    mov ax, word [bp+004h]                    ; 8b 46 04
    5370     call 01757h                               ; e8 e5 d9
     5378    call 01757h                               ; e8 d9 d9
    53715379    mov es, di                                ; 8e c7
    53725380    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
     
    53745382    add dx, strict byte 00003h                ; 83 c2 03
    53755383    mov ax, word [bp+004h]                    ; 8b 46 04
    5376     call 01757h                               ; e8 d2 d9
     5384    call 01757h                               ; e8 c6 d9
    53775385    mov es, di                                ; 8e c7
    53785386    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
     
    53815389    add dx, strict byte 00004h                ; 83 c2 04
    53825390    mov ax, word [bp+004h]                    ; 8b 46 04
    5383     call 01793h                               ; e8 f8 d9
     5391    call 01793h                               ; e8 ec d9
    53845392    mov es, di                                ; 8e c7
    53855393    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
     
    53875395    add dx, strict byte 00008h                ; 83 c2 08
    53885396    mov ax, word [bp+004h]                    ; 8b 46 04
    5389     call 01773h                               ; e8 c6 d9
     5397    call 01773h                               ; e8 ba d9
    53905398    mov es, di                                ; 8e c7
    53915399    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
     
    53935401    add dx, strict byte 0000ah                ; 83 c2 0a
    53945402    mov ax, word [bp+004h]                    ; 8b 46 04
    5395     call 01773h                               ; e8 b4 d9
     5403    call 01773h                               ; e8 a8 d9
    53965404    mov es, di                                ; 8e c7
    53975405    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
     
    53995407    add dx, strict byte 0000ch                ; 83 c2 0c
    54005408    mov ax, word [bp+004h]                    ; 8b 46 04
    5401     call 01773h                               ; e8 a2 d9
     5409    call 01773h                               ; e8 96 d9
    54025410    mov es, di                                ; 8e c7
    54035411    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     
    54055413    add dx, strict byte 0000eh                ; 83 c2 0e
    54065414    mov ax, word [bp+004h]                    ; 8b 46 04
    5407     call 01773h                               ; e8 90 d9
     5415    call 01773h                               ; e8 84 d9
    54085416    mov es, di                                ; 8e c7
    54095417    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
     
    54115419    add dx, strict byte 00010h                ; 83 c2 10
    54125420    mov ax, word [bp+004h]                    ; 8b 46 04
    5413     call 01757h                               ; e8 61 d9
     5421    call 01757h                               ; e8 55 d9
    54145422    mov es, di                                ; 8e c7
    54155423    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
     
    54175425    add dx, strict byte 00011h                ; 83 c2 11
    54185426    mov ax, word [bp+004h]                    ; 8b 46 04
    5419     call 01757h                               ; e8 4e d9
     5427    call 01757h                               ; e8 42 d9
    54205428    mov es, di                                ; 8e c7
    54215429    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
     
    54235431    add dx, strict byte 00012h                ; 83 c2 12
    54245432    mov ax, word [bp+004h]                    ; 8b 46 04
    5425     call 01757h                               ; e8 3b d9
     5433    call 01757h                               ; e8 2f d9
    54265434    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
    5427     jne short 03e28h                          ; 75 06
     5435    jne short 03e34h                          ; 75 06
    54285436    mov es, di                                ; 8e c7
    54295437    mov byte [es:si], 000h                    ; 26 c6 04 00
     
    54325440    mov dx, strict word 00074h                ; ba 74 00
    54335441    mov ax, strict word 00040h                ; b8 40 00
    5434     call 01757h                               ; e8 20 d9
     5442    call 01757h                               ; e8 14 d9
    54355443    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    54365444    lea sp, [bp-004h]                         ; 8d 66 fc
     
    54425450    mov cx, ds                                ; 8c d9
    54435451    mov ax, strict word 00004h                ; b8 04 00
    5444     call 01a2ah                               ; e8 dd db
     5452    call 01a2ah                               ; e8 d1 db
    54455453    mov ax, word [bp+016h]                    ; 8b 46 16
    54465454    shr ax, 008h                              ; c1 e8 08
     
    54485456    push 0030eh                               ; 68 0e 03
    54495457    push 00345h                               ; 68 45 03
    5450     jmp near 03d38h                           ; e9 db fe
     5458    jmp near 03d44h                           ; e9 db fe
    54515459    mov ax, word [bp+016h]                    ; 8b 46 16
    54525460    xor ah, ah                                ; 30 e4
     
    54585466    mov dx, strict word 00074h                ; ba 74 00
    54595467    mov ax, strict word 00040h                ; b8 40 00
    5460     call 01757h                               ; e8 df d8
     5468    call 01757h                               ; e8 d3 d8
    54615469    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    5462     jmp short 03e3bh                          ; eb bd
    5463 device_is_cdrom_:                            ; 0xf3e7e LB 0x35
     5470    jmp short 03e47h                          ; eb bd
     5471device_is_cdrom_:                            ; 0xf3e8a LB 0x35
    54645472    push bp                                   ; 55
    54655473    mov bp, sp                                ; 89 e5
     
    54695477    mov dx, strict word 0000eh                ; ba 0e 00
    54705478    mov ax, strict word 00040h                ; b8 40 00
    5471     call 01765h                               ; e8 d7 d8
     5479    call 01765h                               ; e8 cb d8
    54725480    cmp bl, 010h                              ; 80 fb 10
    5473     jc short 03e97h                           ; 72 04
     5481    jc short 03ea3h                           ; 72 04
    54745482    xor ax, ax                                ; 31 c0
    5475     jmp short 03each                          ; eb 15
     5483    jmp short 03eb8h                          ; eb 15
    54765484    xor bh, bh                                ; 30 ff
    54775485    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    54795487    add bx, 00122h                            ; 81 c3 22 01
    54805488    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
    5481     jne short 03e93h                          ; 75 ea
     5489    jne short 03e9fh                          ; 75 ea
    54825490    mov ax, strict word 00001h                ; b8 01 00
    54835491    lea sp, [bp-004h]                         ; 8d 66 fc
     
    54865494    pop bp                                    ; 5d
    54875495    retn                                      ; c3
    5488 cdrom_boot_:                                 ; 0xf3eb3 LB 0x417
     5496cdrom_boot_:                                 ; 0xf3ebf LB 0x417
    54895497    push bp                                   ; 55
    54905498    mov bp, sp                                ; 89 e5
     
    54975505    mov dx, strict word 0000eh                ; ba 0e 00
    54985506    mov ax, strict word 00040h                ; b8 40 00
    5499     call 01765h                               ; e8 9d d8
     5507    call 01765h                               ; e8 91 d8
    55005508    mov word [bp-018h], ax                    ; 89 46 e8
    55015509    mov si, 00366h                            ; be 66 03
     
    55045512    mov word [bp-012h], ax                    ; 89 46 ee
    55055513    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    5506     jmp short 03ee8h                          ; eb 09
     5514    jmp short 03ef4h                          ; eb 09
    55075515    inc byte [bp-00ch]                        ; fe 46 f4
    55085516    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5509     jnc short 03ef3h                          ; 73 0b
     5517    jnc short 03effh                          ; 73 0b
    55105518    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    5511     call 03e7eh                               ; e8 8f ff
     5519    call 03e8ah                               ; e8 8f ff
    55125520    test ax, ax                               ; 85 c0
    5513     je short 03edfh                           ; 74 ec
     5521    je short 03eebh                           ; 74 ec
    55145522    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
    5515     jc short 03effh                           ; 72 06
     5523    jc short 03f0bh                           ; 72 06
    55165524    mov ax, strict word 00002h                ; b8 02 00
    5517     jmp near 04267h                           ; e9 68 03
     5525    jmp near 04273h                           ; e9 68 03
    55185526    mov cx, strict word 0000ch                ; b9 0c 00
    55195527    xor bx, bx                                ; 31 db
    55205528    mov dx, ss                                ; 8c d2
    55215529    lea ax, [bp-026h]                         ; 8d 46 da
    5522     call 0a080h                               ; e8 74 61
     5530    call 0a090h                               ; e8 78 61
    55235531    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
    55245532    mov ax, strict word 00011h                ; b8 11 00
     
    55365544    ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
    55375545    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    5538     jmp short 03f44h                          ; eb 09
     5546    jmp short 03f50h                          ; eb 09
    55395547    inc byte [bp-00eh]                        ; fe 46 f2
    55405548    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
    5541     jnbe short 03f7ah                         ; 77 36
     5549    jnbe short 03f86h                         ; 77 36
    55425550    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    55435551    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    55595567    call word [word di+0006ah]                ; ff 95 6a 00
    55605568    test ax, ax                               ; 85 c0
    5561     jne short 03f3bh                          ; 75 c1
     5569    jne short 03f47h                          ; 75 c1
    55625570    test ax, ax                               ; 85 c0
    5563     je short 03f84h                           ; 74 06
     5571    je short 03f90h                           ; 74 06
    55645572    mov ax, strict word 00003h                ; b8 03 00
    5565     jmp near 04267h                           ; e9 e3 02
     5573    jmp near 04273h                           ; e9 e3 02
    55665574    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
    5567     je short 03f91h                           ; 74 06
     5575    je short 03f9dh                           ; 74 06
    55685576    mov ax, strict word 00004h                ; b8 04 00
    5569     jmp near 04267h                           ; e9 d6 02
     5577    jmp near 04273h                           ; e9 d6 02
    55705578    xor di, di                                ; 31 ff
    5571     jmp short 03f9bh                          ; eb 06
     5579    jmp short 03fa7h                          ; eb 06
    55725580    inc di                                    ; 47
    55735581    cmp di, strict byte 00005h                ; 83 ff 05
    5574     jnc short 03fabh                          ; 73 10
     5582    jnc short 03fb7h                          ; 73 10
    55755583    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
    55765584    cmp al, byte [di+00dbah]                  ; 3a 85 ba 0d
    5577     je short 03f95h                           ; 74 f0
     5585    je short 03fa1h                           ; 74 f0
    55785586    mov ax, strict word 00005h                ; b8 05 00
    5579     jmp near 04267h                           ; e9 bc 02
     5587    jmp near 04273h                           ; e9 bc 02
    55805588    xor di, di                                ; 31 ff
    5581     jmp short 03fb5h                          ; eb 06
     5589    jmp short 03fc1h                          ; eb 06
    55825590    inc di                                    ; 47
    55835591    cmp di, strict byte 00017h                ; 83 ff 17
    5584     jnc short 03fc5h                          ; 73 10
     5592    jnc short 03fd1h                          ; 73 10
    55855593    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
    55865594    cmp al, byte [di+00dc0h]                  ; 3a 85 c0 0d
    5587     je short 03fafh                           ; 74 f0
     5595    je short 03fbbh                           ; 74 f0
    55885596    mov ax, strict word 00006h                ; b8 06 00
    5589     jmp near 04267h                           ; e9 a2 02
     5597    jmp near 04273h                           ; e9 a2 02
    55905598    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
    55915599    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
     
    56185626    call word [word di+0006ah]                ; ff 95 6a 00
    56195627    test ax, ax                               ; 85 c0
    5620     je short 04021h                           ; 74 06
     5628    je short 0402dh                           ; 74 06
    56215629    mov ax, strict word 00007h                ; b8 07 00
    5622     jmp near 04267h                           ; e9 46 02
     5630    jmp near 04273h                           ; e9 46 02
    56235631    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
    5624     je short 0402eh                           ; 74 06
     5632    je short 0403ah                           ; 74 06
    56255633    mov ax, strict word 00008h                ; b8 08 00
    5626     jmp near 04267h                           ; e9 39 02
     5634    jmp near 04273h                           ; e9 39 02
    56275635    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
    5628     je short 0403bh                           ; 74 06
     5636    je short 04047h                           ; 74 06
    56295637    mov ax, strict word 00009h                ; b8 09 00
    5630     jmp near 04267h                           ; e9 2c 02
     5638    jmp near 04273h                           ; e9 2c 02
    56315639    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
    5632     je short 04048h                           ; 74 06
     5640    je short 04054h                           ; 74 06
    56335641    mov ax, strict word 0000ah                ; b8 0a 00
    5634     jmp near 04267h                           ; e9 1f 02
     5642    jmp near 04273h                           ; e9 1f 02
    56355643    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
    5636     jne short 04042h                          ; 75 f3
     5644    jne short 0404eh                          ; 75 f3
    56375645    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
    5638     je short 0405ch                           ; 74 06
     5646    je short 04068h                           ; 74 06
    56395647    mov ax, strict word 0000bh                ; b8 0b 00
    5640     jmp near 04267h                           ; e9 0b 02
     5648    jmp near 04273h                           ; e9 0b 02
    56415649    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
    56425650    mov es, [bp-010h]                         ; 8e 46 f0
    56435651    mov byte [es:si+001h], al                 ; 26 88 44 01
    56445652    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
    5645     jne short 04075h                          ; 75 07
     5653    jne short 04081h                          ; 75 07
    56465654    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
    5647     jmp short 04088h                          ; eb 13
     5655    jmp short 04094h                          ; eb 13
    56485656    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
    5649     jnc short 04083h                          ; 73 07
     5657    jnc short 0408fh                          ; 73 07
    56505658    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
    5651     jmp short 04088h                          ; eb 05
     5659    jmp short 04094h                          ; eb 05
    56525660    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
    56535661    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
     
    56675675    mov word [bp-016h], ax                    ; 89 46 ea
    56685676    test ax, ax                               ; 85 c0
    5669     jne short 040b6h                          ; 75 05
     5677    jne short 040c2h                          ; 75 05
    56705678    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
    56715679    mov ax, word [bp-016h]                    ; 8b 46 ea
     
    56765684    mov word [es:si+00eh], di                 ; 26 89 7c 0e
    56775685    test di, di                               ; 85 ff
    5678     je short 040d8h                           ; 74 06
     5686    je short 040e4h                           ; 74 06
    56795687    cmp di, 00400h                            ; 81 ff 00 04
    5680     jbe short 040deh                          ; 76 06
     5688    jbe short 040eah                          ; 76 06
    56815689    mov ax, strict word 0000ch                ; b8 0c 00
    5682     jmp near 04267h                           ; e9 89 01
     5690    jmp near 04273h                           ; e9 89 01
    56835691    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
    56845692    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
     
    57205728    sal ax, 1                                 ; d1 e0
    57215729    rcl di, 1                                 ; d1 d7
    5722     loop 0414ch                               ; e2 fa
     5730    loop 04158h                               ; e2 fa
    57235731    push di                                   ; 57
    57245732    push ax                                   ; 50
     
    57335741    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
    57345742    test ax, ax                               ; 85 c0
    5735     je short 0417ch                           ; 74 06
     5743    je short 04188h                           ; 74 06
    57365744    mov ax, strict word 0000dh                ; b8 0d 00
    5737     jmp near 04267h                           ; e9 eb 00
     5745    jmp near 04273h                           ; e9 eb 00
    57385746    mov es, [bp-010h]                         ; 8e 46 f0
    57395747    mov al, byte [es:si+001h]                 ; 26 8a 44 01
    57405748    cmp AL, strict byte 002h                  ; 3c 02
    5741     jc short 04194h                           ; 72 0d
    5742     jbe short 041ach                          ; 76 23
     5749    jc short 041a0h                           ; 72 0d
     5750    jbe short 041b8h                          ; 76 23
    57435751    cmp AL, strict byte 004h                  ; 3c 04
    5744     je short 041c2h                           ; 74 35
     5752    je short 041ceh                           ; 74 35
    57455753    cmp AL, strict byte 003h                  ; 3c 03
    5746     je short 041b7h                           ; 74 26
    5747     jmp near 04210h                           ; e9 7c 00
     5754    je short 041c3h                           ; 74 26
     5755    jmp near 0421ch                           ; e9 7c 00
    57485756    cmp AL, strict byte 001h                  ; 3c 01
    5749     jne short 04210h                          ; 75 78
     5757    jne short 0421ch                          ; 75 78
    57505758    mov es, [bp-010h]                         ; 8e 46 f0
    57515759    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
    57525760    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
    57535761    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
    5754     jmp short 04210h                          ; eb 64
     5762    jmp short 0421ch                          ; eb 64
    57555763    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
    57565764    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
    5757     jmp short 041a4h                          ; eb ed
     5765    jmp short 041b0h                          ; eb ed
    57585766    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
    57595767    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
    5760     jmp short 041a4h                          ; eb e2
     5768    jmp short 041b0h                          ; eb e2
    57615769    mov dx, 001c4h                            ; ba c4 01
    57625770    mov ax, word [bp-016h]                    ; 8b 46 ea
    5763     call 01749h                               ; e8 7e d5
     5771    call 01749h                               ; e8 72 d5
    57645772    and AL, strict byte 03fh                  ; 24 3f
    57655773    xor ah, ah                                ; 30 e4
     
    57685776    mov dx, 001c4h                            ; ba c4 01
    57695777    mov ax, word [bp-016h]                    ; 8b 46 ea
    5770     call 01749h                               ; e8 6a d5
     5778    call 01749h                               ; e8 5e d5
    57715779    movzx bx, al                              ; 0f b6 d8
    57725780    and bl, 0c0h                              ; 80 e3 c0
     
    57745782    mov dx, 001c5h                            ; ba c5 01
    57755783    mov ax, word [bp-016h]                    ; 8b 46 ea
    5776     call 01749h                               ; e8 58 d5
     5784    call 01749h                               ; e8 4c d5
    57775785    xor ah, ah                                ; 30 e4
    57785786    add ax, bx                                ; 01 d8
     
    57825790    mov dx, 001c3h                            ; ba c3 01
    57835791    mov ax, word [bp-016h]                    ; 8b 46 ea
    5784     call 01749h                               ; e8 43 d5
     5792    call 01749h                               ; e8 37 d5
    57855793    xor ah, ah                                ; 30 e4
    57865794    inc ax                                    ; 40
     
    57895797    mov es, [bp-010h]                         ; 8e 46 f0
    57905798    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5791     je short 0424eh                           ; 74 34
     5799    je short 0425ah                           ; 74 34
    57925800    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
    5793     jne short 04237h                          ; 75 16
     5801    jne short 04243h                          ; 75 16
    57945802    mov dx, strict word 00010h                ; ba 10 00
    57955803    mov ax, strict word 00040h                ; b8 40 00
    5796     call 01749h                               ; e8 1f d5
     5804    call 01749h                               ; e8 13 d5
    57975805    or AL, strict byte 041h                   ; 0c 41
    57985806    movzx bx, al                              ; 0f b6 d8
    57995807    mov dx, strict word 00010h                ; ba 10 00
    58005808    mov ax, strict word 00040h                ; b8 40 00
    5801     jmp short 0424bh                          ; eb 14
     5809    jmp short 04257h                          ; eb 14
    58025810    mov dx, 00304h                            ; ba 04 03
    58035811    mov ax, word [bp-018h]                    ; 8b 46 e8
    5804     call 01749h                               ; e8 09 d5
     5812    call 01749h                               ; e8 fd d4
    58055813    db  0feh, 0c0h
    58065814    ; inc al                                    ; fe c0
     
    58085816    mov dx, 00304h                            ; ba 04 03
    58095817    mov ax, word [bp-018h]                    ; 8b 46 e8
    5810     call 01757h                               ; e8 09 d5
     5818    call 01757h                               ; e8 fd d4
    58115819    mov es, [bp-010h]                         ; 8e 46 f0
    58125820    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
    5813     je short 0425ch                           ; 74 04
     5821    je short 04268h                           ; 74 04
    58145822    mov byte [es:si], 001h                    ; 26 c6 04 01
    58155823    mov es, [bp-010h]                         ; 8e 46 f0
     
    58255833    retn                                      ; c3
    58265834    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    5827     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 062h, 046h, 070h
    5828     db  043h, 0bah, 043h, 0e2h, 043h, 0afh, 043h, 0e2h, 043h, 0afh, 043h, 0b8h, 045h, 095h, 043h, 062h
    5829     db  046h, 062h, 046h, 095h, 043h, 095h, 043h, 095h, 043h, 095h, 043h, 095h, 043h, 059h, 046h, 095h
    5830     db  043h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h
    5831     db  046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h
    5832 _int13_cdemu:                                ; 0xf42ca LB 0x434
     5835    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06eh, 046h, 07ch
     5836    db  043h, 0c6h, 043h, 0eeh, 043h, 0bbh, 043h, 0eeh, 043h, 0bbh, 043h, 0c4h, 045h, 0a1h, 043h, 06eh
     5837    db  046h, 06eh, 046h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 065h, 046h, 0a1h
     5838    db  043h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh
     5839    db  046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h
     5840_int13_cdemu:                                ; 0xf42d6 LB 0x434
    58335841    push bp                                   ; 55
    58345842    mov bp, sp                                ; 89 e5
     
    58385846    mov dx, strict word 0000eh                ; ba 0e 00
    58395847    mov ax, strict word 00040h                ; b8 40 00
    5840     call 01765h                               ; e8 8a d4
     5848    call 01765h                               ; e8 7e d4
    58415849    mov di, 00366h                            ; bf 66 03
    58425850    mov cx, ax                                ; 89 c1
     
    58545862    mov dx, strict word 00074h                ; ba 74 00
    58555863    mov ax, strict word 00040h                ; b8 40 00
    5856     call 01757h                               ; e8 4d d4
     5864    call 01757h                               ; e8 41 d4
    58575865    mov es, cx                                ; 8e c1
    58585866    cmp byte [es:di], 000h                    ; 26 80 3d 00
    5859     je short 04320h                           ; 74 0e
     5867    je short 0432ch                           ; 74 0e
    58605868    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
    58615869    mov ax, word [bp+012h]                    ; 8b 46 12
    58625870    xor ah, ah                                ; 30 e4
    58635871    cmp dx, ax                                ; 39 c2
    5864     je short 04349h                           ; 74 29
     5872    je short 04355h                           ; 74 29
    58655873    mov bx, 00db2h                            ; bb b2 0d
    58665874    mov cx, ds                                ; 8c d9
    58675875    mov ax, strict word 00004h                ; b8 04 00
    5868     call 01a2ah                               ; e8 ff d6
     5876    call 01a2ah                               ; e8 f3 d6
    58695877    mov ax, word [bp+012h]                    ; 8b 46 12
    58705878    xor ah, ah                                ; 30 e4
     
    58765884    push 0036ah                               ; 68 6a 03
    58775885    push strict byte 00004h                   ; 6a 04
    5878     call 01a6bh                               ; e8 28 d7
     5886    call 01a6bh                               ; e8 1c d7
    58795887    add sp, strict byte 0000ah                ; 83 c4 0a
    5880     jmp near 04682h                           ; e9 39 03
     5888    jmp near 0468eh                           ; e9 39 03
    58815889    mov ax, word [bp+016h]                    ; 8b 46 16
    58825890    shr ax, 008h                              ; c1 e8 08
    58835891    cmp ax, strict word 00050h                ; 3d 50 00
    5884     jnbe near 04662h                          ; 0f 87 0c 03
     5892    jnbe near 0466eh                          ; 0f 87 0c 03
    58855893    push CS                                   ; 0e
    58865894    pop ES                                    ; 07
    58875895    mov cx, strict word 0001eh                ; b9 1e 00
    5888     mov di, 04271h                            ; bf 71 42
     5896    mov di, 0427dh                            ; bf 7d 42
    58895897    repne scasb                               ; f2 ae
    58905898    sal cx, 1                                 ; d1 e1
    58915899    mov di, cx                                ; 89 cf
    5892     mov ax, word [cs:di+0428eh]               ; 2e 8b 85 8e 42
     5900    mov ax, word [cs:di+0429ah]               ; 2e 8b 85 9a 42
    58935901    mov bx, word [bp+016h]                    ; 8b 5e 16
    58945902    xor bh, bh                                ; 30 ff
     
    59015909    add bx, bx                                ; 01 db
    59025910    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
    5903     je near 04395h                            ; 0f 84 08 00
     5911    je near 043a1h                            ; 0f 84 08 00
    59045912    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    59055913    call word [word bx+00076h]                ; ff 97 76 00
     
    59085916    mov dx, strict word 00074h                ; ba 74 00
    59095917    mov ax, strict word 00040h                ; b8 40 00
    5910     call 01757h                               ; e8 b3 d3
     5918    call 01757h                               ; e8 a7 d3
    59115919    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    59125920    lea sp, [bp-004h]                         ; 8d 66 fc
     
    59185926    xor ah, ah                                ; 30 e4
    59195927    or ah, 003h                               ; 80 cc 03
    5920     jmp near 0468ah                           ; e9 d0 02
     5928    jmp near 04696h                           ; e9 d0 02
    59215929    mov dx, strict word 00074h                ; ba 74 00
    59225930    mov ax, strict word 00040h                ; b8 40 00
    5923     call 01749h                               ; e8 86 d3
     5931    call 01749h                               ; e8 7a d3
    59245932    mov cl, al                                ; 88 c1
    59255933    movzx ax, cl                              ; 0f b6 c1
     
    59305938    mov dx, strict word 00074h                ; ba 74 00
    59315939    mov ax, strict word 00040h                ; b8 40 00
    5932     call 01757h                               ; e8 7c d3
     5940    call 01757h                               ; e8 70 d3
    59335941    test cl, cl                               ; 84 c9
    5934     je short 04399h                           ; 74 ba
    5935     jmp near 0469eh                           ; e9 bc 02
     5942    je short 043a5h                           ; 74 ba
     5943    jmp near 046aah                           ; e9 bc 02
    59365944    mov es, [bp-008h]                         ; 8e 46 f8
    59375945    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    59575965    mov word [bp-00ah], cx                    ; 89 4e f6
    59585966    test cx, cx                               ; 85 c9
    5959     jne short 0442fh                          ; 75 03
    5960     jmp near 04395h                           ; e9 66 ff
     5967    jne short 0443bh                          ; 75 03
     5968    jmp near 043a1h                           ; e9 66 ff
    59615969    cmp di, word [bp-010h]                    ; 3b 7e f0
    5962     jc near 04682h                            ; 0f 82 4c 02
     5970    jc near 0468eh                            ; 0f 82 4c 02
    59635971    cmp ax, dx                                ; 39 d0
    5964     jnc near 04682h                           ; 0f 83 46 02
     5972    jnc near 0468eh                           ; 0f 83 46 02
    59655973    cmp si, bx                                ; 39 de
    5966     jnc near 04682h                           ; 0f 83 40 02
     5974    jnc near 0468eh                           ; 0f 83 40 02
    59675975    mov dx, word [bp+016h]                    ; 8b 56 16
    59685976    shr dx, 008h                              ; c1 ea 08
    59695977    cmp dx, strict byte 00004h                ; 83 fa 04
    5970     jne short 04450h                          ; 75 03
    5971     jmp near 04395h                           ; e9 45 ff
     5978    jne short 0445ch                          ; 75 03
     5979    jmp near 043a1h                           ; e9 45 ff
    59725980    mov dx, word [bp+010h]                    ; 8b 56 10
    59735981    shr dx, 004h                              ; c1 ea 04
     
    59805988    xor dl, dl                                ; 30 d2
    59815989    xor cx, cx                                ; 31 c9
    5982     call 09fe0h                               ; e8 72 5b
     5990    call 09ff0h                               ; e8 76 5b
    59835991    xor bx, bx                                ; 31 db
    59845992    add ax, si                                ; 01 f0
     
    59865994    mov bx, di                                ; 89 fb
    59875995    xor cx, cx                                ; 31 c9
    5988     call 09fe0h                               ; e8 65 5b
     5996    call 09ff0h                               ; e8 69 5b
    59895997    mov bx, ax                                ; 89 c3
    59905998    mov ax, word [bp-010h]                    ; 8b 46 f0
     
    60216029    mov dx, ss                                ; 8c d2
    60226030    lea ax, [bp-02eh]                         ; 8d 46 d2
    6023     call 0a080h                               ; e8 ae 5b
     6031    call 0a090h                               ; e8 b2 5b
    60246032    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
    60256033    mov ax, word [bp-014h]                    ; 8b 46 ec
     
    60696077    sal si, 1                                 ; d1 e6
    60706078    rcl di, 1                                 ; d1 d7
    6071     loop 04552h                               ; e2 fa
     6079    loop 0455eh                               ; e2 fa
    60726080    push di                                   ; 57
    60736081    push si                                   ; 56
     
    60846092    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
    60856093    test al, al                               ; 84 c0
    6086     je near 04395h                            ; 0f 84 13 fe
     6094    je near 043a1h                            ; 0f 84 13 fe
    60876095    mov bx, 00db2h                            ; bb b2 0d
    60886096    mov cx, ds                                ; 8c d9
    60896097    mov ax, strict word 00004h                ; b8 04 00
    6090     call 01a2ah                               ; e8 9d d4
     6098    call 01a2ah                               ; e8 91 d4
    60916099    movzx ax, dl                              ; 0f b6 c2
    60926100    push ax                                   ; 50
     
    60976105    push 003a0h                               ; 68 a0 03
    60986106    push strict byte 00004h                   ; 6a 04
    6099     call 01a6bh                               ; e8 c8 d4
     6107    call 01a6bh                               ; e8 bc d4
    61006108    add sp, strict byte 0000ah                ; 83 c4 0a
    61016109    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61046112    mov word [bp+016h], ax                    ; 89 46 16
    61056113    mov byte [bp+016h], 000h                  ; c6 46 16 00
    6106     jmp near 0468dh                           ; e9 d5 00
     6114    jmp near 04699h                           ; e9 d5 00
    61076115    mov es, [bp-008h]                         ; 8e 46 f8
    61086116    mov di, word [es:si+014h]                 ; 26 8b 7c 14
     
    61436151    mov word [bp+010h], ax                    ; 89 46 10
    61446152    cmp dl, 003h                              ; 80 fa 03
    6145     je short 0463ch                           ; 74 1a
     6153    je short 04648h                           ; 74 1a
    61466154    cmp dl, 002h                              ; 80 fa 02
    6147     je short 04638h                           ; 74 11
     6155    je short 04644h                           ; 74 11
    61486156    cmp dl, 001h                              ; 80 fa 01
    6149     jne short 04640h                          ; 75 14
     6157    jne short 0464ch                          ; 75 14
    61506158    mov ax, word [bp+010h]                    ; 8b 46 10
    61516159    xor al, al                                ; 30 c0
    61526160    or AL, strict byte 002h                   ; 0c 02
    61536161    mov word [bp+010h], ax                    ; 89 46 10
    6154     jmp short 04640h                          ; eb 08
     6162    jmp short 0464ch                          ; eb 08
    61556163    or AL, strict byte 004h                   ; 0c 04
    6156     jmp short 04633h                          ; eb f7
     6164    jmp short 0463fh                          ; eb f7
    61576165    or AL, strict byte 005h                   ; 0c 05
    6158     jmp short 04633h                          ; eb f3
     6166    jmp short 0463fh                          ; eb f3
    61596167    mov es, [bp-008h]                         ; 8e 46 f8
    61606168    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
    6161     jnc near 04395h                           ; 0f 83 49 fd
     6169    jnc near 043a1h                           ; 0f 83 49 fd
    61626170    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
    61636171    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
    6164     jmp near 04395h                           ; e9 3c fd
     6172    jmp near 043a1h                           ; e9 3c fd
    61656173    or bh, 003h                               ; 80 cf 03
    61666174    mov word [bp+016h], bx                    ; 89 5e 16
    6167     jmp near 04399h                           ; e9 37 fd
     6175    jmp near 043a5h                           ; e9 37 fd
    61686176    mov bx, 00db2h                            ; bb b2 0d
    61696177    mov cx, ds                                ; 8c d9
    61706178    mov ax, strict word 00004h                ; b8 04 00
    6171     call 01a2ah                               ; e8 bd d3
     6179    call 01a2ah                               ; e8 b1 d3
    61726180    mov ax, word [bp+016h]                    ; 8b 46 16
    61736181    shr ax, 008h                              ; c1 e8 08
     
    61766184    push 003c1h                               ; 68 c1 03
    61776185    push strict byte 00004h                   ; 6a 04
    6178     call 01a6bh                               ; e8 ec d3
     6186    call 01a6bh                               ; e8 e0 d3
    61796187    add sp, strict byte 00008h                ; 83 c4 08
    61806188    mov ax, word [bp+016h]                    ; 8b 46 16
     
    61876195    mov dx, strict word 00074h                ; ba 74 00
    61886196    mov ax, strict word 00040h                ; b8 40 00
    6189     call 01757h                               ; e8 b9 d0
     6197    call 01757h                               ; e8 ad d0
    61906198    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    6191     jmp near 043a8h                           ; e9 03 fd
     6199    jmp near 043b4h                           ; e9 03 fd
    61926200    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
    6193     db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 043h, 04ch, 0bfh
    6194     db  049h, 0abh, 047h, 043h, 04ch, 0a0h, 047h, 043h, 04ch, 0a0h, 047h, 043h, 04ch, 0bfh, 049h, 043h
    6195     db  04ch, 043h, 04ch, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0d5h, 047h, 0bfh
    6196     db  049h, 043h, 04ch, 0deh, 047h, 0f1h, 047h, 0a0h, 047h, 0f1h, 047h, 01fh, 049h, 0d9h, 049h, 0f1h
    6197     db  047h, 000h, 04ah, 0fch, 04bh, 004h, 04ch, 043h, 04ch
    6198 _int13_cdrom:                                ; 0xf46fe LB 0x562
     6201    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 04fh, 04ch, 0cbh
     6202    db  049h, 0b7h, 047h, 04fh, 04ch, 0ach, 047h, 04fh, 04ch, 0ach, 047h, 04fh, 04ch, 0cbh, 049h, 04fh
     6203    db  04ch, 04fh, 04ch, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0e1h, 047h, 0cbh
     6204    db  049h, 04fh, 04ch, 0eah, 047h, 0fdh, 047h, 0ach, 047h, 0fdh, 047h, 02bh, 049h, 0e5h, 049h, 0fdh
     6205    db  047h, 00ch, 04ah, 008h, 04ch, 010h, 04ch, 04fh, 04ch
     6206_int13_cdrom:                                ; 0xf470a LB 0x562
    61996207    push bp                                   ; 55
    62006208    mov bp, sp                                ; 89 e5
     
    62046212    mov dx, strict word 0000eh                ; ba 0e 00
    62056213    mov ax, strict word 00040h                ; b8 40 00
    6206     call 01765h                               ; e8 56 d0
     6214    call 01765h                               ; e8 4a d0
    62076215    mov word [bp-01ah], ax                    ; 89 46 e6
    62086216    mov si, 00122h                            ; be 22 01
     
    62116219    mov dx, strict word 00074h                ; ba 74 00
    62126220    mov ax, strict word 00040h                ; b8 40 00
    6213     call 01757h                               ; e8 34 d0
     6221    call 01757h                               ; e8 28 d0
    62146222    mov ax, word [bp+010h]                    ; 8b 46 10
    62156223    xor ah, ah                                ; 30 e4
    62166224    cmp ax, 000e0h                            ; 3d e0 00
    6217     jc short 04732h                           ; 72 05
     6225    jc short 0473eh                           ; 72 05
    62186226    cmp ax, 000f0h                            ; 3d f0 00
    6219     jc short 04750h                           ; 72 1e
     6227    jc short 0475ch                           ; 72 1e
    62206228    mov ax, word [bp+010h]                    ; 8b 46 10
    62216229    xor ah, ah                                ; 30 e4
     
    62276235    push 003fdh                               ; 68 fd 03
    62286236    push strict byte 00004h                   ; 6a 04
    6229     call 01a6bh                               ; e8 21 d3
     6237    call 01a6bh                               ; e8 15 d3
    62306238    add sp, strict byte 0000ah                ; 83 c4 0a
    6231     jmp near 04c20h                           ; e9 d0 04
     6239    jmp near 04c2ch                           ; e9 d0 04
    62326240    mov ax, word [bp+010h]                    ; 8b 46 10
    62336241    xor ah, ah                                ; 30 e4
     
    62386246    mov byte [bp-008h], dl                    ; 88 56 f8
    62396247    cmp dl, 010h                              ; 80 fa 10
    6240     jc short 04779h                           ; 72 10
     6248    jc short 04785h                           ; 72 10
    62416249    push ax                                   ; 50
    62426250    mov ax, word [bp+018h]                    ; 8b 46 18
     
    62456253    push 003f1h                               ; 68 f1 03
    62466254    push 00428h                               ; 68 28 04
    6247     jmp short 04745h                          ; eb cc
     6255    jmp short 04751h                          ; eb cc
    62486256    mov ax, word [bp+018h]                    ; 8b 46 18
    62496257    shr ax, 008h                              ; c1 e8 08
    62506258    cmp ax, strict word 00050h                ; 3d 50 00
    6251     jnbe near 04c43h                          ; 0f 87 bd 04
     6259    jnbe near 04c4fh                          ; 0f 87 bd 04
    62526260    push CS                                   ; 0e
    62536261    pop ES                                    ; 07
    62546262    mov cx, strict word 0001eh                ; b9 1e 00
    6255     mov di, 046a5h                            ; bf a5 46
     6263    mov di, 046b1h                            ; bf b1 46
    62566264    repne scasb                               ; f2 ae
    62576265    sal cx, 1                                 ; d1 e1
    62586266    mov di, cx                                ; 89 cf
    6259     mov ax, word [cs:di+046c2h]               ; 2e 8b 85 c2 46
     6267    mov ax, word [cs:di+046ceh]               ; 2e 8b 85 ce 46
    62606268    mov bx, word [bp+018h]                    ; 8b 5e 18
    62616269    xor bh, bh                                ; 30 ff
     
    62646272    xor ah, ah                                ; 30 e4
    62656273    or ah, 003h                               ; 80 cc 03
    6266     jmp near 04c28h                           ; e9 7d 04
     6274    jmp near 04c34h                           ; e9 7d 04
    62676275    mov dx, strict word 00074h                ; ba 74 00
    62686276    mov ax, strict word 00040h                ; b8 40 00
    6269     call 01749h                               ; e8 95 cf
     6277    call 01749h                               ; e8 89 cf
    62706278    mov cl, al                                ; 88 c1
    62716279    movzx ax, cl                              ; 0f b6 c1
     
    62766284    mov dx, strict word 00074h                ; ba 74 00
    62776285    mov ax, strict word 00040h                ; b8 40 00
    6278     call 01757h                               ; e8 8b cf
     6286    call 01757h                               ; e8 7f cf
    62796287    test cl, cl                               ; 84 c9
    6280     je near 049c3h                            ; 0f 84 f1 01
    6281     jmp near 04c3ch                           ; e9 67 04
     6288    je near 049cfh                            ; 0f 84 f1 01
     6289    jmp near 04c48h                           ; e9 67 04
    62826290    or bh, 002h                               ; 80 cf 02
    62836291    mov word [bp+018h], bx                    ; 89 5e 18
    6284     jmp near 04c2bh                           ; e9 4d 04
     6292    jmp near 04c37h                           ; e9 4d 04
    62856293    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
    62866294    or bh, 030h                               ; 80 cf 30
    62876295    mov word [bp+018h], bx                    ; 89 5e 18
    62886296    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
    6289     jmp near 049c3h                           ; e9 d2 01
     6297    jmp near 049cfh                           ; e9 d2 01
    62906298    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    62916299    mov es, [bp+006h]                         ; 8e 46 06
     
    63026310    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
    63036311    or di, ax                                 ; 09 c7
    6304     je short 04839h                           ; 74 18
     6312    je short 04845h                           ; 74 18
    63056313    mov ax, word [bp+018h]                    ; 8b 46 18
    63066314    shr ax, 008h                              ; c1 e8 08
     
    63096317    push 0045ah                               ; 68 5a 04
    63106318    push strict byte 00007h                   ; 6a 07
    6311     call 01a6bh                               ; e8 38 d2
     6319    call 01a6bh                               ; e8 2c d2
    63126320    add sp, strict byte 00008h                ; 83 c4 08
    6313     jmp near 04c20h                           ; e9 e7 03
     6321    jmp near 04c2ch                           ; e9 e7 03
    63146322    les bx, [bp-014h]                         ; c4 5e ec
    63156323    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
     
    63216329    mov word [bp-016h], ax                    ; 89 46 ea
    63226330    cmp ax, strict word 00044h                ; 3d 44 00
    6323     je near 049bfh                            ; 0f 84 66 01
     6331    je near 049cbh                            ; 0f 84 66 01
    63246332    cmp ax, strict word 00047h                ; 3d 47 00
    6325     je near 049bfh                            ; 0f 84 5f 01
     6333    je near 049cbh                            ; 0f 84 5f 01
    63266334    mov cx, strict word 0000ch                ; b9 0c 00
    63276335    xor bx, bx                                ; 31 db
    63286336    mov dx, ss                                ; 8c d2
    63296337    lea ax, [bp-02ch]                         ; 8d 46 d4
    6330     call 0a080h                               ; e8 13 58
     6338    call 0a090h                               ; e8 17 58
    63316339    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
    63326340    mov ax, word [bp-018h]                    ; 8b 46 e8
     
    63566364    sal ax, 1                                 ; d1 e0
    63576365    rcl bx, 1                                 ; d1 d3
    6358     loop 048b7h                               ; e2 fa
     6366    loop 048c3h                               ; e2 fa
    63596367    push bx                                   ; 53
    63606368    push ax                                   ; 50
     
    63726380    shr di, 1                                 ; d1 ef
    63736381    rcr ax, 1                                 ; d1 d8
    6374     loop 048e1h                               ; e2 fa
     6382    loop 048edh                               ; e2 fa
    63756383    les bx, [bp-014h]                         ; c4 5e ec
    63766384    mov word [es:bx+002h], ax                 ; 26 89 47 02
    63776385    test dl, dl                               ; 84 d2
    6378     je near 049bfh                            ; 0f 84 cb 00
     6386    je near 049cbh                            ; 0f 84 cb 00
    63796387    mov bx, 00db2h                            ; bb b2 0d
    63806388    mov cx, ds                                ; 8c d9
    63816389    mov ax, strict word 00004h                ; b8 04 00
    6382     call 01a2ah                               ; e8 2b d1
     6390    call 01a2ah                               ; e8 1f d1
    63836391    movzx ax, dl                              ; 0f b6 c2
    63846392    push ax                                   ; 50
     
    63876395    push 00483h                               ; 68 83 04
    63886396    push strict byte 00004h                   ; 6a 04
    6389     call 01a6bh                               ; e8 5a d1
     6397    call 01a6bh                               ; e8 4e d1
    63906398    add sp, strict byte 0000ah                ; 83 c4 0a
    63916399    mov ax, word [bp+018h]                    ; 8b 46 18
    63926400    xor ah, ah                                ; 30 e4
    63936401    or ah, 00ch                               ; 80 cc 0c
    6394     jmp near 04c28h                           ; e9 09 03
     6402    jmp near 04c34h                           ; e9 09 03
    63956403    cmp bx, strict byte 00002h                ; 83 fb 02
    6396     jnbe near 04c20h                          ; 0f 87 fa 02
     6404    jnbe near 04c2ch                          ; 0f 87 fa 02
    63976405    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    63986406    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    64026410    mov al, byte [es:di+025h]                 ; 26 8a 45 25
    64036411    cmp bx, strict byte 00002h                ; 83 fb 02
    6404     je short 049b0h                           ; 74 73
     6412    je short 049bch                           ; 74 73
    64056413    cmp bx, strict byte 00001h                ; 83 fb 01
    6406     je short 0497dh                           ; 74 3b
     6414    je short 04989h                           ; 74 3b
    64076415    test bx, bx                               ; 85 db
    6408     jne near 049bfh                           ; 0f 85 77 00
     6416    jne near 049cbh                           ; 0f 85 77 00
    64096417    cmp AL, strict byte 0ffh                  ; 3c ff
    6410     jne short 0495eh                          ; 75 12
     6418    jne short 0496ah                          ; 75 12
    64116419    mov ax, word [bp+018h]                    ; 8b 46 18
    64126420    xor ah, ah                                ; 30 e4
     
    64156423    xor al, al                                ; 30 c0
    64166424    or AL, strict byte 001h                   ; 0c 01
    6417     jmp near 04c28h                           ; e9 ca 02
     6425    jmp near 04c34h                           ; e9 ca 02
    64186426    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    64196427    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    64276435    or AL, strict byte 001h                   ; 0c 01
    64286436    mov word [bp+018h], ax                    ; 89 46 18
    6429     jmp near 049bfh                           ; e9 42 00
     6437    jmp near 049cbh                           ; e9 42 00
    64306438    test al, al                               ; 84 c0
    6431     jne short 0498dh                          ; 75 0c
     6439    jne short 04999h                          ; 75 0c
    64326440    or bh, 0b0h                               ; 80 cf b0
    64336441    mov word [bp+018h], bx                    ; 89 5e 18
    64346442    mov byte [bp+018h], al                    ; 88 46 18
    6435     jmp near 04c2bh                           ; e9 9e 02
     6443    jmp near 04c37h                           ; e9 9e 02
    64366444    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    64376445    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
     
    64486456    xor al, al                                ; 30 c0
    64496457    or ax, dx                                 ; 09 d0
    6450     jmp short 04977h                          ; eb c7
     6458    jmp short 04983h                          ; eb c7
    64516459    test al, al                               ; 84 c0
    64526460    db  00fh, 095h, 0c0h
     
    64606468    mov dx, strict word 00074h                ; ba 74 00
    64616469    mov ax, strict word 00040h                ; b8 40 00
    6462     call 01757h                               ; e8 89 cd
     6470    call 01757h                               ; e8 7d cd
    64636471    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
    64646472    lea sp, [bp-004h]                         ; 8d 66 fc
     
    64736481    mov al, byte [es:si+025h]                 ; 26 8a 44 25
    64746482    test al, al                               ; 84 c0
    6475     je short 049f3h                           ; 74 06
     6483    je short 049ffh                           ; 74 06
    64766484    or bh, 0b1h                               ; 80 cf b1
    6477     jmp near 047d8h                           ; e9 e5 fd
    6478     je short 049bfh                           ; 74 ca
     6485    jmp near 047e4h                           ; e9 e5 fd
     6486    je short 049cbh                           ; 74 ca
    64796487    mov ax, word [bp+018h]                    ; 8b 46 18
    64806488    xor ah, ah                                ; 30 e4
    64816489    or ah, 0b1h                               ; 80 cc b1
    6482     jmp near 04c28h                           ; e9 28 02
     6490    jmp near 04c34h                           ; e9 28 02
    64836491    mov dx, word [bp+00ch]                    ; 8b 56 0c
    64846492    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    64906498    mov word [bp-00eh], ax                    ; 89 46 f2
    64916499    cmp ax, strict word 0001ah                ; 3d 1a 00
    6492     jc near 04c20h                            ; 0f 82 04 02
    6493     jc short 04a6dh                           ; 72 4f
     6500    jc near 04c2ch                            ; 0f 82 04 02
     6501    jc short 04a79h                           ; 72 4f
    64946502    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    64956503    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    65146522    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
    65156523    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
    6516     jc near 04b44h                            ; 0f 82 cf 00
     6524    jc near 04b50h                            ; 0f 82 cf 00
    65176525    mov es, [bp-00ah]                         ; 8e 46 f6
    65186526    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
     
    65666574    xor cl, cl                                ; 30 c9
    65676575    xor ch, ch                                ; 30 ed
    6568     jmp short 04b27h                          ; eb 05
     6576    jmp short 04b33h                          ; eb 05
    65696577    cmp ch, 00fh                              ; 80 fd 0f
    6570     jnc short 04b3ah                          ; 73 13
     6578    jnc short 04b46h                          ; 73 13
    65716579    movzx dx, ch                              ; 0f b6 d5
    65726580    add dx, 00356h                            ; 81 c2 56 03
    65736581    mov ax, word [bp-01ah]                    ; 8b 46 e6
    6574     call 01749h                               ; e8 15 cc
     6582    call 01749h                               ; e8 09 cc
    65756583    add cl, al                                ; 00 c1
    65766584    db  0feh, 0c5h
    65776585    ; inc ch                                    ; fe c5
    6578     jmp short 04b22h                          ; eb e8
     6586    jmp short 04b2eh                          ; eb e8
    65796587    neg cl                                    ; f6 d9
    65806588    mov es, [bp-00ch]                         ; 8e 46 f4
    65816589    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
    65826590    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
    6583     jc near 049bfh                            ; 0f 82 73 fe
     6591    jc near 049cbh                            ; 0f 82 73 fe
    65846592    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    65856593    cwd                                       ; 99
     
    65996607    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
    66006608    test al, al                               ; 84 c0
    6601     jne short 04b8dh                          ; 75 09
     6609    jne short 04b99h                          ; 75 09
    66026610    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
    66036611    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
     
    66086616    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
    66096617    test al, al                               ; 84 c0
    6610     jne short 04bb9h                          ; 75 13
     6618    jne short 04bc5h                          ; 75 13
    66116619    mov word [es:bx+030h], dx                 ; 26 89 57 30
    66126620    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
     
    66236631    xor al, al                                ; 30 c0
    66246632    mov AH, strict byte 01eh                  ; b4 1e
    6625     jmp short 04be1h                          ; eb 05
     6633    jmp short 04bedh                          ; eb 05
    66266634    cmp ah, 040h                              ; 80 fc 40
    6627     jnc short 04bf0h                          ; 73 0f
     6635    jnc short 04bfch                          ; 73 0f
    66286636    movzx si, ah                              ; 0f b6 f4
    66296637    mov es, [bp-00ah]                         ; 8e 46 f6
     
    66326640    db  0feh, 0c4h
    66336641    ; inc ah                                    ; fe c4
    6634     jmp short 04bdch                          ; eb ec
     6642    jmp short 04be8h                          ; eb ec
    66356643    neg al                                    ; f6 d8
    66366644    mov es, [bp-00ah]                         ; 8e 46 f6
    66376645    mov byte [es:bx+041h], al                 ; 26 88 47 41
    6638     jmp near 049bfh                           ; e9 c3 fd
     6646    jmp near 049cbh                           ; e9 c3 fd
    66396647    or bh, 006h                               ; 80 cf 06
    66406648    mov word [bp+018h], bx                    ; 89 5e 18
    6641     jmp short 04c3ch                          ; eb 38
     6649    jmp short 04c48h                          ; eb 38
    66426650    cmp bx, strict byte 00006h                ; 83 fb 06
    6643     je near 049bfh                            ; 0f 84 b4 fd
     6651    je near 049cbh                            ; 0f 84 b4 fd
    66446652    cmp bx, strict byte 00001h                ; 83 fb 01
    6645     jc short 04c20h                           ; 72 10
    6646     jbe near 049bfh                           ; 0f 86 ab fd
     6653    jc short 04c2ch                           ; 72 10
     6654    jbe near 049cbh                           ; 0f 86 ab fd
    66476655    cmp bx, strict byte 00003h                ; 83 fb 03
    6648     jc short 04c20h                           ; 72 07
     6656    jc short 04c2ch                           ; 72 07
    66496657    cmp bx, strict byte 00004h                ; 83 fb 04
    6650     jbe near 049bfh                           ; 0f 86 9f fd
     6658    jbe near 049cbh                           ; 0f 86 9f fd
    66516659    mov ax, word [bp+018h]                    ; 8b 46 18
    66526660    xor ah, ah                                ; 30 e4
     
    66586666    mov dx, strict word 00074h                ; ba 74 00
    66596667    mov ax, strict word 00040h                ; b8 40 00
    6660     call 01757h                               ; e8 1b cb
     6668    call 01757h                               ; e8 0f cb
    66616669    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
    6662     jmp near 049d2h                           ; e9 8f fd
     6670    jmp near 049deh                           ; e9 8f fd
    66636671    mov bx, 00db2h                            ; bb b2 0d
    66646672    mov cx, ds                                ; 8c d9
    66656673    mov ax, strict word 00004h                ; b8 04 00
    6666     call 01a2ah                               ; e8 dc cd
     6674    call 01a2ah                               ; e8 d0 cd
    66676675    mov ax, word [bp+018h]                    ; 8b 46 18
    66686676    shr ax, 008h                              ; c1 e8 08
     
    66716679    push 00345h                               ; 68 45 03
    66726680    push strict byte 00004h                   ; 6a 04
    6673     jmp near 04830h                           ; e9 d0 fb
    6674 print_boot_device_:                          ; 0xf4c60 LB 0x4b
     6681    jmp near 0483ch                           ; e9 d0 fb
     6682print_boot_device_:                          ; 0xf4c6c LB 0x4b
    66756683    push bp                                   ; 55
    66766684    mov bp, sp                                ; 89 e5
    66776685    push cx                                   ; 51
    66786686    test al, al                               ; 84 c0
    6679     je short 04c6dh                           ; 74 05
     6687    je short 04c79h                           ; 74 05
    66806688    mov dx, strict word 00002h                ; ba 02 00
    6681     jmp short 04c87h                          ; eb 1a
     6689    jmp short 04c93h                          ; eb 1a
    66826690    test dl, dl                               ; 84 d2
    6683     je short 04c76h                           ; 74 05
     6691    je short 04c82h                           ; 74 05
    66846692    mov dx, strict word 00003h                ; ba 03 00
    6685     jmp short 04c87h                          ; eb 11
     6693    jmp short 04c93h                          ; eb 11
    66866694    test bl, 080h                             ; f6 c3 80
    6687     jne short 04c7fh                          ; 75 04
     6695    jne short 04c8bh                          ; 75 04
    66886696    xor dh, dh                                ; 30 f6
    6689     jmp short 04c87h                          ; eb 08
     6697    jmp short 04c93h                          ; eb 08
    66906698    test bl, 080h                             ; f6 c3 80
    6691     je short 04ca5h                           ; 74 21
     6699    je short 04cb1h                           ; 74 21
    66926700    mov dx, strict word 00001h                ; ba 01 00
    66936701    mov bx, 00db2h                            ; bb b2 0d
    66946702    mov cx, ds                                ; 8c d9
    66956703    mov ax, strict word 00004h                ; b8 04 00
    6696     call 01a2ah                               ; e8 98 cd
     6704    call 01a2ah                               ; e8 8c cd
    66976705    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
    66986706    add dx, 00dd8h                            ; 81 c2 d8 0d
     
    67006708    push 004a6h                               ; 68 a6 04
    67016709    push strict byte 00004h                   ; 6a 04
    6702     call 01a6bh                               ; e8 c9 cd
     6710    call 01a6bh                               ; e8 bd cd
    67036711    add sp, strict byte 00006h                ; 83 c4 06
    67046712    lea sp, [bp-002h]                         ; 8d 66 fe
     
    67066714    pop bp                                    ; 5d
    67076715    retn                                      ; c3
    6708 print_boot_failure_:                         ; 0xf4cab LB 0x93
     6716print_boot_failure_:                         ; 0xf4cb7 LB 0x93
    67096717    push bp                                   ; 55
    67106718    mov bp, sp                                ; 89 e5
     
    67156723    movzx si, ah                              ; 0f b6 f4
    67166724    test al, al                               ; 84 c0
    6717     je short 04cd8h                           ; 74 1b
     6725    je short 04ce4h                           ; 74 1b
    67186726    mov bx, 00db2h                            ; bb b2 0d
    67196727    mov cx, ds                                ; 8c d9
    67206728    mov ax, strict word 00004h                ; b8 04 00
    6721     call 01a2ah                               ; e8 62 cd
     6729    call 01a2ah                               ; e8 56 cd
    67226730    push 00dech                               ; 68 ec 0d
    67236731    push 004bah                               ; 68 ba 04
    67246732    push strict byte 00004h                   ; 6a 04
    6725     call 01a6bh                               ; e8 98 cd
     6733    call 01a6bh                               ; e8 8c cd
    67266734    add sp, strict byte 00006h                ; 83 c4 06
    6727     jmp short 04d1ch                          ; eb 44
     6735    jmp short 04d28h                          ; eb 44
    67286736    test dl, dl                               ; 84 d2
    6729     je short 04cech                           ; 74 10
     6737    je short 04cf8h                           ; 74 10
    67306738    mov bx, 00db2h                            ; bb b2 0d
    67316739    mov cx, ds                                ; 8c d9
    67326740    mov ax, strict word 00004h                ; b8 04 00
    6733     call 01a2ah                               ; e8 43 cd
     6741    call 01a2ah                               ; e8 37 cd
    67346742    push 00df6h                               ; 68 f6 0d
    6735     jmp short 04ccbh                          ; eb df
     6743    jmp short 04cd7h                          ; eb df
    67366744    test bl, 080h                             ; f6 c3 80
    6737     je short 04d02h                           ; 74 11
     6745    je short 04d0eh                           ; 74 11
    67386746    mov bx, 00db2h                            ; bb b2 0d
    67396747    mov cx, ds                                ; 8c d9
    67406748    mov ax, strict word 00004h                ; b8 04 00
    6741     call 01a2ah                               ; e8 2e cd
     6749    call 01a2ah                               ; e8 22 cd
    67426750    push si                                   ; 56
    67436751    push 00de2h                               ; 68 e2 0d
    6744     jmp short 04d11h                          ; eb 0f
     6752    jmp short 04d1dh                          ; eb 0f
    67456753    mov bx, 00db2h                            ; bb b2 0d
    67466754    mov cx, ds                                ; 8c d9
    67476755    mov ax, strict word 00004h                ; b8 04 00
    6748     call 01a2ah                               ; e8 1d cd
     6756    call 01a2ah                               ; e8 11 cd
    67496757    push si                                   ; 56
    67506758    push 00dd8h                               ; 68 d8 0d
    67516759    push 004cfh                               ; 68 cf 04
    67526760    push strict byte 00004h                   ; 6a 04
    6753     call 01a6bh                               ; e8 52 cd
     6761    call 01a6bh                               ; e8 46 cd
    67546762    add sp, strict byte 00008h                ; 83 c4 08
    67556763    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6756     jne short 04d36h                          ; 75 14
     6764    jne short 04d42h                          ; 75 14
    67576765    test dh, dh                               ; 84 f6
    6758     jne short 04d2bh                          ; 75 05
     6766    jne short 04d37h                          ; 75 05
    67596767    push 004e7h                               ; 68 e7 04
    6760     jmp short 04d2eh                          ; eb 03
     6768    jmp short 04d3ah                          ; eb 03
    67616769    push 00511h                               ; 68 11 05
    67626770    push strict byte 00007h                   ; 6a 07
    6763     call 01a6bh                               ; e8 38 cd
     6771    call 01a6bh                               ; e8 2c cd
    67646772    add sp, strict byte 00004h                ; 83 c4 04
    67656773    lea sp, [bp-002h]                         ; 8d 66 fe
     
    67676775    pop bp                                    ; 5d
    67686776    retn 00002h                               ; c2 02 00
    6769 print_cdromboot_failure_:                    ; 0xf4d3e LB 0x27
     6777print_cdromboot_failure_:                    ; 0xf4d4a LB 0x27
    67706778    push bp                                   ; 55
    67716779    mov bp, sp                                ; 89 e5
     
    67776785    mov cx, ds                                ; 8c d9
    67786786    mov ax, strict word 00004h                ; b8 04 00
    6779     call 01a2ah                               ; e8 d9 cc
     6787    call 01a2ah                               ; e8 cd cc
    67806788    push dx                                   ; 52
    67816789    push 00546h                               ; 68 46 05
    67826790    push strict byte 00004h                   ; 6a 04
    6783     call 01a6bh                               ; e8 11 cd
     6791    call 01a6bh                               ; e8 05 cd
    67846792    add sp, strict byte 00006h                ; 83 c4 06
    67856793    lea sp, [bp-006h]                         ; 8d 66 fa
     
    67896797    pop bp                                    ; 5d
    67906798    retn                                      ; c3
    6791 _int19_function:                             ; 0xf4d65 LB 0x256
     6799_int19_function:                             ; 0xf4d71 LB 0x256
    67926800    push bp                                   ; 55
    67936801    mov bp, sp                                ; 89 e5
     
    67976805    mov dx, strict word 0000eh                ; ba 0e 00
    67986806    mov ax, strict word 00040h                ; b8 40 00
    6799     call 01765h                               ; e8 ef c9
     6807    call 01765h                               ; e8 e3 c9
    68006808    mov bx, ax                                ; 89 c3
    68016809    mov word [bp-00eh], ax                    ; 89 46 f2
    68026810    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    68036811    mov ax, strict word 0003dh                ; b8 3d 00
    6804     call 017a5h                               ; e8 20 ca
     6812    call 017a5h                               ; e8 14 ca
    68056813    movzx si, al                              ; 0f b6 f0
    68066814    mov ax, strict word 00038h                ; b8 38 00
    6807     call 017a5h                               ; e8 17 ca
     6815    call 017a5h                               ; e8 0b ca
    68086816    and AL, strict byte 0f0h                  ; 24 f0
    68096817    xor ah, ah                                ; 30 e4
     
    68116819    or si, ax                                 ; 09 c6
    68126820    mov ax, strict word 0003ch                ; b8 3c 00
    6813     call 017a5h                               ; e8 08 ca
     6821    call 017a5h                               ; e8 fc c9
    68146822    and AL, strict byte 00fh                  ; 24 0f
    68156823    xor ah, ah                                ; 30 e4
     
    68186826    mov dx, 0037dh                            ; ba 7d 03
    68196827    mov ax, bx                                ; 89 d8
    6820     call 01749h                               ; e8 9b c9
     6828    call 01749h                               ; e8 8f c9
    68216829    test al, al                               ; 84 c0
    6822     je short 04dbdh                           ; 74 0b
     6830    je short 04dc9h                           ; 74 0b
    68236831    mov dx, 0037dh                            ; ba 7d 03
    68246832    mov ax, bx                                ; 89 d8
    6825     call 01749h                               ; e8 8f c9
     6833    call 01749h                               ; e8 83 c9
    68266834    movzx si, al                              ; 0f b6 f0
    68276835    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
    6828     jne short 04dd3h                          ; 75 10
     6836    jne short 04ddfh                          ; 75 10
    68296837    mov ax, strict word 0003ch                ; b8 3c 00
    6830     call 017a5h                               ; e8 dc c9
     6838    call 017a5h                               ; e8 d0 c9
    68316839    and AL, strict byte 0f0h                  ; 24 f0
    68326840    xor ah, ah                                ; 30 e4
    68336841    sar ax, 004h                              ; c1 f8 04
    6834     call 07e3fh                               ; e8 6c 30
     6842    call 07e4fh                               ; e8 70 30
    68356843    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
    6836     jne short 04ddch                          ; 75 03
     6844    jne short 04de8h                          ; 75 03
    68376845    shr si, 004h                              ; c1 ee 04
    68386846    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
    6839     jne short 04de5h                          ; 75 03
     6847    jne short 04df1h                          ; 75 03
    68406848    shr si, 008h                              ; c1 ee 08
    68416849    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
    6842     jne short 04deeh                          ; 75 03
     6850    jne short 04dfah                          ; 75 03
    68436851    shr si, 00ch                              ; c1 ee 0c
    68446852    cmp si, strict byte 00010h                ; 83 fe 10
    6845     jnc short 04df7h                          ; 73 04
     6853    jnc short 04e03h                          ; 73 04
    68466854    mov byte [bp-008h], 001h                  ; c6 46 f8 01
    68476855    xor al, al                                ; 30 c0
     
    68526860    mov cx, ds                                ; 8c d9
    68536861    mov ax, strict word 00004h                ; b8 04 00
    6854     call 01a2ah                               ; e8 1d cc
     6862    call 01a2ah                               ; e8 11 cc
    68556863    push si                                   ; 56
    68566864    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     
    68586866    push 00566h                               ; 68 66 05
    68596867    push strict byte 00004h                   ; 6a 04
    6860     call 01a6bh                               ; e8 50 cc
     6868    call 01a6bh                               ; e8 44 cc
    68616869    add sp, strict byte 00008h                ; 83 c4 08
    68626870    and si, strict byte 0000fh                ; 83 e6 0f
    68636871    cmp si, strict byte 00002h                ; 83 fe 02
    6864     jc short 04e34h                           ; 72 0e
    6865     jbe short 04e43h                          ; 76 1b
     6872    jc short 04e40h                           ; 72 0e
     6873    jbe short 04e4fh                          ; 76 1b
    68666874    cmp si, strict byte 00004h                ; 83 fe 04
    6867     je short 04e61h                           ; 74 34
     6875    je short 04e6dh                           ; 74 34
    68686876    cmp si, strict byte 00003h                ; 83 fe 03
    6869     je short 04e57h                           ; 74 25
    6870     jmp short 04e8eh                          ; eb 5a
     6877    je short 04e63h                           ; 74 25
     6878    jmp short 04e9ah                          ; eb 5a
    68716879    cmp si, strict byte 00001h                ; 83 fe 01
    6872     jne short 04e8eh                          ; 75 55
     6880    jne short 04e9ah                          ; 75 55
    68736881    xor al, al                                ; 30 c0
    68746882    mov byte [bp-006h], al                    ; 88 46 fa
    68756883    mov byte [bp-00ah], al                    ; 88 46 f6
    6876     jmp short 04ea6h                          ; eb 63
     6884    jmp short 04eb2h                          ; eb 63
    68776885    mov dx, 0037ch                            ; ba 7c 03
    68786886    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6879     call 01749h                               ; e8 fd c8
     6887    call 01749h                               ; e8 f1 c8
    68806888    add AL, strict byte 080h                  ; 04 80
    68816889    mov byte [bp-006h], al                    ; 88 46 fa
    68826890    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
    6883     jmp short 04ea6h                          ; eb 4f
     6891    jmp short 04eb2h                          ; eb 4f
    68846892    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    68856893    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
    6886     jmp short 04e6bh                          ; eb 0a
     6894    jmp short 04e77h                          ; eb 0a
    68876895    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    68886896    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6889     je short 04ea6h                           ; 74 3b
    6890     call 03eb3h                               ; e8 45 f0
     6897    je short 04eb2h                           ; 74 3b
     6898    call 03ebfh                               ; e8 45 f0
    68916899    mov bx, ax                                ; 89 c3
    68926900    test AL, strict byte 0ffh                 ; a8 ff
    6893     je short 04e95h                           ; 74 21
    6894     call 04d3eh                               ; e8 c7 fe
     6901    je short 04ea1h                           ; 74 21
     6902    call 04d4ah                               ; e8 c7 fe
    68956903    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    68966904    push ax                                   ; 50
     
    68996907    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    69006908    mov cx, strict word 00001h                ; b9 01 00
    6901     call 04cabh                               ; e8 1d fe
     6909    call 04cb7h                               ; e8 1d fe
    69026910    xor ax, ax                                ; 31 c0
    69036911    xor dx, dx                                ; 31 d2
    6904     jmp near 04fb4h                           ; e9 1f 01
     6912    jmp near 04fc0h                           ; e9 1f 01
    69056913    mov dx, 00372h                            ; ba 72 03
    69066914    mov ax, word [bp-00eh]                    ; 8b 46 f2
    6907     call 01765h                               ; e8 c7 c8
     6915    call 01765h                               ; e8 bb c8
    69086916    mov di, ax                                ; 89 c7
    69096917    shr bx, 008h                              ; c1 eb 08
    69106918    mov byte [bp-006h], bl                    ; 88 5e fa
    69116919    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
    6912     jne near 04f22h                           ; 0f 85 74 00
     6920    jne near 04f2eh                           ; 0f 85 74 00
    69136921    xor si, si                                ; 31 f6
    69146922    mov ax, 0e200h                            ; b8 00 e2
    69156923    mov es, ax                                ; 8e c0
    69166924    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
    6917     jne short 04e77h                          ; 75 bb
     6925    jne short 04e83h                          ; 75 bb
    69186926    mov cx, ax                                ; 89 c1
    69196927    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
    69206928    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
    6921     jne short 04e77h                          ; 75 ad
     6929    jne short 04e83h                          ; 75 ad
    69226930    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
    6923     jne short 04e77h                          ; 75 a6
     6931    jne short 04e83h                          ; 75 a6
    69246932    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
    69256933    mov dx, word [es:di]                      ; 26 8b 15
    69266934    mov ax, word [es:di+002h]                 ; 26 8b 45 02
    69276935    cmp ax, 06568h                            ; 3d 68 65
    6928     jne short 04f00h                          ; 75 1f
     6936    jne short 04f0ch                          ; 75 1f
    69296937    cmp dx, 07445h                            ; 81 fa 45 74
    6930     jne short 04f00h                          ; 75 19
     6938    jne short 04f0ch                          ; 75 19
    69316939    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    69326940    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    69336941    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6934     call 04c60h                               ; e8 6a fd
     6942    call 04c6ch                               ; e8 6a fd
    69356943    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
    69366944    mov word [bp-010h], cx                    ; 89 4e f0
    6937     jmp short 04f1ch                          ; eb 1c
     6945    jmp short 04f28h                          ; eb 1c
    69386946    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    69396947    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    69406948    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6941     call 04c60h                               ; e8 51 fd
     6949    call 04c6ch                               ; e8 51 fd
    69426950    sti                                       ; fb
    69436951    mov word [bp-010h], cx                    ; 89 4e f0
     
    69466954    mov word [bp-012h], ax                    ; 89 46 ee
    69476955    call far [bp-012h]                        ; ff 5e ee
    6948     jmp near 04e77h                           ; e9 55 ff
     6956    jmp near 04e83h                           ; e9 55 ff
    69496957    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6950     jne short 04f4eh                          ; 75 26
     6958    jne short 04f5ah                          ; 75 26
    69516959    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    6952     jne short 04f4eh                          ; 75 20
     6960    jne short 04f5ah                          ; 75 20
    69536961    mov di, 007c0h                            ; bf c0 07
    69546962    mov es, di                                ; 8e c7
     
    69636971    sbb ax, strict byte 00000h                ; 83 d8 00
    69646972    test ax, ax                               ; 85 c0
    6965     jne near 04e77h                           ; 0f 85 29 ff
     6973    jne near 04e83h                           ; 0f 85 29 ff
    69666974    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    69676975    db  00fh, 094h, 0c1h
    69686976    ; sete cl                                   ; 0f 94 c1
    69696977    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
    6970     je short 04f5dh                           ; 74 02
     6978    je short 04f69h                           ; 74 02
    69716979    mov CL, strict byte 001h                  ; b1 01
    69726980    xor dx, dx                                ; 31 d2
    69736981    mov ax, di                                ; 89 f8
    6974     call 01765h                               ; e8 01 c8
     6982    call 01765h                               ; e8 f5 c7
    69756983    mov bx, ax                                ; 89 c3
    69766984    mov dx, strict word 00002h                ; ba 02 00
    69776985    mov ax, di                                ; 89 f8
    6978     call 01765h                               ; e8 f7 c7
     6986    call 01765h                               ; e8 eb c7
    69796987    cmp bx, ax                                ; 39 c3
    6980     je short 04f83h                           ; 74 11
     6988    je short 04f8fh                           ; 74 11
    69816989    test cl, cl                               ; 84 c9
    6982     jne short 04f99h                          ; 75 23
     6990    jne short 04fa5h                          ; 75 23
    69836991    mov dx, 001feh                            ; ba fe 01
    69846992    mov ax, di                                ; 89 f8
    6985     call 01765h                               ; e8 e7 c7
     6993    call 01765h                               ; e8 db c7
    69866994    cmp ax, 0aa55h                            ; 3d 55 aa
    6987     je short 04f99h                           ; 74 16
     6995    je short 04fa5h                           ; 74 16
    69886996    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    69896997    push ax                                   ; 50
     
    69927000    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    69937001    xor cx, cx                                ; 31 c9
    6994     jmp near 04e8bh                           ; e9 f2 fe
     7002    jmp near 04e97h                           ; e9 f2 fe
    69957003    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    69967004    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
    69977005    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    6998     call 04c60h                               ; e8 b8 fc
     7006    call 04c6ch                               ; e8 b8 fc
    69997007    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    70007008    xor dx, dx                                ; 31 d2
     
    70077015    pop bp                                    ; 5d
    70087016    retn                                      ; c3
    7009 keyboard_panic_:                             ; 0xf4fbb LB 0x13
     7017keyboard_panic_:                             ; 0xf4fc7 LB 0x13
    70107018    push bp                                   ; 55
    70117019    mov bp, sp                                ; 89 e5
     
    70137021    push 00586h                               ; 68 86 05
    70147022    push strict byte 00007h                   ; 6a 07
    7015     call 01a6bh                               ; e8 a4 ca
     7023    call 01a6bh                               ; e8 98 ca
    70167024    add sp, strict byte 00006h                ; 83 c4 06
    70177025    mov sp, bp                                ; 89 ec
    70187026    pop bp                                    ; 5d
    70197027    retn                                      ; c3
    7020 _keyboard_init:                              ; 0xf4fce LB 0x26a
     7028_keyboard_init:                              ; 0xf4fda LB 0x26a
    70217029    push bp                                   ; 55
    70227030    mov bp, sp                                ; 89 e5
     
    70307038    ; sub ah, ah                                ; 2a e4
    70317039    test AL, strict byte 002h                 ; a8 02
    7032     je short 04ff1h                           ; 74 0d
     7040    je short 04ffdh                           ; 74 0d
    70337041    dec bx                                    ; 4b
    70347042    test bx, bx                               ; 85 db
    7035     jbe short 04ff1h                          ; 76 08
     7043    jbe short 04ffdh                          ; 76 08
    70367044    xor al, al                                ; 30 c0
    70377045    mov dx, 00080h                            ; ba 80 00
    70387046    out DX, AL                                ; ee
    7039     jmp short 04fdah                          ; eb e9
     7047    jmp short 04fe6h                          ; eb e9
    70407048    test bx, bx                               ; 85 db
    7041     jne short 04ffah                          ; 75 05
     7049    jne short 05006h                          ; 75 05
    70427050    xor ax, ax                                ; 31 c0
    7043     call 04fbbh                               ; e8 c1 ff
     7051    call 04fc7h                               ; e8 c1 ff
    70447052    mov bx, strict word 0ffffh                ; bb ff ff
    70457053    mov dx, strict word 00064h                ; ba 64 00
     
    70487056    ; sub ah, ah                                ; 2a e4
    70497057    test AL, strict byte 001h                 ; a8 01
    7050     jne short 05014h                          ; 75 0d
     7058    jne short 05020h                          ; 75 0d
    70517059    dec bx                                    ; 4b
    70527060    test bx, bx                               ; 85 db
    7053     jbe short 05014h                          ; 76 08
     7061    jbe short 05020h                          ; 76 08
    70547062    mov AL, strict byte 001h                  ; b0 01
    70557063    mov dx, 00080h                            ; ba 80 00
    70567064    out DX, AL                                ; ee
    7057     jmp short 04ffdh                          ; eb e9
     7065    jmp short 05009h                          ; eb e9
    70587066    test bx, bx                               ; 85 db
    7059     jne short 0501eh                          ; 75 06
     7067    jne short 0502ah                          ; 75 06
    70607068    mov ax, strict word 00001h                ; b8 01 00
    7061     call 04fbbh                               ; e8 9d ff
     7069    call 04fc7h                               ; e8 9d ff
    70627070    mov dx, strict word 00060h                ; ba 60 00
    70637071    in AL, DX                                 ; ec
     
    70657073    ; sub ah, ah                                ; 2a e4
    70667074    cmp ax, strict word 00055h                ; 3d 55 00
    7067     je short 0502fh                           ; 74 06
     7075    je short 0503bh                           ; 74 06
    70687076    mov ax, 003dfh                            ; b8 df 03
    7069     call 04fbbh                               ; e8 8c ff
     7077    call 04fc7h                               ; e8 8c ff
    70707078    mov AL, strict byte 0abh                  ; b0 ab
    70717079    mov dx, strict word 00064h                ; ba 64 00
     
    70777085    ; sub ah, ah                                ; 2a e4
    70787086    test AL, strict byte 002h                 ; a8 02
    7079     je short 0504fh                           ; 74 0d
     7087    je short 0505bh                           ; 74 0d
    70807088    dec bx                                    ; 4b
    70817089    test bx, bx                               ; 85 db
    7082     jbe short 0504fh                          ; 76 08
     7090    jbe short 0505bh                          ; 76 08
    70837091    mov AL, strict byte 010h                  ; b0 10
    70847092    mov dx, 00080h                            ; ba 80 00
    70857093    out DX, AL                                ; ee
    7086     jmp short 05038h                          ; eb e9
     7094    jmp short 05044h                          ; eb e9
    70877095    test bx, bx                               ; 85 db
    7088     jne short 05059h                          ; 75 06
     7096    jne short 05065h                          ; 75 06
    70897097    mov ax, strict word 0000ah                ; b8 0a 00
    7090     call 04fbbh                               ; e8 62 ff
     7098    call 04fc7h                               ; e8 62 ff
    70917099    mov bx, strict word 0ffffh                ; bb ff ff
    70927100    mov dx, strict word 00064h                ; ba 64 00
     
    70957103    ; sub ah, ah                                ; 2a e4
    70967104    test AL, strict byte 001h                 ; a8 01
    7097     jne short 05073h                          ; 75 0d
     7105    jne short 0507fh                          ; 75 0d
    70987106    dec bx                                    ; 4b
    70997107    test bx, bx                               ; 85 db
    7100     jbe short 05073h                          ; 76 08
     7108    jbe short 0507fh                          ; 76 08
    71017109    mov AL, strict byte 011h                  ; b0 11
    71027110    mov dx, 00080h                            ; ba 80 00
    71037111    out DX, AL                                ; ee
    7104     jmp short 0505ch                          ; eb e9
     7112    jmp short 05068h                          ; eb e9
    71057113    test bx, bx                               ; 85 db
    7106     jne short 0507dh                          ; 75 06
     7114    jne short 05089h                          ; 75 06
    71077115    mov ax, strict word 0000bh                ; b8 0b 00
    7108     call 04fbbh                               ; e8 3e ff
     7116    call 04fc7h                               ; e8 3e ff
    71097117    mov dx, strict word 00060h                ; ba 60 00
    71107118    in AL, DX                                 ; ec
     
    71127120    ; sub ah, ah                                ; 2a e4
    71137121    test ax, ax                               ; 85 c0
    7114     je short 0508dh                           ; 74 06
     7122    je short 05099h                           ; 74 06
    71157123    mov ax, 003e0h                            ; b8 e0 03
    7116     call 04fbbh                               ; e8 2e ff
     7124    call 04fc7h                               ; e8 2e ff
    71177125    mov AL, strict byte 0ffh                  ; b0 ff
    71187126    mov dx, strict word 00060h                ; ba 60 00
     
    71247132    ; sub ah, ah                                ; 2a e4
    71257133    test AL, strict byte 002h                 ; a8 02
    7126     je short 050adh                           ; 74 0d
     7134    je short 050b9h                           ; 74 0d
    71277135    dec bx                                    ; 4b
    71287136    test bx, bx                               ; 85 db
    7129     jbe short 050adh                          ; 76 08
     7137    jbe short 050b9h                          ; 76 08
    71307138    mov AL, strict byte 020h                  ; b0 20
    71317139    mov dx, 00080h                            ; ba 80 00
    71327140    out DX, AL                                ; ee
    7133     jmp short 05096h                          ; eb e9
     7141    jmp short 050a2h                          ; eb e9
    71347142    test bx, bx                               ; 85 db
    7135     jne short 050b7h                          ; 75 06
     7143    jne short 050c3h                          ; 75 06
    71367144    mov ax, strict word 00014h                ; b8 14 00
    7137     call 04fbbh                               ; e8 04 ff
     7145    call 04fc7h                               ; e8 04 ff
    71387146    mov bx, strict word 0ffffh                ; bb ff ff
    71397147    mov dx, strict word 00064h                ; ba 64 00
     
    71427150    ; sub ah, ah                                ; 2a e4
    71437151    test AL, strict byte 001h                 ; a8 01
    7144     jne short 050d1h                          ; 75 0d
     7152    jne short 050ddh                          ; 75 0d
    71457153    dec bx                                    ; 4b
    71467154    test bx, bx                               ; 85 db
    7147     jbe short 050d1h                          ; 76 08
     7155    jbe short 050ddh                          ; 76 08
    71487156    mov AL, strict byte 021h                  ; b0 21
    71497157    mov dx, 00080h                            ; ba 80 00
    71507158    out DX, AL                                ; ee
    7151     jmp short 050bah                          ; eb e9
     7159    jmp short 050c6h                          ; eb e9
    71527160    test bx, bx                               ; 85 db
    7153     jne short 050dbh                          ; 75 06
     7161    jne short 050e7h                          ; 75 06
    71547162    mov ax, strict word 00015h                ; b8 15 00
    7155     call 04fbbh                               ; e8 e0 fe
     7163    call 04fc7h                               ; e8 e0 fe
    71567164    mov dx, strict word 00060h                ; ba 60 00
    71577165    in AL, DX                                 ; ec
     
    71597167    ; sub ah, ah                                ; 2a e4
    71607168    cmp ax, 000fah                            ; 3d fa 00
    7161     je short 050ech                           ; 74 06
     7169    je short 050f8h                           ; 74 06
    71627170    mov ax, 003e1h                            ; b8 e1 03
    7163     call 04fbbh                               ; e8 cf fe
     7171    call 04fc7h                               ; e8 cf fe
    71647172    mov dx, strict word 00064h                ; ba 64 00
    71657173    in AL, DX                                 ; ec
     
    71677175    ; sub ah, ah                                ; 2a e4
    71687176    test AL, strict byte 001h                 ; a8 01
    7169     jne short 050feh                          ; 75 08
     7177    jne short 0510ah                          ; 75 08
    71707178    mov AL, strict byte 031h                  ; b0 31
    71717179    mov dx, 00080h                            ; ba 80 00
    71727180    out DX, AL                                ; ee
    7173     jmp short 050ech                          ; eb ee
     7181    jmp short 050f8h                          ; eb ee
    71747182    mov dx, strict word 00060h                ; ba 60 00
    71757183    in AL, DX                                 ; ec
     
    71777185    ; sub ah, ah                                ; 2a e4
    71787186    cmp ax, 000aah                            ; 3d aa 00
    7179     je short 05117h                           ; 74 0e
     7187    je short 05123h                           ; 74 0e
    71807188    in AL, DX                                 ; ec
    71817189    db  02ah, 0e4h
    71827190    ; sub ah, ah                                ; 2a e4
    71837191    cmp ax, 000aah                            ; 3d aa 00
    7184     je short 05117h                           ; 74 06
     7192    je short 05123h                           ; 74 06
    71857193    mov ax, 003e2h                            ; b8 e2 03
    7186     call 04fbbh                               ; e8 a4 fe
     7194    call 04fc7h                               ; e8 a4 fe
    71877195    mov AL, strict byte 0f5h                  ; b0 f5
    71887196    mov dx, strict word 00060h                ; ba 60 00
     
    71947202    ; sub ah, ah                                ; 2a e4
    71957203    test AL, strict byte 002h                 ; a8 02
    7196     je short 05137h                           ; 74 0d
     7204    je short 05143h                           ; 74 0d
    71977205    dec bx                                    ; 4b
    71987206    test bx, bx                               ; 85 db
    7199     jbe short 05137h                          ; 76 08
     7207    jbe short 05143h                          ; 76 08
    72007208    mov AL, strict byte 040h                  ; b0 40
    72017209    mov dx, 00080h                            ; ba 80 00
    72027210    out DX, AL                                ; ee
    7203     jmp short 05120h                          ; eb e9
     7211    jmp short 0512ch                          ; eb e9
    72047212    test bx, bx                               ; 85 db
    7205     jne short 05141h                          ; 75 06
     7213    jne short 0514dh                          ; 75 06
    72067214    mov ax, strict word 00028h                ; b8 28 00
    7207     call 04fbbh                               ; e8 7a fe
     7215    call 04fc7h                               ; e8 7a fe
    72087216    mov bx, strict word 0ffffh                ; bb ff ff
    72097217    mov dx, strict word 00064h                ; ba 64 00
     
    72127220    ; sub ah, ah                                ; 2a e4
    72137221    test AL, strict byte 001h                 ; a8 01
    7214     jne short 0515bh                          ; 75 0d
     7222    jne short 05167h                          ; 75 0d
    72157223    dec bx                                    ; 4b
    72167224    test bx, bx                               ; 85 db
    7217     jbe short 0515bh                          ; 76 08
     7225    jbe short 05167h                          ; 76 08
    72187226    mov AL, strict byte 041h                  ; b0 41
    72197227    mov dx, 00080h                            ; ba 80 00
    72207228    out DX, AL                                ; ee
    7221     jmp short 05144h                          ; eb e9
     7229    jmp short 05150h                          ; eb e9
    72227230    test bx, bx                               ; 85 db
    7223     jne short 05165h                          ; 75 06
     7231    jne short 05171h                          ; 75 06
    72247232    mov ax, strict word 00029h                ; b8 29 00
    7225     call 04fbbh                               ; e8 56 fe
     7233    call 04fc7h                               ; e8 56 fe
    72267234    mov dx, strict word 00060h                ; ba 60 00
    72277235    in AL, DX                                 ; ec
     
    72297237    ; sub ah, ah                                ; 2a e4
    72307238    cmp ax, 000fah                            ; 3d fa 00
    7231     je short 05176h                           ; 74 06
     7239    je short 05182h                           ; 74 06
    72327240    mov ax, 003e3h                            ; b8 e3 03
    7233     call 04fbbh                               ; e8 45 fe
     7241    call 04fc7h                               ; e8 45 fe
    72347242    mov AL, strict byte 060h                  ; b0 60
    72357243    mov dx, strict word 00064h                ; ba 64 00
     
    72417249    ; sub ah, ah                                ; 2a e4
    72427250    test AL, strict byte 002h                 ; a8 02
    7243     je short 05196h                           ; 74 0d
     7251    je short 051a2h                           ; 74 0d
    72447252    dec bx                                    ; 4b
    72457253    test bx, bx                               ; 85 db
    7246     jbe short 05196h                          ; 76 08
     7254    jbe short 051a2h                          ; 76 08
    72477255    mov AL, strict byte 050h                  ; b0 50
    72487256    mov dx, 00080h                            ; ba 80 00
    72497257    out DX, AL                                ; ee
    7250     jmp short 0517fh                          ; eb e9
     7258    jmp short 0518bh                          ; eb e9
    72517259    test bx, bx                               ; 85 db
    7252     jne short 051a0h                          ; 75 06
     7260    jne short 051ach                          ; 75 06
    72537261    mov ax, strict word 00032h                ; b8 32 00
    7254     call 04fbbh                               ; e8 1b fe
     7262    call 04fc7h                               ; e8 1b fe
    72557263    mov AL, strict byte 065h                  ; b0 65
    72567264    mov dx, strict word 00060h                ; ba 60 00
     
    72627270    ; sub ah, ah                                ; 2a e4
    72637271    test AL, strict byte 002h                 ; a8 02
    7264     je short 051c0h                           ; 74 0d
     7272    je short 051cch                           ; 74 0d
    72657273    dec bx                                    ; 4b
    72667274    test bx, bx                               ; 85 db
    7267     jbe short 051c0h                          ; 76 08
     7275    jbe short 051cch                          ; 76 08
    72687276    mov AL, strict byte 060h                  ; b0 60
    72697277    mov dx, 00080h                            ; ba 80 00
    72707278    out DX, AL                                ; ee
    7271     jmp short 051a9h                          ; eb e9
     7279    jmp short 051b5h                          ; eb e9
    72727280    test bx, bx                               ; 85 db
    7273     jne short 051cah                          ; 75 06
     7281    jne short 051d6h                          ; 75 06
    72747282    mov ax, strict word 0003ch                ; b8 3c 00
    7275     call 04fbbh                               ; e8 f1 fd
     7283    call 04fc7h                               ; e8 f1 fd
    72767284    mov AL, strict byte 0f4h                  ; b0 f4
    72777285    mov dx, strict word 00060h                ; ba 60 00
     
    72837291    ; sub ah, ah                                ; 2a e4
    72847292    test AL, strict byte 002h                 ; a8 02
    7285     je short 051eah                           ; 74 0d
     7293    je short 051f6h                           ; 74 0d
    72867294    dec bx                                    ; 4b
    72877295    test bx, bx                               ; 85 db
    7288     jbe short 051eah                          ; 76 08
     7296    jbe short 051f6h                          ; 76 08
    72897297    mov AL, strict byte 070h                  ; b0 70
    72907298    mov dx, 00080h                            ; ba 80 00
    72917299    out DX, AL                                ; ee
    7292     jmp short 051d3h                          ; eb e9
     7300    jmp short 051dfh                          ; eb e9
    72937301    test bx, bx                               ; 85 db
    7294     jne short 051f4h                          ; 75 06
     7302    jne short 05200h                          ; 75 06
    72957303    mov ax, strict word 00046h                ; b8 46 00
    7296     call 04fbbh                               ; e8 c7 fd
     7304    call 04fc7h                               ; e8 c7 fd
    72977305    mov bx, strict word 0ffffh                ; bb ff ff
    72987306    mov dx, strict word 00064h                ; ba 64 00
     
    73017309    ; sub ah, ah                                ; 2a e4
    73027310    test AL, strict byte 001h                 ; a8 01
    7303     jne short 0520eh                          ; 75 0d
     7311    jne short 0521ah                          ; 75 0d
    73047312    dec bx                                    ; 4b
    73057313    test bx, bx                               ; 85 db
    7306     jbe short 0520eh                          ; 76 08
     7314    jbe short 0521ah                          ; 76 08
    73077315    mov AL, strict byte 071h                  ; b0 71
    73087316    mov dx, 00080h                            ; ba 80 00
    73097317    out DX, AL                                ; ee
    7310     jmp short 051f7h                          ; eb e9
     7318    jmp short 05203h                          ; eb e9
    73117319    test bx, bx                               ; 85 db
    7312     jne short 05218h                          ; 75 06
     7320    jne short 05224h                          ; 75 06
    73137321    mov ax, strict word 00046h                ; b8 46 00
    7314     call 04fbbh                               ; e8 a3 fd
     7322    call 04fc7h                               ; e8 a3 fd
    73157323    mov dx, strict word 00060h                ; ba 60 00
    73167324    in AL, DX                                 ; ec
     
    73187326    ; sub ah, ah                                ; 2a e4
    73197327    cmp ax, 000fah                            ; 3d fa 00
    7320     je short 05229h                           ; 74 06
     7328    je short 05235h                           ; 74 06
    73217329    mov ax, 003e4h                            ; b8 e4 03
    7322     call 04fbbh                               ; e8 92 fd
     7330    call 04fc7h                               ; e8 92 fd
    73237331    mov AL, strict byte 0a8h                  ; b0 a8
    73247332    mov dx, strict word 00064h                ; ba 64 00
    73257333    out DX, AL                                ; ee
    73267334    xor ax, ax                                ; 31 c0
    7327     call 06680h                               ; e8 4c 14
     7335    call 06690h                               ; e8 50 14
    73287336    mov sp, bp                                ; 89 ec
    73297337    pop bp                                    ; 5d
    73307338    retn                                      ; c3
    7331 enqueue_key_:                                ; 0xf5238 LB 0x99
     7339enqueue_key_:                                ; 0xf5244 LB 0x99
    73327340    push bp                                   ; 55
    73337341    mov bp, sp                                ; 89 e5
     
    73417349    mov dx, strict word 0001ah                ; ba 1a 00
    73427350    mov ax, strict word 00040h                ; b8 40 00
    7343     call 01765h                               ; e8 17 c5
     7351    call 01765h                               ; e8 0b c5
    73447352    mov di, ax                                ; 89 c7
    73457353    mov dx, strict word 0001ch                ; ba 1c 00
    73467354    mov ax, strict word 00040h                ; b8 40 00
    7347     call 01765h                               ; e8 0c c5
     7355    call 01765h                               ; e8 00 c5
    73487356    mov si, ax                                ; 89 c6
    73497357    lea cx, [si+002h]                         ; 8d 4c 02
    73507358    cmp cx, strict byte 0003eh                ; 83 f9 3e
    7351     jc short 05266h                           ; 72 03
     7359    jc short 05272h                           ; 72 03
    73527360    mov cx, strict word 0001eh                ; b9 1e 00
    73537361    cmp cx, di                                ; 39 f9
    7354     jne short 0526eh                          ; 75 04
     7362    jne short 0527ah                          ; 75 04
    73557363    xor ax, ax                                ; 31 c0
    7356     jmp short 05293h                          ; eb 25
     7364    jmp short 0529fh                          ; eb 25
    73577365    xor bh, bh                                ; 30 ff
    73587366    mov dx, si                                ; 89 f2
    73597367    mov ax, strict word 00040h                ; b8 40 00
    7360     call 01757h                               ; e8 df c4
     7368    call 01757h                               ; e8 d3 c4
    73617369    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    73627370    lea dx, [si+001h]                         ; 8d 54 01
    73637371    mov ax, strict word 00040h                ; b8 40 00
    7364     call 01757h                               ; e8 d2 c4
     7372    call 01757h                               ; e8 c6 c4
    73657373    mov bx, cx                                ; 89 cb
    73667374    mov dx, strict word 0001ch                ; ba 1c 00
    73677375    mov ax, strict word 00040h                ; b8 40 00
    7368     call 01773h                               ; e8 e3 c4
     7376    call 01773h                               ; e8 d7 c4
    73697377    mov ax, strict word 00001h                ; b8 01 00
    73707378    lea sp, [bp-008h]                         ; 8d 66 f8
     
    73767384    retn                                      ; c3
    73777385    db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
    7378     db  01dh, 0f9h, 055h, 0c2h, 053h, 06ah, 053h, 06ah, 053h, 04bh, 054h, 040h, 053h, 0c9h, 054h, 037h
    7379     db  055h, 0dfh, 055h, 0bbh, 055h, 006h, 054h, 06ah, 053h, 06ah, 053h, 08ah, 054h, 05ch, 053h, 018h
    7380     db  055h, 09ch, 055h, 0d8h, 055h
    7381 _int09_function:                             ; 0xf52d1 LB 0x474
     7386    db  01dh, 005h, 056h, 0ceh, 053h, 076h, 053h, 076h, 053h, 057h, 054h, 04ch, 053h, 0d5h, 054h, 043h
     7387    db  055h, 0ebh, 055h, 0c7h, 055h, 012h, 054h, 076h, 053h, 076h, 053h, 096h, 054h, 068h, 053h, 024h
     7388    db  055h, 0a8h, 055h, 0e4h, 055h
     7389_int09_function:                             ; 0xf52dd LB 0x474
    73827390    push bp                                   ; 55
    73837391    mov bp, sp                                ; 89 e5
     
    73877395    mov byte [bp-00ch], al                    ; 88 46 f4
    73887396    test al, al                               ; 84 c0
    7389     jne short 052fbh                          ; 75 19
     7397    jne short 05307h                          ; 75 19
    73907398    mov bx, 00db2h                            ; bb b2 0d
    73917399    mov cx, ds                                ; 8c d9
    73927400    mov ax, strict word 00004h                ; b8 04 00
    7393     call 01a2ah                               ; e8 3d c7
     7401    call 01a2ah                               ; e8 31 c7
    73947402    push 00599h                               ; 68 99 05
    73957403    push strict byte 00004h                   ; 6a 04
    7396     call 01a6bh                               ; e8 76 c7
     7404    call 01a6bh                               ; e8 6a c7
    73977405    add sp, strict byte 00004h                ; 83 c4 04
    7398     jmp near 053bch                           ; e9 c1 00
     7406    jmp near 053c8h                           ; e9 c1 00
    73997407    mov dx, strict word 00018h                ; ba 18 00
    74007408    mov ax, strict word 00040h                ; b8 40 00
    7401     call 01749h                               ; e8 45 c4
     7409    call 01749h                               ; e8 39 c4
    74027410    mov byte [bp-006h], al                    ; 88 46 fa
    74037411    mov byte [bp-00ah], al                    ; 88 46 f6
    74047412    mov dx, 00096h                            ; ba 96 00
    74057413    mov ax, strict word 00040h                ; b8 40 00
    7406     call 01749h                               ; e8 36 c4
     7414    call 01749h                               ; e8 2a c4
    74077415    mov byte [bp-00eh], al                    ; 88 46 f2
    74087416    mov byte [bp-004h], al                    ; 88 46 fc
    74097417    mov dx, strict word 00017h                ; ba 17 00
    74107418    mov ax, strict word 00040h                ; b8 40 00
    7411     call 01749h                               ; e8 27 c4
     7419    call 01749h                               ; e8 1b c4
    74127420    mov byte [bp-010h], al                    ; 88 46 f0
    74137421    mov byte [bp-008h], al                    ; 88 46 f8
     
    74167424    pop ES                                    ; 07
    74177425    mov cx, strict word 00012h                ; b9 12 00
    7418     mov di, 0529ch                            ; bf 9c 52
     7426    mov di, 052a8h                            ; bf a8 52
    74197427    repne scasb                               ; f2 ae
    74207428    sal cx, 1                                 ; d1 e1
    74217429    mov di, cx                                ; 89 cf
    7422     mov ax, word [cs:di+052adh]               ; 2e 8b 85 ad 52
     7430    mov ax, word [cs:di+052b9h]               ; 2e 8b 85 b9 52
    74237431    jmp ax                                    ; ff e0
    74247432    xor byte [bp-008h], 040h                  ; 80 76 f8 40
     
    74267434    mov dx, strict word 00017h                ; ba 17 00
    74277435    mov ax, strict word 00040h                ; b8 40 00
    7428     call 01757h                               ; e8 06 c4
     7436    call 01757h                               ; e8 fa c3
    74297437    or byte [bp-00ah], 040h                   ; 80 4e f6 40
    74307438    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    7431     jmp near 055cch                           ; e9 70 02
     7439    jmp near 055d8h                           ; e9 70 02
    74327440    mov al, byte [bp-006h]                    ; 8a 46 fa
    74337441    and AL, strict byte 0bfh                  ; 24 bf
    74347442    mov byte [bp-00ah], al                    ; 88 46 f6
    74357443    movzx bx, al                              ; 0f b6 d8
    7436     jmp near 055cch                           ; e9 62 02
     7444    jmp near 055d8h                           ; e9 62 02
    74377445    test byte [bp-004h], 002h                 ; f6 46 fc 02
    7438     jne near 0539eh                           ; 0f 85 2c 00
     7446    jne near 053aah                           ; 0f 85 2c 00
    74397447    mov al, byte [bp-00ch]                    ; 8a 46 f4
    74407448    and AL, strict byte 07fh                  ; 24 7f
     
    74467454    mov dl, al                                ; 88 c2
    74477455    test byte [bp-00ch], 080h                 ; f6 46 f4 80
    7448     je short 0538eh                           ; 74 07
     7456    je short 0539ah                           ; 74 07
    74497457    not al                                    ; f6 d0
    74507458    and byte [bp-008h], al                    ; 20 46 f8
    7451     jmp short 05391h                          ; eb 03
     7459    jmp short 0539dh                          ; eb 03
    74527460    or byte [bp-008h], al                     ; 08 46 f8
    74537461    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    74547462    mov dx, strict word 00017h                ; ba 17 00
    74557463    mov ax, strict word 00040h                ; b8 40 00
    7456     call 01757h                               ; e8 b9 c3
     7464    call 01757h                               ; e8 ad c3
    74577465    mov al, byte [bp-00ch]                    ; 8a 46 f4
    74587466    and AL, strict byte 07fh                  ; 24 7f
    74597467    cmp AL, strict byte 01dh                  ; 3c 1d
    7460     je short 053abh                           ; 74 04
     7468    je short 053b7h                           ; 74 04
    74617469    and byte [bp-004h], 0feh                  ; 80 66 fc fe
    74627470    and byte [bp-004h], 0fdh                  ; 80 66 fc fd
     
    74647472    mov dx, 00096h                            ; ba 96 00
    74657473    mov ax, strict word 00040h                ; b8 40 00
    7466     call 01757h                               ; e8 9b c3
     7474    call 01757h                               ; e8 8f c3
    74677475    lea sp, [bp-002h]                         ; 8d 66 fe
    74687476    pop di                                    ; 5f
     
    74707478    retn                                      ; c3
    74717479    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7472     jne short 0539eh                          ; 75 d6
     7480    jne short 053aah                          ; 75 d6
    74737481    mov al, byte [bp-010h]                    ; 8a 46 f0
    74747482    or AL, strict byte 004h                   ; 0c 04
     
    74777485    mov dx, strict word 00017h                ; ba 17 00
    74787486    mov ax, strict word 00040h                ; b8 40 00
    7479     call 01757h                               ; e8 7b c3
     7487    call 01757h                               ; e8 6f c3
    74807488    mov al, byte [bp-00eh]                    ; 8a 46 f2
    74817489    test AL, strict byte 002h                 ; a8 02
    7482     je short 053f0h                           ; 74 0d
     7490    je short 053fch                           ; 74 0d
    74837491    or AL, strict byte 004h                   ; 0c 04
    74847492    mov byte [bp-004h], al                    ; 88 46 fc
    74857493    movzx bx, al                              ; 0f b6 d8
    74867494    mov dx, 00096h                            ; ba 96 00
    7487     jmp short 053feh                          ; eb 0e
     7495    jmp short 0540ah                          ; eb 0e
    74887496    mov al, byte [bp-006h]                    ; 8a 46 fa
    74897497    or AL, strict byte 001h                   ; 0c 01
     
    74927500    mov dx, strict word 00018h                ; ba 18 00
    74937501    mov ax, strict word 00040h                ; b8 40 00
    7494     call 01757h                               ; e8 53 c3
    7495     jmp short 0539eh                          ; eb 98
     7502    call 01757h                               ; e8 47 c3
     7503    jmp short 053aah                          ; eb 98
    74967504    test byte [bp-00eh], 001h                 ; f6 46 f2 01
    7497     jne short 0539eh                          ; 75 92
     7505    jne short 053aah                          ; 75 92
    74987506    mov al, byte [bp-010h]                    ; 8a 46 f0
    74997507    and AL, strict byte 0fbh                  ; 24 fb
     
    75027510    mov dx, strict word 00017h                ; ba 17 00
    75037511    mov ax, strict word 00040h                ; b8 40 00
    7504     call 01757h                               ; e8 37 c3
     7512    call 01757h                               ; e8 2b c3
    75057513    mov al, byte [bp-00eh]                    ; 8a 46 f2
    75067514    test AL, strict byte 002h                 ; a8 02
    7507     je short 05434h                           ; 74 0d
     7515    je short 05440h                           ; 74 0d
    75087516    and AL, strict byte 0fbh                  ; 24 fb
    75097517    mov byte [bp-004h], al                    ; 88 46 fc
    75107518    movzx bx, al                              ; 0f b6 d8
    75117519    mov dx, 00096h                            ; ba 96 00
    7512     jmp short 05442h                          ; eb 0e
     7520    jmp short 0544eh                          ; eb 0e
    75137521    mov al, byte [bp-006h]                    ; 8a 46 fa
    75147522    and AL, strict byte 0feh                  ; 24 fe
     
    75177525    mov dx, strict word 00018h                ; ba 18 00
    75187526    mov ax, strict word 00040h                ; b8 40 00
    7519     call 01757h                               ; e8 0f c3
    7520     jmp near 0539eh                           ; e9 53 ff
     7527    call 01757h                               ; e8 03 c3
     7528    jmp near 053aah                           ; e9 53 ff
    75217529    mov al, byte [bp-010h]                    ; 8a 46 f0
    75227530    or AL, strict byte 008h                   ; 0c 08
     
    75257533    mov dx, strict word 00017h                ; ba 17 00
    75267534    mov ax, strict word 00040h                ; b8 40 00
    7527     call 01757h                               ; e8 f8 c2
     7535    call 01757h                               ; e8 ec c2
    75287536    mov al, byte [bp-00eh]                    ; 8a 46 f2
    75297537    test AL, strict byte 002h                 ; a8 02
    7530     je short 05473h                           ; 74 0d
     7538    je short 0547fh                           ; 74 0d
    75317539    or AL, strict byte 008h                   ; 0c 08
    75327540    mov byte [bp-004h], al                    ; 88 46 fc
    75337541    movzx bx, al                              ; 0f b6 d8
    75347542    mov dx, 00096h                            ; ba 96 00
    7535     jmp short 05481h                          ; eb 0e
     7543    jmp short 0548dh                          ; eb 0e
    75367544    mov al, byte [bp-006h]                    ; 8a 46 fa
    75377545    or AL, strict byte 002h                   ; 0c 02
     
    75407548    mov dx, strict word 00018h                ; ba 18 00
    75417549    mov ax, strict word 00040h                ; b8 40 00
    7542     call 01757h                               ; e8 d0 c2
    7543     jmp near 0539eh                           ; e9 14 ff
     7550    call 01757h                               ; e8 c4 c2
     7551    jmp near 053aah                           ; e9 14 ff
    75447552    mov al, byte [bp-010h]                    ; 8a 46 f0
    75457553    and AL, strict byte 0f7h                  ; 24 f7
     
    75487556    mov dx, strict word 00017h                ; ba 17 00
    75497557    mov ax, strict word 00040h                ; b8 40 00
    7550     call 01757h                               ; e8 b9 c2
     7558    call 01757h                               ; e8 ad c2
    75517559    mov al, byte [bp-00eh]                    ; 8a 46 f2
    75527560    test AL, strict byte 002h                 ; a8 02
    7553     je short 054b2h                           ; 74 0d
     7561    je short 054beh                           ; 74 0d
    75547562    and AL, strict byte 0f7h                  ; 24 f7
    75557563    mov byte [bp-004h], al                    ; 88 46 fc
    75567564    movzx bx, al                              ; 0f b6 d8
    75577565    mov dx, 00096h                            ; ba 96 00
    7558     jmp short 054c0h                          ; eb 0e
     7566    jmp short 054cch                          ; eb 0e
    75597567    mov al, byte [bp-006h]                    ; 8a 46 fa
    75607568    and AL, strict byte 0fdh                  ; 24 fd
     
    75637571    mov dx, strict word 00018h                ; ba 18 00
    75647572    mov ax, strict word 00040h                ; b8 40 00
    7565     call 01757h                               ; e8 91 c2
    7566     jmp near 0539eh                           ; e9 d5 fe
     7573    call 01757h                               ; e8 85 c2
     7574    jmp near 053aah                           ; e9 d5 fe
    75677575    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7568     jne short 054ebh                          ; 75 1c
     7576    jne short 054f7h                          ; 75 1c
    75697577    mov al, byte [bp-006h]                    ; 8a 46 fa
    75707578    or AL, strict byte 020h                   ; 0c 20
     
    75737581    mov dx, strict word 00018h                ; ba 18 00
    75747582    mov ax, strict word 00040h                ; b8 40 00
    7575     call 01757h                               ; e8 74 c2
     7583    call 01757h                               ; e8 68 c2
    75767584    mov al, byte [bp-010h]                    ; 8a 46 f0
    75777585    xor AL, strict byte 020h                  ; 34 20
    7578     jmp near 0558ah                           ; e9 9f 00
     7586    jmp near 05596h                           ; e9 9f 00
    75797587    mov al, byte [bp-006h]                    ; 8a 46 fa
    75807588    or AL, strict byte 008h                   ; 0c 08
     
    75837591    mov dx, strict word 00018h                ; ba 18 00
    75847592    mov ax, strict word 00040h                ; b8 40 00
    7585     call 01757h                               ; e8 58 c2
     7593    call 01757h                               ; e8 4c c2
    75867594    mov AL, strict byte 0aeh                  ; b0 ae
    75877595    mov dx, strict word 00064h                ; ba 64 00
    75887596    out DX, AL                                ; ee
    7589     call 0e034h                               ; e8 2c 8b
     7597    call 0e034h                               ; e8 20 8b
    75907598    mov dx, strict word 00018h                ; ba 18 00
    75917599    mov ax, strict word 00040h                ; b8 40 00
    7592     call 01749h                               ; e8 38 c2
     7600    call 01749h                               ; e8 2c c2
    75937601    test AL, strict byte 008h                 ; a8 08
    7594     jne short 05508h                          ; 75 f3
    7595     jmp near 0539eh                           ; e9 86 fe
     7602    jne short 05514h                          ; 75 f3
     7603    jmp near 053aah                           ; e9 86 fe
    75967604    test byte [bp-00eh], 003h                 ; f6 46 f2 03
    7597     jne near 0539eh                           ; 0f 85 7e fe
     7605    jne near 053aah                           ; 0f 85 7e fe
    75987606    mov al, byte [bp-006h]                    ; 8a 46 fa
    75997607    and AL, strict byte 0dfh                  ; 24 df
     
    76027610    mov dx, strict word 00018h                ; ba 18 00
    76037611    mov ax, strict word 00040h                ; b8 40 00
    7604     call 01757h                               ; e8 23 c2
    7605     jmp near 0539eh                           ; e9 67 fe
     7612    call 01757h                               ; e8 17 c2
     7613    jmp near 053aah                           ; e9 67 fe
    76067614    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7607     je short 05571h                           ; 74 34
     7615    je short 0557dh                           ; 74 34
    76087616    mov dx, strict word 0001ah                ; ba 1a 00
    76097617    mov ax, strict word 00040h                ; b8 40 00
    7610     call 01765h                               ; e8 1f c2
     7618    call 01765h                               ; e8 13 c2
    76117619    mov bx, ax                                ; 89 c3
    76127620    mov dx, strict word 0001ch                ; ba 1c 00
    76137621    mov ax, strict word 00040h                ; b8 40 00
    7614     call 01773h                               ; e8 22 c2
     7622    call 01773h                               ; e8 16 c2
    76157623    mov bx, 00080h                            ; bb 80 00
    76167624    mov dx, strict word 00071h                ; ba 71 00
    76177625    mov ax, strict word 00040h                ; b8 40 00
    7618     call 01757h                               ; e8 fa c1
     7626    call 01757h                               ; e8 ee c1
    76197627    mov AL, strict byte 0aeh                  ; b0 ae
    76207628    mov dx, strict word 00064h                ; ba 64 00
     
    76257633    xor dx, dx                                ; 31 d2
    76267634    xor ax, ax                                ; 31 c0
    7627     call 05238h                               ; e8 ca fc
    7628     jmp near 0539eh                           ; e9 2d fe
     7635    call 05244h                               ; e8 ca fc
     7636    jmp near 053aah                           ; e9 2d fe
    76297637    mov al, byte [bp-006h]                    ; 8a 46 fa
    76307638    or AL, strict byte 010h                   ; 0c 10
     
    76337641    mov dx, strict word 00018h                ; ba 18 00
    76347642    mov ax, strict word 00040h                ; b8 40 00
    7635     call 01757h                               ; e8 d2 c1
     7643    call 01757h                               ; e8 c6 c1
    76367644    mov al, byte [bp-010h]                    ; 8a 46 f0
    76377645    xor AL, strict byte 010h                  ; 34 10
     
    76407648    mov dx, strict word 00017h                ; ba 17 00
    76417649    mov ax, strict word 00040h                ; b8 40 00
    7642     call 01757h                               ; e8 be c1
    7643     jmp near 0539eh                           ; e9 02 fe
     7650    call 01757h                               ; e8 b2 c1
     7651    jmp near 053aah                           ; e9 02 fe
    76447652    test byte [bp-00eh], 002h                 ; f6 46 f2 02
    7645     jne near 0539eh                           ; 0f 85 fa fd
     7653    jne near 053aah                           ; 0f 85 fa fd
    76467654    mov al, byte [bp-006h]                    ; 8a 46 fa
    76477655    and AL, strict byte 0efh                  ; 24 ef
     
    76507658    mov dx, strict word 00018h                ; ba 18 00
    76517659    mov ax, strict word 00040h                ; b8 40 00
    7652     call 01757h                               ; e8 9f c1
    7653     jmp near 0539eh                           ; e9 e3 fd
     7660    call 01757h                               ; e8 93 c1
     7661    jmp near 053aah                           ; e9 e3 fd
    76547662    mov al, byte [bp-006h]                    ; 8a 46 fa
    76557663    test AL, strict byte 004h                 ; a8 04
    7656     jne near 0539eh                           ; 0f 85 da fd
     7664    jne near 053aah                           ; 0f 85 da fd
    76577665    or AL, strict byte 004h                   ; 0c 04
    76587666    mov byte [bp-00ah], al                    ; 88 46 f6
     
    76607668    mov dx, strict word 00018h                ; ba 18 00
    76617669    mov ax, strict word 00040h                ; b8 40 00
    7662     call 01757h                               ; e8 82 c1
    7663     jmp near 0539eh                           ; e9 c6 fd
     7670    call 01757h                               ; e8 76 c1
     7671    jmp near 053aah                           ; e9 c6 fd
    76647672    mov al, byte [bp-006h]                    ; 8a 46 fa
    76657673    and AL, strict byte 0fbh                  ; 24 fb
    7666     jmp short 055c6h                          ; eb e7
     7674    jmp short 055d2h                          ; eb e7
    76677675    mov al, byte [bp-010h]                    ; 8a 46 f0
    76687676    and AL, strict byte 00ch                  ; 24 0c
    76697677    cmp AL, strict byte 00ch                  ; 3c 0c
    7670     jne short 055f9h                          ; 75 11
     7678    jne short 05605h                          ; 75 11
    76717679    mov bx, 01234h                            ; bb 34 12
    76727680    mov dx, strict word 00072h                ; ba 72 00
    76737681    mov ax, strict word 00040h                ; b8 40 00
    7674     call 01773h                               ; e8 7f c1
     7682    call 01773h                               ; e8 73 c1
    76757683    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    76767684    test byte [bp-00ah], 008h                 ; f6 46 f6 08
    7677     je short 0560dh                           ; 74 0e
     7685    je short 05619h                           ; 74 0e
    76787686    and byte [bp-00ah], 0f7h                  ; 80 66 f6 f7
    76797687    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
    76807688    mov dx, strict word 00018h                ; ba 18 00
    7681     jmp near 053b6h                           ; e9 a9 fd
     7689    jmp near 053c2h                           ; e9 a9 fd
    76827690    mov al, byte [bp-00ch]                    ; 8a 46 f4
    76837691    test AL, strict byte 080h                 ; a8 80
    7684     je short 0564bh                           ; 74 37
     7692    je short 05657h                           ; 74 37
    76857693    cmp AL, strict byte 0fah                  ; 3c fa
    7686     jne short 05628h                          ; 75 10
     7694    jne short 05634h                          ; 75 10
    76877695    mov dx, 00097h                            ; ba 97 00
    76887696    mov ax, strict word 00040h                ; b8 40 00
    7689     call 01749h                               ; e8 28 c1
     7697    call 01749h                               ; e8 1c c1
    76907698    mov dl, al                                ; 88 c2
    76917699    or dl, 010h                               ; 80 ca 10
    7692     jmp short 0563ch                          ; eb 14
     7700    jmp short 05648h                          ; eb 14
    76937701    cmp AL, strict byte 0feh                  ; 3c fe
    7694     jne near 0539eh                           ; 0f 85 70 fd
     7702    jne near 053aah                           ; 0f 85 70 fd
    76957703    mov dx, 00097h                            ; ba 97 00
    76967704    mov ax, strict word 00040h                ; b8 40 00
    7697     call 01749h                               ; e8 12 c1
     7705    call 01749h                               ; e8 06 c1
    76987706    mov dl, al                                ; 88 c2
    76997707    or dl, 020h                               ; 80 ca 20
     
    77017709    mov dx, 00097h                            ; ba 97 00
    77027710    mov ax, strict word 00040h                ; b8 40 00
    7703     call 01757h                               ; e8 0f c1
    7704     jmp near 0539eh                           ; e9 53 fd
     7711    call 01757h                               ; e8 03 c1
     7712    jmp near 053aah                           ; e9 53 fd
    77057713    cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
    7706     jbe short 0566fh                          ; 76 1e
     7714    jbe short 0567bh                          ; 76 1e
    77077715    mov bx, 00db2h                            ; bb b2 0d
    77087716    mov cx, ds                                ; 8c d9
    77097717    mov ax, strict word 00004h                ; b8 04 00
    7710     call 01a2ah                               ; e8 ce c3
     7718    call 01a2ah                               ; e8 c2 c3
    77117719    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    77127720    push ax                                   ; 50
    77137721    push 005b3h                               ; 68 b3 05
    77147722    push strict byte 00004h                   ; 6a 04
    7715     call 01a6bh                               ; e8 02 c4
     7723    call 01a6bh                               ; e8 f6 c3
    77167724    add sp, strict byte 00006h                ; 83 c4 06
    7717     jmp near 053bch                           ; e9 4d fd
     7725    jmp near 053c8h                           ; e9 4d fd
    77187726    mov al, byte [bp-008h]                    ; 8a 46 f8
    77197727    test AL, strict byte 008h                 ; a8 08
    7720     je short 05688h                           ; 74 12
     7728    je short 05694h                           ; 74 12
    77217729    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77227730    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    77237731    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
    77247732    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
    7725     jmp near 05716h                           ; e9 8e 00
     7733    jmp near 05722h                           ; e9 8e 00
    77267734    test AL, strict byte 004h                 ; a8 04
    7727     je short 0569eh                           ; 74 12
     7735    je short 056aah                           ; 74 12
    77287736    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77297737    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    77307738    mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
    77317739    mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
    7732     jmp near 05716h                           ; e9 78 00
     7740    jmp near 05722h                           ; e9 78 00
    77337741    mov al, byte [bp-004h]                    ; 8a 46 fc
    77347742    and AL, strict byte 002h                  ; 24 02
    77357743    test al, al                               ; 84 c0
    7736     jbe short 056bch                          ; 76 15
     7744    jbe short 056c8h                          ; 76 15
    77377745    mov al, byte [bp-00ch]                    ; 8a 46 f4
    77387746    cmp AL, strict byte 047h                  ; 3c 47
    7739     jc short 056bch                           ; 72 0e
     7747    jc short 056c8h                           ; 72 0e
    77407748    cmp AL, strict byte 053h                  ; 3c 53
    7741     jnbe short 056bch                         ; 77 0a
     7749    jnbe short 056c8h                         ; 77 0a
    77427750    mov DL, strict byte 0e0h                  ; b2 e0
    77437751    movzx bx, al                              ; 0f b6 d8
    77447752    imul bx, bx, strict byte 0000ah           ; 6b db 0a
    7745     jmp short 05712h                          ; eb 56
     7753    jmp short 0571eh                          ; eb 56
    77467754    test byte [bp-008h], 003h                 ; f6 46 f8 03
    7747     je short 056f0h                           ; 74 2e
     7755    je short 056fch                           ; 74 2e
    77487756    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77497757    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     
    77517759    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    77527760    test dx, ax                               ; 85 c2
    7753     je short 056e0h                           ; 74 0a
     7761    je short 056ech                           ; 74 0a
    77547762    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
    77557763    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
    7756     jmp short 056e8h                          ; eb 08
     7764    jmp short 056f4h                          ; eb 08
    77577765    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
    77587766    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
    77597767    shr ax, 008h                              ; c1 e8 08
    77607768    mov byte [bp-00ch], al                    ; 88 46 f4
    7761     jmp short 0571ch                          ; eb 2c
     7769    jmp short 05728h                          ; eb 2c
    77627770    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    77637771    imul bx, bx, strict byte 0000ah           ; 6b db 0a
     
    77657773    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
    77667774    test dx, ax                               ; 85 c2
    7767     je short 0570eh                           ; 74 0a
     7775    je short 0571ah                           ; 74 0a
    77687776    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
    77697777    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
    7770     jmp short 05716h                          ; eb 08
     7778    jmp short 05722h                          ; eb 08
    77717779    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
    77727780    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
     
    77747782    mov byte [bp-00ch], al                    ; 88 46 f4
    77757783    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    7776     jne short 0573ch                          ; 75 1a
     7784    jne short 05748h                          ; 75 1a
    77777785    test dl, dl                               ; 84 d2
    7778     jne short 0573ch                          ; 75 16
     7786    jne short 05748h                          ; 75 16
    77797787    mov bx, 00db2h                            ; bb b2 0d
    77807788    mov cx, ds                                ; 8c d9
    77817789    mov ax, strict word 00004h                ; b8 04 00
    7782     call 01a2ah                               ; e8 f9 c2
     7790    call 01a2ah                               ; e8 ed c2
    77837791    push 005eah                               ; 68 ea 05
    77847792    push strict byte 00004h                   ; 6a 04
    7785     call 01a6bh                               ; e8 32 c3
     7793    call 01a6bh                               ; e8 26 c3
    77867794    add sp, strict byte 00004h                ; 83 c4 04
    77877795    xor dh, dh                                ; 30 f6
    77887796    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
    7789     jmp near 0556bh                           ; e9 26 fe
    7790 dequeue_key_:                                ; 0xf5745 LB 0x94
     7797    jmp near 05577h                           ; e9 26 fe
     7798dequeue_key_:                                ; 0xf5751 LB 0x94
    77917799    push bp                                   ; 55
    77927800    mov bp, sp                                ; 89 e5
     
    78017809    mov dx, strict word 0001ah                ; ba 1a 00
    78027810    mov ax, strict word 00040h                ; b8 40 00
    7803     call 01765h                               ; e8 06 c0
     7811    call 01765h                               ; e8 fa bf
    78047812    mov bx, ax                                ; 89 c3
    78057813    mov dx, strict word 0001ch                ; ba 1c 00
    78067814    mov ax, strict word 00040h                ; b8 40 00
    7807     call 01765h                               ; e8 fb bf
     7815    call 01765h                               ; e8 ef bf
    78087816    cmp bx, ax                                ; 39 c3
    7809     je short 057abh                           ; 74 3d
     7817    je short 057b7h                           ; 74 3d
    78107818    mov dx, bx                                ; 89 da
    78117819    mov ax, strict word 00040h                ; b8 40 00
    7812     call 01749h                               ; e8 d3 bf
     7820    call 01749h                               ; e8 c7 bf
    78137821    mov cl, al                                ; 88 c1
    78147822    lea dx, [bx+001h]                         ; 8d 57 01
    78157823    mov ax, strict word 00040h                ; b8 40 00
    7816     call 01749h                               ; e8 c8 bf
     7824    call 01749h                               ; e8 bc bf
    78177825    mov es, [bp-008h]                         ; 8e 46 f8
    78187826    mov byte [es:si], cl                      ; 26 88 0c
     
    78207828    mov byte [es:di], al                      ; 26 88 05
    78217829    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
    7822     je short 057a6h                           ; 74 13
     7830    je short 057b2h                           ; 74 13
    78237831    inc bx                                    ; 43
    78247832    inc bx                                    ; 43
    78257833    cmp bx, strict byte 0003eh                ; 83 fb 3e
    7826     jc short 0579dh                           ; 72 03
     7834    jc short 057a9h                           ; 72 03
    78277835    mov bx, strict word 0001eh                ; bb 1e 00
    78287836    mov dx, strict word 0001ah                ; ba 1a 00
    78297837    mov ax, strict word 00040h                ; b8 40 00
    7830     call 01773h                               ; e8 cd bf
     7838    call 01773h                               ; e8 c1 bf
    78317839    mov ax, strict word 00001h                ; b8 01 00
    7832     jmp short 057adh                          ; eb 02
     7840    jmp short 057b9h                          ; eb 02
    78337841    xor ax, ax                                ; 31 c0
    78347842    lea sp, [bp-004h]                         ; 8d 66 fc
     
    78417849    or cl, byte [bx+di]                       ; 0a 09
    78427850    add ax, 00102h                            ; 05 02 01
    7843     add byte [bx+05ah], dh                    ; 00 77 5a
    7844     lea bx, [bx+si-02ch]                      ; 8d 58 d4
     7851    add byte [bp+di-066a6h], al               ; 00 83 5a 99
    78457852    pop ax                                    ; 58
    7846     and byte [bx+di+030h], bl                 ; 20 59 30
     7853    loopne 0582bh                             ; e0 58
     7854    sub AL, strict byte 059h                  ; 2c 59
     7855    cmp AL, strict byte 059h                  ; 3c 59
     7856    pop ecx                                   ; 66 59
     7857    outsw                                     ; 6f
    78477858    pop cx                                    ; 59
     7859    loopne 05836h                             ; e0 59
     7860    adc word [bp+si+03eh], bx                 ; 11 5a 3e
    78487861    pop dx                                    ; 5a
    7849     pop cx                                    ; 59
    7850     arpl [bx+di-02ch], bx                     ; 63 59 d4
    7851     pop cx                                    ; 59
    7852     add ax, 0325ah                            ; 05 5a 32
     7862    js short 0583dh                           ; 78 5a
     7863    db  0c6h
    78537864    pop dx                                    ; 5a
    7854     insb                                      ; 6c
    7855     pop dx                                    ; 5a
    7856     db  0bah
    7857     pop dx                                    ; 5a
    7858 _int16_function:                             ; 0xf57d9 LB 0x2e7
     7865_int16_function:                             ; 0xf57e5 LB 0x2e7
    78597866    push bp                                   ; 55
    78607867    mov bp, sp                                ; 89 e5
     
    78637870    mov dx, strict word 00017h                ; ba 17 00
    78647871    mov ax, strict word 00040h                ; b8 40 00
    7865     call 01749h                               ; e8 60 bf
     7872    call 01749h                               ; e8 54 bf
    78667873    mov cl, al                                ; 88 c1
    78677874    mov bh, al                                ; 88 c7
    78687875    mov dx, 00097h                            ; ba 97 00
    78697876    mov ax, strict word 00040h                ; b8 40 00
    7870     call 01749h                               ; e8 53 bf
     7877    call 01749h                               ; e8 47 bf
    78717878    mov bl, al                                ; 88 c3
    78727879    movzx dx, cl                              ; 0f b6 d1
     
    78777884    xor al, dl                                ; 30 d0
    78787885    test ax, ax                               ; 85 c0
    7879     je short 0586bh                           ; 74 60
     7886    je short 05877h                           ; 74 60
    78807887    cli                                       ; fa
    78817888    mov AL, strict byte 0edh                  ; b0 ed
     
    78877894    ; sub ah, ah                                ; 2a e4
    78887895    test AL, strict byte 001h                 ; a8 01
    7889     jne short 05824h                          ; 75 08
     7896    jne short 05830h                          ; 75 08
    78907897    mov AL, strict byte 021h                  ; b0 21
    78917898    mov dx, 00080h                            ; ba 80 00
    78927899    out DX, AL                                ; ee
    7893     jmp short 05812h                          ; eb ee
     7900    jmp short 0581eh                          ; eb ee
    78947901    mov dx, strict word 00060h                ; ba 60 00
    78957902    in AL, DX                                 ; ec
     
    78977904    ; sub ah, ah                                ; 2a e4
    78987905    cmp ax, 000fah                            ; 3d fa 00
    7899     jne short 0586ah                          ; 75 3b
     7906    jne short 05876h                          ; 75 3b
    79007907    and bl, 0c8h                              ; 80 e3 c8
    79017908    movzx ax, bh                              ; 0f b6 c7
     
    79137920    ; sub ah, ah                                ; 2a e4
    79147921    test AL, strict byte 001h                 ; a8 01
    7915     jne short 05859h                          ; 75 08
     7922    jne short 05865h                          ; 75 08
    79167923    mov AL, strict byte 021h                  ; b0 21
    79177924    mov dx, 00080h                            ; ba 80 00
    79187925    out DX, AL                                ; ee
    7919     jmp short 05847h                          ; eb ee
     7926    jmp short 05853h                          ; eb ee
    79207927    mov dx, strict word 00060h                ; ba 60 00
    79217928    in AL, DX                                 ; ec
     
    79257932    mov dx, 00097h                            ; ba 97 00
    79267933    mov ax, strict word 00040h                ; b8 40 00
    7927     call 01757h                               ; e8 ed be
     7934    call 01757h                               ; e8 e1 be
    79287935    sti                                       ; fb
    79297936    mov ax, word [bp+012h]                    ; 8b 46 12
    79307937    shr ax, 008h                              ; c1 e8 08
    79317938    cmp ax, 000a2h                            ; 3d a2 00
    7932     jnbe near 05a77h                          ; 0f 87 ff 01
     7939    jnbe near 05a83h                          ; 0f 87 ff 01
    79337940    push CS                                   ; 0e
    79347941    pop ES                                    ; 07
    79357942    mov cx, strict word 0000ch                ; b9 0c 00
    7936     mov di, 057b6h                            ; bf b6 57
     7943    mov di, 057c2h                            ; bf c2 57
    79377944    repne scasb                               ; f2 ae
    79387945    sal cx, 1                                 ; d1 e1
    79397946    mov di, cx                                ; 89 cf
    7940     mov ax, word [cs:di+057c1h]               ; 2e 8b 85 c1 57
     7947    mov ax, word [cs:di+057cdh]               ; 2e 8b 85 cd 57
    79417948    jmp ax                                    ; ff e0
    79427949    push strict byte 00001h                   ; 6a 01
     
    79457952    mov dx, ss                                ; 8c d2
    79467953    lea ax, [bp-006h]                         ; 8d 46 fa
    7947     call 05745h                               ; e8 a9 fe
     7954    call 05751h                               ; e8 a9 fe
    79487955    test ax, ax                               ; 85 c0
    7949     jne short 058abh                          ; 75 0b
     7956    jne short 058b7h                          ; 75 0b
    79507957    push 00621h                               ; 68 21 06
    79517958    push strict byte 00007h                   ; 6a 07
    7952     call 01a6bh                               ; e8 c3 c1
     7959    call 01a6bh                               ; e8 b7 c1
    79537960    add sp, strict byte 00004h                ; 83 c4 04
    79547961    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7955     je short 058b7h                           ; 74 06
     7962    je short 058c3h                           ; 74 06
    79567963    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7957     je short 058bdh                           ; 74 06
     7964    je short 058c9h                           ; 74 06
    79587965    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7959     jne short 058c1h                          ; 75 04
     7966    jne short 058cdh                          ; 75 04
    79607967    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    79617968    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    79647971    or dx, ax                                 ; 09 c2
    79657972    mov word [bp+012h], dx                    ; 89 56 12
    7966     jmp near 05abah                           ; e9 e6 01
     7973    jmp near 05ac6h                           ; e9 e6 01
    79677974    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    79687975    push strict byte 00000h                   ; 6a 00
     
    79717978    mov dx, ss                                ; 8c d2
    79727979    lea ax, [bp-006h]                         ; 8d 46 fa
    7973     call 05745h                               ; e8 5d fe
     7980    call 05751h                               ; e8 5d fe
    79747981    test ax, ax                               ; 85 c0
    7975     jne short 058f3h                          ; 75 07
     7982    jne short 058ffh                          ; 75 07
    79767983    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
    7977     jmp near 05abah                           ; e9 c7 01
     7984    jmp near 05ac6h                           ; e9 c7 01
    79787985    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    7979     je short 058ffh                           ; 74 06
     7986    je short 0590bh                           ; 74 06
    79807987    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    7981     je short 05905h                           ; 74 06
     7988    je short 05911h                           ; 74 06
    79827989    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
    7983     jne short 05909h                          ; 75 04
     7990    jne short 05915h                          ; 75 04
    79847991    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    79857992    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
     
    79897996    mov word [bp+012h], dx                    ; 89 56 12
    79907997    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
    7991     jmp near 05abah                           ; e9 9a 01
     7998    jmp near 05ac6h                           ; e9 9a 01
    79927999    mov dx, strict word 00017h                ; ba 17 00
    79938000    mov ax, strict word 00040h                ; b8 40 00
    7994     call 01749h                               ; e8 20 be
     8001    call 01749h                               ; e8 14 be
    79958002    mov dx, word [bp+012h]                    ; 8b 56 12
    79968003    mov dl, al                                ; 88 c2
    7997     jmp short 058ceh                          ; eb 9e
     8004    jmp short 058dah                          ; eb 9e
    79988005    mov al, byte [bp+010h]                    ; 8a 46 10
    79998006    movzx dx, al                              ; 0f b6 d0
     
    80018008    shr ax, 008h                              ; c1 e8 08
    80028009    xor ah, ah                                ; 30 e4
    8003     call 05238h                               ; e8 f7 f8
     8010    call 05244h                               ; e8 f7 f8
    80048011    test ax, ax                               ; 85 c0
    8005     jne short 05952h                          ; 75 0d
     8012    jne short 0595eh                          ; 75 0d
    80068013    mov ax, word [bp+012h]                    ; 8b 46 12
    80078014    xor al, al                                ; 30 c0
    80088015    or AL, strict byte 001h                   ; 0c 01
    80098016    mov word [bp+012h], ax                    ; 89 46 12
    8010     jmp near 05abah                           ; e9 68 01
     8017    jmp near 05ac6h                           ; e9 68 01
    80118018    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
    8012     jmp near 05abah                           ; e9 60 01
     8019    jmp near 05ac6h                           ; e9 60 01
    80138020    mov ax, word [bp+012h]                    ; 8b 46 12
    80148021    xor al, al                                ; 30 c0
    80158022    or AL, strict byte 030h                   ; 0c 30
    8016     jmp short 0594ch                          ; eb e9
     8023    jmp short 05958h                          ; eb e9
    80178024    mov byte [bp-004h], 002h                  ; c6 46 fc 02
    80188025    xor cx, cx                                ; 31 c9
     
    80278034    ; sub ah, ah                                ; 2a e4
    80288035    test AL, strict byte 001h                 ; a8 01
    8029     jne short 0598ah                          ; 75 0d
     8036    jne short 05996h                          ; 75 0d
    80308037    dec bx                                    ; 4b
    80318038    test bx, bx                               ; 85 db
    8032     jbe short 0598ah                          ; 76 08
     8039    jbe short 05996h                          ; 76 08
    80338040    mov dx, 00080h                            ; ba 80 00
    80348041    in AL, DX                                 ; ec
    80358042    db  02ah, 0e4h
    80368043    ; sub ah, ah                                ; 2a e4
    8037     jmp short 05973h                          ; eb e9
     8044    jmp short 0597fh                          ; eb e9
    80388045    test bx, bx                               ; 85 db
    8039     jbe short 059ceh                          ; 76 40
     8046    jbe short 059dah                          ; 76 40
    80408047    mov dx, strict word 00060h                ; ba 60 00
    80418048    in AL, DX                                 ; ec
     
    80438050    ; sub ah, ah                                ; 2a e4
    80448051    cmp ax, 000fah                            ; 3d fa 00
    8045     jne short 059ceh                          ; 75 35
     8052    jne short 059dah                          ; 75 35
    80468053    mov bx, strict word 0ffffh                ; bb ff ff
    80478054    mov dx, strict word 00064h                ; ba 64 00
     
    80508057    ; sub ah, ah                                ; 2a e4
    80518058    test AL, strict byte 001h                 ; a8 01
    8052     jne short 059b3h                          ; 75 0d
     8059    jne short 059bfh                          ; 75 0d
    80538060    dec bx                                    ; 4b
    80548061    test bx, bx                               ; 85 db
    8055     jbe short 059b3h                          ; 76 08
     8062    jbe short 059bfh                          ; 76 08
    80568063    mov dx, 00080h                            ; ba 80 00
    80578064    in AL, DX                                 ; ec
    80588065    db  02ah, 0e4h
    80598066    ; sub ah, ah                                ; 2a e4
    8060     jmp short 0599ch                          ; eb e9
     8067    jmp short 059a8h                          ; eb e9
    80618068    test bx, bx                               ; 85 db
    8062     jbe short 059c5h                          ; 76 0e
     8069    jbe short 059d1h                          ; 76 0e
    80638070    shr cx, 008h                              ; c1 e9 08
    80648071    mov dx, strict word 00060h                ; ba 60 00
     
    80708077    dec byte [bp-004h]                        ; fe 4e fc
    80718078    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    8072     jnbe short 05999h                         ; 77 cb
     8079    jnbe short 059a5h                         ; 77 cb
    80738080    mov word [bp+00ch], cx                    ; 89 4e 0c
    8074     jmp near 05abah                           ; e9 e6 00
     8081    jmp near 05ac6h                           ; e9 e6 00
    80758082    push strict byte 00001h                   ; 6a 01
    80768083    mov cx, ss                                ; 8c d1
     
    80788085    mov dx, ss                                ; 8c d2
    80798086    lea ax, [bp-006h]                         ; 8d 46 fa
    8080     call 05745h                               ; e8 62 fd
     8087    call 05751h                               ; e8 62 fd
    80818088    test ax, ax                               ; 85 c0
    8082     jne short 059f2h                          ; 75 0b
     8089    jne short 059feh                          ; 75 0b
    80838090    push 00621h                               ; 68 21 06
    80848091    push strict byte 00007h                   ; 6a 07
    8085     call 01a6bh                               ; e8 7c c0
     8092    call 01a6bh                               ; e8 70 c0
    80868093    add sp, strict byte 00004h                ; 83 c4 04
    80878094    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8088     je near 058c1h                            ; 0f 84 c7 fe
     8095    je near 058cdh                            ; 0f 84 c7 fe
    80898096    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8090     je near 058bdh                            ; 0f 84 bb fe
    8091     jmp near 058c1h                           ; e9 bc fe
     8097    je near 058c9h                            ; 0f 84 bb fe
     8098    jmp near 058cdh                           ; e9 bc fe
    80928099    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
    80938100    push strict byte 00000h                   ; 6a 00
     
    80968103    mov dx, ss                                ; 8c d2
    80978104    lea ax, [bp-006h]                         ; 8d 46 fa
    8098     call 05745h                               ; e8 2c fd
     8105    call 05751h                               ; e8 2c fd
    80998106    test ax, ax                               ; 85 c0
    8100     je near 058ech                            ; 0f 84 cd fe
     8107    je near 058f8h                            ; 0f 84 cd fe
    81018108    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
    8102     je near 05909h                            ; 0f 84 e2 fe
     8109    je near 05915h                            ; 0f 84 e2 fe
    81038110    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
    8104     je near 05905h                            ; 0f 84 d6 fe
    8105     jmp near 05909h                           ; e9 d7 fe
     8111    je near 05911h                            ; 0f 84 d6 fe
     8112    jmp near 05915h                           ; e9 d7 fe
    81068113    mov dx, strict word 00017h                ; ba 17 00
    81078114    mov ax, strict word 00040h                ; b8 40 00
    8108     call 01749h                               ; e8 0e bd
     8115    call 01749h                               ; e8 02 bd
    81098116    mov dx, word [bp+012h]                    ; 8b 56 12
    81108117    mov dl, al                                ; 88 c2
     
    81128119    mov dx, strict word 00018h                ; ba 18 00
    81138120    mov ax, strict word 00040h                ; b8 40 00
    8114     call 01749h                               ; e8 fd bc
     8121    call 01749h                               ; e8 f1 bc
    81158122    mov bh, al                                ; 88 c7
    81168123    and bh, 073h                              ; 80 e7 73
    81178124    mov dx, 00096h                            ; ba 96 00
    81188125    mov ax, strict word 00040h                ; b8 40 00
    8119     call 01749h                               ; e8 ef bc
     8126    call 01749h                               ; e8 e3 bc
    81208127    and AL, strict byte 00ch                  ; 24 0c
    81218128    or bh, al                                 ; 08 c7
     
    81248131    movzx ax, bh                              ; 0f b6 c7
    81258132    sal ax, 008h                              ; c1 e0 08
    8126     jmp near 058cch                           ; e9 60 fe
     8133    jmp near 058d8h                           ; e9 60 fe
    81278134    mov ax, word [bp+012h]                    ; 8b 46 12
    81288135    xor ah, ah                                ; 30 e4
    81298136    or ah, 080h                               ; 80 cc 80
    8130     jmp near 0594ch                           ; e9 d5 fe
     8137    jmp near 05958h                           ; e9 d5 fe
    81318138    mov bx, 00db2h                            ; bb b2 0d
    81328139    mov cx, ds                                ; 8c d9
    81338140    mov ax, strict word 00004h                ; b8 04 00
    8134     call 01a2ah                               ; e8 a8 bf
     8141    call 01a2ah                               ; e8 9c bf
    81358142    mov ax, word [bp+012h]                    ; 8b 46 12
    81368143    shr ax, 008h                              ; c1 e8 08
     
    81388145    push 00645h                               ; 68 45 06
    81398146    push strict byte 00004h                   ; 6a 04
    8140     call 01a6bh                               ; e8 da bf
     8147    call 01a6bh                               ; e8 ce bf
    81418148    add sp, strict byte 00006h                ; 83 c4 06
    81428149    mov bx, 00db2h                            ; bb b2 0d
    81438150    mov cx, ds                                ; 8c d9
    81448151    mov ax, strict word 00004h                ; b8 04 00
    8145     call 01a2ah                               ; e8 8b bf
     8152    call 01a2ah                               ; e8 7f bf
    81468153    mov ax, word [bp+00eh]                    ; 8b 46 0e
    81478154    push ax                                   ; 50
     
    81548161    push 0066dh                               ; 68 6d 06
    81558162    push strict byte 00004h                   ; 6a 04
    8156     call 01a6bh                               ; e8 b4 bf
     8163    call 01a6bh                               ; e8 a8 bf
    81578164    add sp, strict byte 0000ch                ; 83 c4 0c
    81588165    lea sp, [bp-002h]                         ; 8d 66 fe
     
    81608167    pop bp                                    ; 5d
    81618168    retn                                      ; c3
    8162 set_geom_lba_:                               ; 0xf5ac0 LB 0xe5
     8169set_geom_lba_:                               ; 0xf5acc LB 0xe5
    81638170    push bx                                   ; 53
    81648171    push cx                                   ; 51
     
    81758182    mov dx, word [bp+00ch]                    ; 8b 56 0c
    81768183    mov si, strict word 00020h                ; be 20 00
    8177     call 0a060h                               ; e8 75 45
     8184    call 0a070h                               ; e8 79 45
    81788185    test ax, ax                               ; 85 c0
    8179     jne short 05afbh                          ; 75 0c
     8186    jne short 05b07h                          ; 75 0c
    81808187    test bx, bx                               ; 85 db
    8181     jne short 05afbh                          ; 75 08
     8188    jne short 05b07h                          ; 75 08
    81828189    test cx, cx                               ; 85 c9
    8183     jne short 05afbh                          ; 75 04
     8190    jne short 05b07h                          ; 75 04
    81848191    test dx, dx                               ; 85 d2
    8185     je short 05b02h                           ; 74 07
     8192    je short 05b0eh                           ; 74 07
    81868193    mov bx, strict word 0ffffh                ; bb ff ff
    81878194    mov si, bx                                ; 89 de
    8188     jmp short 05b08h                          ; eb 06
     8195    jmp short 05b14h                          ; eb 06
    81898196    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    81908197    mov si, word [bp+00eh]                    ; 8b 76 0e
    81918198    mov word [bp-004h], bx                    ; 89 5e fc
    81928199    xor bx, bx                                ; 31 db
    8193     jmp short 05b14h                          ; eb 05
     8200    jmp short 05b20h                          ; eb 05
    81948201    cmp bx, strict byte 00004h                ; 83 fb 04
    8195     jnl short 05b37h                          ; 7d 23
     8202    jnl short 05b43h                          ; 7d 23
    81968203    mov ax, word [bp-006h]                    ; 8b 46 fa
    81978204    cmp si, ax                                ; 39 c6
    8198     jc short 05b25h                           ; 72 0a
    8199     jne short 05b2eh                          ; 75 11
     8205    jc short 05b31h                           ; 72 0a
     8206    jne short 05b3ah                          ; 75 11
    82008207    mov ax, word [bp-004h]                    ; 8b 46 fc
    82018208    cmp ax, word [bp-008h]                    ; 3b 46 f8
    8202     jnbe short 05b2eh                         ; 77 09
     8209    jnbe short 05b3ah                         ; 77 09
    82038210    mov ax, word [bp-002h]                    ; 8b 46 fe
    82048211    inc ax                                    ; 40
     
    82088215    rcr word [bp-008h], 1                     ; d1 5e f8
    82098216    inc bx                                    ; 43
    8210     jmp short 05b0fh                          ; eb d8
     8217    jmp short 05b1bh                          ; eb d8
    82118218    mov ax, word [bp-002h]                    ; 8b 46 fe
    82128219    xor dx, dx                                ; 31 d2
    82138220    mov bx, strict word 0003fh                ; bb 3f 00
    82148221    xor cx, cx                                ; 31 c9
    8215     call 09fe0h                               ; e8 9c 44
     8222    call 09ff0h                               ; e8 a0 44
    82168223    mov bx, ax                                ; 89 c3
    82178224    mov cx, dx                                ; 89 d1
    82188225    mov ax, word [bp-004h]                    ; 8b 46 fc
    82198226    mov dx, si                                ; 89 f2
    8220     call 0a020h                               ; e8 d0 44
     8227    call 0a030h                               ; e8 d4 44
    82218228    mov word [es:di+002h], ax                 ; 26 89 45 02
    82228229    cmp ax, 00400h                            ; 3d 00 04
    8223     jbe short 05b5fh                          ; 76 06
     8230    jbe short 05b6bh                          ; 76 06
    82248231    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
    82258232    mov ax, word [bp-002h]                    ; 8b 46 fe
     
    82328239    pop bx                                    ; 5b
    82338240    retn 00008h                               ; c2 08 00
    8234     das                                       ; 2f
     8241    aas                                       ; 3f
    82358242    pop sp                                    ; 5c
    8236     push bp                                   ; 55
     8243    db  065h, 05ch
     8244    ; gs pop sp                                 ; 65 5c
     8245    xchg dx, ax                               ; 92
    82378246    pop sp                                    ; 5c
    8238     db  082h, 05ch, 082h, 05ch
    8239     ; sbb byte [si-07eh], 05ch                  ; 82 5c 82 5c
    8240     db  082h, 05ch, 063h, 05eh
    8241     ; sbb byte [si+063h], 05eh                  ; 82 5c 63 5e
    8242     xchg cx, ax                               ; 91
     8247    xchg dx, ax                               ; 92
     8248    pop sp                                    ; 5c
     8249    xchg dx, ax                               ; 92
     8250    pop sp                                    ; 5c
     8251    jnc short 05be9h                          ; 73 5e
     8252    mov ax, word [0a15fh]                     ; a1 5f a1
    82438253    pop di                                    ; 5f
    8244     xchg cx, ax                               ; 91
     8254    mov [bp+07eh], ds                         ; 8c 5e 7e
    82458255    pop di                                    ; 5f
    8246     jl short 05be3h                           ; 7c 5e
    8247     outsb                                     ; 6e
     8256    mov ax, word [0a15fh]                     ; a1 5f a1
    82488257    pop di                                    ; 5f
    8249     xchg cx, ax                               ; 91
     8258    jle short 05bf8h                          ; 7e 5f
     8259    jle short 05bfah                          ; 7e 5f
     8260    mov ax, word [0a15fh]                     ; a1 5f a1
    82508261    pop di                                    ; 5f
    8251     xchg cx, ax                               ; 91
     8262    add bl, byte [bx+07eh]                    ; 02 5f 7e
    82528263    pop di                                    ; 5f
    8253     outsb                                     ; 6e
     8264    mov ax, word [0a15fh]                     ; a1 5f a1
    82548265    pop di                                    ; 5f
    8255     outsb                                     ; 6e
     8266    jle short 05c08h                          ; 7e 5f
     8267    xor bl, byte [bx-05fh]                    ; 32 5f a1
    82568268    pop di                                    ; 5f
    8257     xchg cx, ax                               ; 91
     8269    mov ax, word [0a15fh]                     ; a1 5f a1
    82588270    pop di                                    ; 5f
    8259     xchg cx, ax                               ; 91
    8260     pop di                                    ; 5f
    8261     db  0f2h, 05eh
    8262     ; repne pop si                              ; f2 5e
    8263     outsb                                     ; 6e
    8264     pop di                                    ; 5f
    8265     xchg cx, ax                               ; 91
    8266     pop di                                    ; 5f
    8267     xchg cx, ax                               ; 91
    8268     pop di                                    ; 5f
    8269     outsb                                     ; 6e
    8270     pop di                                    ; 5f
    8271     and bl, byte [bx-06fh]                    ; 22 5f 91
    8272     pop di                                    ; 5f
    8273     xchg cx, ax                               ; 91
    8274     pop di                                    ; 5f
    8275     xchg cx, ax                               ; 91
    8276     pop di                                    ; 5f
    8277 _int13_harddisk:                             ; 0xf5ba5 LB 0x44a
     8271_int13_harddisk:                             ; 0xf5bb1 LB 0x44e
    82788272    push bp                                   ; 55
    82798273    mov bp, sp                                ; 89 e5
    82808274    sub sp, strict byte 00010h                ; 83 ec 10
     8275    or byte [bp+01dh], 002h                   ; 80 4e 1d 02
    82818276    mov dx, strict word 0000eh                ; ba 0e 00
    82828277    mov ax, strict word 00040h                ; b8 40 00
    8283     call 01765h                               ; e8 b1 bb
     8278    call 01765h                               ; e8 a1 bb
    82848279    mov si, 00122h                            ; be 22 01
    82858280    mov word [bp-004h], ax                    ; 89 46 fc
     
    82878282    mov dx, 0008eh                            ; ba 8e 00
    82888283    mov ax, strict word 00040h                ; b8 40 00
    8289     call 01757h                               ; e8 92 bb
     8284    call 01757h                               ; e8 82 bb
    82908285    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82918286    xor ah, ah                                ; 30 e4
    82928287    cmp ax, 00080h                            ; 3d 80 00
    8293     jc short 05bd4h                           ; 72 05
     8288    jc short 05be4h                           ; 72 05
    82948289    cmp ax, 00090h                            ; 3d 90 00
    8295     jc short 05bf2h                           ; 72 1e
     8290    jc short 05c02h                           ; 72 1e
    82968291    mov ax, word [bp+00eh]                    ; 8b 46 0e
    82978292    xor ah, ah                                ; 30 e4
     
    83038298    push 0069fh                               ; 68 9f 06
    83048299    push strict byte 00004h                   ; 6a 04
    8305     call 01a6bh                               ; e8 7f be
     8300    call 01a6bh                               ; e8 6f be
    83068301    add sp, strict byte 0000ah                ; 83 c4 0a
    8307     jmp near 05fach                           ; e9 ba 03
     8302    jmp near 05fbch                           ; e9 ba 03
    83088303    mov ax, word [bp+00eh]                    ; 8b 46 0e
    83098304    xor ah, ah                                ; 30 e4
     
    83148309    mov byte [bp-002h], dl                    ; 88 56 fe
    83158310    cmp dl, 010h                              ; 80 fa 10
    8316     jc short 05c1bh                           ; 72 10
     8311    jc short 05c2bh                           ; 72 10
    83178312    push ax                                   ; 50
    83188313    mov ax, word [bp+016h]                    ; 8b 46 16
     
    83218316    push 00690h                               ; 68 90 06
    83228317    push 006cah                               ; 68 ca 06
    8323     jmp short 05be7h                          ; eb cc
     8318    jmp short 05bf7h                          ; eb cc
    83248319    mov bx, word [bp+016h]                    ; 8b 5e 16
    83258320    shr bx, 008h                              ; c1 eb 08
    83268321    cmp bx, strict byte 00018h                ; 83 fb 18
    8327     jnbe near 05f91h                          ; 0f 87 69 03
     8322    jnbe near 05fa1h                          ; 0f 87 69 03
    83288323    add bx, bx                                ; 01 db
    8329     jmp word [cs:bx+05b73h]                   ; 2e ff a7 73 5b
     8324    jmp word [cs:bx+05b7fh]                   ; 2e ff a7 7f 5b
    83308325    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8331     jnc near 05c3eh                           ; 0f 83 07 00
     8326    jnc near 05c4eh                           ; 0f 83 07 00
    83328327    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    8333     call 01e75h                               ; e8 37 c2
     8328    call 01e75h                               ; e8 27 c2
    83348329    mov byte [bp+017h], 000h                  ; c6 46 17 00
    83358330    xor bx, bx                                ; 31 db
    83368331    mov dx, strict word 00074h                ; ba 74 00
    83378332    mov ax, strict word 00040h                ; b8 40 00
    8338     call 01757h                               ; e8 0a bb
     8333    call 01757h                               ; e8 fa ba
    83398334    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    83408335    mov sp, bp                                ; 89 ec
     
    83438338    mov dx, strict word 00074h                ; ba 74 00
    83448339    mov ax, strict word 00040h                ; b8 40 00
    8345     call 01749h                               ; e8 eb ba
     8340    call 01749h                               ; e8 db ba
    83468341    mov cl, al                                ; 88 c1
    83478342    mov dx, word [bp+016h]                    ; 8b 56 16
     
    83548349    mov dx, strict word 00074h                ; ba 74 00
    83558350    mov ax, strict word 00040h                ; b8 40 00
    8356     call 01757h                               ; e8 dc ba
     8351    call 01757h                               ; e8 cc ba
    83578352    test cl, cl                               ; 84 c9
    8358     je short 05c42h                           ; 74 c3
    8359     jmp near 05fc8h                           ; e9 46 03
     8353    je short 05c52h                           ; 74 c3
     8354    jmp near 05fd8h                           ; e9 46 03
    83608355    mov ax, word [bp+016h]                    ; 8b 46 16
    83618356    xor ah, ah                                ; 30 e4
     
    83778372    mov ax, word [bp-00ch]                    ; 8b 46 f4
    83788373    cmp ax, 00080h                            ; 3d 80 00
    8379     jnbe short 05cbdh                         ; 77 04
     8374    jnbe short 05ccdh                         ; 77 04
    83808375    test ax, ax                               ; 85 c0
    8381     jne short 05ce0h                          ; 75 23
     8376    jne short 05cf0h                          ; 75 23
    83828377    mov bx, 00db2h                            ; bb b2 0d
    83838378    mov cx, ds                                ; 8c d9
    83848379    mov ax, strict word 00004h                ; b8 04 00
    8385     call 01a2ah                               ; e8 62 bd
     8380    call 01a2ah                               ; e8 52 bd
    83868381    mov ax, word [bp+016h]                    ; 8b 46 16
    83878382    shr ax, 008h                              ; c1 e8 08
     
    83908385    push 006fch                               ; 68 fc 06
    83918386    push strict byte 00004h                   ; 6a 04
    8392     call 01a6bh                               ; e8 91 bd
     8387    call 01a6bh                               ; e8 81 bd
    83938388    add sp, strict byte 00008h                ; 83 c4 08
    8394     jmp near 05fach                           ; e9 cc 02
     8389    jmp near 05fbch                           ; e9 cc 02
    83958390    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    83968391    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    84038398    mov word [bp-00ah], dx                    ; 89 56 f6
    84048399    cmp di, ax                                ; 39 c7
    8405     jnc short 05d0dh                          ; 73 0c
     8400    jnc short 05d1dh                          ; 73 0c
    84068401    cmp cx, word [bp-008h]                    ; 3b 4e f8
    8407     jbe short 05d0dh                          ; 76 07
     8402    jbe short 05d1dh                          ; 76 07
    84088403    mov ax, word [bp-006h]                    ; 8b 46 fa
    84098404    cmp ax, dx                                ; 39 d0
    8410     jbe short 05d3bh                          ; 76 2e
     8405    jbe short 05d4bh                          ; 76 2e
    84118406    mov bx, 00db2h                            ; bb b2 0d
    84128407    mov cx, ds                                ; 8c d9
    84138408    mov ax, strict word 00004h                ; b8 04 00
    8414     call 01a2ah                               ; e8 12 bd
     8409    call 01a2ah                               ; e8 02 bd
    84158410    push dword [bp-008h]                      ; 66 ff 76 f8
    84168411    push di                                   ; 57
     
    84248419    push 00724h                               ; 68 24 07
    84258420    push strict byte 00004h                   ; 6a 04
    8426     call 01a6bh                               ; e8 36 bd
     8421    call 01a6bh                               ; e8 26 bd
    84278422    add sp, strict byte 00010h                ; 83 c4 10
    8428     jmp near 05fach                           ; e9 71 02
     8423    jmp near 05fbch                           ; e9 71 02
    84298424    mov ax, word [bp+016h]                    ; 8b 46 16
    84308425    shr ax, 008h                              ; c1 e8 08
    84318426    cmp ax, strict word 00004h                ; 3d 04 00
    8432     jne short 05d49h                          ; 75 03
    8433     jmp near 05c3eh                           ; e9 f5 fe
     8427    jne short 05d59h                          ; 75 03
     8428    jmp near 05c4eh                           ; e9 f5 fe
    84348429    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
    84358430    imul bx, bx, strict byte 0001ch           ; 6b db 1c
     
    84378432    add bx, si                                ; 01 f3
    84388433    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
    8439     jne short 05d6ah                          ; 75 0f
     8434    jne short 05d7ah                          ; 75 0f
    84408435    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
    84418436    cmp ax, word [bp-00ah]                    ; 3b 46 f6
    8442     jne short 05d6ah                          ; 75 06
     8437    jne short 05d7ah                          ; 75 06
    84438438    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
    8444     jc short 05d9ah                           ; 72 30
     8439    jc short 05daah                           ; 72 30
    84458440    mov ax, di                                ; 89 f8
    84468441    xor dx, dx                                ; 31 d2
    84478442    mov bx, cx                                ; 89 cb
    84488443    xor cx, cx                                ; 31 c9
    8449     call 09fe0h                               ; e8 6b 42
     8444    call 09ff0h                               ; e8 6b 42
    84508445    xor bx, bx                                ; 31 db
    84518446    add ax, word [bp-008h]                    ; 03 46 f8
     
    84538448    mov bx, word [bp-00ah]                    ; 8b 5e f6
    84548449    xor cx, cx                                ; 31 c9
    8455     call 09fe0h                               ; e8 5c 42
     8450    call 09ff0h                               ; e8 5c 42
    84568451    xor bx, bx                                ; 31 db
    84578452    add ax, word [bp-006h]                    ; 03 46 fa
     
    85088503    mov word [bp+016h], bx                    ; 89 5e 16
    85098504    test dl, dl                               ; 84 d2
    8510     je near 05c3eh                            ; 0f 84 0a fe
     8505    je near 05c4eh                            ; 0f 84 0a fe
    85118506    mov bx, 00db2h                            ; bb b2 0d
    85128507    mov cx, ds                                ; 8c d9
    85138508    mov ax, strict word 00004h                ; b8 04 00
    8514     call 01a2ah                               ; e8 eb bb
     8509    call 01a2ah                               ; e8 db bb
    85158510    movzx ax, dl                              ; 0f b6 c2
    85168511    push ax                                   ; 50
     
    85218516    push 0076bh                               ; 68 6b 07
    85228517    push strict byte 00004h                   ; 6a 04
    8523     call 01a6bh                               ; e8 16 bc
     8518    call 01a6bh                               ; e8 06 bc
    85248519    add sp, strict byte 0000ah                ; 83 c4 0a
    85258520    mov ax, word [bp+016h]                    ; 8b 46 16
    85268521    xor ah, ah                                ; 30 e4
    85278522    or ah, 00ch                               ; 80 cc 0c
    8528     jmp near 05fb4h                           ; e9 51 01
     8523    jmp near 05fc4h                           ; e9 51 01
    85298524    mov bx, 00db2h                            ; bb b2 0d
    85308525    mov cx, ds                                ; 8c d9
    85318526    mov ax, strict word 00004h                ; b8 04 00
    8532     call 01a2ah                               ; e8 bc bb
     8527    call 01a2ah                               ; e8 ac bb
    85338528    push 0078ch                               ; 68 8c 07
    85348529    push strict byte 00004h                   ; 6a 04
    8535     call 01a6bh                               ; e8 f5 bb
     8530    call 01a6bh                               ; e8 e5 bb
    85368531    add sp, strict byte 00004h                ; 83 c4 04
    8537     jmp near 05c3eh                           ; e9 c2 fd
     8532    jmp near 05c4eh                           ; e9 c2 fd
    85388533    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    85398534    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    85788573    or dx, ax                                 ; 09 c2
    85798574    mov word [bp+012h], dx                    ; 89 56 12
    8580     jmp near 05c3eh                           ; e9 4c fd
     8575    jmp near 05c4eh                           ; e9 4c fd
    85818576    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    85828577    cwd                                       ; 99
     
    85948589    and AL, strict byte 0c0h                  ; 24 c0
    85958590    cmp AL, strict byte 040h                  ; 3c 40
    8596     jne short 05f17h                          ; 75 03
    8597     jmp near 05c3eh                           ; e9 27 fd
     8591    jne short 05f27h                          ; 75 03
     8592    jmp near 05c4eh                           ; e9 27 fd
    85988593    mov ax, word [bp+016h]                    ; 8b 46 16
    85998594    xor ah, ah                                ; 30 e4
    86008595    or ah, 0aah                               ; 80 cc aa
    8601     jmp near 05fb4h                           ; e9 92 00
     8596    jmp near 05fc4h                           ; e9 92 00
    86028597    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
    86038598    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    86138608    mov bx, word [bp-008h]                    ; 8b 5e f8
    86148609    xor cx, cx                                ; 31 c9
    8615     call 09fe0h                               ; e8 94 40
     8610    call 09ff0h                               ; e8 94 40
    86168611    mov bx, word [bp-006h]                    ; 8b 5e fa
    86178612    xor cx, cx                                ; 31 c9
    8618     call 09fe0h                               ; e8 8c 40
     8613    call 09ff0h                               ; e8 8c 40
    86198614    mov word [bp-010h], ax                    ; 89 46 f0
    86208615    mov word [bp-00eh], dx                    ; 89 56 f2
     
    86258620    or ah, 003h                               ; 80 cc 03
    86268621    mov word [bp+016h], ax                    ; 89 46 16
    8627     jmp near 05c42h                           ; e9 d4 fc
     8622    jmp near 05c52h                           ; e9 d4 fc
    86288623    mov bx, 00db2h                            ; bb b2 0d
    86298624    mov cx, ds                                ; 8c d9
    86308625    mov ax, strict word 00004h                ; b8 04 00
    8631     call 01a2ah                               ; e8 b1 ba
     8626    call 01a2ah                               ; e8 a1 ba
    86328627    mov ax, word [bp+016h]                    ; 8b 46 16
    86338628    shr ax, 008h                              ; c1 e8 08
     
    86368631    push 007a6h                               ; 68 a6 07
    86378632    push strict byte 00004h                   ; 6a 04
    8638     call 01a6bh                               ; e8 e0 ba
     8633    call 01a6bh                               ; e8 d0 ba
    86398634    add sp, strict byte 00008h                ; 83 c4 08
    8640     jmp near 05c3eh                           ; e9 ad fc
     8635    jmp near 05c4eh                           ; e9 ad fc
    86418636    mov bx, 00db2h                            ; bb b2 0d
    86428637    mov cx, ds                                ; 8c d9
    86438638    mov ax, strict word 00004h                ; b8 04 00
    8644     call 01a2ah                               ; e8 8e ba
     8639    call 01a2ah                               ; e8 7e ba
    86458640    mov ax, word [bp+016h]                    ; 8b 46 16
    86468641    shr ax, 008h                              ; c1 e8 08
     
    86488643    push 00690h                               ; 68 90 06
    86498644    push 007d9h                               ; 68 d9 07
    8650     jmp near 05cd5h                           ; e9 29 fd
     8645    jmp near 05ce5h                           ; e9 29 fd
    86518646    mov ax, word [bp+016h]                    ; 8b 46 16
    86528647    xor ah, ah                                ; 30 e4
     
    86588653    mov dx, strict word 00074h                ; ba 74 00
    86598654    mov ax, strict word 00040h                ; b8 40 00
    8660     call 01757h                               ; e8 8f b7
     8655    call 01757h                               ; e8 7f b7
    86618656    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    8662     jmp near 05c51h                           ; e9 82 fc
    8663     lea sp, [bx+si-05bh]                      ; 8d 60 a5
     8657    jmp near 05c61h                           ; e9 82 fc
     8658    popfw                                     ; 9d
    86648659    pushaw                                    ; 60
    8665     movsw                                     ; a5
    8666     pushaw                                    ; 60
    8667     movsw                                     ; a5
    8668     pushaw                                    ; 60
    8669     jns short 0603dh                          ; 79 64
    8670     cli                                       ; fa
    8671     popaw                                     ; 61
    8672     movsw                                     ; a5
    8673     pushaw                                    ; 60
    8674     add byte [bp+si+079h], ah                 ; 00 62 79
    8675     db  064h, 0c8h, 064h, 0c8h, 064h
    8676     ; fs enter 0c864h, 064h                     ; 64 c8 64 c8 64
    8677     enter 0c864h, 064h                        ; c8 64 c8 64
    8678     nop                                       ; 90
    8679     db  064h, 0c8h, 064h, 0c8h, 064h
    8680     ; fs enter 0c864h, 064h                     ; 64 c8 64 c8 64
    8681 _int13_harddisk_ext:                         ; 0xf5fef LB 0x4f4
     8660    mov CH, strict byte 060h                  ; b5 60
     8661    mov CH, strict byte 060h                  ; b5 60
     8662    mov CH, strict byte 060h                  ; b5 60
     8663    mov word [si+00ah], sp                    ; 89 64 0a
     8664    bound si, [di+01060h]                     ; 62 b5 60 10
     8665    bound cx, [bx+di-0279ch]                  ; 62 89 64 d8
     8666    fsub dword [fs:si-028h]                   ; 64 d8 64 d8
     8667    fsub dword [fs:si-060h]                   ; 64 d8 64 a0
     8668    fsub dword [fs:si-028h]                   ; 64 d8 64 d8
     8669    db  064h
     8670_int13_harddisk_ext:                         ; 0xf5fff LB 0x4f4
    86828671    push bp                                   ; 55
    86838672    mov bp, sp                                ; 89 e5
     
    86858674    mov dx, strict word 0000eh                ; ba 0e 00
    86868675    mov ax, strict word 00040h                ; b8 40 00
    8687     call 01765h                               ; e8 67 b7
     8676    call 01765h                               ; e8 57 b7
    86888677    mov word [bp-014h], ax                    ; 89 46 ec
    86898678    mov dx, strict word 0000eh                ; ba 0e 00
    86908679    mov ax, strict word 00040h                ; b8 40 00
    8691     call 01765h                               ; e8 5b b7
     8680    call 01765h                               ; e8 4b b7
    86928681    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
    86938682    mov word [bp-006h], ax                    ; 89 46 fa
     
    86958684    mov dx, 0008eh                            ; ba 8e 00
    86968685    mov ax, strict word 00040h                ; b8 40 00
    8697     call 01757h                               ; e8 3a b7
     8686    call 01757h                               ; e8 2a b7
    86988687    mov ax, word [bp+00eh]                    ; 8b 46 0e
    86998688    xor ah, ah                                ; 30 e4
    87008689    cmp ax, 00080h                            ; 3d 80 00
    8701     jc short 0602ch                           ; 72 05
     8690    jc short 0603ch                           ; 72 05
    87028691    cmp ax, 00090h                            ; 3d 90 00
    8703     jc short 0604ah                           ; 72 1e
     8692    jc short 0605ah                           ; 72 1e
    87048693    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87058694    xor ah, ah                                ; 30 e4
     
    87118700    push 0069fh                               ; 68 9f 06
    87128701    push strict byte 00004h                   ; 6a 04
    8713     call 01a6bh                               ; e8 27 ba
     8702    call 01a6bh                               ; e8 17 ba
    87148703    add sp, strict byte 0000ah                ; 83 c4 0a
    8715     jmp near 064a6h                           ; e9 5c 04
     8704    jmp near 064b6h                           ; e9 5c 04
    87168705    mov ax, word [bp+00eh]                    ; 8b 46 0e
    87178706    xor ah, ah                                ; 30 e4
     
    87218710    mov byte [bp-004h], dl                    ; 88 56 fc
    87228711    cmp dl, 010h                              ; 80 fa 10
    8723     jc short 06071h                           ; 72 10
     8712    jc short 06081h                           ; 72 10
    87248713    push ax                                   ; 50
    87258714    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87288717    push 00807h                               ; 68 07 08
    87298718    push 006cah                               ; 68 ca 06
    8730     jmp short 0603fh                          ; eb ce
     8719    jmp short 0604fh                          ; eb ce
    87318720    mov bx, word [bp+016h]                    ; 8b 5e 16
    87328721    shr bx, 008h                              ; c1 eb 08
    87338722    sub bx, strict byte 00041h                ; 83 eb 41
    87348723    cmp bx, strict byte 0000fh                ; 83 fb 0f
    8735     jnbe near 064c8h                          ; 0f 87 47 04
     8724    jnbe near 064d8h                          ; 0f 87 47 04
    87368725    add bx, bx                                ; 01 db
    87378726    mov ax, word [bp+016h]                    ; 8b 46 16
    87388727    xor ah, ah                                ; 30 e4
    8739     jmp word [cs:bx+05fcfh]                   ; 2e ff a7 cf 5f
     8728    jmp word [cs:bx+05fdfh]                   ; 2e ff a7 df 5f
    87408729    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
    87418730    mov ax, word [bp+016h]                    ; 8b 46 16
     
    87448733    mov word [bp+016h], ax                    ; 89 46 16
    87458734    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
    8746     jmp near 0647dh                           ; e9 d8 03
     8735    jmp near 0648dh                           ; e9 d8 03
    87478736    mov di, word [bp+00ah]                    ; 8b 7e 0a
    87488737    mov es, [bp+004h]                         ; 8e 46 04
     
    87608749    xor bx, bx                                ; 31 db
    87618750    mov si, strict word 00020h                ; be 20 00
    8762     call 0a070h                               ; e8 98 3f
     8751    call 0a080h                               ; e8 98 3f
    87638752    mov word [bp-00eh], bx                    ; 89 5e f2
    87648753    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
     
    87728761    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
    87738762    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
    8774     jnbe short 0611fh                         ; 77 22
    8775     jne short 06142h                          ; 75 43
     8763    jnbe short 0612fh                         ; 77 22
     8764    jne short 06152h                          ; 75 43
    87768765    mov si, word [bp-00eh]                    ; 8b 76 f2
    87778766    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8778     jnbe short 0611fh                         ; 77 17
     8767    jnbe short 0612fh                         ; 77 17
    87798768    mov si, word [bp-00eh]                    ; 8b 76 f2
    87808769    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
    8781     jne short 06142h                          ; 75 31
     8770    jne short 06152h                          ; 75 31
    87828771    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
    8783     jnbe short 0611fh                         ; 77 08
    8784     jne short 06142h                          ; 75 29
     8772    jnbe short 0612fh                         ; 77 08
     8773    jne short 06152h                          ; 75 29
    87858774    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
    8786     jc short 06142h                           ; 72 23
     8775    jc short 06152h                           ; 72 23
    87878776    mov bx, 00db2h                            ; bb b2 0d
    87888777    mov cx, ds                                ; 8c d9
    87898778    mov ax, strict word 00004h                ; b8 04 00
    8790     call 01a2ah                               ; e8 00 b9
     8779    call 01a2ah                               ; e8 f0 b8
    87918780    mov ax, word [bp+016h]                    ; 8b 46 16
    87928781    shr ax, 008h                              ; c1 e8 08
     
    87958784    push 0081ah                               ; 68 1a 08
    87968785    push strict byte 00004h                   ; 6a 04
    8797     call 01a6bh                               ; e8 2f b9
     8786    call 01a6bh                               ; e8 1f b9
    87988787    add sp, strict byte 00008h                ; 83 c4 08
    8799     jmp near 064a6h                           ; e9 64 03
     8788    jmp near 064b6h                           ; e9 64 03
    88008789    mov di, word [bp+016h]                    ; 8b 7e 16
    88018790    shr di, 008h                              ; c1 ef 08
    88028791    cmp di, strict byte 00044h                ; 83 ff 44
    8803     je near 06479h                            ; 0f 84 2a 03
     8792    je near 06489h                            ; 0f 84 2a 03
    88048793    cmp di, strict byte 00047h                ; 83 ff 47
    8805     je near 06479h                            ; 0f 84 23 03
     8794    je near 06489h                            ; 0f 84 23 03
    88068795    les si, [bp-008h]                         ; c4 76 f8
    88078796    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
     
    88408829    mov word [es:bx+002h], ax                 ; 26 89 47 02
    88418830    test dl, dl                               ; 84 d2
    8842     je near 06479h                            ; 0f 84 a8 02
     8831    je near 06489h                            ; 0f 84 a8 02
    88438832    mov bx, 00db2h                            ; bb b2 0d
    88448833    mov cx, ds                                ; 8c d9
    88458834    mov ax, strict word 00004h                ; b8 04 00
    8846     call 01a2ah                               ; e8 4e b8
     8835    call 01a2ah                               ; e8 3e b8
    88478836    movzx ax, dl                              ; 0f b6 c2
    88488837    push ax                                   ; 50
     
    88518840    push 0076bh                               ; 68 6b 07
    88528841    push strict byte 00004h                   ; 6a 04
    8853     call 01a6bh                               ; e8 7f b8
     8842    call 01a6bh                               ; e8 6f b8
    88548843    add sp, strict byte 0000ah                ; 83 c4 0a
    88558844    mov ax, word [bp+016h]                    ; 8b 46 16
    88568845    xor ah, ah                                ; 30 e4
    88578846    or ah, 00ch                               ; 80 cc 0c
    8858     jmp near 064aeh                           ; e9 b4 02
     8847    jmp near 064beh                           ; e9 b4 02
    88598848    or ah, 0b2h                               ; 80 cc b2
    8860     jmp near 064aeh                           ; e9 ae 02
     8849    jmp near 064beh                           ; e9 ae 02
    88618850    mov bx, word [bp+00ah]                    ; 8b 5e 0a
    88628851    mov ax, word [bp+004h]                    ; 8b 46 04
     
    88688857    mov word [bp-010h], ax                    ; 89 46 f0
    88698858    cmp ax, strict word 0001ah                ; 3d 1a 00
    8870     jc near 064a6h                            ; 0f 82 89 02
    8871     jc near 062bch                            ; 0f 82 9b 00
     8859    jc near 064b6h                            ; 0f 82 89 02
     8860    jc near 062cch                            ; 0f 82 9b 00
    88728861    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    88738862    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
     
    89118900    mov bx, word [bp-00eh]                    ; 8b 5e f2
    89128901    mov si, strict word 00020h                ; be 20 00
    8913     call 0a060h                               ; e8 ae 3d
     8902    call 0a070h                               ; e8 ae 3d
    89148903    mov bx, di                                ; 89 fb
    89158904    mov word [es:bx+014h], dx                 ; 26 89 57 14
    89168905    mov word [es:bx+016h], cx                 ; 26 89 4f 16
    89178906    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
    8918     jc near 063c1h                            ; 0f 82 fd 00
     8907    jc near 063d1h                            ; 0f 82 fd 00
    89198908    mov es, [bp-00ah]                         ; 8e 46 f6
    89208909    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
     
    89428931    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
    89438932    test al, al                               ; 84 c0
    8944     jne short 0631bh                          ; 75 04
     8933    jne short 0632bh                          ; 75 04
    89458934    xor bx, bx                                ; 31 db
    8946     jmp short 0631eh                          ; eb 03
     8935    jmp short 0632eh                          ; eb 03
    89478936    mov bx, strict word 00008h                ; bb 08 00
    89488937    or bl, 010h                               ; 80 cb 10
     
    89588947    or bx, cx                                 ; 09 cb
    89598948    cmp AL, strict byte 003h                  ; 3c 03
    8960     jne short 0633fh                          ; 75 05
     8949    jne short 0634fh                          ; 75 05
    89618950    mov ax, strict word 00003h                ; b8 03 00
    8962     jmp short 06341h                          ; eb 02
     8951    jmp short 06351h                          ; eb 02
    89638952    xor ax, ax                                ; 31 c0
    89648953    or bx, ax                                 ; 09 c3
     
    89868975    xor bl, bl                                ; 30 db
    89878976    xor bh, bh                                ; 30 ff
    8988     jmp short 063a4h                          ; eb 05
     8977    jmp short 063b4h                          ; eb 05
    89898978    cmp bh, 00fh                              ; 80 ff 0f
    8990     jnc short 063b7h                          ; 73 13
     8979    jnc short 063c7h                          ; 73 13
    89918980    movzx dx, bh                              ; 0f b6 d7
    89928981    add dx, 00356h                            ; 81 c2 56 03
    89938982    mov ax, word [bp-014h]                    ; 8b 46 ec
    8994     call 01749h                               ; e8 98 b3
     8983    call 01749h                               ; e8 88 b3
    89958984    add bl, al                                ; 00 c3
    89968985    db  0feh, 0c7h
    89978986    ; inc bh                                    ; fe c7
    8998     jmp short 0639fh                          ; eb e8
     8987    jmp short 063afh                          ; eb e8
    89998988    neg bl                                    ; f6 db
    90008989    les si, [bp-008h]                         ; c4 76 f8
    90018990    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
    90028991    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
    9003     jc near 06479h                            ; 0f 82 b0 00
     8992    jc near 06489h                            ; 0f 82 b0 00
    90048993    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    90058994    cwd                                       ; 99
     
    90199008    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
    90209009    test al, al                               ; 84 c0
    9021     jne short 0640ah                          ; 75 09
     9010    jne short 0641ah                          ; 75 09
    90229011    db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
    90239012    ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
     
    90289017    ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
    90299018    test al, al                               ; 84 c0
    9030     jne short 06436h                          ; 75 13
     9019    jne short 06446h                          ; 75 13
    90319020    mov word [es:di+030h], dx                 ; 26 89 55 30
    90329021    db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
     
    90439032    xor bl, bl                                ; 30 db
    90449033    mov BH, strict byte 01eh                  ; b7 1e
    9045     jmp short 0645eh                          ; eb 05
     9034    jmp short 0646eh                          ; eb 05
    90469035    cmp bh, 040h                              ; 80 ff 40
    9047     jnc short 06470h                          ; 73 12
     9036    jnc short 06480h                          ; 73 12
    90489037    movzx dx, bh                              ; 0f b6 d7
    90499038    add dx, word [bp+00ah]                    ; 03 56 0a
    90509039    mov ax, word [bp+004h]                    ; 8b 46 04
    9051     call 01749h                               ; e8 df b2
     9040    call 01749h                               ; e8 cf b2
    90529041    add bl, al                                ; 00 c3
    90539042    db  0feh, 0c7h
    90549043    ; inc bh                                    ; fe c7
    9055     jmp short 06459h                          ; eb e9
     9044    jmp short 06469h                          ; eb e9
    90569045    neg bl                                    ; f6 db
    90579046    mov es, [bp-00ah]                         ; 8e 46 f6
     
    90619050    mov dx, strict word 00074h                ; ba 74 00
    90629051    mov ax, strict word 00040h                ; b8 40 00
    9063     call 01757h                               ; e8 cf b2
     9052    call 01757h                               ; e8 bf b2
    90649053    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    90659054    mov sp, bp                                ; 89 ec
     
    90679056    retn                                      ; c3
    90689057    cmp ax, strict word 00006h                ; 3d 06 00
    9069     je short 06479h                           ; 74 e4
     9058    je short 06489h                           ; 74 e4
    90709059    cmp ax, strict word 00001h                ; 3d 01 00
    9071     jc short 064a6h                           ; 72 0c
    9072     jbe short 06479h                          ; 76 dd
     9060    jc short 064b6h                           ; 72 0c
     9061    jbe short 06489h                          ; 76 dd
    90739062    cmp ax, strict word 00003h                ; 3d 03 00
    9074     jc short 064a6h                           ; 72 05
     9063    jc short 064b6h                           ; 72 05
    90759064    cmp ax, strict word 00004h                ; 3d 04 00
    9076     jbe short 06479h                          ; 76 d3
     9065    jbe short 06489h                          ; 76 d3
    90779066    mov ax, word [bp+016h]                    ; 8b 46 16
    90789067    xor ah, ah                                ; 30 e4
     
    90849073    mov dx, strict word 00074h                ; ba 74 00
    90859074    mov ax, strict word 00040h                ; b8 40 00
    9086     call 01757h                               ; e8 95 b2
     9075    call 01757h                               ; e8 85 b2
    90879076    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9088     jmp short 0648ch                          ; eb c4
     9077    jmp short 0649ch                          ; eb c4
    90899078    mov bx, 00db2h                            ; bb b2 0d
    90909079    mov cx, ds                                ; 8c d9
    90919080    mov ax, strict word 00004h                ; b8 04 00
    9092     call 01a2ah                               ; e8 57 b5
     9081    call 01a2ah                               ; e8 47 b5
    90939082    mov ax, word [bp+016h]                    ; 8b 46 16
    90949083    shr ax, 008h                              ; c1 e8 08
     
    90969085    push 00807h                               ; 68 07 08
    90979086    push 007d9h                               ; 68 d9 07
    9098     jmp near 06137h                           ; e9 54 fc
    9099 _int14_function:                             ; 0xf64e3 LB 0x15a
     9087    jmp near 06147h                           ; e9 54 fc
     9088_int14_function:                             ; 0xf64f3 LB 0x15a
    91009089    push bp                                   ; 55
    91019090    mov bp, sp                                ; 89 e5
     
    91059094    add dx, dx                                ; 01 d2
    91069095    mov ax, strict word 00040h                ; b8 40 00
    9107     call 01765h                               ; e8 72 b2
     9096    call 01765h                               ; e8 62 b2
    91089097    mov si, ax                                ; 89 c6
    91099098    mov bx, ax                                ; 89 c3
     
    91119100    add dx, strict byte 0007ch                ; 83 c2 7c
    91129101    mov ax, strict word 00040h                ; b8 40 00
    9113     call 01749h                               ; e8 46 b2
     9102    call 01749h                               ; e8 36 b2
    91149103    mov cl, al                                ; 88 c1
    91159104    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
    9116     jnc near 06633h                           ; 0f 83 26 01
     9105    jnc near 06643h                           ; 0f 83 26 01
    91179106    test si, si                               ; 85 f6
    9118     jbe near 06633h                           ; 0f 86 20 01
     9107    jbe near 06643h                           ; 0f 86 20 01
    91199108    mov al, byte [bp+013h]                    ; 8a 46 13
    91209109    cmp AL, strict byte 001h                  ; 3c 01
    9121     jc short 0652bh                           ; 72 11
    9122     jbe short 06584h                          ; 76 68
     9110    jc short 0653bh                           ; 72 11
     9111    jbe short 06594h                          ; 76 68
    91239112    cmp AL, strict byte 003h                  ; 3c 03
    9124     je near 0661ch                            ; 0f 84 fa 00
     9113    je near 0662ch                            ; 0f 84 fa 00
    91259114    cmp AL, strict byte 002h                  ; 3c 02
    9126     je near 065d2h                            ; 0f 84 aa 00
    9127     jmp near 0662dh                           ; e9 02 01
     9115    je near 065e2h                            ; 0f 84 aa 00
     9116    jmp near 0663dh                           ; e9 02 01
    91289117    test al, al                               ; 84 c0
    9129     jne near 0662dh                           ; 0f 85 fc 00
     9118    jne near 0663dh                           ; 0f 85 fc 00
    91309119    lea dx, [bx+003h]                         ; 8d 57 03
    91319120    in AL, DX                                 ; ec
     
    91379126    mov al, byte [bp+012h]                    ; 8a 46 12
    91389127    test AL, strict byte 0e0h                 ; a8 e0
    9139     jne short 06550h                          ; 75 0c
     9128    jne short 06560h                          ; 75 0c
    91409129    mov AL, strict byte 017h                  ; b0 17
    91419130    mov dx, bx                                ; 89 da
     
    91449133    mov dx, si                                ; 89 f2
    91459134    out DX, AL                                ; ee
    9146     jmp short 06566h                          ; eb 16
     9135    jmp short 06576h                          ; eb 16
    91479136    and AL, strict byte 0e0h                  ; 24 e0
    91489137    movzx cx, al                              ; 0f b6 c8
     
    91699158    ; sub ah, ah                                ; 2a e4
    91709159    mov byte [bp+012h], al                    ; 88 46 12
    9171     jmp near 0660eh                           ; e9 8a 00
     9160    jmp near 0661eh                           ; e9 8a 00
    91729161    mov dx, strict word 0006ch                ; ba 6c 00
    91739162    mov ax, strict word 00040h                ; b8 40 00
    9174     call 01765h                               ; e8 d8 b1
     9163    call 01765h                               ; e8 c8 b1
    91759164    mov si, ax                                ; 89 c6
    91769165    lea dx, [bx+005h]                         ; 8d 57 05
     
    91809169    and ax, strict word 00060h                ; 25 60 00
    91819170    cmp ax, strict word 00060h                ; 3d 60 00
    9182     je short 065b4h                           ; 74 17
     9171    je short 065c4h                           ; 74 17
    91839172    test cl, cl                               ; 84 c9
    9184     je short 065b4h                           ; 74 13
     9173    je short 065c4h                           ; 74 13
    91859174    mov dx, strict word 0006ch                ; ba 6c 00
    91869175    mov ax, strict word 00040h                ; b8 40 00
    9187     call 01765h                               ; e8 bb b1
     9176    call 01765h                               ; e8 ab b1
    91889177    cmp ax, si                                ; 39 f0
    9189     je short 0658fh                           ; 74 e1
     9178    je short 0659fh                           ; 74 e1
    91909179    mov si, ax                                ; 89 c6
    91919180    db  0feh, 0c9h
    91929181    ; dec cl                                    ; fe c9
    9193     jmp short 0658fh                          ; eb db
     9182    jmp short 0659fh                          ; eb db
    91949183    test cl, cl                               ; 84 c9
    9195     je short 065beh                           ; 74 06
     9184    je short 065ceh                           ; 74 06
    91969185    mov al, byte [bp+012h]                    ; 8a 46 12
    91979186    mov dx, bx                                ; 89 da
     
    92039192    mov byte [bp+013h], al                    ; 88 46 13
    92049193    test cl, cl                               ; 84 c9
    9205     jne short 0660eh                          ; 75 43
     9194    jne short 0661eh                          ; 75 43
    92069195    or AL, strict byte 080h                   ; 0c 80
    92079196    mov byte [bp+013h], al                    ; 88 46 13
    9208     jmp short 0660eh                          ; eb 3c
     9197    jmp short 0661eh                          ; eb 3c
    92099198    mov dx, strict word 0006ch                ; ba 6c 00
    92109199    mov ax, strict word 00040h                ; b8 40 00
    9211     call 01765h                               ; e8 8a b1
     9200    call 01765h                               ; e8 7a b1
    92129201    mov si, ax                                ; 89 c6
    92139202    lea dx, [bx+005h]                         ; 8d 57 05
     
    92169205    ; sub ah, ah                                ; 2a e4
    92179206    test AL, strict byte 001h                 ; a8 01
    9218     jne short 065feh                          ; 75 17
     9207    jne short 0660eh                          ; 75 17
    92199208    test cl, cl                               ; 84 c9
    9220     je short 065feh                           ; 74 13
     9209    je short 0660eh                           ; 74 13
    92219210    mov dx, strict word 0006ch                ; ba 6c 00
    92229211    mov ax, strict word 00040h                ; b8 40 00
    9223     call 01765h                               ; e8 71 b1
     9212    call 01765h                               ; e8 61 b1
    92249213    cmp ax, si                                ; 39 f0
    9225     je short 065ddh                           ; 74 e5
     9214    je short 065edh                           ; 74 e5
    92269215    mov si, ax                                ; 89 c6
    92279216    db  0feh, 0c9h
    92289217    ; dec cl                                    ; fe c9
    9229     jmp short 065ddh                          ; eb df
     9218    jmp short 065edh                          ; eb df
    92309219    test cl, cl                               ; 84 c9
    9231     je short 06614h                           ; 74 12
     9220    je short 06624h                           ; 74 12
    92329221    mov byte [bp+013h], 000h                  ; c6 46 13 00
    92339222    mov dx, bx                                ; 89 da
     
    92379226    mov byte [bp+012h], al                    ; 88 46 12
    92389227    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    9239     jmp short 06637h                          ; eb 23
     9228    jmp short 06647h                          ; eb 23
    92409229    lea dx, [bx+005h]                         ; 8d 57 05
    92419230    in AL, DX                                 ; ec
    92429231    db  02ah, 0e4h
    92439232    ; sub ah, ah                                ; 2a e4
    9244     jmp short 065cdh                          ; eb b1
     9233    jmp short 065ddh                          ; eb b1
    92459234    lea dx, [si+005h]                         ; 8d 54 05
    92469235    in AL, DX                                 ; ec
     
    92529241    db  02ah, 0e4h
    92539242    ; sub ah, ah                                ; 2a e4
    9254     jmp short 0660bh                          ; eb de
     9243    jmp short 0661bh                          ; eb de
    92559244    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    9256     jmp short 06637h                          ; eb 04
     9245    jmp short 06647h                          ; eb 04
    92579246    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    92589247    lea sp, [bp-002h]                         ; 8d 66 fe
     
    92609249    pop bp                                    ; 5d
    92619250    retn                                      ; c3
    9262 timer_wait_:                                 ; 0xf663d LB 0x43
     9251timer_wait_:                                 ; 0xf664d LB 0x43
    92639252    push bp                                   ; 55
    92649253    mov bp, sp                                ; 89 e5
     
    92689257    mov bx, strict word 0000fh                ; bb 0f 00
    92699258    xor cx, cx                                ; 31 c9
    9270     call 0a020h                               ; e8 d5 39
     9259    call 0a030h                               ; e8 d5 39
    92719260    mov cx, ax                                ; 89 c1
    92729261    mov bx, dx                                ; 89 d3
     
    92809269    adc bx, strict byte 0ffffh                ; 83 d3 ff
    92819270    cmp bx, strict byte 0ffffh                ; 83 fb ff
    9282     jne short 0666ah                          ; 75 05
     9271    jne short 0667ah                          ; 75 05
    92839272    cmp cx, strict byte 0ffffh                ; 83 f9 ff
    9284     je short 06679h                           ; 74 0f
     9273    je short 06689h                           ; 74 0f
    92859274    mov dx, strict word 00061h                ; ba 61 00
    92869275    in AL, DX                                 ; ec
     
    92899278    and AL, strict byte 010h                  ; 24 10
    92909279    cmp al, byte [bp-006h]                    ; 3a 46 fa
    9291     jne short 0666ah                          ; 75 f3
    9292     jmp short 0665ah                          ; eb e1
     9280    jne short 0667ah                          ; 75 f3
     9281    jmp short 0666ah                          ; eb e1
    92939282    lea sp, [bp-004h]                         ; 8d 66 fc
    92949283    pop cx                                    ; 59
     
    92969285    pop bp                                    ; 5d
    92979286    retn                                      ; c3
    9298 set_enable_a20_:                             ; 0xf6680 LB 0x2c
     9287set_enable_a20_:                             ; 0xf6690 LB 0x2c
    92999288    push bp                                   ; 55
    93009289    mov bp, sp                                ; 89 e5
     
    93099298    mov cl, al                                ; 88 c1
    93109299    test bx, bx                               ; 85 db
    9311     je short 06699h                           ; 74 05
     9300    je short 066a9h                           ; 74 05
    93129301    or AL, strict byte 002h                   ; 0c 02
    93139302    out DX, AL                                ; ee
    9314     jmp short 0669ch                          ; eb 03
     9303    jmp short 066ach                          ; eb 03
    93159304    and AL, strict byte 0fdh                  ; 24 fd
    93169305    out DX, AL                                ; ee
     
    93259314    pop bp                                    ; 5d
    93269315    retn                                      ; c3
    9327 set_e820_range_:                             ; 0xf66ac LB 0x89
     9316set_e820_range_:                             ; 0xf66bc LB 0x89
    93289317    push si                                   ; 56
    93299318    push bp                                   ; 55
     
    93549343    retn 0000ah                               ; c2 0a 00
    93559344    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
    9356     db  039h, 06ah, 072h, 067h, 085h, 067h, 01ah, 068h, 020h, 068h, 025h, 068h, 02ah, 068h, 0cch, 068h
    9357     db  0f6h, 068h, 013h, 068h, 013h, 068h, 0c3h, 069h, 0ebh, 069h, 0feh, 069h, 00dh, 06ah, 01ah, 068h
    9358     db  014h, 06ah
    9359 _int15_function:                             ; 0xf6735 LB 0x336
     9345    db  049h, 06ah, 082h, 067h, 095h, 067h, 02ah, 068h, 030h, 068h, 035h, 068h, 03ah, 068h, 0dch, 068h
     9346    db  006h, 069h, 023h, 068h, 023h, 068h, 0d3h, 069h, 0fbh, 069h, 00eh, 06ah, 01dh, 06ah, 02ah, 068h
     9347    db  024h, 06ah
     9348_int15_function:                             ; 0xf6745 LB 0x336
    93609349    push bp                                   ; 55
    93619350    mov bp, sp                                ; 89 e5
     
    93659354    shr ax, 008h                              ; c1 e8 08
    93669355    cmp ax, 000ech                            ; 3d ec 00
    9367     jnbe near 06a39h                          ; 0f 87 f2 02
     9356    jnbe near 06a49h                          ; 0f 87 f2 02
    93689357    push CS                                   ; 0e
    93699358    pop ES                                    ; 07
    93709359    mov cx, strict word 00011h                ; b9 11 00
    9371     mov di, 06703h                            ; bf 03 67
     9360    mov di, 06713h                            ; bf 13 67
    93729361    repne scasb                               ; f2 ae
    93739362    sal cx, 1                                 ; d1 e1
    93749363    mov di, cx                                ; 89 cf
    9375     mov si, word [cs:di+06713h]               ; 2e 8b b5 13 67
     9364    mov si, word [cs:di+06723h]               ; 2e 8b b5 23 67
    93769365    mov ax, word [bp+012h]                    ; 8b 46 12
    93779366    xor ah, ah                                ; 30 e4
     
    93869375    xor ah, ah                                ; 30 e4
    93879376    cmp ax, 000c0h                            ; 3d c0 00
    9388     jne near 06a39h                           ; 0f 85 bb 02
     9377    jne near 06a49h                           ; 0f 85 bb 02
    93899378    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9390     jmp near 069e2h                           ; e9 5d 02
     9379    jmp near 069f2h                           ; e9 5d 02
    93919380    mov dx, ax                                ; 89 c2
    93929381    cmp ax, strict word 00001h                ; 3d 01 00
    9393     jc short 0679ah                           ; 72 0e
    9394     jbe short 067aeh                          ; 76 20
     9382    jc short 067aah                           ; 72 0e
     9383    jbe short 067beh                          ; 76 20
    93959384    cmp ax, strict word 00003h                ; 3d 03 00
    9396     je short 067dbh                           ; 74 48
     9385    je short 067ebh                           ; 74 48
    93979386    cmp ax, strict word 00002h                ; 3d 02 00
    9398     je short 067beh                           ; 74 26
    9399     jmp short 067e8h                          ; eb 4e
     9387    je short 067ceh                           ; 74 26
     9388    jmp short 067f8h                          ; eb 4e
    94009389    test ax, ax                               ; 85 c0
    9401     jne short 067e8h                          ; 75 4a
     9390    jne short 067f8h                          ; 75 4a
    94029391    xor ax, ax                                ; 31 c0
    9403     call 06680h                               ; e8 dd fe
     9392    call 06690h                               ; e8 dd fe
    94049393    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94059394    mov byte [bp+013h], 000h                  ; c6 46 13 00
    9406     jmp near 06813h                           ; e9 65 00
     9395    jmp near 06823h                           ; e9 65 00
    94079396    mov ax, strict word 00001h                ; b8 01 00
    9408     call 06680h                               ; e8 cc fe
     9397    call 06690h                               ; e8 cc fe
    94099398    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94109399    mov byte [bp+013h], dh                    ; 88 76 13
    9411     jmp near 06813h                           ; e9 55 00
     9400    jmp near 06823h                           ; e9 55 00
    94129401    mov dx, 00092h                            ; ba 92 00
    94139402    in AL, DX                                 ; ec
     
    94219410    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94229411    mov byte [bp+013h], ah                    ; 88 66 13
    9423     jmp near 06813h                           ; e9 38 00
     9412    jmp near 06823h                           ; e9 38 00
    94249413    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94259414    mov byte [bp+013h], ah                    ; 88 66 13
    94269415    mov word [bp+00ch], ax                    ; 89 46 0c
    9427     jmp near 06813h                           ; e9 2b 00
     9416    jmp near 06823h                           ; e9 2b 00
    94289417    mov bx, 00db2h                            ; bb b2 0d
    94299418    mov cx, ds                                ; 8c d9
    94309419    mov ax, strict word 00004h                ; b8 04 00
    9431     call 01a2ah                               ; e8 37 b2
     9420    call 01a2ah                               ; e8 27 b2
    94329421    mov ax, word [bp+012h]                    ; 8b 46 12
    94339422    xor ah, ah                                ; 30 e4
     
    94359424    push 00840h                               ; 68 40 08
    94369425    push strict byte 00004h                   ; 6a 04
    9437     call 01a6bh                               ; e8 6a b2
     9426    call 01a6bh                               ; e8 5a b2
    94389427    add sp, strict byte 00006h                ; 83 c4 06
    94399428    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    94489437    retn                                      ; c3
    94499438    mov word [bp+018h], bx                    ; 89 5e 18
    9450     jmp near 068c6h                           ; e9 a6 00
     9439    jmp near 068d6h                           ; e9 a6 00
    94519440    mov word [bp+018h], bx                    ; 89 5e 18
    9452     jmp short 06813h                          ; eb ee
     9441    jmp short 06823h                          ; eb ee
    94539442    mov word [bp+018h], cx                    ; 89 4e 18
    9454     jmp short 06810h                          ; eb e6
     9443    jmp short 06820h                          ; eb e6
    94559444    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9456     jne short 0689ch                          ; 75 6c
     9445    jne short 068ach                          ; 75 6c
    94579446    mov dx, 000a0h                            ; ba a0 00
    94589447    mov ax, strict word 00040h                ; b8 40 00
    9459     call 01749h                               ; e8 10 af
     9448    call 01749h                               ; e8 00 af
    94609449    test AL, strict byte 001h                 ; a8 01
    9461     jne near 069d9h                           ; 0f 85 9a 01
     9450    jne near 069e9h                           ; 0f 85 9a 01
    94629451    mov bx, strict word 00001h                ; bb 01 00
    94639452    mov dx, 000a0h                            ; ba a0 00
    94649453    mov ax, strict word 00040h                ; b8 40 00
    9465     call 01757h                               ; e8 0c af
     9454    call 01757h                               ; e8 fc ae
    94669455    mov bx, word [bp+014h]                    ; 8b 5e 14
    94679456    mov dx, 00098h                            ; ba 98 00
    94689457    mov ax, strict word 00040h                ; b8 40 00
    9469     call 01773h                               ; e8 1c af
     9458    call 01773h                               ; e8 0c af
    94709459    mov bx, word [bp+00ch]                    ; 8b 5e 0c
    94719460    mov dx, 0009ah                            ; ba 9a 00
    94729461    mov ax, strict word 00040h                ; b8 40 00
    9473     call 01773h                               ; e8 10 af
     9462    call 01773h                               ; e8 00 af
    94749463    mov bx, word [bp+00eh]                    ; 8b 5e 0e
    94759464    mov dx, 0009ch                            ; ba 9c 00
    94769465    mov ax, strict word 00040h                ; b8 40 00
    9477     call 01773h                               ; e8 04 af
     9466    call 01773h                               ; e8 f4 ae
    94789467    mov bx, word [bp+010h]                    ; 8b 5e 10
    94799468    mov dx, 0009eh                            ; ba 9e 00
    94809469    mov ax, strict word 00040h                ; b8 40 00
    9481     call 01773h                               ; e8 f8 ae
     9470    call 01773h                               ; e8 e8 ae
    94829471    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    94839472    mov dx, 000a1h                            ; ba a1 00
     
    94889477    out DX, AL                                ; ee
    94899478    mov ax, strict word 0000bh                ; b8 0b 00
    9490     call 017a5h                               ; e8 17 af
     9479    call 017a5h                               ; e8 07 af
    94919480    or AL, strict byte 040h                   ; 0c 40
    94929481    movzx dx, al                              ; 0f b6 d0
    94939482    mov ax, strict word 0000bh                ; b8 0b 00
    9494     call 017c2h                               ; e8 29 af
    9495     jmp near 06813h                           ; e9 77 ff
     9483    call 017c2h                               ; e8 19 af
     9484    jmp near 06823h                           ; e9 77 ff
    94969485    cmp ax, strict word 00001h                ; 3d 01 00
    9497     jne short 068bah                          ; 75 19
     9486    jne short 068cah                          ; 75 19
    94989487    xor bx, bx                                ; 31 db
    94999488    mov dx, 000a0h                            ; ba a0 00
    95009489    mov ax, strict word 00040h                ; b8 40 00
    9501     call 01757h                               ; e8 ab ae
     9490    call 01757h                               ; e8 9b ae
    95029491    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    95039492    mov ax, strict word 0000bh                ; b8 0b 00
    9504     call 017a5h                               ; e8 ef ae
     9493    call 017a5h                               ; e8 df ae
    95059494    and AL, strict byte 0bfh                  ; 24 bf
    9506     jmp short 06890h                          ; eb d6
     9495    jmp short 068a0h                          ; eb d6
    95079496    mov word [bp+018h], bx                    ; 89 5e 18
    95089497    mov ax, dx                                ; 89 d0
     
    95129501    or dx, ax                                 ; 09 c2
    95139502    mov word [bp+012h], dx                    ; 89 56 12
    9514     jmp near 06813h                           ; e9 47 ff
     9503    jmp near 06823h                           ; e9 47 ff
    95159504    mov ax, strict word 00031h                ; b8 31 00
    9516     call 017a5h                               ; e8 d3 ae
     9505    call 017a5h                               ; e8 c3 ae
    95179506    movzx dx, al                              ; 0f b6 d0
    95189507    sal dx, 008h                              ; c1 e2 08
    95199508    mov ax, strict word 00030h                ; b8 30 00
    9520     call 017a5h                               ; e8 c7 ae
     9509    call 017a5h                               ; e8 b7 ae
    95219510    xor ah, ah                                ; 30 e4
    95229511    or dx, ax                                 ; 09 c2
    95239512    mov word [bp+012h], dx                    ; 89 56 12
    95249513    cmp dx, strict byte 0ffc0h                ; 83 fa c0
    9525     jbe short 068efh                          ; 76 05
     9514    jbe short 068ffh                          ; 76 05
    95269515    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
    95279516    and byte [bp+018h], 0feh                  ; 80 66 18 fe
    9528     jmp near 06813h                           ; e9 1d ff
     9517    jmp near 06823h                           ; e9 1d ff
    95299518    cli                                       ; fa
    95309519    mov ax, strict word 00001h                ; b8 01 00
    9531     call 06680h                               ; e8 83 fd
     9520    call 06690h                               ; e8 83 fd
    95329521    mov dx, word [bp+006h]                    ; 8b 56 06
    95339522    add dx, strict byte 00038h                ; 83 c2 38
    95349523    mov ax, word [bp+014h]                    ; 8b 46 14
    95359524    mov bx, strict word 0ffffh                ; bb ff ff
    9536     call 01773h                               ; e8 67 ae
     9525    call 01773h                               ; e8 57 ae
    95379526    mov dx, word [bp+006h]                    ; 8b 56 06
    95389527    add dx, strict byte 0003ah                ; 83 c2 3a
    95399528    mov ax, word [bp+014h]                    ; 8b 46 14
    95409529    xor bx, bx                                ; 31 db
    9541     call 01773h                               ; e8 59 ae
     9530    call 01773h                               ; e8 49 ae
    95429531    mov dx, word [bp+006h]                    ; 8b 56 06
    95439532    add dx, strict byte 0003ch                ; 83 c2 3c
    95449533    mov ax, word [bp+014h]                    ; 8b 46 14
    95459534    mov bx, strict word 0000fh                ; bb 0f 00
    9546     call 01757h                               ; e8 2e ae
     9535    call 01757h                               ; e8 1e ae
    95479536    mov dx, word [bp+006h]                    ; 8b 56 06
    95489537    add dx, strict byte 0003dh                ; 83 c2 3d
    95499538    mov ax, word [bp+014h]                    ; 8b 46 14
    95509539    mov bx, 0009bh                            ; bb 9b 00
    9551     call 01757h                               ; e8 1f ae
     9540    call 01757h                               ; e8 0f ae
    95529541    mov dx, word [bp+006h]                    ; 8b 56 06
    95539542    add dx, strict byte 0003eh                ; 83 c2 3e
    95549543    mov ax, word [bp+014h]                    ; 8b 46 14
    95559544    xor bx, bx                                ; 31 db
    9556     call 01773h                               ; e8 2d ae
     9545    call 01773h                               ; e8 1d ae
    95579546    mov AL, strict byte 011h                  ; b0 11
    95589547    mov dx, strict word 00020h                ; ba 20 00
     
    95849573    out DX, AL                                ; ee
    95859574    mov si, word [bp+006h]                    ; 8b 76 06
    9586     call 06987h                               ; e8 00 00
     9575    call 06997h                               ; e8 00 00
    95879576    pop di                                    ; 5f
    95889577    add di, strict byte 00018h                ; 83 c7 18
     
    96129601    push cx                                   ; 51
    96139602    retf                                      ; cb
    9614     jmp near 06813h                           ; e9 50 fe
     9603    jmp near 06823h                           ; e9 50 fe
    96159604    mov bx, 00db2h                            ; bb b2 0d
    96169605    mov cx, ds                                ; 8c d9
    96179606    mov ax, strict word 00004h                ; b8 04 00
    9618     call 01a2ah                               ; e8 5c b0
     9607    call 01a2ah                               ; e8 4c b0
    96199608    push 00880h                               ; 68 80 08
    96209609    push strict byte 00004h                   ; 6a 04
    9621     call 01a6bh                               ; e8 95 b0
     9610    call 01a6bh                               ; e8 85 b0
    96229611    add sp, strict byte 00004h                ; 83 c4 04
    96239612    or byte [bp+018h], 001h                   ; 80 4e 18 01
     
    96269615    or ah, 086h                               ; 80 cc 86
    96279616    mov word [bp+012h], ax                    ; 89 46 12
    9628     jmp near 06813h                           ; e9 28 fe
     9617    jmp near 06823h                           ; e9 28 fe
    96299618    mov word [bp+018h], cx                    ; 89 4e 18
    96309619    mov word [bp+012h], ax                    ; 89 46 12
    96319620    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
    96329621    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
    9633     jmp near 06813h                           ; e9 15 fe
     9622    jmp near 06823h                           ; e9 15 fe
    96349623    mov dx, strict word 0000eh                ; ba 0e 00
    96359624    mov ax, strict word 00040h                ; b8 40 00
    9636     call 01765h                               ; e8 5e ad
     9625    call 01765h                               ; e8 4e ad
    96379626    mov word [bp+014h], ax                    ; 89 46 14
    9638     jmp near 068efh                           ; e9 e2 fe
     9627    jmp near 068ffh                           ; e9 e2 fe
    96399628    push 008afh                               ; 68 af 08
    96409629    push strict byte 00008h                   ; 6a 08
    9641     jmp short 069d3h                          ; eb bf
     9630    jmp short 069e3h                          ; eb bf
    96429631    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
    9643     jne short 06a39h                          ; 75 1f
     9632    jne short 06a49h                          ; 75 1f
    96449633    mov word [bp+012h], ax                    ; 89 46 12
    96459634    mov ax, word [bp+00ch]                    ; 8b 46 0c
    96469635    xor ah, ah                                ; 30 e4
    96479636    cmp ax, strict word 00001h                ; 3d 01 00
    9648     jc short 06a32h                           ; 72 0b
     9637    jc short 06a42h                           ; 72 0b
    96499638    cmp ax, strict word 00003h                ; 3d 03 00
    9650     jnbe short 06a32h                         ; 77 06
     9639    jnbe short 06a42h                         ; 77 06
    96519640    mov word [bp+018h], cx                    ; 89 4e 18
    9652     jmp near 06813h                           ; e9 e1 fd
     9641    jmp near 06823h                           ; e9 e1 fd
    96539642    or byte [bp+018h], 001h                   ; 80 4e 18 01
    9654     jmp near 06813h                           ; e9 da fd
     9643    jmp near 06823h                           ; e9 da fd
    96559644    mov bx, 00db2h                            ; bb b2 0d
    96569645    mov cx, ds                                ; 8c d9
    96579646    mov ax, strict word 00004h                ; b8 04 00
    9658     call 01a2ah                               ; e8 e6 af
     9647    call 01a2ah                               ; e8 d6 af
    96599648    push word [bp+00ch]                       ; ff 76 0c
    96609649    push word [bp+012h]                       ; ff 76 12
    96619650    push 008c6h                               ; 68 c6 08
    96629651    push strict byte 00004h                   ; 6a 04
    9663     call 01a6bh                               ; e8 19 b0
     9652    call 01a6bh                               ; e8 09 b0
    96649653    add sp, strict byte 00008h                ; 83 c4 08
    9665     jmp short 069d9h                          ; eb 82
    9666     in AL, strict byte 06bh                   ; e4 6b
    9667     push ES                                   ; 06
     9654    jmp short 069e9h                          ; eb 82
     9655    hlt                                       ; f4
     9656    imul dx, word [0396ch], strict byte 0006ch ; 6b 16 6c 39 6c
     9657    pop bx                                    ; 5b
    96689658    insb                                      ; 6c
    9669     sub word [si+04bh], bp                    ; 29 6c 4b
     9659    jnp short 06addh                          ; 7b 6c
     9660    call far 0e26ch:0be6ch                    ; 9a 6c be 6c e2
    96709661    insb                                      ; 6c
    9671     imul bp, word [si-076h], strict byte 0006ch ; 6b 6c 8a 6c
    9672     scasb                                     ; ae
    9673     insb                                      ; 6c
    9674     shr byte [si+011h], CL                    ; d2 6c 11
     9662    and word [di+04dh], bp                    ; 21 6d 4d
    96759663    insw                                      ; 6d
    9676     db  03dh
    9677     insw                                      ; 6d
    9678 _int15_function32:                           ; 0xf6a6b LB 0x396
     9664_int15_function32:                           ; 0xf6a7b LB 0x396
    96799665    push bp                                   ; 55
    96809666    mov bp, sp                                ; 89 e5
     
    96889674    xor dh, dh                                ; 30 f6
    96899675    cmp ax, 000e8h                            ; 3d e8 00
    9690     je near 06b08h                            ; 0f 84 7e 00
     9676    je near 06b18h                            ; 0f 84 7e 00
    96919677    cmp ax, 000d0h                            ; 3d d0 00
    9692     je short 06aa3h                           ; 74 14
     9678    je short 06ab3h                           ; 74 14
    96939679    cmp ax, 00086h                            ; 3d 86 00
    9694     jne near 06dd1h                           ; 0f 85 3b 03
     9680    jne near 06de1h                           ; 0f 85 3b 03
    96959681    sti                                       ; fb
    96969682    mov dx, word [bp+01ch]                    ; 8b 56 1c
    96979683    mov ax, word [bp+018h]                    ; 8b 46 18
    9698     call 0663dh                               ; e8 9d fb
    9699     jmp near 06dfbh                           ; e9 58 03
     9684    call 0664dh                               ; e8 9d fb
     9685    jmp near 06e0bh                           ; e9 58 03
    97009686    cmp dx, strict byte 0004fh                ; 83 fa 4f
    9701     jne near 06dd1h                           ; 0f 85 27 03
     9687    jne near 06de1h                           ; 0f 85 27 03
    97029688    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
    9703     jne near 06dd1h                           ; 0f 85 1e 03
     9689    jne near 06de1h                           ; 0f 85 1e 03
    97049690    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
    9705     jne near 06dd1h                           ; 0f 85 15 03
     9691    jne near 06de1h                           ; 0f 85 15 03
    97069692    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
    9707     jne near 06dd1h                           ; 0f 85 0c 03
     9693    jne near 06de1h                           ; 0f 85 0c 03
    97089694    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
    9709     jne near 06dd1h                           ; 0f 85 03 03
     9695    jne near 06de1h                           ; 0f 85 03 03
    97109696    mov ax, word [bp+00ah]                    ; 8b 46 0a
    97119697    or ax, word [bp+008h]                     ; 0b 46 08
    9712     jne near 06dd1h                           ; 0f 85 f9 02
     9698    jne near 06de1h                           ; 0f 85 f9 02
    97139699    mov ax, word [bp+006h]                    ; 8b 46 06
    97149700    or ax, word [bp+004h]                     ; 0b 46 04
    9715     jne near 06dd1h                           ; 0f 85 ef 02
     9701    jne near 06de1h                           ; 0f 85 ef 02
    97169702    mov word [bp+028h], bx                    ; 89 5e 28
    97179703    mov ax, word [bp+014h]                    ; 8b 46 14
     
    97249710    mov word [bp+006h], ax                    ; 89 46 06
    97259711    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
    9726     jmp near 06dfbh                           ; e9 f3 02
     9712    jmp near 06e0bh                           ; e9 f3 02
    97279713    cmp dx, strict byte 00020h                ; 83 fa 20
    9728     je short 06b17h                           ; 74 0a
     9714    je short 06b27h                           ; 74 0a
    97299715    cmp dx, strict byte 00001h                ; 83 fa 01
    9730     je near 06d84h                            ; 0f 84 70 02
    9731     jmp near 06dd1h                           ; e9 ba 02
     9716    je near 06d94h                            ; 0f 84 70 02
     9717    jmp near 06de1h                           ; e9 ba 02
    97329718    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
    9733     jne near 06dd1h                           ; 0f 85 b1 02
     9719    jne near 06de1h                           ; 0f 85 b1 02
    97349720    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
    9735     jne near 06dd1h                           ; 0f 85 a8 02
     9721    jne near 06de1h                           ; 0f 85 a8 02
    97369722    mov ax, strict word 00035h                ; b8 35 00
    9737     call 017a5h                               ; e8 76 ac
     9723    call 017a5h                               ; e8 66 ac
    97389724    movzx bx, al                              ; 0f b6 d8
    97399725    xor dx, dx                                ; 31 d2
     
    97419727    sal bx, 1                                 ; d1 e3
    97429728    rcl dx, 1                                 ; d1 d2
    9743     loop 06b37h                               ; e2 fa
     9729    loop 06b47h                               ; e2 fa
    97449730    mov ax, strict word 00034h                ; b8 34 00
    9745     call 017a5h                               ; e8 62 ac
     9731    call 017a5h                               ; e8 52 ac
    97469732    xor ah, ah                                ; 30 e4
    97479733    mov dx, bx                                ; 89 da
     
    97519737    adc dx, 00100h                            ; 81 d2 00 01
    97529738    cmp dx, 00100h                            ; 81 fa 00 01
    9753     jc short 06b5dh                           ; 72 06
    9754     jne short 06b8ah                          ; 75 31
     9739    jc short 06b6dh                           ; 72 06
     9740    jne short 06b9ah                          ; 75 31
    97559741    test bx, bx                               ; 85 db
    9756     jnbe short 06b8ah                         ; 77 2d
     9742    jnbe short 06b9ah                         ; 77 2d
    97579743    mov ax, strict word 00031h                ; b8 31 00
    9758     call 017a5h                               ; e8 42 ac
     9744    call 017a5h                               ; e8 32 ac
    97599745    movzx bx, al                              ; 0f b6 d8
    97609746    xor dx, dx                                ; 31 d2
     
    97629748    sal bx, 1                                 ; d1 e3
    97639749    rcl dx, 1                                 ; d1 d2
    9764     loop 06b6bh                               ; e2 fa
     9750    loop 06b7bh                               ; e2 fa
    97659751    mov ax, strict word 00030h                ; b8 30 00
    9766     call 017a5h                               ; e8 2e ac
     9752    call 017a5h                               ; e8 1e ac
    97679753    xor ah, ah                                ; 30 e4
    97689754    or bx, ax                                 ; 09 c3
     
    97709756    sal bx, 1                                 ; d1 e3
    97719757    rcl dx, 1                                 ; d1 d2
    9772     loop 06b7eh                               ; e2 fa
     9758    loop 06b8eh                               ; e2 fa
    97739759    add bx, strict byte 00000h                ; 83 c3 00
    97749760    adc dx, strict byte 00010h                ; 83 d2 10
    97759761    mov ax, strict word 00062h                ; b8 62 00
    9776     call 017a5h                               ; e8 15 ac
     9762    call 017a5h                               ; e8 05 ac
    97779763    xor ah, ah                                ; 30 e4
    97789764    mov word [bp-00ah], ax                    ; 89 46 f6
     
    97829768    sal word [bp-00ah], 1                     ; d1 66 f6
    97839769    rcl word [bp-008h], 1                     ; d1 56 f8
    9784     loop 06b9dh                               ; e2 f8
     9770    loop 06badh                               ; e2 f8
    97859771    mov ax, strict word 00061h                ; b8 61 00
    9786     call 017a5h                               ; e8 fa ab
     9772    call 017a5h                               ; e8 ea ab
    97879773    xor ah, ah                                ; 30 e4
    97889774    or word [bp-00ah], ax                     ; 09 46 f6
     
    97919777    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
    97929778    mov ax, strict word 00063h                ; b8 63 00
    9793     call 017a5h                               ; e8 e4 ab
     9779    call 017a5h                               ; e8 d4 ab
    97949780    mov byte [bp-004h], al                    ; 88 46 fc
    97959781    mov byte [bp-006h], al                    ; 88 46 fa
    97969782    mov ax, word [bp+014h]                    ; 8b 46 14
    97979783    cmp ax, strict word 00009h                ; 3d 09 00
    9798     jnbe near 06dd1h                          ; 0f 87 00 02
     9784    jnbe near 06de1h                          ; 0f 87 00 02
    97999785    mov si, ax                                ; 89 c6
    98009786    add si, ax                                ; 01 c6
     
    98039789    mov cx, dx                                ; 89 d1
    98049790    adc cx, strict byte 0ffffh                ; 83 d1 ff
    9805     jmp word [cs:si+06a57h]                   ; 2e ff a4 57 6a
     9791    jmp word [cs:si+06a67h]                   ; 2e ff a4 67 6a
    98069792    push strict byte 00001h                   ; 6a 01
    98079793    push dword 000000000h                     ; 66 6a 00
     
    98129798    xor bx, bx                                ; 31 db
    98139799    xor cx, cx                                ; 31 c9
    9814     call 066ach                               ; e8 b1 fa
     9800    call 066bch                               ; e8 b1 fa
    98159801    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
    9816     jmp near 06d6eh                           ; e9 68 01
     9802    jmp near 06d7eh                           ; e9 68 01
    98179803    push strict byte 00002h                   ; 6a 02
    98189804    push dword 000000000h                     ; 66 6a 00
     
    98239809    mov bx, 0fc00h                            ; bb 00 fc
    98249810    mov cx, strict word 00009h                ; b9 09 00
    9825     call 066ach                               ; e8 8e fa
     9811    call 066bch                               ; e8 8e fa
    98269812    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
    9827     jmp near 06d6eh                           ; e9 45 01
     9813    jmp near 06d7eh                           ; e9 45 01
    98289814    push strict byte 00002h                   ; 6a 02
    98299815    push dword 000000000h                     ; 66 6a 00
     
    98349820    xor bx, bx                                ; 31 db
    98359821    mov cx, strict word 0000fh                ; b9 0f 00
    9836     call 066ach                               ; e8 6c fa
     9822    call 066bch                               ; e8 6c fa
    98379823    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
    9838     jmp near 06d6eh                           ; e9 23 01
     9824    jmp near 06d7eh                           ; e9 23 01
    98399825    push strict byte 00001h                   ; 6a 01
    98409826    push dword 000000000h                     ; 66 6a 00
     
    98459831    xor bx, bx                                ; 31 db
    98469832    mov cx, strict word 00010h                ; b9 10 00
    9847     call 066ach                               ; e8 4c fa
     9833    call 066bch                               ; e8 4c fa
    98489834    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
    9849     jmp near 06d6eh                           ; e9 03 01
     9835    jmp near 06d7eh                           ; e9 03 01
    98509836    push strict byte 00003h                   ; 6a 03
    98519837    push dword 000000000h                     ; 66 6a 00
     
    98569842    mov bx, ax                                ; 89 c3
    98579843    mov ax, si                                ; 89 f0
    9858     call 066ach                               ; e8 2d fa
     9844    call 066bch                               ; e8 2d fa
    98599845    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
    9860     jmp near 06d6eh                           ; e9 e4 00
     9846    jmp near 06d7eh                           ; e9 e4 00
    98619847    push strict byte 00002h                   ; 6a 02
    98629848    push dword 000000000h                     ; 66 6a 00
     
    98679853    xor bx, bx                                ; 31 db
    98689854    mov cx, 0fec0h                            ; b9 c0 fe
    9869     call 066ach                               ; e8 09 fa
     9855    call 066bch                               ; e8 09 fa
    98709856    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
    9871     jmp near 06d6eh                           ; e9 c0 00
     9857    jmp near 06d7eh                           ; e9 c0 00
    98729858    push strict byte 00002h                   ; 6a 02
    98739859    push dword 000000000h                     ; 66 6a 00
     
    98789864    xor bx, bx                                ; 31 db
    98799865    mov cx, 0fee0h                            ; b9 e0 fe
    9880     call 066ach                               ; e8 e5 f9
     9866    call 066bch                               ; e8 e5 f9
    98819867    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
    9882     jmp near 06d6eh                           ; e9 9c 00
     9868    jmp near 06d7eh                           ; e9 9c 00
    98839869    push strict byte 00002h                   ; 6a 02
    98849870    push dword 000000000h                     ; 66 6a 00
     
    98889874    xor bx, bx                                ; 31 db
    98899875    mov cx, strict word 0fffch                ; b9 fc ff
    9890     call 066ach                               ; e8 c4 f9
     9876    call 066bch                               ; e8 c4 f9
    98919877    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9892     jne short 06cf5h                          ; 75 07
     9878    jne short 06d05h                          ; 75 07
    98939879    mov ax, word [bp-008h]                    ; 8b 46 f8
    98949880    test ax, ax                               ; 85 c0
    9895     je short 06d09h                           ; 74 14
     9881    je short 06d19h                           ; 74 14
    98969882    mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
    9897     jmp short 06d6eh                          ; eb 6f
     9883    jmp short 06d7eh                          ; eb 6f
    98989884    mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
    9899     jmp short 06d6eh                          ; eb 65
     9885    jmp short 06d7eh                          ; eb 65
    99009886    mov word [bp+014h], ax                    ; 89 46 14
    99019887    mov word [bp+016h], ax                    ; 89 46 16
    9902     jmp short 06d6eh                          ; eb 5d
     9888    jmp short 06d7eh                          ; eb 5d
    99039889    push strict byte 00002h                   ; 6a 02
    99049890    push dword 000000000h                     ; 66 6a 00
     
    99089894    xor bx, bx                                ; 31 db
    99099895    xor cx, cx                                ; 31 c9
    9910     call 066ach                               ; e8 86 f9
     9896    call 066bch                               ; e8 86 f9
    99119897    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9912     jne short 06d33h                          ; 75 07
     9898    jne short 06d43h                          ; 75 07
    99139899    mov ax, word [bp-008h]                    ; 8b 46 f8
    99149900    test ax, ax                               ; 85 c0
    9915     je short 06d35h                           ; 74 02
    9916     jmp short 06cf5h                          ; eb c0
     9901    je short 06d45h                           ; 74 02
     9902    jmp short 06d05h                          ; eb c0
    99179903    mov word [bp+014h], ax                    ; 89 46 14
    99189904    mov word [bp+016h], ax                    ; 89 46 16
    9919     jmp short 06d6eh                          ; eb 31
     9905    jmp short 06d7eh                          ; eb 31
    99209906    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
    9921     jne short 06d49h                          ; 75 06
     9907    jne short 06d59h                          ; 75 06
    99229908    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
    9923     je short 06d6eh                           ; 74 25
     9909    je short 06d7eh                           ; 74 25
    99249910    push strict byte 00001h                   ; 6a 01
    99259911    mov al, byte [bp-006h]                    ; 8a 46 fa
     
    99349920    xor bx, bx                                ; 31 db
    99359921    xor cx, cx                                ; 31 c9
    9936     call 066ach                               ; e8 46 f9
     9922    call 066bch                               ; e8 46 f9
    99379923    xor ax, ax                                ; 31 c0
    99389924    mov word [bp+014h], ax                    ; 89 46 14
     
    99419927    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
    99429928    and byte [bp+028h], 0feh                  ; 80 66 28 fe
    9943     jmp short 06dfbh                          ; eb 77
     9929    jmp short 06e0bh                          ; eb 77
    99449930    mov word [bp+028h], bx                    ; 89 5e 28
    99459931    mov ax, strict word 00031h                ; b8 31 00
    9946     call 017a5h                               ; e8 18 aa
     9932    call 017a5h                               ; e8 08 aa
    99479933    xor ah, ah                                ; 30 e4
    99489934    mov dx, ax                                ; 89 c2
    99499935    sal dx, 008h                              ; c1 e2 08
    99509936    mov ax, strict word 00030h                ; b8 30 00
    9951     call 017a5h                               ; e8 0b aa
     9937    call 017a5h                               ; e8 fb a9
    99529938    xor ah, ah                                ; 30 e4
    99539939    or dx, ax                                 ; 09 c2
    99549940    mov word [bp+01ch], dx                    ; 89 56 1c
    99559941    cmp dx, 03c00h                            ; 81 fa 00 3c
    9956     jbe short 06dach                          ; 76 05
     9942    jbe short 06dbch                          ; 76 05
    99579943    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
    99589944    mov ax, strict word 00035h                ; b8 35 00
    9959     call 017a5h                               ; e8 f3 a9
     9945    call 017a5h                               ; e8 e3 a9
    99609946    xor ah, ah                                ; 30 e4
    99619947    mov dx, ax                                ; 89 c2
    99629948    sal dx, 008h                              ; c1 e2 08
    99639949    mov ax, strict word 00034h                ; b8 34 00
    9964     call 017a5h                               ; e8 e6 a9
     9950    call 017a5h                               ; e8 d6 a9
    99659951    xor ah, ah                                ; 30 e4
    99669952    or dx, ax                                 ; 09 c2
     
    99699955    mov word [bp+020h], ax                    ; 89 46 20
    99709956    mov word [bp+014h], dx                    ; 89 56 14
    9971     jmp short 06dfbh                          ; eb 2a
     9957    jmp short 06e0bh                          ; eb 2a
    99729958    mov bx, 00db2h                            ; bb b2 0d
    99739959    mov cx, ds                                ; 8c d9
    99749960    mov ax, strict word 00004h                ; b8 04 00
    9975     call 01a2ah                               ; e8 4e ac
     9961    call 01a2ah                               ; e8 3e ac
    99769962    push word [bp+014h]                       ; ff 76 14
    99779963    push word [bp+020h]                       ; ff 76 20
    99789964    push 008c6h                               ; 68 c6 08
    99799965    push strict byte 00004h                   ; 6a 04
    9980     call 01a6bh                               ; e8 81 ac
     9966    call 01a6bh                               ; e8 71 ac
    99819967    add sp, strict byte 00008h                ; 83 c4 08
    99829968    or byte [bp+028h], 001h                   ; 80 4e 28 01
     
    99899975    pop bp                                    ; 5d
    99909976    retn                                      ; c3
    9991 _int15_blkmove:                              ; 0xf6e01 LB 0x1ab
     9977_int15_blkmove:                              ; 0xf6e11 LB 0x1ab
    99929978    push bp                                   ; 55
    99939979    mov bp, sp                                ; 89 e5
     
    99989984    cli                                       ; fa
    99999985    mov ax, strict word 00001h                ; b8 01 00
    10000     call 06680h                               ; e8 71 f8
     9986    call 06690h                               ; e8 71 f8
    100019987    mov di, ax                                ; 89 c7
    100029988    mov ax, word [bp+006h]                    ; 8b 46 06
     
    100089994    mov byte [bp-006h], dl                    ; 88 56 fa
    100099995    cmp cx, ax                                ; 39 c1
    10010     jnc short 06e2eh                          ; 73 05
     9996    jnc short 06e3eh                          ; 73 05
    100119997    db  0feh, 0c2h
    100129998    ; inc dl                                    ; fe c2
     
    1001610002    mov ax, word [bp+006h]                    ; 8b 46 06
    1001710003    mov bx, strict word 0002fh                ; bb 2f 00
    10018     call 01773h                               ; e8 36 a9
     10004    call 01773h                               ; e8 26 a9
    1001910005    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1002010006    add dx, strict byte 0000ah                ; 83 c2 0a
    1002110007    mov ax, word [bp+006h]                    ; 8b 46 06
    1002210008    mov bx, cx                                ; 89 cb
    10023     call 01773h                               ; e8 28 a9
     10009    call 01773h                               ; e8 18 a9
    1002410010    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1002510011    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1002610012    add dx, strict byte 0000ch                ; 83 c2 0c
    1002710013    mov ax, word [bp+006h]                    ; 8b 46 06
    10028     call 01757h                               ; e8 fc a8
     10014    call 01757h                               ; e8 ec a8
    1002910015    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1003010016    add dx, strict byte 0000dh                ; 83 c2 0d
    1003110017    mov ax, word [bp+006h]                    ; 8b 46 06
    1003210018    mov bx, 00093h                            ; bb 93 00
    10033     call 01757h                               ; e8 ed a8
     10019    call 01757h                               ; e8 dd a8
    1003410020    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1003510021    add dx, strict byte 0000eh                ; 83 c2 0e
    1003610022    mov ax, word [bp+006h]                    ; 8b 46 06
    1003710023    xor bx, bx                                ; 31 db
    10038     call 01773h                               ; e8 fb a8
     10024    call 01773h                               ; e8 eb a8
    1003910025    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1004010026    add dx, strict byte 00020h                ; 83 c2 20
    1004110027    mov ax, word [bp+006h]                    ; 8b 46 06
    1004210028    mov bx, strict word 0ffffh                ; bb ff ff
    10043     call 01773h                               ; e8 ec a8
     10029    call 01773h                               ; e8 dc a8
    1004410030    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1004510031    add dx, strict byte 00022h                ; 83 c2 22
    1004610032    mov ax, word [bp+006h]                    ; 8b 46 06
    1004710033    xor bx, bx                                ; 31 db
    10048     call 01773h                               ; e8 de a8
     10034    call 01773h                               ; e8 ce a8
    1004910035    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1005010036    add dx, strict byte 00024h                ; 83 c2 24
    1005110037    mov ax, word [bp+006h]                    ; 8b 46 06
    1005210038    mov bx, strict word 0000fh                ; bb 0f 00
    10053     call 01757h                               ; e8 b3 a8
     10039    call 01757h                               ; e8 a3 a8
    1005410040    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1005510041    add dx, strict byte 00025h                ; 83 c2 25
    1005610042    mov ax, word [bp+006h]                    ; 8b 46 06
    1005710043    mov bx, 0009bh                            ; bb 9b 00
    10058     call 01757h                               ; e8 a4 a8
     10044    call 01757h                               ; e8 94 a8
    1005910045    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1006010046    add dx, strict byte 00026h                ; 83 c2 26
    1006110047    mov ax, word [bp+006h]                    ; 8b 46 06
    1006210048    xor bx, bx                                ; 31 db
    10063     call 01773h                               ; e8 b2 a8
     10049    call 01773h                               ; e8 a2 a8
    1006410050    mov ax, ss                                ; 8c d0
    1006510051    mov cx, ax                                ; 89 c1
     
    1007110057    mov ax, word [bp+006h]                    ; 8b 46 06
    1007210058    mov bx, strict word 0ffffh                ; bb ff ff
    10073     call 01773h                               ; e8 96 a8
     10059    call 01773h                               ; e8 86 a8
    1007410060    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1007510061    add dx, strict byte 0002ah                ; 83 c2 2a
    1007610062    mov ax, word [bp+006h]                    ; 8b 46 06
    1007710063    mov bx, cx                                ; 89 cb
    10078     call 01773h                               ; e8 88 a8
     10064    call 01773h                               ; e8 78 a8
    1007910065    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1008010066    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1008110067    add dx, strict byte 0002ch                ; 83 c2 2c
    1008210068    mov ax, word [bp+006h]                    ; 8b 46 06
    10083     call 01757h                               ; e8 5c a8
     10069    call 01757h                               ; e8 4c a8
    1008410070    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1008510071    add dx, strict byte 0002dh                ; 83 c2 2d
    1008610072    mov ax, word [bp+006h]                    ; 8b 46 06
    1008710073    mov bx, 00093h                            ; bb 93 00
    10088     call 01757h                               ; e8 4d a8
     10074    call 01757h                               ; e8 3d a8
    1008910075    mov dx, word [bp+00ah]                    ; 8b 56 0a
    1009010076    add dx, strict byte 0002eh                ; 83 c2 2e
    1009110077    mov ax, word [bp+006h]                    ; 8b 46 06
    1009210078    xor bx, bx                                ; 31 db
    10093     call 01773h                               ; e8 5b a8
     10079    call 01773h                               ; e8 4b a8
    1009410080    lea ax, [bp+004h]                         ; 8d 46 04
    1009510081    mov si, word [bp+00ah]                    ; 8b 76 0a
     
    1010310089    mov word [00467h], sp                     ; 89 26 67 04
    1010410090    mov [00469h], ss                          ; 8c 16 69 04
    10105     call 06f37h                               ; e8 00 00
     10091    call 06f47h                               ; e8 00 00
    1010610092    pop di                                    ; 5f
    1010710093    add di, strict byte 0001bh                ; 83 c7 1b
     
    1012610112    cld                                       ; fc
    1012710113    rep movsw                                 ; f3 a5
    10128     call 06f6bh                               ; e8 00 00
     10114    call 06f7bh                               ; e8 00 00
    1012910115    pop ax                                    ; 58
    1013010116    push 0f000h                               ; 68 00 f0
     
    1014710133    pop DS                                    ; 1f
    1014810134    mov ax, di                                ; 89 f8
    10149     call 06680h                               ; e8 e4 f6
     10135    call 06690h                               ; e8 e4 f6
    1015010136    sti                                       ; fb
    1015110137    mov byte [bp+017h], 000h                  ; c6 46 17 00
     
    1015610142    pop bp                                    ; 5d
    1015710143    retn                                      ; c3
    10158 _inv_op_handler:                             ; 0xf6fac LB 0x195
     10144_inv_op_handler:                             ; 0xf6fbc LB 0x195
    1015910145    push bp                                   ; 55
    1016010146    mov bp, sp                                ; 89 e5
     
    1016510151    les bx, [bp+018h]                         ; c4 5e 18
    1016610152    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
    10167     jne short 06fc2h                          ; 75 06
     10153    jne short 06fd2h                          ; 75 06
    1016810154    inc word [bp+018h]                        ; ff 46 18
    10169     jmp near 0713ah                           ; e9 78 01
     10155    jmp near 0714ah                           ; e9 78 01
    1017010156    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
    10171     jne near 07136h                           ; 0f 85 6b 01
     10157    jne near 07146h                           ; 0f 85 6b 01
    1017210158    mov si, 00800h                            ; be 00 08
    1017310159    xor ax, ax                                ; 31 c0
     
    1019710183    sal ax, 1                                 ; d1 e0
    1019810184    rcl dx, 1                                 ; d1 d2
    10199     loop 0701bh                               ; e2 fa
     10185    loop 0702bh                               ; e2 fa
    1020010186    cmp bx, dx                                ; 39 d3
    10201     jne short 07029h                          ; 75 04
     10187    jne short 07039h                          ; 75 04
    1020210188    cmp di, ax                                ; 39 c7
    10203     je short 0702eh                           ; 74 05
     10189    je short 0703eh                           ; 74 05
    1020410190    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
    1020510191    mov es, [bp-006h]                         ; 8e 46 fa
     
    1021110197    sal ax, 1                                 ; d1 e0
    1021210198    rcl dx, 1                                 ; d1 d2
    10213     loop 07043h                               ; e2 fa
     10199    loop 07053h                               ; e2 fa
    1021410200    cmp di, dx                                ; 39 d7
    10215     jne short 07051h                          ; 75 04
     10201    jne short 07061h                          ; 75 04
    1021610202    cmp bx, ax                                ; 39 c3
    10217     je short 07055h                           ; 74 04
     10203    je short 07065h                           ; 74 04
    1021810204    or byte [bp-008h], 002h                   ; 80 4e f8 02
    1021910205    push strict byte 00000h                   ; 6a 00
     
    1026510251    mov ax, strict word 00008h                ; b8 08 00
    1026610252    test cx, strict word 00001h               ; f7 c1 01 00
    10267     je near 070f3h                            ; 0f 84 02 00
     10253    je near 07103h                            ; 0f 84 02 00
    1026810254    mov es, ax                                ; 8e c0
    1026910255    test cx, strict word 00002h               ; f7 c1 02 00
    10270     je near 0711bh                            ; 0f 84 20 00
     10256    je near 0712bh                            ; 0f 84 20 00
    1027110257    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
    1027210258    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
     
    1028510271    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
    1028610272    iret                                      ; cf
    10287     jmp short 0713ah                          ; eb 04
     10273    jmp short 0714ah                          ; eb 04
    1028810274    sti                                       ; fb
    1028910275    hlt                                       ; f4
    10290     jmp short 07137h                          ; eb fd
     10276    jmp short 07147h                          ; eb fd
    1029110277    lea sp, [bp-004h]                         ; 8d 66 fc
    1029210278    pop di                                    ; 5f
     
    1029410280    pop bp                                    ; 5d
    1029510281    retn                                      ; c3
    10296 init_rtc_:                                   ; 0xf7141 LB 0x28
     10282init_rtc_:                                   ; 0xf7151 LB 0x28
    1029710283    push bp                                   ; 55
    1029810284    mov bp, sp                                ; 89 e5
     
    1030010286    mov dx, strict word 00026h                ; ba 26 00
    1030110287    mov ax, strict word 0000ah                ; b8 0a 00
    10302     call 017c2h                               ; e8 74 a6
     10288    call 017c2h                               ; e8 64 a6
    1030310289    mov dx, strict word 00002h                ; ba 02 00
    1030410290    mov ax, strict word 0000bh                ; b8 0b 00
    10305     call 017c2h                               ; e8 6b a6
     10291    call 017c2h                               ; e8 5b a6
    1030610292    mov ax, strict word 0000ch                ; b8 0c 00
    10307     call 017a5h                               ; e8 48 a6
     10293    call 017a5h                               ; e8 38 a6
    1030810294    mov ax, strict word 0000dh                ; b8 0d 00
    10309     call 017a5h                               ; e8 42 a6
     10295    call 017a5h                               ; e8 32 a6
    1031010296    lea sp, [bp-002h]                         ; 8d 66 fe
    1031110297    pop dx                                    ; 5a
    1031210298    pop bp                                    ; 5d
    1031310299    retn                                      ; c3
    10314 rtc_updating_:                               ; 0xf7169 LB 0x21
     10300rtc_updating_:                               ; 0xf7179 LB 0x21
    1031510301    push bp                                   ; 55
    1031610302    mov bp, sp                                ; 89 e5
     
    1031810304    mov dx, 061a8h                            ; ba a8 61
    1031910305    dec dx                                    ; 4a
    10320     je short 07181h                           ; 74 0e
     10306    je short 07191h                           ; 74 0e
    1032110307    mov ax, strict word 0000ah                ; b8 0a 00
    10322     call 017a5h                               ; e8 2c a6
     10308    call 017a5h                               ; e8 1c a6
    1032310309    test AL, strict byte 080h                 ; a8 80
    10324     jne short 07170h                          ; 75 f3
     10310    jne short 07180h                          ; 75 f3
    1032510311    xor ax, ax                                ; 31 c0
    10326     jmp short 07184h                          ; eb 03
     10312    jmp short 07194h                          ; eb 03
    1032710313    mov ax, strict word 00001h                ; b8 01 00
    1032810314    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1033010316    pop bp                                    ; 5d
    1033110317    retn                                      ; c3
    10332 _int70_function:                             ; 0xf718a LB 0xbe
     10318_int70_function:                             ; 0xf719a LB 0xbe
    1033310319    push bp                                   ; 55
    1033410320    mov bp, sp                                ; 89 e5
     
    1033610322    push ax                                   ; 50
    1033710323    mov ax, strict word 0000bh                ; b8 0b 00
    10338     call 017a5h                               ; e8 10 a6
     10324    call 017a5h                               ; e8 00 a6
    1033910325    mov dl, al                                ; 88 c2
    1034010326    mov byte [bp-004h], al                    ; 88 46 fc
    1034110327    mov ax, strict word 0000ch                ; b8 0c 00
    10342     call 017a5h                               ; e8 05 a6
     10328    call 017a5h                               ; e8 f5 a5
    1034310329    mov dh, al                                ; 88 c6
    1034410330    test dl, 060h                             ; f6 c2 60
    10345     je near 0722fh                            ; 0f 84 86 00
     10331    je near 0723fh                            ; 0f 84 86 00
    1034610332    test AL, strict byte 020h                 ; a8 20
    10347     je short 071b1h                           ; 74 04
     10333    je short 071c1h                           ; 74 04
    1034810334    sti                                       ; fb
    1034910335    int 04ah                                  ; cd 4a
    1035010336    cli                                       ; fa
    1035110337    test dh, 040h                             ; f6 c6 40
    10352     je near 0722fh                            ; 0f 84 77 00
     10338    je near 0723fh                            ; 0f 84 77 00
    1035310339    mov dx, 000a0h                            ; ba a0 00
    1035410340    mov ax, strict word 00040h                ; b8 40 00
    10355     call 01749h                               ; e8 88 a5
     10341    call 01749h                               ; e8 78 a5
    1035610342    test al, al                               ; 84 c0
    10357     je short 0722fh                           ; 74 6a
     10343    je short 0723fh                           ; 74 6a
    1035810344    mov dx, 0009ch                            ; ba 9c 00
    1035910345    mov ax, strict word 00040h                ; b8 40 00
    10360     call 01781h                               ; e8 b3 a5
     10346    call 01781h                               ; e8 a3 a5
    1036110347    test dx, dx                               ; 85 d2
    10362     jne short 0721bh                          ; 75 49
     10348    jne short 0722bh                          ; 75 49
    1036310349    cmp ax, 003d1h                            ; 3d d1 03
    10364     jnc short 0721bh                          ; 73 44
     10350    jnc short 0722bh                          ; 73 44
    1036510351    mov dx, 00098h                            ; ba 98 00
    1036610352    mov ax, strict word 00040h                ; b8 40 00
    10367     call 01765h                               ; e8 85 a5
     10353    call 01765h                               ; e8 75 a5
    1036810354    mov si, ax                                ; 89 c6
    1036910355    mov dx, 0009ah                            ; ba 9a 00
    1037010356    mov ax, strict word 00040h                ; b8 40 00
    10371     call 01765h                               ; e8 7a a5
     10357    call 01765h                               ; e8 6a a5
    1037210358    mov cx, ax                                ; 89 c1
    1037310359    xor bx, bx                                ; 31 db
    1037410360    mov dx, 000a0h                            ; ba a0 00
    1037510361    mov ax, strict word 00040h                ; b8 40 00
    10376     call 01757h                               ; e8 5f a5
     10362    call 01757h                               ; e8 4f a5
    1037710363    mov al, byte [bp-004h]                    ; 8a 46 fc
    1037810364    and AL, strict byte 037h                  ; 24 37
    1037910365    movzx dx, al                              ; 0f b6 d0
    1038010366    mov ax, strict word 0000bh                ; b8 0b 00
    10381     call 017c2h                               ; e8 bc a5
     10367    call 017c2h                               ; e8 ac a5
    1038210368    mov dx, cx                                ; 89 ca
    1038310369    mov ax, si                                ; 89 f0
    10384     call 01749h                               ; e8 3c a5
     10370    call 01749h                               ; e8 2c a5
    1038510371    or AL, strict byte 080h                   ; 0c 80
    1038610372    movzx bx, al                              ; 0f b6 d8
    1038710373    mov dx, cx                                ; 89 ca
    1038810374    mov ax, si                                ; 89 f0
    10389     call 01757h                               ; e8 3e a5
    10390     jmp short 0722fh                          ; eb 14
     10375    call 01757h                               ; e8 2e a5
     10376    jmp short 0723fh                          ; eb 14
    1039110377    mov bx, ax                                ; 89 c3
    1039210378    add bx, 0fc2fh                            ; 81 c3 2f fc
     
    1039510381    mov dx, 0009ch                            ; ba 9c 00
    1039610382    mov ax, strict word 00040h                ; b8 40 00
    10397     call 01793h                               ; e8 64 a5
    10398     call 0e030h                               ; e8 fe 6d
     10383    call 01793h                               ; e8 54 a5
     10384    call 0e030h                               ; e8 ee 6d
    1039910385    lea sp, [bp-002h]                         ; 8d 66 fe
    1040010386    pop si                                    ; 5e
    1040110387    pop bp                                    ; 5d
    1040210388    retn                                      ; c3
    10403     pop di                                    ; 5f
    10404     jc short 071c3h                           ; 72 88
    10405     jc short 071eah                           ; 72 ad
    10406     jc short 0721eh                           ; 72 df
    10407     jc short 0726fh                           ; 72 2e
    10408     jnc short 072a9h                          ; 73 66
    10409     jnc short 071eeh                          ; 73 a9
    10410     jnc short 07247h                          ; 73 00
     10389    outsw                                     ; 6f
     10390    jc short 071e3h                           ; 72 98
     10391    jc short 0720ah                           ; 72 bd
     10392    jc short 0723eh                           ; 72 ef
     10393    jc short 0728fh                           ; 72 3e
     10394    jnc short 072c9h                          ; 73 76
     10395    jnc short 0720eh                          ; 73 b9
     10396    jnc short 07267h                          ; 73 10
    1041110397    db  074h
    10412 _int1a_function:                             ; 0xf7248 LB 0x1c8
     10398_int1a_function:                             ; 0xf7258 LB 0x1c8
    1041310399    push bp                                   ; 55
    1041410400    mov bp, sp                                ; 89 e5
     
    1041610402    mov al, byte [bp+013h]                    ; 8a 46 13
    1041710403    cmp AL, strict byte 007h                  ; 3c 07
    10418     jnbe near 07284h                          ; 0f 87 2f 00
     10404    jnbe near 07294h                          ; 0f 87 2f 00
    1041910405    movzx bx, al                              ; 0f b6 d8
    1042010406    add bx, bx                                ; 01 db
    10421     jmp word [cs:bx+07238h]                   ; 2e ff a7 38 72
     10407    jmp word [cs:bx+07248h]                   ; 2e ff a7 48 72
    1042210408    cli                                       ; fa
    1042310409    mov bx, 0046eh                            ; bb 6e 04
     
    1045010436    sti                                       ; fb
    1045110437    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10452     jmp short 07284h                          ; eb d7
    10453     call 07169h                               ; e8 b9 fe
     10438    jmp short 07294h                          ; eb d7
     10439    call 07179h                               ; e8 b9 fe
    1045410440    test ax, ax                               ; 85 c0
    10455     je short 072b6h                           ; 74 02
    10456     jmp short 07284h                          ; eb ce
     10441    je short 072c6h                           ; 74 02
     10442    jmp short 07294h                          ; eb ce
    1045710443    xor ax, ax                                ; 31 c0
    10458     call 017a5h                               ; e8 ea a4
     10444    call 017a5h                               ; e8 da a4
    1045910445    mov byte [bp+00fh], al                    ; 88 46 0f
    1046010446    mov ax, strict word 00002h                ; b8 02 00
    10461     call 017a5h                               ; e8 e1 a4
     10447    call 017a5h                               ; e8 d1 a4
    1046210448    mov byte [bp+010h], al                    ; 88 46 10
    1046310449    mov ax, strict word 00004h                ; b8 04 00
    10464     call 017a5h                               ; e8 d8 a4
     10450    call 017a5h                               ; e8 c8 a4
    1046510451    mov bl, al                                ; 88 c3
    1046610452    mov byte [bp+011h], al                    ; 88 46 11
    1046710453    mov ax, strict word 0000bh                ; b8 0b 00
    10468     call 017a5h                               ; e8 cd a4
     10454    call 017a5h                               ; e8 bd a4
    1046910455    and AL, strict byte 001h                  ; 24 01
    1047010456    mov byte [bp+00eh], al                    ; 88 46 0e
    10471     jmp short 07324h                          ; eb 45
    10472     call 07169h                               ; e8 87 fe
     10457    jmp short 07334h                          ; eb 45
     10458    call 07179h                               ; e8 87 fe
    1047310459    test ax, ax                               ; 85 c0
    10474     je short 072e9h                           ; 74 03
    10475     call 07141h                               ; e8 58 fe
     10460    je short 072f9h                           ; 74 03
     10461    call 07151h                               ; e8 58 fe
    1047610462    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1047710463    xor ax, ax                                ; 31 c0
    10478     call 017c2h                               ; e8 d0 a4
     10464    call 017c2h                               ; e8 c0 a4
    1047910465    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1048010466    mov ax, strict word 00002h                ; b8 02 00
    10481     call 017c2h                               ; e8 c6 a4
     10467    call 017c2h                               ; e8 b6 a4
    1048210468    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1048310469    mov ax, strict word 00004h                ; b8 04 00
    10484     call 017c2h                               ; e8 bc a4
     10470    call 017c2h                               ; e8 ac a4
    1048510471    mov ax, strict word 0000bh                ; b8 0b 00
    10486     call 017a5h                               ; e8 99 a4
     10472    call 017a5h                               ; e8 89 a4
    1048710473    mov bl, al                                ; 88 c3
    1048810474    and bl, 060h                              ; 80 e3 60
     
    1049310479    movzx dx, bl                              ; 0f b6 d3
    1049410480    mov ax, strict word 0000bh                ; b8 0b 00
    10495     call 017c2h                               ; e8 9e a4
     10481    call 017c2h                               ; e8 8e a4
    1049610482    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1049710483    mov byte [bp+012h], bl                    ; 88 5e 12
    10498     jmp near 07284h                           ; e9 56 ff
     10484    jmp near 07294h                           ; e9 56 ff
    1049910485    mov byte [bp+013h], 000h                  ; c6 46 13 00
    10500     call 07169h                               ; e8 34 fe
     10486    call 07179h                               ; e8 34 fe
    1050110487    test ax, ax                               ; 85 c0
    10502     je short 0733ch                           ; 74 03
    10503     jmp near 07284h                           ; e9 48 ff
     10488    je short 0734ch                           ; 74 03
     10489    jmp near 07294h                           ; e9 48 ff
    1050410490    mov ax, strict word 00009h                ; b8 09 00
    10505     call 017a5h                               ; e8 63 a4
     10491    call 017a5h                               ; e8 53 a4
    1050610492    mov byte [bp+010h], al                    ; 88 46 10
    1050710493    mov ax, strict word 00008h                ; b8 08 00
    10508     call 017a5h                               ; e8 5a a4
     10494    call 017a5h                               ; e8 4a a4
    1050910495    mov byte [bp+00fh], al                    ; 88 46 0f
    1051010496    mov ax, strict word 00007h                ; b8 07 00
    10511     call 017a5h                               ; e8 51 a4
     10497    call 017a5h                               ; e8 41 a4
    1051210498    mov byte [bp+00eh], al                    ; 88 46 0e
    1051310499    mov ax, strict word 00032h                ; b8 32 00
    10514     call 017a5h                               ; e8 48 a4
     10500    call 017a5h                               ; e8 38 a4
    1051510501    mov byte [bp+011h], al                    ; 88 46 11
    1051610502    mov byte [bp+012h], al                    ; 88 46 12
    10517     jmp near 07284h                           ; e9 1e ff
    10518     call 07169h                               ; e8 00 fe
     10503    jmp near 07294h                           ; e9 1e ff
     10504    call 07179h                               ; e8 00 fe
    1051910505    test ax, ax                               ; 85 c0
    10520     je short 07373h                           ; 74 06
    10521     call 07141h                               ; e8 d1 fd
    10522     jmp near 07284h                           ; e9 11 ff
     10506    je short 07383h                           ; 74 06
     10507    call 07151h                               ; e8 d1 fd
     10508    jmp near 07294h                           ; e9 11 ff
    1052310509    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1052410510    mov ax, strict word 00009h                ; b8 09 00
    10525     call 017c2h                               ; e8 45 a4
     10511    call 017c2h                               ; e8 35 a4
    1052610512    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1052710513    mov ax, strict word 00008h                ; b8 08 00
    10528     call 017c2h                               ; e8 3b a4
     10514    call 017c2h                               ; e8 2b a4
    1052910515    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
    1053010516    mov ax, strict word 00007h                ; b8 07 00
    10531     call 017c2h                               ; e8 31 a4
     10517    call 017c2h                               ; e8 21 a4
    1053210518    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1053310519    mov ax, strict word 00032h                ; b8 32 00
    10534     call 017c2h                               ; e8 27 a4
     10520    call 017c2h                               ; e8 17 a4
    1053510521    mov ax, strict word 0000bh                ; b8 0b 00
    10536     call 017a5h                               ; e8 04 a4
     10522    call 017a5h                               ; e8 f4 a3
    1053710523    mov bl, al                                ; 88 c3
    1053810524    and bl, 07fh                              ; 80 e3 7f
    10539     jmp near 0731bh                           ; e9 72 ff
     10525    jmp near 0732bh                           ; e9 72 ff
    1054010526    mov ax, strict word 0000bh                ; b8 0b 00
    10541     call 017a5h                               ; e8 f6 a3
     10527    call 017a5h                               ; e8 e6 a3
    1054210528    mov bl, al                                ; 88 c3
    1054310529    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
    1054410530    test AL, strict byte 020h                 ; a8 20
    10545     je short 073bdh                           ; 74 03
    10546     jmp near 07284h                           ; e9 c7 fe
    10547     call 07169h                               ; e8 a9 fd
     10531    je short 073cdh                           ; 74 03
     10532    jmp near 07294h                           ; e9 c7 fe
     10533    call 07179h                               ; e8 a9 fd
    1054810534    test ax, ax                               ; 85 c0
    10549     je short 073c7h                           ; 74 03
    10550     call 07141h                               ; e8 7a fd
     10535    je short 073d7h                           ; 74 03
     10536    call 07151h                               ; e8 7a fd
    1055110537    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
    1055210538    mov ax, strict word 00001h                ; b8 01 00
    10553     call 017c2h                               ; e8 f1 a3
     10539    call 017c2h                               ; e8 e1 a3
    1055410540    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
    1055510541    mov ax, strict word 00003h                ; b8 03 00
    10556     call 017c2h                               ; e8 e7 a3
     10542    call 017c2h                               ; e8 d7 a3
    1055710543    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
    1055810544    mov ax, strict word 00005h                ; b8 05 00
    10559     call 017c2h                               ; e8 dd a3
     10545    call 017c2h                               ; e8 cd a3
    1056010546    mov dx, 000a1h                            ; ba a1 00
    1056110547    in AL, DX                                 ; ec
     
    1056910555    movzx dx, al                              ; 0f b6 d0
    1057010556    mov ax, strict word 0000bh                ; b8 0b 00
    10571     call 017c2h                               ; e8 c5 a3
    10572     jmp near 07284h                           ; e9 84 fe
     10557    call 017c2h                               ; e8 b5 a3
     10558    jmp near 07294h                           ; e9 84 fe
    1057310559    mov ax, strict word 0000bh                ; b8 0b 00
    10574     call 017a5h                               ; e8 9f a3
     10560    call 017a5h                               ; e8 8f a3
    1057510561    mov bl, al                                ; 88 c3
    1057610562    and AL, strict byte 057h                  ; 24 57
    1057710563    movzx dx, al                              ; 0f b6 d0
    10578     jmp near 0731eh                           ; e9 0e ff
    10579 send_to_mouse_ctrl_:                         ; 0xf7410 LB 0x34
     10564    jmp near 0732eh                           ; e9 0e ff
     10565send_to_mouse_ctrl_:                         ; 0xf7420 LB 0x34
    1058010566    push bp                                   ; 55
    1058110567    mov bp, sp                                ; 89 e5
     
    1058810574    ; sub ah, ah                                ; 2a e4
    1058910575    test AL, strict byte 002h                 ; a8 02
    10590     je short 0742fh                           ; 74 0e
     10576    je short 0743fh                           ; 74 0e
    1059110577    push 00900h                               ; 68 00 09
    1059210578    push 0117ah                               ; 68 7a 11
    1059310579    push strict byte 00007h                   ; 6a 07
    10594     call 01a6bh                               ; e8 3f a6
     10580    call 01a6bh                               ; e8 2f a6
    1059510581    add sp, strict byte 00006h                ; 83 c4 06
    1059610582    mov AL, strict byte 0d4h                  ; b0 d4
     
    1060610592    pop bp                                    ; 5d
    1060710593    retn                                      ; c3
    10608 get_mouse_data_:                             ; 0xf7444 LB 0x5c
     10594get_mouse_data_:                             ; 0xf7454 LB 0x5c
    1060910595    push bp                                   ; 55
    1061010596    mov bp, sp                                ; 89 e5
     
    1062110607    and ax, strict word 00021h                ; 25 21 00
    1062210608    cmp ax, strict word 00021h                ; 3d 21 00
    10623     je short 07486h                           ; 74 27
     10609    je short 07496h                           ; 74 27
    1062410610    test cx, cx                               ; 85 c9
    10625     je short 07486h                           ; 74 23
     10611    je short 07496h                           ; 74 23
    1062610612    mov dx, strict word 00061h                ; ba 61 00
    1062710613    in AL, DX                                 ; ec
     
    1063910625    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1064010626    cmp dx, ax                                ; 39 c2
    10641     je short 0746eh                           ; 74 eb
     10627    je short 0747eh                           ; 74 eb
    1064210628    dec cx                                    ; 49
    10643     jmp short 07451h                          ; eb cb
     10629    jmp short 07461h                          ; eb cb
    1064410630    test cx, cx                               ; 85 c9
    10645     jne short 0748eh                          ; 75 04
     10631    jne short 0749eh                          ; 75 04
    1064610632    mov AL, strict byte 001h                  ; b0 01
    10647     jmp short 07499h                          ; eb 0b
     10633    jmp short 074a9h                          ; eb 0b
    1064810634    mov dx, strict word 00060h                ; ba 60 00
    1064910635    in AL, DX                                 ; ec
     
    1065710643    pop bp                                    ; 5d
    1065810644    retn                                      ; c3
    10659 set_kbd_command_byte_:                       ; 0xf74a0 LB 0x32
     10645set_kbd_command_byte_:                       ; 0xf74b0 LB 0x32
    1066010646    push bp                                   ; 55
    1066110647    mov bp, sp                                ; 89 e5
     
    1066810654    ; sub ah, ah                                ; 2a e4
    1066910655    test AL, strict byte 002h                 ; a8 02
    10670     je short 074bfh                           ; 74 0e
     10656    je short 074cfh                           ; 74 0e
    1067110657    push 0090ah                               ; 68 0a 09
    1067210658    push 0117ah                               ; 68 7a 11
    1067310659    push strict byte 00007h                   ; 6a 07
    10674     call 01a6bh                               ; e8 af a5
     10660    call 01a6bh                               ; e8 9f a5
    1067510661    add sp, strict byte 00006h                ; 83 c4 06
    1067610662    mov AL, strict byte 060h                  ; b0 60
     
    1068510671    pop bp                                    ; 5d
    1068610672    retn                                      ; c3
    10687 _int74_function:                             ; 0xf74d2 LB 0xca
     10673_int74_function:                             ; 0xf74e2 LB 0xca
    1068810674    push bp                                   ; 55
    1068910675    mov bp, sp                                ; 89 e5
     
    1069110677    mov dx, strict word 0000eh                ; ba 0e 00
    1069210678    mov ax, strict word 00040h                ; b8 40 00
    10693     call 01765h                               ; e8 84 a2
     10679    call 01765h                               ; e8 74 a2
    1069410680    mov cx, ax                                ; 89 c1
    1069510681    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
     
    1070010686    and AL, strict byte 021h                  ; 24 21
    1070110687    cmp AL, strict byte 021h                  ; 3c 21
    10702     jne near 07588h                           ; 0f 85 92 00
     10688    jne near 07598h                           ; 0f 85 92 00
    1070310689    mov dx, strict word 00060h                ; ba 60 00
    1070410690    in AL, DX                                 ; ec
     
    1070810694    mov dx, strict word 00026h                ; ba 26 00
    1070910695    mov ax, cx                                ; 89 c8
    10710     call 01749h                               ; e8 43 a2
     10696    call 01749h                               ; e8 33 a2
    1071110697    mov byte [bp-006h], al                    ; 88 46 fa
    1071210698    mov dx, strict word 00027h                ; ba 27 00
    1071310699    mov ax, cx                                ; 89 c8
    10714     call 01749h                               ; e8 38 a2
     10700    call 01749h                               ; e8 28 a2
    1071510701    mov byte [bp-008h], al                    ; 88 46 f8
    1071610702    test AL, strict byte 080h                 ; a8 80
    10717     je short 07588h                           ; 74 70
     10703    je short 07598h                           ; 74 70
    1071810704    mov al, byte [bp-008h]                    ; 8a 46 f8
    1071910705    and AL, strict byte 007h                  ; 24 07
     
    1072610712    add dx, strict byte 00028h                ; 83 c2 28
    1072710713    mov ax, cx                                ; 89 c8
    10728     call 01757h                               ; e8 22 a2
     10714    call 01757h                               ; e8 12 a2
    1072910715    mov al, byte [bp-004h]                    ; 8a 46 fc
    1073010716    cmp al, byte [bp-002h]                    ; 3a 46 fe
    10731     jc short 07579h                           ; 72 3c
     10717    jc short 07589h                           ; 72 3c
    1073210718    mov dx, strict word 00028h                ; ba 28 00
    1073310719    mov ax, cx                                ; 89 c8
    10734     call 01749h                               ; e8 04 a2
     10720    call 01749h                               ; e8 f4 a1
    1073510721    xor ah, ah                                ; 30 e4
    1073610722    mov word [bp+00ch], ax                    ; 89 46 0c
    1073710723    mov dx, strict word 00029h                ; ba 29 00
    1073810724    mov ax, cx                                ; 89 c8
    10739     call 01749h                               ; e8 f7 a1
     10725    call 01749h                               ; e8 e7 a1
    1074010726    xor ah, ah                                ; 30 e4
    1074110727    mov word [bp+00ah], ax                    ; 89 46 0a
    1074210728    mov dx, strict word 0002ah                ; ba 2a 00
    1074310729    mov ax, cx                                ; 89 c8
    10744     call 01749h                               ; e8 ea a1
     10730    call 01749h                               ; e8 da a1
    1074510731    xor ah, ah                                ; 30 e4
    1074610732    mov word [bp+008h], ax                    ; 89 46 08
     
    1074910735    mov byte [bp-006h], ah                    ; 88 66 fa
    1075010736    test byte [bp-008h], 080h                 ; f6 46 f8 80
    10751     je short 0757ch                           ; 74 0a
     10737    je short 0758ch                           ; 74 0a
    1075210738    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
    10753     jmp short 0757ch                          ; eb 03
     10739    jmp short 0758ch                          ; eb 03
    1075410740    inc byte [bp-006h]                        ; fe 46 fa
    1075510741    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
    1075610742    mov dx, strict word 00026h                ; ba 26 00
    1075710743    mov ax, cx                                ; 89 c8
    10758     call 01757h                               ; e8 cf a1
     10744    call 01757h                               ; e8 bf a1
    1075910745    mov sp, bp                                ; 89 ec
    1076010746    pop bp                                    ; 5d
    1076110747    retn                                      ; c3
    10762     loopne 07603h                             ; e0 75
    10763     push si                                   ; 56
    10764     jbe short 0756ah                          ; 76 d9
    10765     jbe short 075fdh                          ; 76 6a
    10766     jnbe short 0756dh                         ; 77 d8
    10767     jnbe short 075c3h                         ; 77 2c
    10768     jbe short 07599h                          ; 76 00
    10769     js short 07560h                           ; 78 c5
    10770     db  078h
    10771 _int15_function_mouse:                       ; 0xf759c LB 0x38b
     10748    db  0f0h, 075h, 066h, 076h, 0e9h, 076h, 07ah, 077h, 0e8h, 077h, 03ch, 076h, 010h, 078h, 0d5h, 078h
     10749_int15_function_mouse:                       ; 0xf75ac LB 0x38b
    1077210750    push bp                                   ; 55
    1077310751    mov bp, sp                                ; 89 e5
     
    1077610754    mov dx, strict word 0000eh                ; ba 0e 00
    1077710755    mov ax, strict word 00040h                ; b8 40 00
    10778     call 01765h                               ; e8 b9 a1
     10756    call 01765h                               ; e8 a9 a1
    1077910757    mov cx, ax                                ; 89 c1
    1078010758    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
    10781     jbe short 075bfh                          ; 76 0b
     10759    jbe short 075cfh                          ; 76 0b
    1078210760    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1078310761    mov byte [bp+013h], 001h                  ; c6 46 13 01
    10784     jmp near 07921h                           ; e9 62 03
     10762    jmp near 07931h                           ; e9 62 03
    1078510763    mov ax, strict word 00065h                ; b8 65 00
    10786     call 074a0h                               ; e8 db fe
     10764    call 074b0h                               ; e8 db fe
    1078710765    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
    1078810766    mov byte [bp+013h], 000h                  ; c6 46 13 00
    1078910767    mov al, byte [bp+012h]                    ; 8a 46 12
    1079010768    cmp AL, strict byte 007h                  ; 3c 07
    10791     jnbe near 07908h                          ; 0f 87 32 03
     10769    jnbe near 07918h                          ; 0f 87 32 03
    1079210770    movzx si, al                              ; 0f b6 f0
    1079310771    add si, si                                ; 01 f6
    10794     jmp word [cs:si+0758ch]                   ; 2e ff a4 8c 75
     10772    jmp word [cs:si+0759ch]                   ; 2e ff a4 9c 75
    1079510773    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
    10796     jnbe near 07913h                          ; 0f 87 2b 03
     10774    jnbe near 07923h                          ; 0f 87 2b 03
    1079710775    mov dx, strict word 00027h                ; ba 27 00
    1079810776    mov ax, cx                                ; 89 c8
    10799     call 01749h                               ; e8 59 a1
     10777    call 01749h                               ; e8 49 a1
    1080010778    test AL, strict byte 080h                 ; a8 80
    10801     jne short 075ffh                          ; 75 0b
     10779    jne short 0760fh                          ; 75 0b
    1080210780    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1080310781    mov byte [bp+013h], 005h                  ; c6 46 13 05
    10804     jmp near 0791bh                           ; e9 1c 03
     10782    jmp near 0792bh                           ; e9 1c 03
    1080510783    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
    1080610784    db  00fh, 094h, 0c0h
     
    1080810786    add AL, strict byte 0f4h                  ; 04 f4
    1080910787    xor ah, ah                                ; 30 e4
    10810     call 07410h                               ; e8 03 fe
     10788    call 07420h                               ; e8 03 fe
    1081110789    test al, al                               ; 84 c0
    10812     jne near 078a1h                           ; 0f 85 8e 02
     10790    jne near 078b1h                           ; 0f 85 8e 02
    1081310791    mov dx, ss                                ; 8c d2
    1081410792    lea ax, [bp-008h]                         ; 8d 46 f8
    10815     call 07444h                               ; e8 29 fe
     10793    call 07454h                               ; e8 29 fe
    1081610794    test al, al                               ; 84 c0
    10817     je near 0791bh                            ; 0f 84 fa 02
     10795    je near 0792bh                            ; 0f 84 fa 02
    1081810796    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10819     jne near 078a1h                           ; 0f 85 78 02
    10820     jmp near 0791bh                           ; e9 ef 02
     10797    jne near 078b1h                           ; 0f 85 78 02
     10798    jmp near 0792bh                           ; e9 ef 02
    1082110799    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1082210800    cmp AL, strict byte 001h                  ; 3c 01
    10823     jc short 07637h                           ; 72 04
     10801    jc short 07647h                           ; 72 04
    1082410802    cmp AL, strict byte 008h                  ; 3c 08
    10825     jbe short 0763ah                          ; 76 03
    10826     jmp near 077cdh                           ; e9 93 01
     10803    jbe short 0764ah                          ; 76 03
     10804    jmp near 077ddh                           ; e9 93 01
    1082710805    mov dx, strict word 00027h                ; ba 27 00
    1082810806    mov ax, cx                                ; 89 c8
    10829     call 01749h                               ; e8 07 a1
     10807    call 01749h                               ; e8 f7 a0
    1083010808    mov ah, byte [bp+00dh]                    ; 8a 66 0d
    1083110809    db  0feh, 0cch
     
    1083610814    mov dx, strict word 00027h                ; ba 27 00
    1083710815    mov ax, cx                                ; 89 c8
    10838     call 01757h                               ; e8 01 a1
     10816    call 01757h                               ; e8 f1 a0
    1083910817    mov dx, strict word 00026h                ; ba 26 00
    1084010818    mov ax, cx                                ; 89 c8
    10841     call 01749h                               ; e8 eb a0
     10819    call 01749h                               ; e8 db a0
    1084210820    and AL, strict byte 0f8h                  ; 24 f8
    1084310821    movzx bx, al                              ; 0f b6 d8
    1084410822    mov dx, strict word 00026h                ; ba 26 00
    1084510823    mov ax, cx                                ; 89 c8
    10846     call 01757h                               ; e8 ec a0
     10824    call 01757h                               ; e8 dc a0
    1084710825    mov ax, 000ffh                            ; b8 ff 00
    10848     call 07410h                               ; e8 9f fd
     10826    call 07420h                               ; e8 9f fd
    1084910827    test al, al                               ; 84 c0
    10850     jne near 078a1h                           ; 0f 85 2a 02
     10828    jne near 078b1h                           ; 0f 85 2a 02
    1085110829    mov dx, ss                                ; 8c d2
    1085210830    lea ax, [bp-004h]                         ; 8d 46 fc
    10853     call 07444h                               ; e8 c5 fd
     10831    call 07454h                               ; e8 c5 fd
    1085410832    mov cl, al                                ; 88 c1
    1085510833    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
    10856     jne short 07692h                          ; 75 0b
     10834    jne short 076a2h                          ; 75 0b
    1085710835    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1085810836    mov byte [bp+013h], 004h                  ; c6 46 13 04
    10859     jmp near 0791bh                           ; e9 89 02
     10837    jmp near 0792bh                           ; e9 89 02
    1086010838    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
    10861     je short 076a8h                           ; 74 10
     10839    je short 076b8h                           ; 74 10
    1086210840    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
    1086310841    push ax                                   ; 50
    1086410842    push 00915h                               ; 68 15 09
    1086510843    push strict byte 00007h                   ; 6a 07
    10866     call 01a6bh                               ; e8 c6 a3
     10844    call 01a6bh                               ; e8 b6 a3
    1086710845    add sp, strict byte 00006h                ; 83 c4 06
    1086810846    test cl, cl                               ; 84 c9
    10869     jne near 078a1h                           ; 0f 85 f3 01
     10847    jne near 078b1h                           ; 0f 85 f3 01
    1087010848    mov dx, ss                                ; 8c d2
    1087110849    lea ax, [bp-008h]                         ; 8d 46 f8
    10872     call 07444h                               ; e8 8e fd
     10850    call 07454h                               ; e8 8e fd
    1087310851    test al, al                               ; 84 c0
    10874     jne near 078a1h                           ; 0f 85 e5 01
     10852    jne near 078b1h                           ; 0f 85 e5 01
    1087510853    mov dx, ss                                ; 8c d2
    1087610854    lea ax, [bp-006h]                         ; 8d 46 fa
    10877     call 07444h                               ; e8 80 fd
     10855    call 07454h                               ; e8 80 fd
    1087810856    test al, al                               ; 84 c0
    10879     jne near 078a1h                           ; 0f 85 d7 01
     10857    jne near 078b1h                           ; 0f 85 d7 01
    1088010858    mov al, byte [bp-008h]                    ; 8a 46 f8
    1088110859    mov byte [bp+00ch], al                    ; 88 46 0c
    1088210860    mov al, byte [bp-006h]                    ; 8a 46 fa
    1088310861    mov byte [bp+00dh], al                    ; 88 46 0d
    10884     jmp near 0791bh                           ; e9 42 02
     10862    jmp near 0792bh                           ; e9 42 02
    1088510863    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1088610864    cmp AL, strict byte 003h                  ; 3c 03
    10887     jc short 076f0h                           ; 72 10
    10888     jbe short 0770eh                          ; 76 2c
     10865    jc short 07700h                           ; 72 10
     10866    jbe short 0771eh                          ; 76 2c
    1088910867    cmp AL, strict byte 006h                  ; 3c 06
    10890     je short 07720h                           ; 74 3a
     10868    je short 07730h                           ; 74 3a
    1089110869    cmp AL, strict byte 005h                  ; 3c 05
    10892     je short 0771ah                           ; 74 30
     10870    je short 0772ah                           ; 74 30
    1089310871    cmp AL, strict byte 004h                  ; 3c 04
    10894     je short 07714h                           ; 74 26
    10895     jmp short 07726h                          ; eb 36
     10872    je short 07724h                           ; 74 26
     10873    jmp short 07736h                          ; eb 36
    1089610874    cmp AL, strict byte 002h                  ; 3c 02
    10897     je short 07708h                           ; 74 14
     10875    je short 07718h                           ; 74 14
    1089810876    cmp AL, strict byte 001h                  ; 3c 01
    10899     je short 07702h                           ; 74 0a
     10877    je short 07712h                           ; 74 0a
    1090010878    test al, al                               ; 84 c0
    10901     jne short 07726h                          ; 75 2a
     10879    jne short 07736h                          ; 75 2a
    1090210880    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
    10903     jmp short 0772ah                          ; eb 28
     10881    jmp short 0773ah                          ; eb 28
    1090410882    mov byte [bp-008h], 014h                  ; c6 46 f8 14
    10905     jmp short 0772ah                          ; eb 22
     10883    jmp short 0773ah                          ; eb 22
    1090610884    mov byte [bp-008h], 028h                  ; c6 46 f8 28
    10907     jmp short 0772ah                          ; eb 1c
     10885    jmp short 0773ah                          ; eb 1c
    1090810886    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
    10909     jmp short 0772ah                          ; eb 16
     10887    jmp short 0773ah                          ; eb 16
    1091010888    mov byte [bp-008h], 050h                  ; c6 46 f8 50
    10911     jmp short 0772ah                          ; eb 10
     10889    jmp short 0773ah                          ; eb 10
    1091210890    mov byte [bp-008h], 064h                  ; c6 46 f8 64
    10913     jmp short 0772ah                          ; eb 0a
     10891    jmp short 0773ah                          ; eb 0a
    1091410892    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
    10915     jmp short 0772ah                          ; eb 04
     10893    jmp short 0773ah                          ; eb 04
    1091610894    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1091710895    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
    10918     jbe short 0775fh                          ; 76 2f
     10896    jbe short 0776fh                          ; 76 2f
    1091910897    mov ax, 000f3h                            ; b8 f3 00
    10920     call 07410h                               ; e8 da fc
     10898    call 07420h                               ; e8 da fc
    1092110899    test al, al                               ; 84 c0
    10922     jne short 07754h                          ; 75 1a
     10900    jne short 07764h                          ; 75 1a
    1092310901    mov dx, ss                                ; 8c d2
    1092410902    lea ax, [bp-006h]                         ; 8d 46 fa
    10925     call 07444h                               ; e8 02 fd
     10903    call 07454h                               ; e8 02 fd
    1092610904    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    10927     call 07410h                               ; e8 c7 fc
     10905    call 07420h                               ; e8 c7 fc
    1092810906    mov dx, ss                                ; 8c d2
    1092910907    lea ax, [bp-006h]                         ; 8d 46 fa
    10930     call 07444h                               ; e8 f3 fc
    10931     jmp near 0791bh                           ; e9 c7 01
     10908    call 07454h                               ; e8 f3 fc
     10909    jmp near 0792bh                           ; e9 c7 01
    1093210910    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093310911    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10934     jmp near 0791bh                           ; e9 bc 01
     10912    jmp near 0792bh                           ; e9 bc 01
    1093510913    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1093610914    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10937     jmp near 0791bh                           ; e9 b1 01
     10915    jmp near 0792bh                           ; e9 b1 01
    1093810916    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
    10939     jnc short 077cdh                          ; 73 5d
     10917    jnc short 077ddh                          ; 73 5d
    1094010918    mov ax, 000e8h                            ; b8 e8 00
    10941     call 07410h                               ; e8 9a fc
     10919    call 07420h                               ; e8 9a fc
    1094210920    test al, al                               ; 84 c0
    10943     jne short 077c2h                          ; 75 48
     10921    jne short 077d2h                          ; 75 48
    1094410922    mov dx, ss                                ; 8c d2
    1094510923    lea ax, [bp-008h]                         ; 8d 46 f8
    10946     call 07444h                               ; e8 c2 fc
     10924    call 07454h                               ; e8 c2 fc
    1094710925    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10948     je short 07798h                           ; 74 10
     10926    je short 077a8h                           ; 74 10
    1094910927    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1095010928    push ax                                   ; 50
    1095110929    push 00940h                               ; 68 40 09
    1095210930    push strict byte 00007h                   ; 6a 07
    10953     call 01a6bh                               ; e8 d6 a2
     10931    call 01a6bh                               ; e8 c6 a2
    1095410932    add sp, strict byte 00006h                ; 83 c4 06
    1095510933    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    10956     call 07410h                               ; e8 71 fc
     10934    call 07420h                               ; e8 71 fc
    1095710935    mov dx, ss                                ; 8c d2
    1095810936    lea ax, [bp-008h]                         ; 8d 46 f8
    10959     call 07444h                               ; e8 9d fc
     10937    call 07454h                               ; e8 9d fc
    1096010938    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    10961     je near 0791bh                            ; 0f 84 6c 01
     10939    je near 0792bh                            ; 0f 84 6c 01
    1096210940    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1096310941    push ax                                   ; 50
    1096410942    push 00940h                               ; 68 40 09
    1096510943    push strict byte 00007h                   ; 6a 07
    10966     call 01a6bh                               ; e8 af a2
     10944    call 01a6bh                               ; e8 9f a2
    1096710945    add sp, strict byte 00006h                ; 83 c4 06
    10968     jmp near 0791bh                           ; e9 59 01
     10946    jmp near 0792bh                           ; e9 59 01
    1096910947    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097010948    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10971     jmp near 0791bh                           ; e9 4e 01
     10949    jmp near 0792bh                           ; e9 4e 01
    1097210950    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1097310951    mov byte [bp+013h], 002h                  ; c6 46 13 02
    10974     jmp near 0791bh                           ; e9 43 01
     10952    jmp near 0792bh                           ; e9 43 01
    1097510953    mov ax, 000f2h                            ; b8 f2 00
    10976     call 07410h                               ; e8 32 fc
     10954    call 07420h                               ; e8 32 fc
    1097710955    test al, al                               ; 84 c0
    10978     jne short 077f5h                          ; 75 13
     10956    jne short 07805h                          ; 75 13
    1097910957    mov dx, ss                                ; 8c d2
    1098010958    lea ax, [bp-008h]                         ; 8d 46 f8
    10981     call 07444h                               ; e8 5a fc
     10959    call 07454h                               ; e8 5a fc
    1098210960    mov dx, ss                                ; 8c d2
    1098310961    lea ax, [bp-006h]                         ; 8d 46 fa
    10984     call 07444h                               ; e8 52 fc
    10985     jmp near 076d0h                           ; e9 db fe
     10962    call 07454h                               ; e8 52 fc
     10963    jmp near 076e0h                           ; e9 db fe
    1098610964    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1098710965    mov byte [bp+013h], 003h                  ; c6 46 13 03
    10988     jmp near 0791bh                           ; e9 1b 01
     10966    jmp near 0792bh                           ; e9 1b 01
    1098910967    mov al, byte [bp+00dh]                    ; 8a 46 0d
    1099010968    test al, al                               ; 84 c0
    10991     jbe short 0780eh                          ; 76 07
     10969    jbe short 0781eh                          ; 76 07
    1099210970    cmp AL, strict byte 002h                  ; 3c 02
    10993     jbe short 07877h                          ; 76 6c
    10994     jmp near 078abh                           ; e9 9d 00
     10971    jbe short 07887h                          ; 76 6c
     10972    jmp near 078bbh                           ; e9 9d 00
    1099510973    mov ax, 000e9h                            ; b8 e9 00
    10996     call 07410h                               ; e8 fc fb
     10974    call 07420h                               ; e8 fc fb
    1099710975    test al, al                               ; 84 c0
    10998     jne near 078a1h                           ; 0f 85 87 00
     10976    jne near 078b1h                           ; 0f 85 87 00
    1099910977    mov dx, ss                                ; 8c d2
    1100010978    lea ax, [bp-008h]                         ; 8d 46 f8
    11001     call 07444h                               ; e8 22 fc
     10979    call 07454h                               ; e8 22 fc
    1100210980    mov cl, al                                ; 88 c1
    1100310981    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    11004     je short 0783ah                           ; 74 10
     10982    je short 0784ah                           ; 74 10
    1100510983    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1100610984    push ax                                   ; 50
    1100710985    push 00940h                               ; 68 40 09
    1100810986    push strict byte 00007h                   ; 6a 07
    11009     call 01a6bh                               ; e8 34 a2
     10987    call 01a6bh                               ; e8 24 a2
    1101010988    add sp, strict byte 00006h                ; 83 c4 06
    1101110989    test cl, cl                               ; 84 c9
    11012     jne short 078a1h                          ; 75 63
     10990    jne short 078b1h                          ; 75 63
    1101310991    mov dx, ss                                ; 8c d2
    1101410992    lea ax, [bp-008h]                         ; 8d 46 f8
    11015     call 07444h                               ; e8 fe fb
     10993    call 07454h                               ; e8 fe fb
    1101610994    test al, al                               ; 84 c0
    11017     jne short 078a1h                          ; 75 57
     10995    jne short 078b1h                          ; 75 57
    1101810996    mov dx, ss                                ; 8c d2
    1101910997    lea ax, [bp-006h]                         ; 8d 46 fa
    11020     call 07444h                               ; e8 f2 fb
     10998    call 07454h                               ; e8 f2 fb
    1102110999    test al, al                               ; 84 c0
    11022     jne short 078a1h                          ; 75 4b
     11000    jne short 078b1h                          ; 75 4b
    1102311001    mov dx, ss                                ; 8c d2
    1102411002    lea ax, [bp-004h]                         ; 8d 46 fc
    11025     call 07444h                               ; e8 e6 fb
     11003    call 07454h                               ; e8 e6 fb
    1102611004    test al, al                               ; 84 c0
    11027     jne short 078a1h                          ; 75 3f
     11005    jne short 078b1h                          ; 75 3f
    1102811006    mov al, byte [bp-008h]                    ; 8a 46 f8
    1102911007    mov byte [bp+00ch], al                    ; 88 46 0c
     
    1103211010    mov al, byte [bp-004h]                    ; 8a 46 fc
    1103311011    mov byte [bp+00eh], al                    ; 88 46 0e
    11034     jmp near 0791bh                           ; e9 a4 00
     11012    jmp near 0792bh                           ; e9 a4 00
    1103511013    cmp AL, strict byte 001h                  ; 3c 01
    11036     jne short 07880h                          ; 75 05
     11014    jne short 07890h                          ; 75 05
    1103711015    mov ax, 000e6h                            ; b8 e6 00
    11038     jmp short 07883h                          ; eb 03
     11016    jmp short 07893h                          ; eb 03
    1103911017    mov ax, 000e7h                            ; b8 e7 00
    11040     call 07410h                               ; e8 8a fb
     11018    call 07420h                               ; e8 8a fb
    1104111019    mov cl, al                                ; 88 c1
    1104211020    test cl, cl                               ; 84 c9
    11043     jne short 0789bh                          ; 75 0f
     11021    jne short 078abh                          ; 75 0f
    1104411022    mov dx, ss                                ; 8c d2
    1104511023    lea ax, [bp-008h]                         ; 8d 46 f8
    11046     call 07444h                               ; e8 b0 fb
     11024    call 07454h                               ; e8 b0 fb
    1104711025    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
    1104811026    db  00fh, 095h, 0c1h
    1104911027    ; setne cl                                  ; 0f 95 c1
    1105011028    test cl, cl                               ; 84 c9
    11051     je near 0791bh                            ; 0f 84 7a 00
     11029    je near 0792bh                            ; 0f 84 7a 00
    1105211030    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1105311031    mov byte [bp+013h], 003h                  ; c6 46 13 03
    11054     jmp short 0791bh                          ; eb 70
     11032    jmp short 0792bh                          ; eb 70
    1105511033    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
    1105611034    push ax                                   ; 50
    1105711035    push 0096ch                               ; 68 6c 09
    1105811036    push strict byte 00007h                   ; 6a 07
    11059     call 01a6bh                               ; e8 b3 a1
     11037    call 01a6bh                               ; e8 a3 a1
    1106011038    add sp, strict byte 00006h                ; 83 c4 06
    1106111039    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1106211040    mov byte [bp+013h], 001h                  ; c6 46 13 01
    11063     jmp short 0791bh                          ; eb 56
     11041    jmp short 0792bh                          ; eb 56
    1106411042    mov si, word [bp+00ch]                    ; 8b 76 0c
    1106511043    mov bx, si                                ; 89 f3
    1106611044    mov dx, strict word 00022h                ; ba 22 00
    1106711045    mov ax, cx                                ; 89 c8
    11068     call 01773h                               ; e8 a1 9e
     11046    call 01773h                               ; e8 91 9e
    1106911047    mov bx, word [bp+014h]                    ; 8b 5e 14
    1107011048    mov dx, strict word 00024h                ; ba 24 00
    1107111049    mov ax, cx                                ; 89 c8
    11072     call 01773h                               ; e8 96 9e
     11050    call 01773h                               ; e8 86 9e
    1107311051    mov dx, strict word 00027h                ; ba 27 00
    1107411052    mov ax, cx                                ; 89 c8
    11075     call 01749h                               ; e8 64 9e
     11053    call 01749h                               ; e8 54 9e
    1107611054    mov ah, al                                ; 88 c4
    1107711055    test si, si                               ; 85 f6
    11078     jne short 078f9h                          ; 75 0e
     11056    jne short 07909h                          ; 75 0e
    1107911057    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
    11080     jne short 078f9h                          ; 75 08
     11058    jne short 07909h                          ; 75 08
    1108111059    test AL, strict byte 080h                 ; a8 80
    11082     je short 078fbh                           ; 74 06
     11060    je short 0790bh                           ; 74 06
    1108311061    and AL, strict byte 07fh                  ; 24 7f
    11084     jmp short 078fbh                          ; eb 02
     11062    jmp short 0790bh                          ; eb 02
    1108511063    or AL, strict byte 080h                   ; 0c 80
    1108611064    movzx bx, al                              ; 0f b6 d8
    1108711065    mov dx, strict word 00027h                ; ba 27 00
    1108811066    mov ax, cx                                ; 89 c8
    11089     call 01757h                               ; e8 51 9e
    11090     jmp short 0791bh                          ; eb 13
     11067    call 01757h                               ; e8 41 9e
     11068    jmp short 0792bh                          ; eb 13
    1109111069    push 00986h                               ; 68 86 09
    1109211070    push strict byte 00007h                   ; 6a 07
    11093     call 01a6bh                               ; e8 5b a1
     11071    call 01a6bh                               ; e8 4b a1
    1109411072    add sp, strict byte 00004h                ; 83 c4 04
    1109511073    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
    1109611074    mov byte [bp+013h], 001h                  ; c6 46 13 01
    1109711075    mov ax, strict word 00047h                ; b8 47 00
    11098     call 074a0h                               ; e8 7f fb
     11076    call 074b0h                               ; e8 7f fb
    1109911077    lea sp, [bp-002h]                         ; 8d 66 fe
    1110011078    pop si                                    ; 5e
    1110111079    pop bp                                    ; 5d
    1110211080    retn                                      ; c3
    11103 _int17_function:                             ; 0xf7927 LB 0xb3
     11081_int17_function:                             ; 0xf7937 LB 0xb3
    1110411082    push bp                                   ; 55
    1110511083    mov bp, sp                                ; 89 e5
     
    1111111089    add dx, strict byte 00008h                ; 83 c2 08
    1111211090    mov ax, strict word 00040h                ; b8 40 00
    11113     call 01765h                               ; e8 2a 9e
     11091    call 01765h                               ; e8 1a 9e
    1111411092    mov bx, ax                                ; 89 c3
    1111511093    mov si, ax                                ; 89 c6
    1111611094    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
    11117     jnc near 079d0h                           ; 0f 83 89 00
     11095    jnc near 079e0h                           ; 0f 83 89 00
    1111811096    mov ax, word [bp+00eh]                    ; 8b 46 0e
    1111911097    cmp ax, strict word 00003h                ; 3d 03 00
    11120     jnc near 079d0h                           ; 0f 83 7f 00
     11098    jnc near 079e0h                           ; 0f 83 7f 00
    1112111099    test bx, bx                               ; 85 db
    11122     jbe near 079d0h                           ; 0f 86 79 00
     11100    jbe near 079e0h                           ; 0f 86 79 00
    1112311101    mov dx, ax                                ; 89 c2
    1112411102    add dx, strict byte 00078h                ; 83 c2 78
    1112511103    mov ax, strict word 00040h                ; b8 40 00
    11126     call 01749h                               ; e8 e7 9d
     11104    call 01749h                               ; e8 d7 9d
    1112711105    movzx cx, al                              ; 0f b6 c8
    1112811106    sal cx, 008h                              ; c1 e1 08
    1112911107    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
    11130     jne short 0799bh                          ; 75 2d
     11108    jne short 079abh                          ; 75 2d
    1113111109    mov al, byte [bp+012h]                    ; 8a 46 12
    1113211110    mov dx, bx                                ; 89 da
     
    1114811126    ; sub ah, ah                                ; 2a e4
    1114911127    test AL, strict byte 040h                 ; a8 40
    11150     je short 0799bh                           ; 74 07
     11128    je short 079abh                           ; 74 07
    1115111129    test cx, cx                               ; 85 c9
    11152     je short 0799bh                           ; 74 03
     11130    je short 079abh                           ; 74 03
    1115311131    dec cx                                    ; 49
    11154     jmp short 0798ah                          ; eb ef
     11132    jmp short 0799ah                          ; eb ef
    1115511133    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
    11156     jne short 079b7h                          ; 75 16
     11134    jne short 079c7h                          ; 75 16
    1115711135    lea dx, [si+002h]                         ; 8d 54 02
    1115811136    in AL, DX                                 ; ec
     
    1117311151    mov byte [bp+013h], al                    ; 88 46 13
    1117411152    test cx, cx                               ; 85 c9
    11175     jne short 079cah                          ; 75 04
     11153    jne short 079dah                          ; 75 04
    1117611154    or byte [bp+013h], 001h                   ; 80 4e 13 01
    1117711155    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
    11178     jmp short 079d4h                          ; eb 04
     11156    jmp short 079e4h                          ; eb 04
    1117911157    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
    1118011158    lea sp, [bp-002h]                         ; 8d 66 fe
     
    1118211160    pop bp                                    ; 5d
    1118311161    retn                                      ; c3
    11184 wait_:                                       ; 0xf79da LB 0xb2
     11162wait_:                                       ; 0xf79ea LB 0xb2
    1118511163    push bp                                   ; 55
    1118611164    mov bp, sp                                ; 89 e5
     
    1120011178    mov dx, 0046ch                            ; ba 6c 04
    1120111179    xor ax, ax                                ; 31 c0
    11202     call 01781h                               ; e8 84 9d
     11180    call 01781h                               ; e8 74 9d
    1120311181    mov word [bp-00eh], ax                    ; 89 46 f2
    1120411182    mov bx, dx                                ; 89 d3
     
    1120611184    mov dx, 0046ch                            ; ba 6c 04
    1120711185    xor ax, ax                                ; 31 c0
    11208     call 01781h                               ; e8 76 9d
     11186    call 01781h                               ; e8 66 9d
    1120911187    mov word [bp-012h], ax                    ; 89 46 ee
    1121011188    mov di, dx                                ; 89 d7
    1121111189    cmp dx, bx                                ; 39 da
    11212     jnbe short 07a1bh                         ; 77 07
    11213     jne short 07a22h                          ; 75 0c
     11190    jnbe short 07a2bh                         ; 77 07
     11191    jne short 07a32h                          ; 75 0c
    1121411192    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11215     jbe short 07a22h                          ; 76 07
     11193    jbe short 07a32h                          ; 76 07
    1121611194    sub ax, word [bp-00eh]                    ; 2b 46 f2
    1121711195    sbb dx, bx                                ; 19 da
    11218     jmp short 07a2dh                          ; eb 0b
     11196    jmp short 07a3dh                          ; eb 0b
    1121911197    cmp dx, bx                                ; 39 da
    11220     jc short 07a2dh                           ; 72 07
    11221     jne short 07a31h                          ; 75 09
     11198    jc short 07a3dh                           ; 72 07
     11199    jne short 07a41h                          ; 75 09
    1122211200    cmp ax, word [bp-00eh]                    ; 3b 46 f2
    11223     jnc short 07a31h                          ; 73 04
     11201    jnc short 07a41h                          ; 73 04
    1122411202    sub si, ax                                ; 29 c6
    1122511203    sbb cx, dx                                ; 19 d1
     
    1122911207    mov ax, 00100h                            ; b8 00 01
    1123011208    int 016h                                  ; cd 16
    11231     je near 07a47h                            ; 0f 84 05 00
     11209    je near 07a57h                            ; 0f 84 05 00
    1123211210    mov AL, strict byte 001h                  ; b0 01
    11233     jmp near 07a49h                           ; e9 02 00
     11211    jmp near 07a59h                           ; e9 02 00
    1123411212    db  032h, 0c0h
    1123511213    ; xor al, al                                ; 32 c0
    1123611214    test al, al                               ; 84 c0
    11237     je short 07a71h                           ; 74 24
     11215    je short 07a81h                           ; 74 24
    1123811216    db  033h, 0c0h
    1123911217    ; xor ax, ax                                ; 33 c0
     
    1124611224    push 009a8h                               ; 68 a8 09
    1124711225    push strict byte 00004h                   ; 6a 04
    11248     call 01a6bh                               ; e8 07 a0
     11226    call 01a6bh                               ; e8 f7 9f
    1124911227    add sp, strict byte 00006h                ; 83 c4 06
    1125011228    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11251     je short 07a71h                           ; 74 04
     11229    je short 07a81h                           ; 74 04
    1125211230    mov al, dl                                ; 88 d0
    11253     jmp short 07a83h                          ; eb 12
     11231    jmp short 07a93h                          ; eb 12
    1125411232    test cx, cx                               ; 85 c9
    11255     jnle short 07a02h                         ; 7f 8d
    11256     jne short 07a7bh                          ; 75 04
     11233    jnle short 07a12h                         ; 7f 8d
     11234    jne short 07a8bh                          ; 75 04
    1125711235    test si, si                               ; 85 f6
    11258     jnbe short 07a02h                         ; 77 87
     11236    jnbe short 07a12h                         ; 77 87
    1125911237    mov ax, word [bp-010h]                    ; 8b 46 f0
    1126011238    push ax                                   ; 50
     
    1126811246    pop bp                                    ; 5d
    1126911247    retn                                      ; c3
    11270 read_logo_byte_:                             ; 0xf7a8c LB 0x16
     11248read_logo_byte_:                             ; 0xf7a9c LB 0x16
    1127111249    push bp                                   ; 55
    1127211250    mov bp, sp                                ; 89 e5
     
    1128311261    pop bp                                    ; 5d
    1128411262    retn                                      ; c3
    11285 read_logo_word_:                             ; 0xf7aa2 LB 0x14
     11263read_logo_word_:                             ; 0xf7ab2 LB 0x14
    1128611264    push bp                                   ; 55
    1128711265    mov bp, sp                                ; 89 e5
     
    1129611274    pop bp                                    ; 5d
    1129711275    retn                                      ; c3
    11298 print_detected_harddisks_:                   ; 0xf7ab6 LB 0x130
     11276print_detected_harddisks_:                   ; 0xf7ac6 LB 0x130
    1129911277    push bp                                   ; 55
    1130011278    mov bp, sp                                ; 89 e5
     
    1130811286    mov dx, strict word 0000eh                ; ba 0e 00
    1130911287    mov ax, strict word 00040h                ; b8 40 00
    11310     call 01765h                               ; e8 9c 9c
     11288    call 01765h                               ; e8 8c 9c
    1131111289    mov si, ax                                ; 89 c6
    1131211290    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     
    1131411292    xor ch, ch                                ; 30 ed
    1131511293    mov dx, 00304h                            ; ba 04 03
    11316     call 01749h                               ; e8 70 9c
     11294    call 01749h                               ; e8 60 9c
    1131711295    mov byte [bp-00eh], al                    ; 88 46 f2
    1131811296    xor bl, bl                                ; 30 db
    1131911297    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
    11320     jnc near 07bb8h                           ; 0f 83 d3 00
     11298    jnc near 07bc8h                           ; 0f 83 d3 00
    1132111299    movzx dx, bl                              ; 0f b6 d3
    1132211300    add dx, 00305h                            ; 81 c2 05 03
    1132311301    mov ax, si                                ; 89 f0
    11324     call 01749h                               ; e8 58 9c
     11302    call 01749h                               ; e8 48 9c
    1132511303    mov bh, al                                ; 88 c7
    1132611304    cmp AL, strict byte 00ch                  ; 3c 0c
    11327     jc short 07b1bh                           ; 72 24
     11305    jc short 07b2bh                           ; 72 24
    1132811306    test cl, cl                               ; 84 c9
    11329     jne short 07b08h                          ; 75 0d
     11307    jne short 07b18h                          ; 75 0d
    1133011308    push 009b9h                               ; 68 b9 09
    1133111309    push strict byte 00002h                   ; 6a 02
    11332     call 01a6bh                               ; e8 68 9f
     11310    call 01a6bh                               ; e8 58 9f
    1133311311    add sp, strict byte 00004h                ; 83 c4 04
    1133411312    mov CL, strict byte 001h                  ; b1 01
     
    1133811316    push 009ceh                               ; 68 ce 09
    1133911317    push strict byte 00002h                   ; 6a 02
    11340     call 01a6bh                               ; e8 56 9f
     11318    call 01a6bh                               ; e8 46 9f
    1134111319    add sp, strict byte 00006h                ; 83 c4 06
    11342     jmp near 07bb3h                           ; e9 98 00
     11320    jmp near 07bc3h                           ; e9 98 00
    1134311321    cmp AL, strict byte 008h                  ; 3c 08
    11344     jc short 07b32h                           ; 72 13
     11322    jc short 07b42h                           ; 72 13
    1134511323    test ch, ch                               ; 84 ed
    11346     jne short 07b30h                          ; 75 0d
     11324    jne short 07b40h                          ; 75 0d
    1134711325    push 009e1h                               ; 68 e1 09
    1134811326    push strict byte 00002h                   ; 6a 02
    11349     call 01a6bh                               ; e8 40 9f
     11327    call 01a6bh                               ; e8 30 9f
    1135011328    add sp, strict byte 00004h                ; 83 c4 04
    1135111329    mov CH, strict byte 001h                  ; b5 01
    11352     jmp short 07b08h                          ; eb d6
     11330    jmp short 07b18h                          ; eb d6
    1135311331    cmp AL, strict byte 004h                  ; 3c 04
    11354     jnc short 07b4dh                          ; 73 17
     11332    jnc short 07b5dh                          ; 73 17
    1135511333    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11356     jne short 07b4dh                          ; 75 11
     11334    jne short 07b5dh                          ; 75 11
    1135711335    push 009f6h                               ; 68 f6 09
    1135811336    push strict byte 00002h                   ; 6a 02
    11359     call 01a6bh                               ; e8 27 9f
     11337    call 01a6bh                               ; e8 17 9f
    1136011338    add sp, strict byte 00004h                ; 83 c4 04
    1136111339    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
    11362     jmp short 07b63h                          ; eb 16
     11340    jmp short 07b73h                          ; eb 16
    1136311341    cmp bh, 004h                              ; 80 ff 04
    11364     jc short 07b63h                           ; 72 11
     11342    jc short 07b73h                           ; 72 11
    1136511343    test cl, cl                               ; 84 c9
    11366     jne short 07b63h                          ; 75 0d
     11344    jne short 07b73h                          ; 75 0d
    1136711345    push 00a08h                               ; 68 08 0a
    1136811346    push strict byte 00002h                   ; 6a 02
    11369     call 01a6bh                               ; e8 0d 9f
     11347    call 01a6bh                               ; e8 fd 9e
    1137011348    add sp, strict byte 00004h                ; 83 c4 04
    1137111349    mov CL, strict byte 001h                  ; b1 01
     
    1137511353    push 00a1ch                               ; 68 1c 0a
    1137611354    push strict byte 00002h                   ; 6a 02
    11377     call 01a6bh                               ; e8 fb 9e
     11355    call 01a6bh                               ; e8 eb 9e
    1137811356    add sp, strict byte 00006h                ; 83 c4 06
    1137911357    cmp bh, 004h                              ; 80 ff 04
    11380     jc short 07b7bh                           ; 72 03
     11358    jc short 07b8bh                           ; 72 03
    1138111359    sub bh, 004h                              ; 80 ef 04
    1138211360    movzx ax, bh                              ; 0f b6 c7
     
    1138611364    sar ax, 1                                 ; d1 f8
    1138711365    test ax, ax                               ; 85 c0
    11388     je short 07b8ch                           ; 74 05
     11366    je short 07b9ch                           ; 74 05
    1138911367    push 00a26h                               ; 68 26 0a
    11390     jmp short 07b8fh                          ; eb 03
     11368    jmp short 07b9fh                          ; eb 03
    1139111369    push 00a31h                               ; 68 31 0a
    1139211370    push strict byte 00002h                   ; 6a 02
    11393     call 01a6bh                               ; e8 d7 9e
     11371    call 01a6bh                               ; e8 c7 9e
    1139411372    add sp, strict byte 00004h                ; 83 c4 04
    1139511373    movzx ax, bh                              ; 0f b6 c7
     
    1139811376    idiv di                                   ; f7 ff
    1139911377    test dx, dx                               ; 85 d2
    11400     je short 07ba9h                           ; 74 05
     11378    je short 07bb9h                           ; 74 05
    1140111379    push 00a3ah                               ; 68 3a 0a
    11402     jmp short 07bach                          ; eb 03
     11380    jmp short 07bbch                          ; eb 03
    1140311381    push 00a40h                               ; 68 40 0a
    1140411382    push di                                   ; 57
    11405     call 01a6bh                               ; e8 bb 9e
     11383    call 01a6bh                               ; e8 ab 9e
    1140611384    add sp, strict byte 00004h                ; 83 c4 04
    1140711385    db  0feh, 0c3h
    1140811386    ; inc bl                                    ; fe c3
    11409     jmp near 07adeh                           ; e9 26 ff
     11387    jmp near 07aeeh                           ; e9 26 ff
    1141011388    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11411     jne short 07bd1h                          ; 75 13
     11389    jne short 07be1h                          ; 75 13
    1141211390    test cl, cl                               ; 84 c9
    11413     jne short 07bd1h                          ; 75 0f
     11391    jne short 07be1h                          ; 75 0f
    1141411392    test ch, ch                               ; 84 ed
    11415     jne short 07bd1h                          ; 75 0b
     11393    jne short 07be1h                          ; 75 0b
    1141611394    push 00a47h                               ; 68 47 0a
    1141711395    push strict byte 00002h                   ; 6a 02
    11418     call 01a6bh                               ; e8 9d 9e
     11396    call 01a6bh                               ; e8 8d 9e
    1141911397    add sp, strict byte 00004h                ; 83 c4 04
    1142011398    push 00a5bh                               ; 68 5b 0a
    1142111399    push strict byte 00002h                   ; 6a 02
    11422     call 01a6bh                               ; e8 92 9e
     11400    call 01a6bh                               ; e8 82 9e
    1142311401    add sp, strict byte 00004h                ; 83 c4 04
    1142411402    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1143011408    pop bp                                    ; 5d
    1143111409    retn                                      ; c3
    11432 get_boot_drive_:                             ; 0xf7be6 LB 0x28
     11410get_boot_drive_:                             ; 0xf7bf6 LB 0x28
    1143311411    push bp                                   ; 55
    1143411412    mov bp, sp                                ; 89 e5
     
    1143811416    mov dx, strict word 0000eh                ; ba 0e 00
    1143911417    mov ax, strict word 00040h                ; b8 40 00
    11440     call 01765h                               ; e8 6f 9b
     11418    call 01765h                               ; e8 5f 9b
    1144111419    mov dx, 00304h                            ; ba 04 03
    11442     call 01749h                               ; e8 4d 9b
     11420    call 01749h                               ; e8 3d 9b
    1144311421    sub bl, 002h                              ; 80 eb 02
    1144411422    cmp bl, al                                ; 38 c3
    11445     jc short 07c05h                           ; 72 02
     11423    jc short 07c15h                           ; 72 02
    1144611424    mov BL, strict byte 0ffh                  ; b3 ff
    1144711425    mov al, bl                                ; 88 d8
     
    1145111429    pop bp                                    ; 5d
    1145211430    retn                                      ; c3
    11453 show_logo_:                                  ; 0xf7c0e LB 0x231
     11431show_logo_:                                  ; 0xf7c1e LB 0x231
    1145411432    push bp                                   ; 55
    1145511433    mov bp, sp                                ; 89 e5
     
    1146211440    mov dx, strict word 0000eh                ; ba 0e 00
    1146311441    mov ax, strict word 00040h                ; b8 40 00
    11464     call 01765h                               ; e8 43 9b
     11442    call 01765h                               ; e8 33 9b
    1146511443    mov si, ax                                ; 89 c6
    1146611444    xor cl, cl                                ; 30 c9
     
    1147311451    out strict byte 040h, AL                  ; e6 40
    1147411452    movzx ax, dl                              ; 0f b6 c2
    11475     call 07aa2h                               ; e8 68 fe
     11453    call 07ab2h                               ; e8 68 fe
    1147611454    cmp ax, 066bbh                            ; 3d bb 66
    11477     jne near 07d1fh                           ; 0f 85 de 00
     11455    jne near 07d2fh                           ; 0f 85 de 00
    1147811456    push SS                                   ; 16
    1147911457    pop ES                                    ; 07
     
    1148311461    mov word [es:di], bx                      ; 26 89 1d
    1148411462    cmp ax, strict word 0004fh                ; 3d 4f 00
    11485     jne near 07d1fh                           ; 0f 85 ca 00
     11463    jne near 07d2fh                           ; 0f 85 ca 00
    1148611464    mov al, dl                                ; 88 d0
    1148711465    add AL, strict byte 004h                  ; 04 04
    1148811466    xor ah, ah                                ; 30 e4
    11489     call 07a8ch                               ; e8 2e fe
     11467    call 07a9ch                               ; e8 2e fe
    1149011468    mov ch, al                                ; 88 c5
    1149111469    mov byte [bp-00ch], al                    ; 88 46 f4
     
    1149311471    add AL, strict byte 005h                  ; 04 05
    1149411472    xor ah, ah                                ; 30 e4
    11495     call 07a8ch                               ; e8 20 fe
     11473    call 07a9ch                               ; e8 20 fe
    1149611474    mov dh, al                                ; 88 c6
    1149711475    mov byte [bp-010h], al                    ; 88 46 f0
     
    1149911477    add AL, strict byte 002h                  ; 04 02
    1150011478    xor ah, ah                                ; 30 e4
    11501     call 07aa2h                               ; e8 28 fe
     11479    call 07ab2h                               ; e8 28 fe
    1150211480    mov bx, ax                                ; 89 c3
    1150311481    mov word [bp-014h], ax                    ; 89 46 ec
     
    1150511483    add AL, strict byte 006h                  ; 04 06
    1150611484    xor ah, ah                                ; 30 e4
    11507     call 07a8ch                               ; e8 04 fe
     11485    call 07a9ch                               ; e8 04 fe
    1150811486    mov byte [bp-012h], al                    ; 88 46 ee
    1150911487    test ch, ch                               ; 84 ed
    11510     jne short 07c99h                          ; 75 0a
     11488    jne short 07ca9h                          ; 75 0a
    1151111489    test dh, dh                               ; 84 f6
    11512     jne short 07c99h                          ; 75 06
     11490    jne short 07ca9h                          ; 75 06
    1151311491    test bx, bx                               ; 85 db
    11514     je near 07d1fh                            ; 0f 84 86 00
     11492    je near 07d2fh                            ; 0f 84 86 00
    1151511493    mov bx, 00142h                            ; bb 42 01
    1151611494    mov ax, 04f02h                            ; b8 02 4f
    1151711495    int 010h                                  ; cd 10
    1151811496    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11519     je short 07ccah                           ; 74 23
     11497    je short 07cdah                           ; 74 23
    1152011498    xor bx, bx                                ; 31 db
    11521     jmp short 07cb1h                          ; eb 06
     11499    jmp short 07cc1h                          ; eb 06
    1152211500    inc bx                                    ; 43
    1152311501    cmp bx, strict byte 00010h                ; 83 fb 10
    11524     jnbe short 07cd1h                         ; 77 20
     11502    jnbe short 07ce1h                         ; 77 20
    1152511503    mov ax, bx                                ; 89 d8
    1152611504    or ah, 002h                               ; 80 cc 02
     
    1152911507    xor dx, dx                                ; 31 d2
    1153011508    mov ax, strict word 00001h                ; b8 01 00
    11531     call 079dah                               ; e8 18 fd
     11509    call 079eah                               ; e8 18 fd
    1153211510    cmp AL, strict byte 086h                  ; 3c 86
    11533     jne short 07cabh                          ; 75 e5
     11511    jne short 07cbbh                          ; 75 e5
    1153411512    mov CL, strict byte 001h                  ; b1 01
    11535     jmp short 07cd1h                          ; eb 07
     11513    jmp short 07ce1h                          ; eb 07
    1153611514    mov ax, 00210h                            ; b8 10 02
    1153711515    mov dx, 003b8h                            ; ba b8 03
    1153811516    out DX, ax                                ; ef
    1153911517    test cl, cl                               ; 84 c9
    11540     jne short 07ce7h                          ; 75 12
     11518    jne short 07cf7h                          ; 75 12
    1154111519    mov ax, word [bp-014h]                    ; 8b 46 ec
    1154211520    shr ax, 004h                              ; c1 e8 04
    1154311521    mov dx, strict word 00001h                ; ba 01 00
    11544     call 079dah                               ; e8 f9 fc
     11522    call 079eah                               ; e8 f9 fc
    1154511523    cmp AL, strict byte 086h                  ; 3c 86
    11546     jne short 07ce7h                          ; 75 02
     11524    jne short 07cf7h                          ; 75 02
    1154711525    mov CL, strict byte 001h                  ; b1 01
    1154811526    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11549     je short 07d14h                           ; 74 27
     11527    je short 07d24h                           ; 74 27
    1155011528    test cl, cl                               ; 84 c9
    11551     jne short 07d14h                          ; 75 23
     11529    jne short 07d24h                          ; 75 23
    1155211530    mov bx, strict word 00010h                ; bb 10 00
    11553     jmp short 07cfbh                          ; eb 05
     11531    jmp short 07d0bh                          ; eb 05
    1155411532    dec bx                                    ; 4b
    1155511533    test bx, bx                               ; 85 db
    11556     jbe short 07d1fh                          ; 76 24
     11534    jbe short 07d2fh                          ; 76 24
    1155711535    mov ax, bx                                ; 89 d8
    1155811536    or ah, 002h                               ; 80 cc 02
     
    1156111539    xor dx, dx                                ; 31 d2
    1156211540    mov ax, strict word 00001h                ; b8 01 00
    11563     call 079dah                               ; e8 ce fc
     11541    call 079eah                               ; e8 ce fc
    1156411542    cmp AL, strict byte 086h                  ; 3c 86
    11565     jne short 07cf6h                          ; 75 e6
     11543    jne short 07d06h                          ; 75 e6
    1156611544    mov CL, strict byte 001h                  ; b1 01
    11567     jmp short 07d1fh                          ; eb 0b
     11545    jmp short 07d2fh                          ; eb 0b
    1156811546    test cl, cl                               ; 84 c9
    11569     jne short 07d1fh                          ; 75 07
     11547    jne short 07d2fh                          ; 75 07
    1157011548    mov ax, 00200h                            ; b8 00 02
    1157111549    mov dx, 003b8h                            ; ba b8 03
     
    1157411552    mov dx, 0037dh                            ; ba 7d 03
    1157511553    mov ax, si                                ; 89 f0
    11576     call 01757h                               ; e8 2e 9a
     11554    call 01757h                               ; e8 1e 9a
    1157711555    mov AL, strict byte 003h                  ; b0 03
    1157811556    mov AH, strict byte 000h                  ; b4 00
    1157911557    int 010h                                  ; cd 10
    1158011558    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
    11581     je near 07e20h                            ; 0f 84 e9 00
     11559    je near 07e30h                            ; 0f 84 e9 00
    1158211560    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
    11583     jne short 07d6dh                          ; 75 30
     11561    jne short 07d7dh                          ; 75 30
    1158411562    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
    11585     jne short 07d6dh                          ; 75 2a
     11563    jne short 07d7dh                          ; 75 2a
    1158611564    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
    11587     jne short 07d6dh                          ; 75 24
     11565    jne short 07d7dh                          ; 75 24
    1158811566    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
    11589     jne short 07d5ah                          ; 75 0b
     11567    jne short 07d6ah                          ; 75 0b
    1159011568    push 00a5dh                               ; 68 5d 0a
    1159111569    push strict byte 00002h                   ; 6a 02
    11592     call 01a6bh                               ; e8 14 9d
     11570    call 01a6bh                               ; e8 04 9d
    1159311571    add sp, strict byte 00004h                ; 83 c4 04
    1159411572    test cl, cl                               ; 84 c9
    11595     jne short 07d6dh                          ; 75 0f
     11573    jne short 07d7dh                          ; 75 0f
    1159611574    mov dx, strict word 00001h                ; ba 01 00
    1159711575    mov ax, 000c0h                            ; b8 c0 00
    11598     call 079dah                               ; e8 73 fc
     11576    call 079eah                               ; e8 73 fc
    1159911577    cmp AL, strict byte 086h                  ; 3c 86
    11600     jne short 07d6dh                          ; 75 02
     11578    jne short 07d7dh                          ; 75 02
    1160111579    mov CL, strict byte 001h                  ; b1 01
    1160211580    test cl, cl                               ; 84 c9
    11603     je near 07e20h                            ; 0f 84 ad 00
     11581    je near 07e30h                            ; 0f 84 ad 00
    1160411582    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
    1160511583    mov ax, 00100h                            ; b8 00 01
     
    1162011598    push 00a7fh                               ; 68 7f 0a
    1162111599    push strict byte 00002h                   ; 6a 02
    11622     call 01a6bh                               ; e8 cf 9c
     11600    call 01a6bh                               ; e8 bf 9c
    1162311601    add sp, strict byte 00004h                ; 83 c4 04
    11624     call 07ab6h                               ; e8 14 fd
     11602    call 07ac6h                               ; e8 14 fd
    1162511603    push 00ac3h                               ; 68 c3 0a
    1162611604    push strict byte 00002h                   ; 6a 02
    11627     call 01a6bh                               ; e8 c1 9c
     11605    call 01a6bh                               ; e8 b1 9c
    1162811606    add sp, strict byte 00004h                ; 83 c4 04
    1162911607    mov dx, strict word 00001h                ; ba 01 00
    1163011608    mov ax, strict word 00040h                ; b8 40 00
    11631     call 079dah                               ; e8 24 fc
     11609    call 079eah                               ; e8 24 fc
    1163211610    mov bl, al                                ; 88 c3
    1163311611    test al, al                               ; 84 c0
    11634     je short 07dadh                           ; 74 f1
     11612    je short 07dbdh                           ; 74 f1
    1163511613    cmp AL, strict byte 030h                  ; 3c 30
    11636     je short 07e0eh                           ; 74 4e
     11614    je short 07e1eh                           ; 74 4e
    1163711615    cmp bl, 002h                              ; 80 fb 02
    11638     jc short 07de7h                           ; 72 22
     11616    jc short 07df7h                           ; 72 22
    1163911617    cmp bl, 009h                              ; 80 fb 09
    11640     jnbe short 07de7h                         ; 77 1d
     11618    jnbe short 07df7h                         ; 77 1d
    1164111619    movzx ax, bl                              ; 0f b6 c3
    11642     call 07be6h                               ; e8 16 fe
     11620    call 07bf6h                               ; e8 16 fe
    1164311621    cmp AL, strict byte 0ffh                  ; 3c ff
    11644     jne short 07dd6h                          ; 75 02
    11645     jmp short 07dadh                          ; eb d7
     11622    jne short 07de6h                          ; 75 02
     11623    jmp short 07dbdh                          ; eb d7
    1164611624    movzx bx, al                              ; 0f b6 d8
    1164711625    mov dx, 0037ch                            ; ba 7c 03
    1164811626    mov ax, si                                ; 89 f0
    11649     call 01757h                               ; e8 76 99
     11627    call 01757h                               ; e8 66 99
    1165011628    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
    11651     jmp short 07e0eh                          ; eb 27
     11629    jmp short 07e1eh                          ; eb 27
    1165211630    cmp bl, 02eh                              ; 80 fb 2e
    11653     je short 07dfch                           ; 74 10
     11631    je short 07e0ch                           ; 74 10
    1165411632    cmp bl, 026h                              ; 80 fb 26
    11655     je short 07e02h                           ; 74 11
     11633    je short 07e12h                           ; 74 11
    1165611634    cmp bl, 021h                              ; 80 fb 21
    11657     jne short 07e08h                          ; 75 12
     11635    jne short 07e18h                          ; 75 12
    1165811636    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
    11659     jmp short 07e0eh                          ; eb 12
     11637    jmp short 07e1eh                          ; eb 12
    1166011638    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
    11661     jmp short 07e0eh                          ; eb 0c
     11639    jmp short 07e1eh                          ; eb 0c
    1166211640    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
    11663     jmp short 07e0eh                          ; eb 06
     11641    jmp short 07e1eh                          ; eb 06
    1166411642    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
    11665     je short 07dadh                           ; 74 9f
     11643    je short 07dbdh                           ; 74 9f
    1166611644    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
    1166711645    mov dx, 0037dh                            ; ba 7d 03
    1166811646    mov ax, si                                ; 89 f0
    11669     call 01757h                               ; e8 3d 99
     11647    call 01757h                               ; e8 2d 99
    1167011648    mov AL, strict byte 003h                  ; b0 03
    1167111649    mov AH, strict byte 000h                  ; b4 00
     
    1168011658    push DS                                   ; 1e
    1168111659    mov ds, ax                                ; 8e d8
    11682     call 0edbfh                               ; e8 8d 6f
     11660    call 0edbfh                               ; e8 7d 6f
    1168311661    pop DS                                    ; 1f
    1168411662    popad                                     ; 66 61
     
    1169111669    pop bp                                    ; 5d
    1169211670    retn                                      ; c3
    11693 delay_boot_:                                 ; 0xf7e3f LB 0x67
     11671delay_boot_:                                 ; 0xf7e4f LB 0x67
    1169411672    push bp                                   ; 55
    1169511673    mov bp, sp                                ; 89 e5
     
    1169811676    mov dx, ax                                ; 89 c2
    1169911677    test ax, ax                               ; 85 c0
    11700     je short 07e9fh                           ; 74 55
     11678    je short 07eafh                           ; 74 55
    1170111679    mov AL, strict byte 034h                  ; b0 34
    1170211680    out strict byte 043h, AL                  ; e6 43
     
    1170811686    push 00b0dh                               ; 68 0d 0b
    1170911687    push strict byte 00002h                   ; 6a 02
    11710     call 01a6bh                               ; e8 0c 9c
     11688    call 01a6bh                               ; e8 fc 9b
    1171111689    add sp, strict byte 00006h                ; 83 c4 06
    1171211690    mov bx, dx                                ; 89 d3
    1171311691    test bx, bx                               ; 85 db
    11714     jbe short 07e7fh                          ; 76 17
     11692    jbe short 07e8fh                          ; 76 17
    1171511693    push bx                                   ; 53
    1171611694    push 00b2bh                               ; 68 2b 0b
    1171711695    push strict byte 00002h                   ; 6a 02
    11718     call 01a6bh                               ; e8 fa 9b
     11696    call 01a6bh                               ; e8 ea 9b
    1171911697    add sp, strict byte 00006h                ; 83 c4 06
    1172011698    xor dx, dx                                ; 31 d2
    1172111699    mov ax, strict word 00040h                ; b8 40 00
    11722     call 079dah                               ; e8 5e fb
     11700    call 079eah                               ; e8 5e fb
    1172311701    dec bx                                    ; 4b
    11724     jmp short 07e64h                          ; eb e5
     11702    jmp short 07e74h                          ; eb e5
    1172511703    push 00a5bh                               ; 68 5b 0a
    1172611704    push strict byte 00002h                   ; 6a 02
    11727     call 01a6bh                               ; e8 e4 9b
     11705    call 01a6bh                               ; e8 d4 9b
    1172811706    add sp, strict byte 00004h                ; 83 c4 04
    1172911707    mov AL, strict byte 034h                  ; b0 34
     
    1173611714    push DS                                   ; 1e
    1173711715    mov ds, ax                                ; 8e d8
    11738     call 0edbfh                               ; e8 23 6f
     11716    call 0edbfh                               ; e8 13 6f
    1173911717    pop DS                                    ; 1f
    1174011718    popad                                     ; 66 61
     
    1174411722    pop bp                                    ; 5d
    1174511723    retn                                      ; c3
    11746 scsi_cmd_data_in_:                           ; 0xf7ea6 LB 0xd5
     11724scsi_cmd_data_in_:                           ; 0xf7eb6 LB 0xd5
    1174711725    push bp                                   ; 55
    1174811726    mov bp, sp                                ; 89 e5
     
    1176011738    ; sub ah, ah                                ; 2a e4
    1176111739    test AL, strict byte 001h                 ; a8 01
    11762     jne short 07ebch                          ; 75 f7
     11740    jne short 07ecch                          ; 75 f7
    1176311741    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11764     jne short 07ecfh                          ; 75 04
     11742    jne short 07edfh                          ; 75 04
    1176511743    xor ax, ax                                ; 31 c0
    11766     jmp short 07ed3h                          ; eb 04
     11744    jmp short 07ee3h                          ; eb 04
    1176711745    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1176811746    mov di, ax                                ; 89 c7
     
    1177211750    shr dx, 1                                 ; d1 ea
    1177311751    rcr ax, 1                                 ; d1 d8
    11774     loop 07eddh                               ; e2 fa
     11752    loop 07eedh                               ; e2 fa
    1177511753    mov cx, ax                                ; 89 c1
    1177611754    and cx, 000f0h                            ; 81 e1 f0 00
     
    1179011768    shr dx, 1                                 ; d1 ea
    1179111769    rcr ax, 1                                 ; d1 d8
    11792     loop 07f02h                               ; e2 fa
     11770    loop 07f12h                               ; e2 fa
    1179311771    mov dx, si                                ; 89 f2
    1179411772    out DX, AL                                ; ee
     
    1179611774    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1179711775    cmp cx, ax                                ; 39 c1
    11798     jnc short 07f23h                          ; 73 0e
     11776    jnc short 07f33h                          ; 73 0e
    1179911777    les di, [bp-00ah]                         ; c4 7e f6
    1180011778    add di, cx                                ; 01 cf
     
    1180311781    out DX, AL                                ; ee
    1180411782    inc cx                                    ; 41
    11805     jmp short 07f0dh                          ; eb ea
     11783    jmp short 07f1dh                          ; eb ea
    1180611784    mov dx, si                                ; 89 f2
    1180711785    in AL, DX                                 ; ec
     
    1180911787    ; sub ah, ah                                ; 2a e4
    1181011788    test AL, strict byte 001h                 ; a8 01
    11811     jne short 07f23h                          ; 75 f7
     11789    jne short 07f33h                          ; 75 f7
    1181211790    test AL, strict byte 002h                 ; a8 02
    11813     je short 07f3eh                           ; 74 0e
     11791    je short 07f4eh                           ; 74 0e
    1181411792    lea dx, [si+003h]                         ; 8d 54 03
    1181511793    xor al, al                                ; 30 c0
     
    1181911797    ; sub ah, ah                                ; 2a e4
    1182011798    mov di, strict word 00004h                ; bf 04 00
    11821     jmp short 07f70h                          ; eb 32
     11799    jmp short 07f80h                          ; eb 32
    1182211800    lea dx, [si+001h]                         ; 8d 54 01
    1182311801    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11824     jne short 07f4dh                          ; 75 06
     11802    jne short 07f5dh                          ; 75 06
    1182511803    cmp bx, 08000h                            ; 81 fb 00 80
    11826     jbe short 07f67h                          ; 76 1a
     11804    jbe short 07f77h                          ; 76 1a
    1182711805    mov cx, 08000h                            ; b9 00 80
    1182811806    les di, [bp+006h]                         ; c4 7e 06
     
    1183311811    add ax, 00800h                            ; 05 00 08
    1183411812    mov word [bp+008h], ax                    ; 89 46 08
    11835     jmp short 07f3eh                          ; eb d7
     11813    jmp short 07f4eh                          ; eb d7
    1183611814    mov cx, bx                                ; 89 d9
    1183711815    les di, [bp+006h]                         ; c4 7e 06
     
    1184411822    pop bp                                    ; 5d
    1184511823    retn 0000ah                               ; c2 0a 00
    11846 scsi_cmd_data_out_:                          ; 0xf7f7b LB 0xd5
     11824scsi_cmd_data_out_:                          ; 0xf7f8b LB 0xd5
    1184711825    push bp                                   ; 55
    1184811826    mov bp, sp                                ; 89 e5
     
    1186011838    ; sub ah, ah                                ; 2a e4
    1186111839    test AL, strict byte 001h                 ; a8 01
    11862     jne short 07f91h                          ; 75 f7
     11840    jne short 07fa1h                          ; 75 f7
    1186311841    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
    11864     jne short 07fa4h                          ; 75 04
     11842    jne short 07fb4h                          ; 75 04
    1186511843    xor ax, ax                                ; 31 c0
    11866     jmp short 07fa8h                          ; eb 04
     11844    jmp short 07fb8h                          ; eb 04
    1186711845    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1186811846    mov si, ax                                ; 89 c6
     
    1187211850    shr dx, 1                                 ; d1 ea
    1187311851    rcr ax, 1                                 ; d1 d8
    11874     loop 07fb2h                               ; e2 fa
     11852    loop 07fc2h                               ; e2 fa
    1187511853    mov cx, ax                                ; 89 c1
    1187611854    and cx, 000f0h                            ; 81 e1 f0 00
     
    1189011868    shr dx, 1                                 ; d1 ea
    1189111869    rcr ax, 1                                 ; d1 d8
    11892     loop 07fd7h                               ; e2 fa
     11870    loop 07fe7h                               ; e2 fa
    1189311871    mov dx, di                                ; 89 fa
    1189411872    out DX, AL                                ; ee
     
    1189611874    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
    1189711875    cmp cx, ax                                ; 39 c1
    11898     jnc short 07ff8h                          ; 73 0e
     11876    jnc short 08008h                          ; 73 0e
    1189911877    les si, [bp-00ah]                         ; c4 76 f6
    1190011878    add si, cx                                ; 01 ce
     
    1190311881    out DX, AL                                ; ee
    1190411882    inc cx                                    ; 41
    11905     jmp short 07fe2h                          ; eb ea
     11883    jmp short 07ff2h                          ; eb ea
    1190611884    lea dx, [di+001h]                         ; 8d 55 01
    1190711885    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
    11908     jne short 08007h                          ; 75 06
     11886    jne short 08017h                          ; 75 06
    1190911887    cmp bx, 08000h                            ; 81 fb 00 80
    11910     jbe short 08022h                          ; 76 1b
     11888    jbe short 08032h                          ; 76 1b
    1191111889    mov cx, 08000h                            ; b9 00 80
    1191211890    les si, [bp+006h]                         ; c4 76 06
     
    1191811896    add ax, 00800h                            ; 05 00 08
    1191911897    mov word [bp+008h], ax                    ; 89 46 08
    11920     jmp short 07ff8h                          ; eb d6
     11898    jmp short 08008h                          ; eb d6
    1192111899    mov cx, bx                                ; 89 d9
    1192211900    les si, [bp+006h]                         ; c4 76 06
     
    1192811906    ; sub ah, ah                                ; 2a e4
    1192911907    test AL, strict byte 001h                 ; a8 01
    11930     jne short 0802ah                          ; 75 f7
     11908    jne short 0803ah                          ; 75 f7
    1193111909    test AL, strict byte 002h                 ; a8 02
    11932     je short 08045h                           ; 74 0e
     11910    je short 08055h                           ; 74 0e
    1193311911    lea dx, [di+003h]                         ; 8d 55 03
    1193411912    xor al, al                                ; 30 c0
     
    1193811916    ; sub ah, ah                                ; 2a e4
    1193911917    mov ax, strict word 00004h                ; b8 04 00
    11940     jmp short 08047h                          ; eb 02
     11918    jmp short 08057h                          ; eb 02
    1194111919    xor ax, ax                                ; 31 c0
    1194211920    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1194511923    pop bp                                    ; 5d
    1194611924    retn 0000ah                               ; c2 0a 00
    11947 @scsi_read_sectors:                          ; 0xf8050 LB 0xdb
     11925@scsi_read_sectors:                          ; 0xf8060 LB 0xdb
    1194811926    push bp                                   ; 55
    1194911927    mov bp, sp                                ; 89 e5
     
    1195711935    mov byte [bp-006h], al                    ; 88 46 fa
    1195811936    cmp AL, strict byte 004h                  ; 3c 04
    11959     jbe short 0807eh                          ; 76 13
     11937    jbe short 0808eh                          ; 76 13
    1196011938    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1196111939    push ax                                   ; 50
     
    1196311941    push 00b42h                               ; 68 42 0b
    1196411942    push strict byte 00007h                   ; 6a 07
    11965     call 01a6bh                               ; e8 f0 99
     11943    call 01a6bh                               ; e8 e0 99
    1196611944    add sp, strict byte 00008h                ; 83 c4 08
    1196711945    mov es, [bp+006h]                         ; 8e 46 06
     
    1200211980    sal word [bp-00ah], 1                     ; d1 66 f6
    1200311981    rcl word [bp-008h], 1                     ; d1 56 f8
    12004     loop 080e7h                               ; e2 f8
     11982    loop 080f7h                               ; e2 f8
    1200511983    push dword [bp-00ah]                      ; 66 ff 76 f6
    1200611984    db  066h, 026h, 0ffh, 074h, 008h
     
    1201011988    mov cx, ss                                ; 8c d1
    1201111989    lea bx, [bp-01ah]                         ; 8d 5e e6
    12012     call 07ea6h                               ; e8 a2 fd
     11990    call 07eb6h                               ; e8 a2 fd
    1201311991    mov ah, al                                ; 88 c4
    1201411992    test al, al                               ; 84 c0
    12015     jne short 0811fh                          ; 75 15
     11993    jne short 0812fh                          ; 75 15
    1201611994    mov es, [bp+006h]                         ; 8e 46 06
    1201711995    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1202612004    pop bp                                    ; 5d
    1202712005    retn 00004h                               ; c2 04 00
    12028 @scsi_write_sectors:                         ; 0xf812b LB 0xdb
     12006@scsi_write_sectors:                         ; 0xf813b LB 0xdb
    1202912007    push bp                                   ; 55
    1203012008    mov bp, sp                                ; 89 e5
     
    1203812016    mov byte [bp-006h], al                    ; 88 46 fa
    1203912017    cmp AL, strict byte 004h                  ; 3c 04
    12040     jbe short 08159h                          ; 76 13
     12018    jbe short 08169h                          ; 76 13
    1204112019    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1204212020    push ax                                   ; 50
     
    1204412022    push 00b42h                               ; 68 42 0b
    1204512023    push strict byte 00007h                   ; 6a 07
    12046     call 01a6bh                               ; e8 15 99
     12024    call 01a6bh                               ; e8 05 99
    1204712025    add sp, strict byte 00008h                ; 83 c4 08
    1204812026    mov es, [bp+006h]                         ; 8e 46 06
     
    1208312061    sal word [bp-00ah], 1                     ; d1 66 f6
    1208412062    rcl word [bp-008h], 1                     ; d1 56 f8
    12085     loop 081c2h                               ; e2 f8
     12063    loop 081d2h                               ; e2 f8
    1208612064    push dword [bp-00ah]                      ; 66 ff 76 f6
    1208712065    db  066h, 026h, 0ffh, 074h, 008h
     
    1209112069    mov cx, ss                                ; 8c d1
    1209212070    lea bx, [bp-01ah]                         ; 8d 5e e6
    12093     call 07f7bh                               ; e8 9c fd
     12071    call 07f8bh                               ; e8 9c fd
    1209412072    mov ah, al                                ; 88 c4
    1209512073    test al, al                               ; 84 c0
    12096     jne short 081fah                          ; 75 15
     12074    jne short 0820ah                          ; 75 15
    1209712075    mov es, [bp+006h]                         ; 8e 46 06
    1209812076    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1210712085    pop bp                                    ; 5d
    1210812086    retn 00004h                               ; c2 04 00
    12109 scsi_cmd_packet_:                            ; 0xf8206 LB 0x166
     12087scsi_cmd_packet_:                            ; 0xf8216 LB 0x166
    1211012088    push bp                                   ; 55
    1211112089    mov bp, sp                                ; 89 e5
     
    1211912097    mov dx, strict word 0000eh                ; ba 0e 00
    1212012098    mov ax, strict word 00040h                ; b8 40 00
    12121     call 01765h                               ; e8 43 95
     12099    call 01765h                               ; e8 33 95
    1212212100    mov si, 00122h                            ; be 22 01
    1212312101    mov word [bp-00eh], ax                    ; 89 46 f2
    1212412102    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    12125     jne short 0824dh                          ; 75 1f
     12103    jne short 0825dh                          ; 75 1f
    1212612104    mov bx, 00db2h                            ; bb b2 0d
    1212712105    mov cx, ds                                ; 8c d9
    1212812106    mov ax, strict word 00004h                ; b8 04 00
    12129     call 01a2ah                               ; e8 f1 97
     12107    call 01a2ah                               ; e8 e1 97
    1213012108    push 00b74h                               ; 68 74 0b
    1213112109    push 00b84h                               ; 68 84 0b
    1213212110    push strict byte 00004h                   ; 6a 04
    12133     call 01a6bh                               ; e8 27 98
     12111    call 01a6bh                               ; e8 17 98
    1213412112    add sp, strict byte 00006h                ; 83 c4 06
    1213512113    mov dx, strict word 00001h                ; ba 01 00
    12136     jmp near 08361h                           ; e9 14 01
     12114    jmp near 08371h                           ; e9 14 01
    1213712115    sub di, strict byte 00008h                ; 83 ef 08
    1213812116    sal di, 002h                              ; c1 e7 02
     
    1214812126    ; sub ah, ah                                ; 2a e4
    1214912127    test AL, strict byte 001h                 ; a8 01
    12150     jne short 08269h                          ; 75 f7
     12128    jne short 08279h                          ; 75 f7
    1215112129    xor ax, ax                                ; 31 c0
    1215212130    mov dx, word [bp+006h]                    ; 8b 56 06
     
    1216412142    shr dx, 1                                 ; d1 ea
    1216512143    rcr ax, 1                                 ; d1 d8
    12166     loop 08294h                               ; e2 fa
     12144    loop 082a4h                               ; e2 fa
    1216712145    and ax, 000f0h                            ; 25 f0 00
    1216812146    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     
    1218212160    shr dx, 1                                 ; d1 ea
    1218312161    rcr ax, 1                                 ; d1 d8
    12184     loop 082bbh                               ; e2 fa
     12162    loop 082cbh                               ; e2 fa
    1218512163    mov dx, bx                                ; 89 da
    1218612164    out DX, AL                                ; ee
     
    1218812166    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1218912167    cmp cx, ax                                ; 39 c1
    12190     jnc short 082dch                          ; 73 0e
     12168    jnc short 082ech                          ; 73 0e
    1219112169    les di, [bp-00ch]                         ; c4 7e f4
    1219212170    add di, cx                                ; 01 cf
     
    1219512173    out DX, AL                                ; ee
    1219612174    inc cx                                    ; 41
    12197     jmp short 082c6h                          ; eb ea
     12175    jmp short 082d6h                          ; eb ea
    1219812176    mov dx, bx                                ; 89 da
    1219912177    in AL, DX                                 ; ec
     
    1220112179    ; sub ah, ah                                ; 2a e4
    1220212180    test AL, strict byte 001h                 ; a8 01
    12203     jne short 082dch                          ; 75 f7
     12181    jne short 082ech                          ; 75 f7
    1220412182    test AL, strict byte 002h                 ; a8 02
    12205     je short 082f7h                           ; 74 0e
     12183    je short 08307h                           ; 74 0e
    1220612184    lea dx, [bx+003h]                         ; 8d 57 03
    1220712185    xor al, al                                ; 30 c0
     
    1221112189    ; sub ah, ah                                ; 2a e4
    1221212190    mov dx, strict word 00003h                ; ba 03 00
    12213     jmp short 08361h                          ; eb 6a
     12191    jmp short 08371h                          ; eb 6a
    1221412192    mov ax, word [bp+004h]                    ; 8b 46 04
    1221512193    test ax, ax                               ; 85 c0
    12216     je short 08306h                           ; 74 08
     12194    je short 08316h                           ; 74 08
    1221712195    lea dx, [bx+001h]                         ; 8d 57 01
    1221812196    mov cx, ax                                ; 89 c1
    1221912197    in AL, DX                                 ; ec
    12220     loop 08303h                               ; e2 fd
     12198    loop 08313h                               ; e2 fd
    1222112199    mov ax, word [bp+006h]                    ; 8b 46 06
    1222212200    mov es, [bp-00eh]                         ; 8e 46 f2
     
    1222612204    lea ax, [bx+001h]                         ; 8d 47 01
    1222712205    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
    12228     jne short 08327h                          ; 75 07
     12206    jne short 08337h                          ; 75 07
    1222912207    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
    12230     jbe short 08344h                          ; 76 1d
     12208    jbe short 08354h                          ; 76 1d
    1223112209    mov dx, ax                                ; 89 c2
    1223212210    mov cx, 08000h                            ; b9 00 80
     
    1223812216    add ax, 00800h                            ; 05 00 08
    1223912217    mov word [bp+00eh], ax                    ; 89 46 0e
    12240     jmp short 08317h                          ; eb d3
     12218    jmp short 08327h                          ; eb d3
    1224112219    mov dx, ax                                ; 89 c2
    1224212220    mov cx, word [bp+006h]                    ; 8b 4e 06
     
    1224512223    mov es, [bp-00eh]                         ; 8e 46 f2
    1224612224    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
    12247     je short 0835fh                           ; 74 07
     12225    je short 0836fh                           ; 74 07
    1224812226    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
    1224912227    in AL, DX                                 ; ec
    12250     loop 0835ch                               ; e2 fd
     12228    loop 0836ch                               ; e2 fd
    1225112229    xor dx, dx                                ; 31 d2
    1225212230    mov ax, dx                                ; 89 d0
     
    1225612234    pop bp                                    ; 5d
    1225712235    retn 0000ch                               ; c2 0c 00
    12258 scsi_enumerate_attached_devices_:            ; 0xf836c LB 0x482
     12236scsi_enumerate_attached_devices_:            ; 0xf837c LB 0x482
    1225912237    push bp                                   ; 55
    1226012238    mov bp, sp                                ; 89 e5
     
    1226812246    mov dx, strict word 0000eh                ; ba 0e 00
    1226912247    mov ax, strict word 00040h                ; b8 40 00
    12270     call 01765h                               ; e8 e3 93
     12248    call 01765h                               ; e8 d3 93
    1227112249    mov di, 00122h                            ; bf 22 01
    1227212250    mov word [bp-02eh], ax                    ; 89 46 d2
    1227312251    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
    12274     jmp near 08770h                           ; e9 e0 03
     12252    jmp near 08780h                           ; e9 e0 03
    1227512253    cmp AL, strict byte 004h                  ; 3c 04
    12276     jnc near 087e4h                           ; 0f 83 4e 04
     12254    jnc near 087f4h                           ; 0f 83 4e 04
    1227712255    mov cx, strict word 00010h                ; b9 10 00
    1227812256    xor bx, bx                                ; 31 db
    1227912257    mov dx, ss                                ; 8c d2
    1228012258    lea ax, [bp-046h]                         ; 8d 46 ba
    12281     call 0a080h                               ; e8 dd 1c
     12259    call 0a090h                               ; e8 dd 1c
    1228212260    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
    1228312261    mov byte [bp-045h], 010h                  ; c6 46 bb 10
     
    1229212270    lea bx, [bp-046h]                         ; 8d 5e ba
    1229312271    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12294     call 07ea6h                               ; e8 dc fa
     12272    call 07eb6h                               ; e8 dc fa
    1229512273    test al, al                               ; 84 c0
    12296     je short 083dch                           ; 74 0e
     12274    je short 083ech                           ; 74 0e
    1229712275    push 00ba4h                               ; 68 a4 0b
    1229812276    push 00bddh                               ; 68 dd 0b
    1229912277    push strict byte 00007h                   ; 6a 07
    12300     call 01a6bh                               ; e8 92 96
     12278    call 01a6bh                               ; e8 82 96
    1230112279    add sp, strict byte 00006h                ; 83 c4 06
    1230212280    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
     
    1232812306    sal ax, 1                                 ; d1 e0
    1232912307    rcl dx, 1                                 ; d1 d2
    12330     loop 0842ah                               ; e2 fa
     12308    loop 0843ah                               ; e2 fa
    1233112309    or bx, ax                                 ; 09 c3
    1233212310    or dx, si                                 ; 09 f2
     
    1233512313    mov word [bp-024h], bx                    ; 89 5e dc
    1233612314    test dx, dx                               ; 85 d2
    12337     jne short 08448h                          ; 75 06
     12315    jne short 08458h                          ; 75 06
    1233812316    cmp bx, 00200h                            ; 81 fb 00 02
    12339     je short 08468h                           ; 74 20
     12317    je short 08478h                           ; 74 20
    1234012318    mov bx, 00db2h                            ; bb b2 0d
    1234112319    mov cx, ds                                ; 8c d9
    1234212320    mov ax, strict word 00004h                ; b8 04 00
    12343     call 01a2ah                               ; e8 d7 95
     12321    call 01a2ah                               ; e8 c7 95
    1234412322    push dx                                   ; 52
    1234512323    push word [bp-024h]                       ; ff 76 dc
     
    1234712325    push 00bfch                               ; 68 fc 0b
    1234812326    push strict byte 00004h                   ; 6a 04
    12349     call 01a6bh                               ; e8 09 96
     12327    call 01a6bh                               ; e8 f9 95
    1235012328    add sp, strict byte 0000ah                ; 83 c4 0a
    12351     jmp near 08767h                           ; e9 ff 02
     12329    jmp near 08777h                           ; e9 ff 02
    1235212330    mov al, byte [bp-00ch]                    ; 8a 46 f4
    1235312331    cmp AL, strict byte 001h                  ; 3c 01
    12354     jc short 0847bh                           ; 72 0c
    12355     jbe short 08483h                          ; 76 12
     12332    jc short 0848bh                           ; 72 0c
     12333    jbe short 08493h                          ; 76 12
    1235612334    cmp AL, strict byte 003h                  ; 3c 03
    12357     je short 0848bh                           ; 74 16
     12335    je short 0849bh                           ; 74 16
    1235812336    cmp AL, strict byte 002h                  ; 3c 02
    12359     je short 08487h                           ; 74 0e
    12360     jmp short 084d4h                          ; eb 59
     12337    je short 08497h                           ; 74 0e
     12338    jmp short 084e4h                          ; eb 59
    1236112339    test al, al                               ; 84 c0
    12362     jne short 084d4h                          ; 75 55
     12340    jne short 084e4h                          ; 75 55
    1236312341    mov BL, strict byte 090h                  ; b3 90
    12364     jmp short 0848dh                          ; eb 0a
     12342    jmp short 0849dh                          ; eb 0a
    1236512343    mov BL, strict byte 098h                  ; b3 98
    12366     jmp short 0848dh                          ; eb 06
     12344    jmp short 0849dh                          ; eb 06
    1236712345    mov BL, strict byte 0a0h                  ; b3 a0
    12368     jmp short 0848dh                          ; eb 02
     12346    jmp short 0849dh                          ; eb 02
    1236912347    mov BL, strict byte 0a8h                  ; b3 a8
    1237012348    mov al, bl                                ; 88 d8
     
    1237212350    movzx cx, al                              ; 0f b6 c8
    1237312351    mov ax, cx                                ; 89 c8
    12374     call 017a5h                               ; e8 0c 93
     12352    call 017a5h                               ; e8 fc 92
    1237512353    test al, al                               ; 84 c0
    12376     je short 084d4h                           ; 74 37
     12354    je short 084e4h                           ; 74 37
    1237712355    mov al, bl                                ; 88 d8
    1237812356    db  0feh, 0c0h
    1237912357    ; inc al                                    ; fe c0
    1238012358    xor ah, ah                                ; 30 e4
    12381     call 017a5h                               ; e8 ff 92
     12359    call 017a5h                               ; e8 ef 92
    1238212360    movzx dx, al                              ; 0f b6 d0
    1238312361    sal dx, 008h                              ; c1 e2 08
    1238412362    movzx ax, bl                              ; 0f b6 c3
    12385     call 017a5h                               ; e8 f3 92
     12363    call 017a5h                               ; e8 e3 92
    1238612364    xor ah, ah                                ; 30 e4
    1238712365    add ax, dx                                ; 01 d0
     
    1239112369    add AL, strict byte 002h                  ; 04 02
    1239212370    xor ah, ah                                ; 30 e4
    12393     call 017a5h                               ; e8 e3 92
     12371    call 017a5h                               ; e8 d3 92
    1239412372    xor ah, ah                                ; 30 e4
    1239512373    mov word [bp-034h], ax                    ; 89 46 cc
    1239612374    mov ax, cx                                ; 89 c8
    12397     call 017a5h                               ; e8 d9 92
     12375    call 017a5h                               ; e8 c9 92
    1239812376    xor ah, ah                                ; 30 e4
    1239912377    mov word [bp-032h], ax                    ; 89 46 ce
    12400     jmp near 085bdh                           ; e9 e9 00
     12378    jmp near 085cdh                           ; e9 e9 00
    1240112379    mov ax, word [bp-010h]                    ; 8b 46 f0
    1240212380    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1240412382    mov dx, word [bp-016h]                    ; 8b 56 ea
    1240512383    mov si, strict word 0000ch                ; be 0c 00
    12406     call 0a060h                               ; e8 7a 1b
     12384    call 0a070h                               ; e8 7a 1b
    1240712385    mov word [bp-018h], ax                    ; 89 46 e8
    1240812386    mov word [bp-014h], bx                    ; 89 5e ec
     
    1241112389    mov ax, word [bp-010h]                    ; 8b 46 f0
    1241212390    test ax, ax                               ; 85 c0
    12413     jnbe short 0850fh                         ; 77 16
    12414     jne near 08582h                           ; 0f 85 85 00
     12391    jnbe short 0851fh                         ; 77 16
     12392    jne near 08592h                           ; 0f 85 85 00
    1241512393    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12416     jnbe short 0850fh                         ; 77 0c
    12417     jne near 08582h                           ; 0f 85 7b 00
     12394    jnbe short 0851fh                         ; 77 0c
     12395    jne near 08592h                           ; 0f 85 7b 00
    1241812396    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
    12419     jnbe short 0850fh                         ; 77 02
    12420     jne short 08582h                          ; 75 73
     12397    jnbe short 0851fh                         ; 77 02
     12398    jne short 08592h                          ; 75 73
    1242112399    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
    1242212400    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1242412402    mov dx, word [bp-016h]                    ; 8b 56 ea
    1242512403    mov si, strict word 00006h                ; be 06 00
    12426     call 0a060h                               ; e8 3a 1b
     12404    call 0a070h                               ; e8 3a 1b
    1242712405    mov si, word [bp-020h]                    ; 8b 76 e0
    1242812406    add si, dx                                ; 01 d6
     
    1244212420    mov dx, si                                ; 89 f2
    1244312421    mov si, strict word 00008h                ; be 08 00
    12444     call 0a060h                               ; e8 0a 1b
     12422    call 0a070h                               ; e8 0a 1b
    1244512423    mov word [bp-022h], bx                    ; 89 5e de
    1244612424    mov word [bp-02ch], cx                    ; 89 4e d4
     
    1245112429    mov dx, word [bp-02ah]                    ; 8b 56 d6
    1245212430    mov si, strict word 00010h                ; be 10 00
    12453     call 0a060h                               ; e8 ef 1a
     12431    call 0a070h                               ; e8 ef 1a
    1245412432    mov si, word [bp-01ah]                    ; 8b 76 e6
    1245512433    add si, dx                                ; 01 d6
     
    1245812436    mov ax, word [bp-022h]                    ; 8b 46 de
    1245912437    adc ax, bx                                ; 11 d8
    12460     jmp short 085bdh                          ; eb 3b
     12438    jmp short 085cdh                          ; eb 3b
    1246112439    test ax, ax                               ; 85 c0
    12462     jnbe short 08598h                         ; 77 12
    12463     jne short 085a2h                          ; 75 1a
     12440    jnbe short 085a8h                         ; 77 12
     12441    jne short 085b2h                          ; 75 1a
    1246412442    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
    12465     jnbe short 08598h                         ; 77 0a
    12466     jne short 085a2h                          ; 75 12
     12443    jnbe short 085a8h                         ; 77 0a
     12444    jne short 085b2h                          ; 75 12
    1246712445    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
    12468     jnbe short 08598h                         ; 77 02
    12469     jne short 085a2h                          ; 75 0a
     12446    jnbe short 085a8h                         ; 77 02
     12447    jne short 085b2h                          ; 75 0a
    1247012448    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
    12471     jmp short 085b9h                          ; eb 17
     12449    jmp short 085c9h                          ; eb 17
    1247212450    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
    1247312451    mov bx, word [bp-030h]                    ; 8b 5e d0
     
    1247512453    mov dx, word [bp-016h]                    ; 8b 56 ea
    1247612454    mov si, strict word 0000bh                ; be 0b 00
    12477     call 0a060h                               ; e8 a7 1a
     12455    call 0a070h                               ; e8 a7 1a
    1247812456    mov si, dx                                ; 89 d6
    1247912457    mov dx, cx                                ; 89 ca
     
    1250812486    mov word [es:bx+034h], ax                 ; 26 89 47 34
    1250912487    test dx, dx                               ; 85 d2
    12510     jne short 0862ah                          ; 75 06
     12488    jne short 0863ah                          ; 75 06
    1251112489    cmp si, 00400h                            ; 81 fe 00 04
    12512     jbe short 08638h                          ; 76 0e
     12490    jbe short 08648h                          ; 76 0e
    1251312491    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
    1251412492    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
    12515     jmp short 08640h                          ; eb 08
     12493    jmp short 08650h                          ; eb 08
    1251612494    mov word [es:bx+02ch], si                 ; 26 89 77 2c
    1251712495    mov word [es:bx+032h], si                 ; 26 89 77 32
     
    1251912497    mov cx, ds                                ; 8c d9
    1252012498    mov ax, strict word 00004h                ; b8 04 00
    12521     call 01a2ah                               ; e8 df 93
     12499    call 01a2ah                               ; e8 cf 93
    1252212500    push word [bp-010h]                       ; ff 76 f0
    1252312501    push word [bp-030h]                       ; ff 76 d0
     
    1253212510    push 00c2ah                               ; 68 2a 0c
    1253312511    push strict byte 00004h                   ; 6a 04
    12534     call 01a6bh                               ; e8 fe 93
     12512    call 01a6bh                               ; e8 ee 93
    1253512513    add sp, strict byte 00018h                ; 83 c4 18
    1253612514    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     
    1255712535    mov dx, strict word 00075h                ; ba 75 00
    1255812536    mov ax, strict word 00040h                ; b8 40 00
    12559     call 01749h                               ; e8 8c 90
     12537    call 01749h                               ; e8 7c 90
    1256012538    db  0feh, 0c0h
    1256112539    ; inc al                                    ; fe c0
     
    1256312541    mov dx, strict word 00075h                ; ba 75 00
    1256412542    mov ax, strict word 00040h                ; b8 40 00
    12565     call 01757h                               ; e8 8c 90
     12543    call 01757h                               ; e8 7c 90
    1256612544    inc byte [bp-00ch]                        ; fe 46 f4
    12567     jmp near 0875ch                           ; e9 8b 00
     12545    jmp near 0876ch                           ; e9 8b 00
    1256812546    mov bx, 00db2h                            ; bb b2 0d
    1256912547    mov cx, ds                                ; 8c d9
    1257012548    mov ax, strict word 00004h                ; b8 04 00
    12571     call 01a2ah                               ; e8 4e 93
     12549    call 01a2ah                               ; e8 3e 93
    1257212550    push word [bp-01eh]                       ; ff 76 e2
    1257312551    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1257512553    push 00c58h                               ; 68 58 0c
    1257612554    push strict byte 00004h                   ; 6a 04
    12577     call 01a6bh                               ; e8 7f 93
     12555    call 01a6bh                               ; e8 6f 93
    1257812556    add sp, strict byte 00008h                ; 83 c4 08
    1257912557    mov al, byte [bp-00ch]                    ; 8a 46 f4
     
    1261612594    inc word [bp-01eh]                        ; ff 46 e2
    1261712595    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
    12618     jnl short 087e4h                          ; 7d 74
     12596    jnl short 087f4h                          ; 7d 74
    1261912597    mov byte [bp-046h], 012h                  ; c6 46 ba 12
    1262012598    xor al, al                                ; 30 c0
     
    1263312611    lea bx, [bp-046h]                         ; 8d 5e ba
    1263412612    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
    12635     call 07ea6h                               ; e8 05 f7
     12613    call 07eb6h                               ; e8 05 f7
    1263612614    test al, al                               ; 84 c0
    12637     je short 087b3h                           ; 74 0e
     12615    je short 087c3h                           ; 74 0e
    1263812616    push 00ba4h                               ; 68 a4 0b
    1263912617    push 00bc4h                               ; 68 c4 0b
    1264012618    push strict byte 00007h                   ; 6a 07
    12641     call 01a6bh                               ; e8 bb 92
     12619    call 01a6bh                               ; e8 ab 92
    1264212620    add sp, strict byte 00006h                ; 83 c4 06
    1264312621    mov es, [bp-02eh]                         ; 8e 46 d2
     
    1264512623    mov byte [bp-00ch], al                    ; 88 46 f4
    1264612624    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12647     jne short 087ceh                          ; 75 09
     12625    jne short 087deh                          ; 75 09
    1264812626    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
    12649     je near 08390h                            ; 0f 84 c2 fb
     12627    je near 083a0h                            ; 0f 84 c2 fb
    1265012628    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
    12651     jne short 0875ch                          ; 75 87
     12629    jne short 0876ch                          ; 75 87
    1265212630    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
    1265312631    and AL, strict byte 01fh                  ; 24 1f
    1265412632    cmp AL, strict byte 005h                  ; 3c 05
    12655     je near 086d1h                            ; 0f 84 f0 fe
    12656     jmp near 0875ch                           ; e9 78 ff
     12633    je near 086e1h                            ; 0f 84 f0 fe
     12634    jmp near 0876ch                           ; e9 78 ff
    1265712635    lea sp, [bp-00ah]                         ; 8d 66 f6
    1265812636    pop di                                    ; 5f
     
    1266312641    pop bp                                    ; 5d
    1266412642    retn                                      ; c3
    12665 _scsi_init:                                  ; 0xf87ee LB 0x66
     12643_scsi_init:                                  ; 0xf87fe LB 0x66
    1266612644    push bp                                   ; 55
    1266712645    mov bp, sp                                ; 89 e5
    1266812646    mov dx, strict word 0000eh                ; ba 0e 00
    1266912647    mov ax, strict word 00040h                ; b8 40 00
    12670     call 01765h                               ; e8 6b 8f
     12648    call 01765h                               ; e8 5b 8f
    1267112649    mov bx, 00122h                            ; bb 22 01
    1267212650    mov es, ax                                ; 8e c0
     
    1267912657    ; sub ah, ah                                ; 2a e4
    1268012658    cmp AL, strict byte 055h                  ; 3c 55
    12681     jne short 0881eh                          ; 75 0c
     12659    jne short 0882eh                          ; 75 0c
    1268212660    xor al, al                                ; 30 c0
    1268312661    mov dx, 00433h                            ; ba 33 04
    1268412662    out DX, AL                                ; ee
    1268512663    mov ax, 00430h                            ; b8 30 04
    12686     call 0836ch                               ; e8 4e fb
     12664    call 0837ch                               ; e8 4e fb
    1268712665    mov AL, strict byte 055h                  ; b0 55
    1268812666    mov dx, 00436h                            ; ba 36 04
     
    1269212670    ; sub ah, ah                                ; 2a e4
    1269312671    cmp AL, strict byte 055h                  ; 3c 55
    12694     jne short 08837h                          ; 75 0c
     12672    jne short 08847h                          ; 75 0c
    1269512673    xor al, al                                ; 30 c0
    1269612674    mov dx, 00437h                            ; ba 37 04
    1269712675    out DX, AL                                ; ee
    1269812676    mov ax, 00434h                            ; b8 34 04
    12699     call 0836ch                               ; e8 35 fb
     12677    call 0837ch                               ; e8 35 fb
    1270012678    mov AL, strict byte 055h                  ; b0 55
    1270112679    mov dx, 0043ah                            ; ba 3a 04
     
    1270512683    ; sub ah, ah                                ; 2a e4
    1270612684    cmp AL, strict byte 055h                  ; 3c 55
    12707     jne short 08850h                          ; 75 0c
     12685    jne short 08860h                          ; 75 0c
    1270812686    xor al, al                                ; 30 c0
    1270912687    mov dx, 0043bh                            ; ba 3b 04
    1271012688    out DX, AL                                ; ee
    1271112689    mov ax, 00438h                            ; b8 38 04
    12712     call 0836ch                               ; e8 1c fb
     12690    call 0837ch                               ; e8 1c fb
    1271312691    mov sp, bp                                ; 89 ec
    1271412692    pop bp                                    ; 5d
    1271512693    retn                                      ; c3
    12716 ahci_ctrl_extract_bits_:                     ; 0xf8854 LB 0x1b
     12694ahci_ctrl_extract_bits_:                     ; 0xf8864 LB 0x1b
    1271712695    push si                                   ; 56
    1271812696    push bp                                   ; 55
     
    1272212700    and dx, cx                                ; 21 ca
    1272312701    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
    12724     jcxz 0886ah                               ; e3 06
     12702    jcxz 0887ah                               ; e3 06
    1272512703    shr dx, 1                                 ; d1 ea
    1272612704    rcr ax, 1                                 ; d1 d8
    12727     loop 08864h                               ; e2 fa
     12705    loop 08874h                               ; e2 fa
    1272812706    pop bp                                    ; 5d
    1272912707    pop si                                    ; 5e
    1273012708    retn 00002h                               ; c2 02 00
    12731 ahci_addr_to_phys_:                          ; 0xf886f LB 0x1e
     12709ahci_addr_to_phys_:                          ; 0xf887f LB 0x1e
    1273212710    push bx                                   ; 53
    1273312711    push cx                                   ; 51
     
    1274012718    sal ax, 1                                 ; d1 e0
    1274112719    rcl dx, 1                                 ; d1 d2
    12742     loop 0887dh                               ; e2 fa
     12720    loop 0888dh                               ; e2 fa
    1274312721    xor cx, cx                                ; 31 c9
    1274412722    add ax, bx                                ; 01 d8
     
    1274812726    pop bx                                    ; 5b
    1274912727    retn                                      ; c3
    12750 ahci_port_cmd_sync_:                         ; 0xf888d LB 0x14b
     12728ahci_port_cmd_sync_:                         ; 0xf889d LB 0x14b
    1275112729    push bp                                   ; 55
    1275212730    mov bp, sp                                ; 89 e5
     
    1276312741    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
    1276412742    cmp ah, 0ffh                              ; 80 fc ff
    12765     je near 089d0h                            ; 0f 84 20 01
     12743    je near 089e0h                            ; 0f 84 20 01
    1276612744    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
    1276712745    xor di, di                                ; 31 ff
     
    1277512753    lea ax, [si+00080h]                       ; 8d 84 80 00
    1277612754    mov dx, cx                                ; 89 ca
    12777     call 0886fh                               ; e8 96 ff
     12755    call 0887fh                               ; e8 96 ff
    1277812756    mov es, cx                                ; 8e c1
    1277912757    mov word [es:si+008h], ax                 ; 26 89 44 08
     
    1283812816    xchg dx, ax                               ; 92
    1283912817    test dh, 040h                             ; f6 c6 40
    12840     jne short 08966h                          ; 75 04
     12818    jne short 08976h                          ; 75 04
    1284112819    test AL, strict byte 001h                 ; a8 01
    12842     je short 0896ah                           ; 74 04
     12820    je short 0897ah                           ; 74 04
    1284312821    mov AL, strict byte 001h                  ; b0 01
    12844     jmp short 0896ch                          ; eb 02
     12822    jmp short 0897ch                          ; eb 02
    1284512823    xor al, al                                ; 30 c0
    1284612824    test al, al                               ; 84 c0
    12847     je short 0893ah                           ; 74 ca
     12825    je short 0894ah                           ; 74 ca
    1284812826    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
    1284912827    sal di, 007h                              ; c1 e7 07
     
    1289912877    pop bp                                    ; 5d
    1290012878    retn                                      ; c3
    12901 ahci_cmd_data_:                              ; 0xf89d8 LB 0x262
     12879ahci_cmd_data_:                              ; 0xf89e8 LB 0x262
    1290212880    push bp                                   ; 55
    1290312881    mov bp, sp                                ; 89 e5
     
    1292412902    mov ax, 00080h                            ; b8 80 00
    1292512903    mov dx, word [bp-00ah]                    ; 8b 56 f6
    12926     call 0a080h                               ; e8 6a 16
     12904    call 0a090h                               ; e8 6a 16
    1292712905    mov es, [bp-00ah]                         ; 8e 46 f6
    1292812906    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
     
    1294212920    mov dx, word [es:si]                      ; 26 8b 14
    1294312921    mov si, strict word 00008h                ; be 08 00
    12944     call 0a060h                               ; e8 06 16
     12922    call 0a070h                               ; e8 06 16
    1294512923    mov es, [bp-00ah]                         ; 8e 46 f6
    1294612924    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
     
    1295312931    mov dx, word [es:si]                      ; 26 8b 14
    1295412932    mov si, strict word 00010h                ; be 10 00
    12955     call 0a060h                               ; e8 e0 15
     12933    call 0a070h                               ; e8 e0 15
    1295612934    mov es, [bp-00ah]                         ; 8e 46 f6
    1295712935    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
     
    1296512943    mov dx, word [es:si]                      ; 26 8b 14
    1296612944    mov si, strict word 00018h                ; be 18 00
    12967     call 0a060h                               ; e8 b4 15
     12945    call 0a070h                               ; e8 b4 15
    1296812946    mov es, [bp-00ah]                         ; 8e 46 f6
    1296912947    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
     
    1297612954    mov dx, word [es:si]                      ; 26 8b 14
    1297712955    mov si, strict word 00020h                ; be 20 00
    12978     call 0a060h                               ; e8 8e 15
     12956    call 0a070h                               ; e8 8e 15
    1297912957    mov es, [bp-00ah]                         ; 8e 46 f6
    1298012958    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
     
    1298712965    mov dx, word [es:si]                      ; 26 8b 14
    1298812966    mov si, strict word 00028h                ; be 28 00
    12989     call 0a060h                               ; e8 68 15
     12967    call 0a070h                               ; e8 68 15
    1299012968    mov es, [bp-00ah]                         ; 8e 46 f6
    1299112969    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
     
    1300112979    mov bx, word [bp-010h]                    ; 8b 5e f0
    1300212980    xor cx, cx                                ; 31 c9
    13003     call 09fe0h                               ; e8 b3 14
     12981    call 09ff0h                               ; e8 b3 14
    1300412982    push dx                                   ; 52
    1300512983    push ax                                   ; 50
     
    1301112989    mov ax, 0026ah                            ; b8 6a 02
    1301212990    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13013     call 09f2fh                               ; e8 e6 13
     12991    call 09f3fh                               ; e8 e6 13
    1301412992    mov es, [bp-00ah]                         ; 8e 46 f6
    1301512993    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
     
    1303213010    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
    1303313011    test ax, ax                               ; 85 c0
    13034     je short 08bd7h                           ; 74 39
     13012    je short 08be7h                           ; 74 39
    1303513013    dec ax                                    ; 48
    1303613014    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1304813026    mov al, byte [bp-008h]                    ; 8a 46 f8
    1304913027    cmp AL, strict byte 035h                  ; 3c 35
    13050     jne short 08be4h                          ; 75 06
     13028    jne short 08bf4h                          ; 75 06
    1305113029    mov byte [bp-008h], 040h                  ; c6 46 f8 40
    13052     jmp short 08bfbh                          ; eb 17
     13030    jmp short 08c0bh                          ; eb 17
    1305313031    cmp AL, strict byte 0a0h                  ; 3c a0
    13054     jne short 08bf7h                          ; 75 0f
     13032    jne short 08c07h                          ; 75 0f
    1305513033    or byte [bp-008h], 020h                   ; 80 4e f8 20
    1305613034    les bx, [bp-00eh]                         ; c4 5e f2
    1305713035    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
    13058     jmp short 08bfbh                          ; eb 04
     13036    jmp short 08c0bh                          ; eb 04
    1305913037    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1306013038    or byte [bp-008h], 005h                   ; 80 4e f8 05
     
    1306213040    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1306313041    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13064     call 0888dh                               ; e8 81 fc
     13042    call 0889dh                               ; e8 81 fc
    1306513043    mov cx, word [bp-00ch]                    ; 8b 4e f4
    1306613044    mov bx, word [bp-00eh]                    ; 8b 5e f2
     
    1306913047    add ax, 0026ah                            ; 05 6a 02
    1307013048    mov dx, cx                                ; 89 ca
    13071     call 09fa8h                               ; e8 87 13
     13049    call 09fb8h                               ; e8 87 13
    1307213050    mov es, cx                                ; 8e c1
    1307313051    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
    1307413052    test al, al                               ; 84 c0
    13075     je short 08c30h                           ; 74 05
     13053    je short 08c40h                           ; 74 05
    1307613054    mov ax, strict word 00004h                ; b8 04 00
    13077     jmp short 08c32h                          ; eb 02
     13055    jmp short 08c42h                          ; eb 02
    1307813056    xor ah, ah                                ; 30 e4
    1307913057    lea sp, [bp-006h]                         ; 8d 66 fa
     
    1308313061    pop bp                                    ; 5d
    1308413062    retn                                      ; c3
    13085 ahci_port_deinit_current_:                   ; 0xf8c3a LB 0x17f
     13063ahci_port_deinit_current_:                   ; 0xf8c4a LB 0x17f
    1308613064    push bp                                   ; 55
    1308713065    mov bp, sp                                ; 89 e5
     
    1309813076    mov byte [bp-00ah], al                    ; 88 46 f6
    1309913077    cmp AL, strict byte 0ffh                  ; 3c ff
    13100     je near 08db0h                            ; 0f 84 52 01
     13078    je near 08dc0h                            ; 0f 84 52 01
    1310113079    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1310213080    sal ax, 007h                              ; c1 e0 07
     
    1314113119    xchg dx, ax                               ; 92
    1314213120    test ax, 0c011h                           ; a9 11 c0
    13143     je short 08cbeh                           ; 74 04
     13121    je short 08cceh                           ; 74 04
    1314413122    mov AL, strict byte 001h                  ; b0 01
    13145     jmp short 08cc0h                          ; eb 02
     13123    jmp short 08cd0h                          ; eb 02
    1314613124    xor al, al                                ; 30 c0
    1314713125    cmp AL, strict byte 001h                  ; 3c 01
    13148     je short 08c92h                           ; 74 ce
     13126    je short 08ca2h                           ; 74 ce
    1314913127    mov cx, strict word 00020h                ; b9 20 00
    1315013128    xor bx, bx                                ; 31 db
    1315113129    mov ax, di                                ; 89 f8
    1315213130    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13153     call 0a080h                               ; e8 af 13
     13131    call 0a090h                               ; e8 af 13
    1315413132    lea ax, [di+00080h]                       ; 8d 85 80 00
    1315513133    mov cx, strict word 00040h                ; b9 40 00
    1315613134    xor bx, bx                                ; 31 db
    1315713135    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13158     call 0a080h                               ; e8 a0 13
     13136    call 0a090h                               ; e8 a0 13
    1315913137    lea ax, [di+00200h]                       ; 8d 85 00 02
    1316013138    mov cx, strict word 00060h                ; b9 60 00
    1316113139    xor bx, bx                                ; 31 db
    1316213140    mov dx, word [bp-00ch]                    ; 8b 56 f4
    13163     call 0a080h                               ; e8 91 13
     13141    call 0a090h                               ; e8 91 13
    1316413142    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1316513143    sal ax, 007h                              ; c1 e0 07
     
    1326513243    pop bp                                    ; 5d
    1326613244    retn                                      ; c3
    13267 ahci_port_init_:                             ; 0xf8db9 LB 0x24a
     13245ahci_port_init_:                             ; 0xf8dc9 LB 0x24a
    1326813246    push bp                                   ; 55
    1326913247    mov bp, sp                                ; 89 e5
     
    1327513253    mov word [bp-00ah], dx                    ; 89 56 f6
    1327613254    mov byte [bp-008h], bl                    ; 88 5e f8
    13277     call 08c3ah                               ; e8 6d fe
     13255    call 08c4ah                               ; e8 6d fe
    1327813256    movzx ax, bl                              ; 0f b6 c3
    1327913257    sal ax, 007h                              ; c1 e0 07
     
    1332213300    xchg dx, ax                               ; 92
    1332313301    test ax, 0c011h                           ; a9 11 c0
    13324     je short 08e3ch                           ; 74 04
     13302    je short 08e4ch                           ; 74 04
    1332513303    mov AL, strict byte 001h                  ; b0 01
    13326     jmp short 08e3eh                          ; eb 02
     13304    jmp short 08e4eh                          ; eb 02
    1332713305    xor al, al                                ; 30 c0
    1332813306    cmp AL, strict byte 001h                  ; 3c 01
    13329     je short 08e08h                           ; 74 c6
     13307    je short 08e18h                           ; 74 c6
    1333013308    mov cx, strict word 00020h                ; b9 20 00
    1333113309    xor bx, bx                                ; 31 db
    1333213310    mov ax, si                                ; 89 f0
    1333313311    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13334     call 0a080h                               ; e8 31 12
     13312    call 0a090h                               ; e8 31 12
    1333513313    lea ax, [si+00080h]                       ; 8d 84 80 00
    1333613314    mov cx, strict word 00040h                ; b9 40 00
    1333713315    xor bx, bx                                ; 31 db
    1333813316    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13339     call 0a080h                               ; e8 22 12
     13317    call 0a090h                               ; e8 22 12
    1334013318    lea di, [si+00200h]                       ; 8d bc 00 02
    1334113319    mov cx, strict word 00060h                ; b9 60 00
     
    1334313321    mov ax, di                                ; 89 f8
    1334413322    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13345     call 0a080h                               ; e8 11 12
     13323    call 0a090h                               ; e8 11 12
    1334613324    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
    1334713325    sal bx, 007h                              ; c1 e3 07
     
    1336013338    mov ax, di                                ; 89 f8
    1336113339    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13362     call 0886fh                               ; e8 d3 f9
     13340    call 0887fh                               ; e8 d3 f9
    1336313341    mov es, [bp-00ah]                         ; 8e 46 f6
    1336413342    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1340513383    mov ax, si                                ; 89 f0
    1340613384    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13407     call 0886fh                               ; e8 67 f9
     13385    call 0887fh                               ; e8 67 f9
    1340813386    mov es, [bp-00ah]                         ; 8e 46 f6
    1340913387    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
     
    1351013488    pop bp                                    ; 5d
    1351113489    retn                                      ; c3
    13512 @ahci_read_sectors:                          ; 0xf9003 LB 0xa6
     13490@ahci_read_sectors:                          ; 0xf9013 LB 0xa6
    1351313491    push bp                                   ; 55
    1351413492    mov bp, sp                                ; 89 e5
     
    1352013498    sub di, strict byte 0000ch                ; 83 ef 0c
    1352113499    cmp di, strict byte 00004h                ; 83 ff 04
    13522     jbe short 09028h                          ; 76 0f
     13500    jbe short 09038h                          ; 76 0f
    1352313501    push di                                   ; 57
    1352413502    push 00c74h                               ; 68 74 0c
    1352513503    push 00c86h                               ; 68 86 0c
    1352613504    push strict byte 00007h                   ; 6a 07
    13527     call 01a6bh                               ; e8 46 8a
     13505    call 01a6bh                               ; e8 36 8a
    1352813506    add sp, strict byte 00008h                ; 83 c4 08
    1352913507    xor bx, bx                                ; 31 db
     
    1353913517    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
    1354013518    xor ax, ax                                ; 31 c0
    13541     call 08db9h                               ; e8 65 fd
     13519    call 08dc9h                               ; e8 65 fd
    1354213520    mov bx, strict word 00025h                ; bb 25 00
    1354313521    mov ax, si                                ; 89 f0
    1354413522    mov dx, word [bp+006h]                    ; 8b 56 06
    13545     call 089d8h                               ; e8 79 f9
     13523    call 089e8h                               ; e8 79 f9
    1354613524    mov word [bp-006h], ax                    ; 89 46 fa
    1354713525    mov es, [bp+006h]                         ; 8e 46 06
     
    1357213550    pop bp                                    ; 5d
    1357313551    retn 00004h                               ; c2 04 00
    13574 @ahci_write_sectors:                         ; 0xf90a9 LB 0x84
     13552@ahci_write_sectors:                         ; 0xf90b9 LB 0x84
    1357513553    push bp                                   ; 55
    1357613554    mov bp, sp                                ; 89 e5
     
    1358313561    sub dx, strict byte 0000ch                ; 83 ea 0c
    1358413562    cmp dx, strict byte 00004h                ; 83 fa 04
    13585     jbe short 090d2h                          ; 76 0f
     13563    jbe short 090e2h                          ; 76 0f
    1358613564    push dx                                   ; 52
    1358713565    push 00ca5h                               ; 68 a5 0c
    1358813566    push 00c86h                               ; 68 86 0c
    1358913567    push strict byte 00007h                   ; 6a 07
    13590     call 01a6bh                               ; e8 9c 89
     13568    call 01a6bh                               ; e8 8c 89
    1359113569    add sp, strict byte 00008h                ; 83 c4 08
    1359213570    xor bx, bx                                ; 31 db
     
    1360213580    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1360313581    xor ax, ax                                ; 31 c0
    13604     call 08db9h                               ; e8 bd fc
     13582    call 08dc9h                               ; e8 bd fc
    1360513583    mov bx, strict word 00035h                ; bb 35 00
    1360613584    mov ax, si                                ; 89 f0
    1360713585    mov dx, cx                                ; 89 ca
    13608     call 089d8h                               ; e8 d2 f8
     13586    call 089e8h                               ; e8 d2 f8
    1360913587    mov dx, ax                                ; 89 c2
    1361013588    mov es, cx                                ; 8e c1
     
    1362113599    pop bp                                    ; 5d
    1362213600    retn 00004h                               ; c2 04 00
    13623 ahci_cmd_packet_:                            ; 0xf912d LB 0x183
     13601ahci_cmd_packet_:                            ; 0xf913d LB 0x183
    1362413602    push bp                                   ; 55
    1362513603    mov bp, sp                                ; 89 e5
     
    1363313611    mov dx, strict word 0000eh                ; ba 0e 00
    1363413612    mov ax, strict word 00040h                ; b8 40 00
    13635     call 01765h                               ; e8 1d 86
     13613    call 01765h                               ; e8 0d 86
    1363613614    mov si, 00122h                            ; be 22 01
    1363713615    mov word [bp-008h], ax                    ; 89 46 f8
    1363813616    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
    13639     jne short 09173h                          ; 75 1f
     13617    jne short 09183h                          ; 75 1f
    1364013618    mov bx, 00db2h                            ; bb b2 0d
    1364113619    mov cx, ds                                ; 8c d9
    1364213620    mov ax, strict word 00004h                ; b8 04 00
    13643     call 01a2ah                               ; e8 cb 88
     13621    call 01a2ah                               ; e8 bb 88
    1364413622    push 00cb8h                               ; 68 b8 0c
    1364513623    push 00cc8h                               ; 68 c8 0c
    1364613624    push strict byte 00004h                   ; 6a 04
    13647     call 01a6bh                               ; e8 01 89
     13625    call 01a6bh                               ; e8 f1 88
    1364813626    add sp, strict byte 00006h                ; 83 c4 06
    1364913627    mov ax, strict word 00001h                ; b8 01 00
    13650     jmp near 092a7h                           ; e9 34 01
     13628    jmp near 092b7h                           ; e9 34 01
    1365113629    test byte [bp+004h], 001h                 ; f6 46 04 01
    13652     jne short 0916dh                          ; 75 f4
     13630    jne short 0917dh                          ; 75 f4
    1365313631    mov ax, word [bp+006h]                    ; 8b 46 06
    1365413632    mov dx, word [bp+008h]                    ; 8b 56 08
     
    1365613634    sal ax, 1                                 ; d1 e0
    1365713635    rcl dx, 1                                 ; d1 d2
    13658     loop 09182h                               ; e2 fa
     13636    loop 09192h                               ; e2 fa
    1365913637    mov es, [bp-008h]                         ; 8e 46 f8
    1366013638    mov word [es:si], ax                      ; 26 89 04
     
    1367013648    mov dx, word [bp+008h]                    ; 8b 56 08
    1367113649    xor cx, cx                                ; 31 c9
    13672     call 0a020h                               ; e8 68 0e
     13650    call 0a030h                               ; e8 68 0e
    1367313651    mov word [es:si+00eh], ax                 ; 26 89 44 0e
    1367413652    xor di, di                                ; 31 ff
     
    1368713665    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
    1368813666    xor ax, ax                                ; 31 c0
    13689     call 08db9h                               ; e8 c5 fb
     13667    call 08dc9h                               ; e8 c5 fb
    1369013668    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
    1369113669    push ax                                   ; 50
     
    1369413672    mov ax, 000c0h                            ; b8 c0 00
    1369513673    mov dx, word [bp-00ah]                    ; 8b 56 f6
    13696     call 0a090h                               ; e8 88 0e
     13674    call 0a0a0h                               ; e8 88 0e
    1369713675    mov es, [bp-008h]                         ; 8e 46 f8
    1369813676    mov word [es:si+018h], di                 ; 26 89 7c 18
     
    1370113679    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
    1370213680    test ax, ax                               ; 85 c0
    13703     je short 09246h                           ; 74 27
     13681    je short 09256h                           ; 74 27
    1370413682    dec ax                                    ; 48
    1370513683    mov es, [bp-00ah]                         ; 8e 46 f6
     
    1371413692    mov ax, si                                ; 89 f0
    1371513693    mov dx, word [bp-008h]                    ; 8b 56 f8
    13716     call 089d8h                               ; e8 87 f7
     13694    call 089e8h                               ; e8 87 f7
    1371713695    les bx, [bp-00eh]                         ; c4 5e f2
    1371813696    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
     
    1374113719    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
    1374213720    or ax, word [es:bx+004h]                  ; 26 0b 47 04
    13743     jne short 092a5h                          ; 75 05
     13721    jne short 092b5h                          ; 75 05
    1374413722    mov ax, strict word 00004h                ; b8 04 00
    13745     jmp short 092a7h                          ; eb 02
     13723    jmp short 092b7h                          ; eb 02
    1374613724    xor ax, ax                                ; 31 c0
    1374713725    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1375013728    pop bp                                    ; 5d
    1375113729    retn 0000ch                               ; c2 0c 00
    13752 ahci_port_detect_device_:                    ; 0xf92b0 LB 0x4b1
     13730ahci_port_detect_device_:                    ; 0xf92c0 LB 0x4b1
    1375313731    push bp                                   ; 55
    1375413732    mov bp, sp                                ; 89 e5
     
    1376213740    movzx di, bl                              ; 0f b6 fb
    1376313741    mov bx, di                                ; 89 fb
    13764     call 08db9h                               ; e8 ef fa
     13742    call 08dc9h                               ; e8 ef fa
    1376513743    mov dx, strict word 0000eh                ; ba 0e 00
    1376613744    mov ax, strict word 00040h                ; b8 40 00
    13767     call 01765h                               ; e8 92 84
     13745    call 01765h                               ; e8 82 84
    1376813746    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
    1376913747    mov word [bp-00eh], ax                    ; 89 46 f2
     
    1383413812    mov bx, strict word 0000fh                ; bb 0f 00
    1383513813    xor cx, cx                                ; 31 c9
    13836     call 08854h                               ; e8 d7 f4
     13814    call 08864h                               ; e8 d7 f4
    1383713815    test ax, ax                               ; 85 c0
    13838     je near 09759h                            ; 0f 84 d6 03
     13816    je near 09769h                            ; 0f 84 d6 03
    1383913817    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
    1384013818    sal ax, 007h                              ; c1 e0 07
     
    1386413842    mov bx, strict word 0000fh                ; bb 0f 00
    1386513843    xor cx, cx                                ; 31 c9
    13866     call 08854h                               ; e8 8b f4
     13844    call 08864h                               ; e8 8b f4
    1386713845    cmp ax, strict word 00001h                ; 3d 01 00
    13868     je short 09383h                           ; 74 b5
     13846    je short 09393h                           ; 74 b5
    1386913847    push strict byte 00000h                   ; 6a 00
    1387013848    mov bx, strict word 0000fh                ; bb 0f 00
     
    1387213850    mov ax, di                                ; 89 f8
    1387313851    mov dx, word [bp-022h]                    ; 8b 56 de
    13874     call 08854h                               ; e8 77 f4
     13852    call 08864h                               ; e8 77 f4
    1387513853    cmp ax, strict word 00003h                ; 3d 03 00
    13876     jne near 09759h                           ; 0f 85 75 03
     13854    jne near 09769h                           ; 0f 85 75 03
    1387713855    mov ax, word [bp-018h]                    ; 8b 46 e8
    1387813856    add ax, 00130h                            ; 05 30 01
     
    1390113879    mov byte [bp-008h], al                    ; 88 46 f8
    1390213880    cmp AL, strict byte 004h                  ; 3c 04
    13903     jnc near 09759h                           ; 0f 83 2f 03
     13881    jnc near 09769h                           ; 0f 83 2f 03
    1390413882    mov ax, word [bp-018h]                    ; 8b 46 e8
    1390513883    add ax, 00118h                            ; 05 18 01
     
    1395313931    add cl, 00ch                              ; 80 c1 0c
    1395413932    test dx, dx                               ; 85 d2
    13955     jne near 096afh                           ; 0f 85 0d 02
     13933    jne near 096bfh                           ; 0f 85 0d 02
    1395613934    cmp di, 00101h                            ; 81 ff 01 01
    13957     jne near 096afh                           ; 0f 85 05 02
     13935    jne near 096bfh                           ; 0f 85 05 02
    1395813936    les bx, [bp-010h]                         ; c4 5e f0
    1395913937    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1396913947    mov ax, word [bp-010h]                    ; 8b 46 f0
    1397013948    mov dx, es                                ; 8c c2
    13971     call 089d8h                               ; e8 fa f4
     13949    call 089e8h                               ; e8 fa f4
    1397213950    mov byte [bp-00ch], cl                    ; 88 4e f4
    1397313951    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     
    1398613964    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
    1398713965    cmp di, 00fffh                            ; 81 ff ff 0f
    13988     jne short 09537h                          ; 75 1e
     13966    jne short 09547h                          ; 75 1e
    1398913967    cmp dx, strict byte 0ffffh                ; 83 fa ff
    13990     jne short 09537h                          ; 75 19
     13968    jne short 09547h                          ; 75 19
    1399113969    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
    1399213970    mov word [bp-014h], dx                    ; 89 56 ec
     
    1402514003    mov al, byte [bp-008h]                    ; 8a 46 f8
    1402614004    cmp AL, strict byte 001h                  ; 3c 01
    14027     jc short 095b0h                           ; 72 0c
    14028     jbe short 095b8h                          ; 76 12
     14005    jc short 095c0h                           ; 72 0c
     14006    jbe short 095c8h                          ; 76 12
    1402914007    cmp AL, strict byte 003h                  ; 3c 03
    14030     je short 095c0h                           ; 74 16
     14008    je short 095d0h                           ; 74 16
    1403114009    cmp AL, strict byte 002h                  ; 3c 02
    14032     je short 095bch                           ; 74 0e
    14033     jmp short 09609h                          ; eb 59
     14010    je short 095cch                           ; 74 0e
     14011    jmp short 09619h                          ; eb 59
    1403414012    test al, al                               ; 84 c0
    14035     jne short 09609h                          ; 75 55
     14013    jne short 09619h                          ; 75 55
    1403614014    mov DL, strict byte 040h                  ; b2 40
    14037     jmp short 095c2h                          ; eb 0a
     14015    jmp short 095d2h                          ; eb 0a
    1403814016    mov DL, strict byte 048h                  ; b2 48
    14039     jmp short 095c2h                          ; eb 06
     14017    jmp short 095d2h                          ; eb 06
    1404014018    mov DL, strict byte 050h                  ; b2 50
    14041     jmp short 095c2h                          ; eb 02
     14019    jmp short 095d2h                          ; eb 02
    1404214020    mov DL, strict byte 058h                  ; b2 58
    1404314021    mov al, dl                                ; 88 d0
     
    1404514023    movzx bx, al                              ; 0f b6 d8
    1404614024    mov ax, bx                                ; 89 d8
    14047     call 017a5h                               ; e8 d7 81
     14025    call 017a5h                               ; e8 c7 81
    1404814026    test al, al                               ; 84 c0
    14049     je short 09609h                           ; 74 37
     14027    je short 09619h                           ; 74 37
    1405014028    mov al, dl                                ; 88 d0
    1405114029    db  0feh, 0c0h
    1405214030    ; inc al                                    ; fe c0
    1405314031    xor ah, ah                                ; 30 e4
    14054     call 017a5h                               ; e8 ca 81
     14032    call 017a5h                               ; e8 ba 81
    1405514033    xor ah, ah                                ; 30 e4
    1405614034    mov si, ax                                ; 89 c6
    1405714035    sal si, 008h                              ; c1 e6 08
    1405814036    movzx ax, dl                              ; 0f b6 c2
    14059     call 017a5h                               ; e8 bd 81
     14037    call 017a5h                               ; e8 ad 81
    1406014038    xor ah, ah                                ; 30 e4
    1406114039    add ax, si                                ; 01 f0
     
    1406414042    add AL, strict byte 002h                  ; 04 02
    1406514043    xor ah, ah                                ; 30 e4
    14066     call 017a5h                               ; e8 ad 81
     14044    call 017a5h                               ; e8 9d 81
    1406714045    xor ah, ah                                ; 30 e4
    1406814046    mov word [bp-02ah], ax                    ; 89 46 d6
    1406914047    mov ax, bx                                ; 89 d8
    14070     call 017a5h                               ; e8 a3 81
     14048    call 017a5h                               ; e8 93 81
    1407114049    xor ah, ah                                ; 30 e4
    1407214050    mov word [bp-026h], ax                    ; 89 46 da
    14073     jmp short 09619h                          ; eb 10
     14051    jmp short 09629h                          ; eb 10
    1407414052    push dword [bp-016h]                      ; 66 ff 76 ea
    1407514053    push di                                   ; 57
     
    1407714055    mov dx, ss                                ; 8c d2
    1407814056    lea ax, [bp-02ah]                         ; 8d 46 d6
    14079     call 05ac0h                               ; e8 a7 c4
     14057    call 05acch                               ; e8 a3 c4
    1408014058    mov bx, 00db2h                            ; bb b2 0d
    1408114059    mov cx, ds                                ; 8c d9
    1408214060    mov ax, strict word 00004h                ; b8 04 00
    14083     call 01a2ah                               ; e8 06 84
     14061    call 01a2ah                               ; e8 f6 83
    1408414062    push dword [bp-016h]                      ; 66 ff 76 ea
    1408514063    push di                                   ; 57
     
    1410014078    push 00ce8h                               ; 68 e8 0c
    1410114079    push strict byte 00004h                   ; 6a 04
    14102     call 01a6bh                               ; e8 18 84
     14080    call 01a6bh                               ; e8 08 84
    1410314081    add sp, strict byte 0001ch                ; 83 c4 1c
    1410414082    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     
    1412914107    mov dx, strict word 00075h                ; ba 75 00
    1413014108    mov ax, strict word 00040h                ; b8 40 00
    14131     call 01749h                               ; e8 ab 80
     14109    call 01749h                               ; e8 9b 80
    1413214110    db  0feh, 0c0h
    1413314111    ; inc al                                    ; fe c0
     
    1413514113    mov dx, strict word 00075h                ; ba 75 00
    1413614114    mov ax, strict word 00040h                ; b8 40 00
    14137     call 01757h                               ; e8 ab 80
    14138     jmp near 0974bh                           ; e9 9c 00
     14115    call 01757h                               ; e8 9b 80
     14116    jmp near 0975bh                           ; e9 9c 00
    1413914117    cmp dx, 0eb14h                            ; 81 fa 14 eb
    14140     jne near 0974bh                           ; 0f 85 94 00
     14118    jne near 0975bh                           ; 0f 85 94 00
    1414114119    cmp di, 00101h                            ; 81 ff 01 01
    14142     jne near 0974bh                           ; 0f 85 8c 00
     14120    jne near 0975bh                           ; 0f 85 8c 00
    1414314121    les bx, [bp-010h]                         ; c4 5e f0
    1414414122    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
     
    1415414132    mov ax, word [bp-010h]                    ; 8b 46 f0
    1415514133    mov dx, es                                ; 8c c2
    14156     call 089d8h                               ; e8 e5 f2
     14134    call 089e8h                               ; e8 e5 f2
    1415714135    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
    1415814136    db  00fh, 095h, 0c0h
     
    1419114169    pop bp                                    ; 5d
    1419214170    retn                                      ; c3
    14193 ahci_mem_alloc_:                             ; 0xf9761 LB 0x43
     14171ahci_mem_alloc_:                             ; 0xf9771 LB 0x43
    1419414172    push bp                                   ; 55
    1419514173    mov bp, sp                                ; 89 e5
     
    1420114179    mov dx, 00413h                            ; ba 13 04
    1420214180    xor ax, ax                                ; 31 c0
    14203     call 01765h                               ; e8 f4 7f
     14181    call 01765h                               ; e8 e4 7f
    1420414182    test ax, ax                               ; 85 c0
    14205     je short 0979ah                           ; 74 25
     14183    je short 097aah                           ; 74 25
    1420614184    dec ax                                    ; 48
    1420714185    mov bx, ax                                ; 89 c3
     
    1421014188    sal ax, 1                                 ; d1 e0
    1421114189    rcl dx, 1                                 ; d1 d2
    14212     loop 0977dh                               ; e2 fa
     14190    loop 0978dh                               ; e2 fa
    1421314191    mov si, ax                                ; 89 c6
    1421414192    mov di, dx                                ; 89 d7
     
    1421614194    shr di, 1                                 ; d1 ef
    1421714195    rcr si, 1                                 ; d1 de
    14218     loop 0978ah                               ; e2 fa
     14196    loop 0979ah                               ; e2 fa
    1421914197    mov dx, 00413h                            ; ba 13 04
    1422014198    xor ax, ax                                ; 31 c0
    14221     call 01773h                               ; e8 db 7f
     14199    call 01773h                               ; e8 cb 7f
    1422214200    mov ax, si                                ; 89 f0
    1422314201    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1422914207    pop bp                                    ; 5d
    1423014208    retn                                      ; c3
    14231 ahci_hba_init_:                              ; 0xf97a4 LB 0x166
     14209ahci_hba_init_:                              ; 0xf97b4 LB 0x166
    1423214210    push bp                                   ; 55
    1423314211    mov bp, sp                                ; 89 e5
     
    1424114219    mov dx, strict word 0000eh                ; ba 0e 00
    1424214220    mov ax, strict word 00040h                ; b8 40 00
    14243     call 01765h                               ; e8 ab 7f
     14221    call 01765h                               ; e8 9b 7f
    1424414222    mov bx, 00122h                            ; bb 22 01
    1424514223    mov di, ax                                ; 89 c7
     
    1425814236    shr eax, 010h                             ; 66 c1 e8 10
    1425914237    xchg dx, ax                               ; 92
    14260     call 09761h                               ; e8 83 ff
     14238    call 09771h                               ; e8 83 ff
    1426114239    mov word [bp-010h], ax                    ; 89 46 f0
    1426214240    test ax, ax                               ; 85 c0
    14263     je near 098e9h                            ; 0f 84 02 01
     14241    je near 098f9h                            ; 0f 84 02 01
    1426414242    mov ax, word [bp-010h]                    ; 8b 46 f0
    1426514243    mov es, di                                ; 8e c7
     
    1431114289    xchg dx, ax                               ; 92
    1431214290    test AL, strict byte 001h                 ; a8 01
    14313     jne short 0983dh                          ; 75 de
     14291    jne short 0984dh                          ; 75 de
    1431414292    xor ax, ax                                ; 31 c0
    1431514293    xor cx, cx                                ; 31 c9
     
    1432914307    mov bx, strict word 0001fh                ; bb 1f 00
    1433014308    xor cx, cx                                ; 31 c9
    14331     call 08854h                               ; e8 d1 ef
     14309    call 08864h                               ; e8 d1 ef
    1433214310    db  0feh, 0c0h
    1433314311    ; inc al                                    ; fe c0
    1433414312    mov byte [bp-00eh], al                    ; 88 46 f2
    1433514313    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
    14336     jmp short 098aeh                          ; eb 20
     14314    jmp short 098beh                          ; eb 20
    1433714315    xor al, al                                ; 30 c0
    1433814316    test al, al                               ; 84 c0
    14339     je short 098a5h                           ; 74 11
     14317    je short 098b5h                           ; 74 11
    1434014318    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
    1434114319    xor ax, ax                                ; 31 c0
    1434214320    mov dx, word [bp-010h]                    ; 8b 56 f0
    14343     call 092b0h                               ; e8 10 fa
     14321    call 092c0h                               ; e8 10 fa
    1434414322    dec byte [bp-00eh]                        ; fe 4e f2
    14345     je short 098e7h                           ; 74 42
     14323    je short 098f7h                           ; 74 42
    1434614324    inc byte [bp-00ch]                        ; fe 46 f4
    1434714325    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
    14348     jnc short 098e7h                          ; 73 39
     14326    jnc short 098f7h                          ; 73 39
    1434914327    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
    1435014328    mov bx, strict word 00001h                ; bb 01 00
    1435114329    xor di, di                                ; 31 ff
    14352     jcxz 098bfh                               ; e3 06
     14330    jcxz 098cfh                               ; e3 06
    1435314331    sal bx, 1                                 ; d1 e3
    1435414332    rcl di, 1                                 ; d1 d7
    14355     loop 098b9h                               ; e2 fa
     14333    loop 098c9h                               ; e2 fa
    1435614334    mov ax, strict word 0000ch                ; b8 0c 00
    1435714335    xor cx, cx                                ; 31 c9
     
    1436914347    xchg dx, ax                               ; 92
    1437014348    test dx, di                               ; 85 fa
    14371     jne short 098e3h                          ; 75 04
     14349    jne short 098f3h                          ; 75 04
    1437214350    test ax, bx                               ; 85 d8
    14373     je short 0988eh                           ; 74 ab
     14351    je short 0989eh                           ; 74 ab
    1437414352    mov AL, strict byte 001h                  ; b0 01
    14375     jmp short 09890h                          ; eb a9
     14353    jmp short 098a0h                          ; eb a9
    1437614354    xor ax, ax                                ; 31 c0
    1437714355    lea sp, [bp-00ah]                         ; 8d 66 f6
     
    1438314361    pop bp                                    ; 5d
    1438414362    retn                                      ; c3
    14385     db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0dah, 099h, 0b8h, 099h, 0beh, 099h, 0c4h, 099h, 0cah
    14386     db  099h, 0d0h, 099h, 0d6h, 099h, 0dah, 099h
    14387 _ahci_init:                                  ; 0xf990a LB 0x116
     14363    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0eah, 099h, 0c8h, 099h, 0ceh, 099h, 0d4h, 099h, 0dah
     14364    db  099h, 0e0h, 099h, 0e6h, 099h, 0eah, 099h
     14365_ahci_init:                                  ; 0xf991a LB 0x116
    1438814366    push bp                                   ; 55
    1438914367    mov bp, sp                                ; 89 e5
     
    1439314371    mov ax, 00601h                            ; b8 01 06
    1439414372    mov dx, strict word 00001h                ; ba 01 00
    14395     call 09e40h                               ; e8 25 05
     14373    call 09e50h                               ; e8 25 05
    1439614374    mov bx, ax                                ; 89 c3
    1439714375    cmp ax, strict word 0ffffh                ; 3d ff ff
    14398     je near 09a19h                            ; 0f 84 f5 00
     14376    je near 09a29h                            ; 0f 84 f5 00
    1439914377    xor al, al                                ; 30 c0
    1440014378    shr ax, 008h                              ; c1 e8 08
     
    1440414382    xor ah, ah                                ; 30 e4
    1440514383    mov bx, strict word 00034h                ; bb 34 00
    14406     call 09e6bh                               ; e8 31 05
     14384    call 09e7bh                               ; e8 31 05
    1440714385    mov cl, al                                ; 88 c1
    1440814386    test cl, cl                               ; 84 c9
    14409     je short 09963h                           ; 74 23
     14387    je short 09973h                           ; 74 23
    1441014388    movzx bx, cl                              ; 0f b6 d9
    1441114389    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1441314391    mov dx, di                                ; 89 fa
    1441414392    mov ax, si                                ; 89 f0
    14415     call 09e6bh                               ; e8 19 05
     14393    call 09e7bh                               ; e8 19 05
    1441614394    cmp AL, strict byte 012h                  ; 3c 12
    14417     je short 09963h                           ; 74 0d
     14395    je short 09973h                           ; 74 0d
    1441814396    mov al, cl                                ; 88 c8
    1441914397    db  0feh, 0c0h
     
    1442214400    mov dx, di                                ; 89 fa
    1442314401    mov ax, si                                ; 89 f0
    14424     jmp short 09937h                          ; eb d4
     14402    jmp short 09947h                          ; eb d4
    1442514403    test cl, cl                               ; 84 c9
    14426     je near 09a19h                            ; 0f 84 b0 00
     14404    je near 09a29h                            ; 0f 84 b0 00
    1442714405    add cl, 002h                              ; 80 c1 02
    1442814406    movzx bx, cl                              ; 0f b6 d9
     
    1443114409    mov dx, si                                ; 89 f2
    1443214410    mov ax, di                                ; 89 f8
    14433     call 09e6bh                               ; e8 ed 04
     14411    call 09e7bh                               ; e8 ed 04
    1443414412    cmp AL, strict byte 010h                  ; 3c 10
    14435     jne near 09a19h                           ; 0f 85 95 00
     14413    jne near 09a29h                           ; 0f 85 95 00
    1443614414    mov byte [bp-006h], 000h                  ; c6 46 fa 00
    1443714415    mov al, cl                                ; 88 c8
     
    1444014418    mov dx, si                                ; 89 f2
    1444114419    mov ax, di                                ; 89 f8
    14442     call 09e8fh                               ; e8 f9 04
     14420    call 09e9fh                               ; e8 f9 04
    1444314421    mov dx, ax                                ; 89 c2
    1444414422    and ax, strict word 0000fh                ; 25 0f 00
    1444514423    sub ax, strict word 00004h                ; 2d 04 00
    1444614424    cmp ax, strict word 0000bh                ; 3d 0b 00
    14447     jnbe short 099dah                         ; 77 37
     14425    jnbe short 099eah                         ; 77 37
    1444814426    push CS                                   ; 0e
    1444914427    pop ES                                    ; 07
    1445014428    mov cx, strict word 00008h                ; b9 08 00
    14451     mov di, 098f3h                            ; bf f3 98
     14429    mov di, 09903h                            ; bf 03 99
    1445214430    repne scasb                               ; f2 ae
    1445314431    sal cx, 1                                 ; d1 e1
    1445414432    mov di, cx                                ; 89 cf
    14455     mov ax, word [cs:di-06706h]               ; 2e 8b 85 fa 98
     14433    mov ax, word [cs:di-066f6h]               ; 2e 8b 85 0a 99
    1445614434    jmp ax                                    ; ff e0
    1445714435    mov byte [bp-006h], 010h                  ; c6 46 fa 10
    14458     jmp short 099dah                          ; eb 1c
     14436    jmp short 099eah                          ; eb 1c
    1445914437    mov byte [bp-006h], 014h                  ; c6 46 fa 14
    14460     jmp short 099dah                          ; eb 16
     14438    jmp short 099eah                          ; eb 16
    1446114439    mov byte [bp-006h], 018h                  ; c6 46 fa 18
    14462     jmp short 099dah                          ; eb 10
     14440    jmp short 099eah                          ; eb 10
    1446314441    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
    14464     jmp short 099dah                          ; eb 0a
     14442    jmp short 099eah                          ; eb 0a
    1446514443    mov byte [bp-006h], 020h                  ; c6 46 fa 20
    14466     jmp short 099dah                          ; eb 04
     14444    jmp short 099eah                          ; eb 04
    1446714445    mov byte [bp-006h], 024h                  ; c6 46 fa 24
    1446814446    mov cx, dx                                ; 89 d1
     
    1447114449    mov al, byte [bp-006h]                    ; 8a 46 fa
    1447214450    test al, al                               ; 84 c0
    14473     je short 09a19h                           ; 74 30
     14451    je short 09a29h                           ; 74 30
    1447414452    movzx bx, al                              ; 0f b6 d8
    1447514453    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     
    1447714455    mov dx, di                                ; 89 fa
    1447814456    mov ax, si                                ; 89 f0
    14479     call 09eb1h                               ; e8 b6 04
     14457    call 09ec1h                               ; e8 b6 04
    1448014458    test AL, strict byte 001h                 ; a8 01
    14481     je short 09a19h                           ; 74 1a
     14459    je short 09a29h                           ; 74 1a
    1448214460    and AL, strict byte 0f0h                  ; 24 f0
    1448314461    add ax, cx                                ; 01 c8
     
    1448714465    mov dx, di                                ; 89 fa
    1448814466    mov ax, si                                ; 89 f0
    14489     call 09ed8h                               ; e8 c5 04
     14467    call 09ee8h                               ; e8 c5 04
    1449014468    mov ax, word [bp-00ch]                    ; 8b 46 f4
    14491     call 097a4h                               ; e8 8b fd
     14469    call 097b4h                               ; e8 8b fd
    1449214470    lea sp, [bp-004h]                         ; 8d 66 fc
    1449314471    pop di                                    ; 5f
     
    1449514473    pop bp                                    ; 5d
    1449614474    retn                                      ; c3
    14497 apm_out_str_:                                ; 0xf9a20 LB 0x39
     14475apm_out_str_:                                ; 0xf9a30 LB 0x39
    1449814476    push bp                                   ; 55
    1449914477    mov bp, sp                                ; 89 e5
     
    1450114479    mov bx, ax                                ; 89 c3
    1450214480    cmp byte [bx], 000h                       ; 80 3f 00
    14503     je short 09a35h                           ; 74 0a
     14481    je short 09a45h                           ; 74 0a
    1450414482    mov al, byte [bx]                         ; 8a 07
    1450514483    out DX, AL                                ; ee
     
    1450814486    db  00ah, 0c0h
    1450914487    ; or al, al                                 ; 0a c0
    14510     jne short 09a2dh                          ; 75 f8
     14488    jne short 09a3dh                          ; 75 f8
    1451114489    lea sp, [bp-002h]                         ; 8d 66 fe
    1451214490    pop bx                                    ; 5b
    1451314491    pop bp                                    ; 5d
    1451414492    retn                                      ; c3
    14515     jl short 099d7h                           ; 7c 9a
    14516     dec ax                                    ; 48
     14493    mov [bp+si-064a8h], ds                    ; 8c 9a 58 9b
     14494    sahf                                      ; 9e
     14495    call far 09b58h:09ab9h                    ; 9a b9 9a 58 9b
     14496    in AL, strict byte 09ah                   ; e4 9a
     14497    pop ax                                    ; 58
    1451714498    wait                                      ; 9b
    14518     mov ds, [bp+si-06557h]                    ; 8e 9a a9 9a
    14519     dec ax                                    ; 48
     14499    jmp near 0c7f6h                           ; e9 9a 2d
    1452014500    wait                                      ; 9b
    14521     aam 09ah                                  ; d4 9a
    14522     dec ax                                    ; 48
     14501    sub ax, 02d9bh                            ; 2d 9b 2d
    1452314502    wait                                      ; 9b
    14524     fstp dword [bp+si-064e3h]                 ; d9 9a 1d 9b
    14525     sbb ax, 01d9bh                            ; 1d 9b 1d
     14503    sub byte [bp+di-064d3h], bl               ; 28 9b 2d 9b
     14504    sub ax, 0219bh                            ; 2d 9b 21
    1452614505    wait                                      ; 9b
    14527     sbb byte [bp+di-064e3h], bl               ; 18 9b 1d 9b
    14528     sbb ax, 0119bh                            ; 1d 9b 11
    14529     wait                                      ; 9b
    14530 _apm_function:                               ; 0xf9a59 LB 0xf5
     14506_apm_function:                               ; 0xf9a69 LB 0xf5
    1453114507    push bp                                   ; 55
    1453214508    mov bp, sp                                ; 89 e5
     
    1453614512    xor ah, ah                                ; 30 e4
    1453714513    cmp ax, strict word 0000eh                ; 3d 0e 00
    14538     jnbe near 09b1dh                          ; 0f 87 b0 00
     14514    jnbe near 09b2dh                          ; 0f 87 b0 00
    1453914515    mov bx, ax                                ; 89 c3
    1454014516    add bx, ax                                ; 01 c3
    1454114517    mov dx, word [bp+018h]                    ; 8b 56 18
    1454214518    or dl, 001h                               ; 80 ca 01
    14543     jmp word [cs:bx-065c5h]                   ; 2e ff a7 3b 9a
     14519    jmp word [cs:bx-065b5h]                   ; 2e ff a7 4b 9a
    1454414520    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    1454514521    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
    1454614522    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
    14547     jmp near 09b48h                           ; e9 ba 00
     14523    jmp near 09b58h                           ; e9 ba 00
    1454814524    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    14549     mov word [bp+00ch], 0a104h                ; c7 46 0c 04 a1
     14525    mov word [bp+00ch], 0a114h                ; c7 46 0c 14 a1
    1455014526    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
    1455114527    mov ax, strict word 0fff0h                ; b8 f0 ff
    1455214528    mov word [bp+006h], ax                    ; 89 46 06
    1455314529    mov word [bp+004h], ax                    ; 89 46 04
    14554     jmp near 09b48h                           ; e9 9f 00
     14530    jmp near 09b58h                           ; e9 9f 00
    1455514531    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
    1455614532    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
     
    1456514541    mov si, ax                                ; 89 c6
    1456614542    sal esi, 010h                             ; 66 c1 e6 10
    14567     jmp near 09b48h                           ; e9 74 00
     14543    jmp near 09b58h                           ; e9 74 00
    1456814544    sti                                       ; fb
    1456914545    hlt                                       ; f4
    14570     jmp near 09b48h                           ; e9 6f 00
     14546    jmp near 09b58h                           ; e9 6f 00
    1457114547    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
    14572     je short 09afeh                           ; 74 1f
     14548    je short 09b0eh                           ; 74 1f
    1457314549    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
    14574     je short 09af6h                           ; 74 11
     14550    je short 09b06h                           ; 74 11
    1457514551    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
    14576     jne short 09b06h                          ; 75 1b
     14552    jne short 09b16h                          ; 75 1b
    1457714553    mov dx, 0040fh                            ; ba 0f 04
    1457814554    mov ax, 00d22h                            ; b8 22 0d
    14579     call 09a20h                               ; e8 2c ff
    14580     jmp short 09b48h                          ; eb 52
     14555    call 09a30h                               ; e8 2c ff
     14556    jmp short 09b58h                          ; eb 52
    1458114557    mov dx, 0040fh                            ; ba 0f 04
    1458214558    mov ax, 00d2ah                            ; b8 2a 0d
    14583     jmp short 09af1h                          ; eb f3
     14559    jmp short 09b01h                          ; eb f3
    1458414560    mov dx, 0040fh                            ; ba 0f 04
    1458514561    mov ax, 00d32h                            ; b8 32 0d
    14586     jmp short 09af1h                          ; eb eb
     14562    jmp short 09b01h                          ; eb eb
    1458714563    or ah, 00ah                               ; 80 cc 0a
    1458814564    mov word [bp+012h], ax                    ; 89 46 12
    1458914565    mov word [bp+018h], dx                    ; 89 56 18
    14590     jmp short 09b48h                          ; eb 37
     14566    jmp short 09b58h                          ; eb 37
    1459114567    mov word [bp+012h], 00102h                ; c7 46 12 02 01
    14592     jmp short 09b48h                          ; eb 30
     14568    jmp short 09b58h                          ; eb 30
    1459314569    or ah, 080h                               ; 80 cc 80
    14594     jmp short 09b09h                          ; eb ec
     14570    jmp short 09b19h                          ; eb ec
    1459514571    mov bx, 00db2h                            ; bb b2 0d
    1459614572    mov cx, ds                                ; 8c d9
    1459714573    mov ax, strict word 00004h                ; b8 04 00
    14598     call 01a2ah                               ; e8 02 7f
     14574    call 01a2ah                               ; e8 f2 7e
    1459914575    push word [bp+00ch]                       ; ff 76 0c
    1460014576    push word [bp+012h]                       ; ff 76 12
    1460114577    push 00d3bh                               ; 68 3b 0d
    1460214578    push strict byte 00004h                   ; 6a 04
    14603     call 01a6bh                               ; e8 35 7f
     14579    call 01a6bh                               ; e8 25 7f
    1460414580    add sp, strict byte 00008h                ; 83 c4 08
    1460514581    mov ax, word [bp+012h]                    ; 8b 46 12
     
    1461214588    pop bp                                    ; 5d
    1461314589    retn                                      ; c3
    14614 pci16_select_reg_:                           ; 0xf9b4e LB 0x24
     14590pci16_select_reg_:                           ; 0xf9b5e LB 0x24
    1461514591    push bp                                   ; 55
    1461614592    mov bp, sp                                ; 89 e5
     
    1462914605    pop bp                                    ; 5d
    1463014606    retn                                      ; c3
    14631 pci16_find_device_:                          ; 0xf9b72 LB 0xf7
     14607pci16_find_device_:                          ; 0xf9b82 LB 0xf7
    1463214608    push bp                                   ; 55
    1463314609    mov bp, sp                                ; 89 e5
     
    1464314619    mov byte [bp-008h], 000h                  ; c6 46 f8 00
    1464414620    test bl, 007h                             ; f6 c3 07
    14645     jne short 09bbah                          ; 75 2d
     14621    jne short 09bcah                          ; 75 2d
    1464614622    mov dx, strict word 0000eh                ; ba 0e 00
    1464714623    mov ax, bx                                ; 89 d8
    14648     call 09b4eh                               ; e8 b9 ff
     14624    call 09b5eh                               ; e8 b9 ff
    1464914625    mov dx, 00cfeh                            ; ba fe 0c
    1465014626    in AL, DX                                 ; ec
     
    1465314629    mov byte [bp-006h], al                    ; 88 46 fa
    1465414630    cmp AL, strict byte 0ffh                  ; 3c ff
    14655     jne short 09ba8h                          ; 75 06
     14631    jne short 09bb8h                          ; 75 06
    1465614632    add bx, strict byte 00008h                ; 83 c3 08
    14657     jmp near 09c3bh                           ; e9 93 00
     14633    jmp near 09c4bh                           ; e9 93 00
    1465814634    test byte [bp-006h], 080h                 ; f6 46 fa 80
    14659     je short 09bb5h                           ; 74 07
     14635    je short 09bc5h                           ; 74 07
    1466014636    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
    14661     jmp short 09bbah                          ; eb 05
     14637    jmp short 09bcah                          ; eb 05
    1466214638    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
    1466314639    mov al, byte [bp-006h]                    ; 8a 46 fa
    1466414640    and AL, strict byte 007h                  ; 24 07
    1466514641    cmp AL, strict byte 001h                  ; 3c 01
    14666     jne short 09be2h                          ; 75 1f
     14642    jne short 09bf2h                          ; 75 1f
    1466714643    mov ax, bx                                ; 89 d8
    1466814644    shr ax, 008h                              ; c1 e8 08
    1466914645    test ax, ax                               ; 85 c0
    14670     jne short 09be2h                          ; 75 16
     14646    jne short 09bf2h                          ; 75 16
    1467114647    mov dx, strict word 0001ah                ; ba 1a 00
    1467214648    mov ax, bx                                ; 89 d8
    14673     call 09b4eh                               ; e8 7a ff
     14649    call 09b5eh                               ; e8 7a ff
    1467414650    mov dx, 00cfeh                            ; ba fe 0c
    1467514651    in AL, DX                                 ; ec
     
    1467714653    ; sub ah, ah                                ; 2a e4
    1467814654    cmp al, byte [bp-008h]                    ; 3a 46 f8
    14679     jbe short 09be2h                          ; 76 03
     14655    jbe short 09bf2h                          ; 76 03
    1468014656    mov byte [bp-008h], al                    ; 88 46 f8
    1468114657    test di, di                               ; 85 ff
    14682     je short 09bebh                           ; 74 05
     14658    je short 09bfbh                           ; 74 05
    1468314659    mov dx, strict word 00008h                ; ba 08 00
    14684     jmp short 09bedh                          ; eb 02
     14660    jmp short 09bfdh                          ; eb 02
    1468514661    xor dx, dx                                ; 31 d2
    1468614662    mov ax, bx                                ; 89 d8
    14687     call 09b4eh                               ; e8 5c ff
     14663    call 09b5eh                               ; e8 5c ff
    1468814664    mov dx, 00cfch                            ; ba fc 0c
    1468914665    in eax, DX                                ; 66 ed
     
    1469614672    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
    1469714673    test di, di                               ; 85 ff
    14698     je short 09c1ch                           ; 74 0f
     14674    je short 09c2ch                           ; 74 0f
    1469914675    mov cx, strict word 00008h                ; b9 08 00
    1470014676    shr dx, 1                                 ; d1 ea
    1470114677    rcr ax, 1                                 ; d1 d8
    14702     loop 09c10h                               ; e2 fa
     14678    loop 09c20h                               ; e2 fa
    1470314679    mov word [bp-00eh], ax                    ; 89 46 f2
    1470414680    mov word [bp-00ch], dx                    ; 89 56 f4
    1470514681    mov ax, word [bp-00ch]                    ; 8b 46 f4
    1470614682    cmp ax, word [bp-014h]                    ; 3b 46 ec
    14707     jne short 09c2ch                          ; 75 08
     14683    jne short 09c3ch                          ; 75 08
    1470814684    mov ax, word [bp-00eh]                    ; 8b 46 f2
    1470914685    cmp ax, word [bp-012h]                    ; 3b 46 ee
    14710     je short 09c32h                           ; 74 06
     14686    je short 09c42h                           ; 74 06
    1471114687    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
    14712     je short 09c38h                           ; 74 06
     14688    je short 09c48h                           ; 74 06
    1471314689    dec si                                    ; 4e
    1471414690    cmp si, strict byte 0ffffh                ; 83 fe ff
    14715     je short 09c4ah                           ; 74 12
     14691    je short 09c5ah                           ; 74 12
    1471614692    add bx, word [bp-00ah]                    ; 03 5e f6
    1471714693    mov dx, bx                                ; 89 da
     
    1471914695    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
    1472014696    cmp dx, ax                                ; 39 c2
    14721     jbe near 09b88h                           ; 0f 86 3e ff
     14697    jbe near 09b98h                           ; 0f 86 3e ff
    1472214698    cmp si, strict byte 0ffffh                ; 83 fe ff
    14723     jne short 09c53h                          ; 75 04
     14699    jne short 09c63h                          ; 75 04
    1472414700    mov ax, bx                                ; 89 d8
    14725     jmp short 09c56h                          ; eb 03
     14701    jmp short 09c66h                          ; eb 03
    1472614702    mov ax, strict word 0ffffh                ; b8 ff ff
    1472714703    lea sp, [bp-004h]                         ; 8d 66 fc
     
    1473014706    pop bp                                    ; 5d
    1473114707    retn                                      ; c3
    14732     dec bx                                    ; 4b
     14708    pop bx                                    ; 5b
    1473314709    popfw                                     ; 9d
    14734     db  065h, 09dh
    14735     ; gs popfw                                  ; 65 9d
    14736     js short 09c00h                           ; 78 9d
    14737     lea bx, [di-06260h]                       ; 8d 9d a0 9d
    14738     mov BL, strict byte 09dh                  ; b3 9d
    14739 _pci16_function:                             ; 0xf9c69 LB 0x1d7
     14710    jne short 09c0eh                          ; 75 9d
     14711    mov byte [di-06263h], bl                  ; 88 9d 9d 9d
     14712    mov AL, strict byte 09dh                  ; b0 9d
     14713    retn                                      ; c3
     14714    popfw                                     ; 9d
     14715_pci16_function:                             ; 0xf9c79 LB 0x1d7
    1474014716    push bp                                   ; 55
    1474114717    mov bp, sp                                ; 89 e5
     
    1475114727    xor ah, ah                                ; 30 e4
    1475214728    cmp bx, strict byte 00003h                ; 83 fb 03
    14753     jc short 09ca2h                           ; 72 1a
    14754     jbe short 09cfah                          ; 76 70
     14729    jc short 09cb2h                           ; 72 1a
     14730    jbe short 09d0ah                          ; 76 70
    1475514731    cmp bx, strict byte 0000eh                ; 83 fb 0e
    14756     je near 09dc7h                            ; 0f 84 36 01
     14732    je near 09dd7h                            ; 0f 84 36 01
    1475714733    cmp bx, strict byte 00008h                ; 83 fb 08
    14758     jc near 09e0ch                            ; 0f 82 74 01
     14734    jc near 09e1ch                            ; 0f 82 74 01
    1475914735    cmp bx, strict byte 0000dh                ; 83 fb 0d
    14760     jbe near 09d1fh                           ; 0f 86 80 00
    14761     jmp near 09e0ch                           ; e9 6a 01
     14736    jbe near 09d2fh                           ; 0f 86 80 00
     14737    jmp near 09e1ch                           ; e9 6a 01
    1476214738    cmp bx, strict byte 00002h                ; 83 fb 02
    14763     je short 09ccah                           ; 74 23
     14739    je short 09cdah                           ; 74 23
    1476414740    cmp bx, strict byte 00001h                ; 83 fb 01
    14765     jne near 09e0ch                           ; 0f 85 5e 01
     14741    jne near 09e1ch                           ; 0f 85 5e 01
    1476614742    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
    1476714743    mov word [bp+014h], 00210h                ; c7 46 14 10 02
     
    1476914745    mov word [bp+018h], 04350h                ; c7 46 18 50 43
    1477014746    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
    14771     jmp near 09e39h                           ; e9 6f 01
     14747    jmp near 09e49h                           ; e9 6f 01
    1477214748    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
    14773     jne short 09cd6h                          ; 75 06
     14749    jne short 09ce6h                          ; 75 06
    1477414750    or ah, 083h                               ; 80 cc 83
    14775     jmp near 09e32h                           ; e9 5c 01
     14751    jmp near 09e42h                           ; e9 5c 01
    1477614752    mov bx, word [bp+008h]                    ; 8b 5e 08
    1477714753    mov dx, word [bp+01ch]                    ; 8b 56 1c
    1477814754    mov ax, word [bp+018h]                    ; 8b 46 18
    1477914755    xor cx, cx                                ; 31 c9
    14780     call 09b72h                               ; e8 8e fe
     14756    call 09b82h                               ; e8 8e fe
    1478114757    cmp ax, strict word 0ffffh                ; 3d ff ff
    14782     jne short 09cf4h                          ; 75 0b
     14758    jne short 09d04h                          ; 75 0b
    1478314759    mov ax, word [bp+020h]                    ; 8b 46 20
    1478414760    xor ah, ah                                ; 30 e4
    1478514761    or ah, 086h                               ; 80 cc 86
    14786     jmp near 09e32h                           ; e9 3e 01
     14762    jmp near 09e42h                           ; e9 3e 01
    1478714763    mov word [bp+014h], ax                    ; 89 46 14
    14788     jmp near 09e39h                           ; e9 3f 01
     14764    jmp near 09e49h                           ; e9 3f 01
    1478914765    mov bx, word [bp+008h]                    ; 8b 5e 08
    1479014766    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1479114767    mov dx, word [bp+01eh]                    ; 8b 56 1e
    1479214768    mov cx, strict word 00001h                ; b9 01 00
    14793     call 09b72h                               ; e8 69 fe
     14769    call 09b82h                               ; e8 69 fe
    1479414770    cmp ax, strict word 0ffffh                ; 3d ff ff
    14795     jne short 09d19h                          ; 75 0b
     14771    jne short 09d29h                          ; 75 0b
    1479614772    mov ax, word [bp+020h]                    ; 8b 46 20
    1479714773    xor ah, ah                                ; 30 e4
    1479814774    or ah, 086h                               ; 80 cc 86
    14799     jmp near 09e32h                           ; e9 19 01
     14775    jmp near 09e42h                           ; e9 19 01
    1480014776    mov word [bp+014h], ax                    ; 89 46 14
    14801     jmp near 09e39h                           ; e9 1a 01
     14777    jmp near 09e49h                           ; e9 1a 01
    1480214778    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
    14803     jc short 09d2ch                           ; 72 06
     14779    jc short 09d3ch                           ; 72 06
    1480414780    or ah, 087h                               ; 80 cc 87
    14805     jmp near 09e32h                           ; e9 06 01
     14781    jmp near 09e42h                           ; e9 06 01
    1480614782    mov dx, word [bp+004h]                    ; 8b 56 04
    1480714783    mov ax, word [bp+014h]                    ; 8b 46 14
    14808     call 09b4eh                               ; e8 19 fe
     14784    call 09b5eh                               ; e8 19 fe
    1480914785    mov bx, word [bp+020h]                    ; 8b 5e 20
    1481014786    xor bh, bh                                ; 30 ff
    1481114787    sub bx, strict byte 00008h                ; 83 eb 08
    1481214788    cmp bx, strict byte 00005h                ; 83 fb 05
    14813     jnbe near 09e39h                          ; 0f 87 f5 00
     14789    jnbe near 09e49h                          ; 0f 87 f5 00
    1481414790    add bx, bx                                ; 01 db
    14815     jmp word [cs:bx-063a3h]                   ; 2e ff a7 5d 9c
     14791    jmp word [cs:bx-06393h]                   ; 2e ff a7 6d 9c
    1481614792    mov bx, word [bp+01ch]                    ; 8b 5e 1c
    1481714793    xor bl, bl                                ; 30 db
     
    1482414800    or bx, ax                                 ; 09 c3
    1482514801    mov word [bp+01ch], bx                    ; 89 5e 1c
    14826     jmp near 09e39h                           ; e9 d4 00
     14802    jmp near 09e49h                           ; e9 d4 00
    1482714803    mov dx, word [bp+004h]                    ; 8b 56 04
    1482814804    xor dh, dh                                ; 30 f6
     
    1483114807    in ax, DX                                 ; ed
    1483214808    mov word [bp+01ch], ax                    ; 89 46 1c
    14833     jmp near 09e39h                           ; e9 c1 00
     14809    jmp near 09e49h                           ; e9 c1 00
    1483414810    mov dx, 00cfch                            ; ba fc 0c
    1483514811    in eax, DX                                ; 66 ed
     
    1484014816    mov word [bp+01ch], ax                    ; 89 46 1c
    1484114817    mov word [bp+01eh], dx                    ; 89 56 1e
    14842     jmp near 09e39h                           ; e9 ac 00
     14818    jmp near 09e49h                           ; e9 ac 00
    1484314819    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1484414820    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1484714823    add dx, 00cfch                            ; 81 c2 fc 0c
    1484814824    out DX, AL                                ; ee
    14849     jmp near 09e39h                           ; e9 99 00
     14825    jmp near 09e49h                           ; e9 99 00
    1485014826    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1485114827    mov dx, word [bp+004h]                    ; 8b 56 04
     
    1485414830    add dx, 00cfch                            ; 81 c2 fc 0c
    1485514831    out DX, ax                                ; ef
    14856     jmp near 09e39h                           ; e9 86 00
     14832    jmp near 09e49h                           ; e9 86 00
    1485714833    mov ax, word [bp+01ch]                    ; 8b 46 1c
    1485814834    mov cx, word [bp+01eh]                    ; 8b 4e 1e
     
    1486314839    ; mov ax, cx                                ; 8b c1
    1486414840    out DX, eax                               ; 66 ef
    14865     jmp short 09e39h                          ; eb 72
     14841    jmp short 09e49h                          ; eb 72
    1486614842    mov bx, word [bp+004h]                    ; 8b 5e 04
    1486714843    mov es, [bp+026h]                         ; 8e 46 26
     
    1487014846    mov cx, word [0f370h]                     ; 8b 0e 70 f3
    1487114847    cmp cx, word [es:bx]                      ; 26 3b 0f
    14872     jbe short 09dedh                          ; 76 11
     14848    jbe short 09dfdh                          ; 76 11
    1487314849    mov ax, word [bp+020h]                    ; 8b 46 20
    1487414850    xor ah, ah                                ; 30 e4
     
    1487614852    mov word [bp+020h], ax                    ; 89 46 20
    1487714853    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
    14878     jmp short 09e01h                          ; eb 14
     14854    jmp short 09e11h                          ; eb 14
    1487914855    les di, [es:bx+002h]                      ; 26 c4 7f 02
    1488014856    mov si, 0f190h                            ; be 90 f1
     
    1488814864    les bx, [bp-008h]                         ; c4 5e f8
    1488914865    mov word [es:bx], ax                      ; 26 89 07
    14890     jmp short 09e39h                          ; eb 2d
     14866    jmp short 09e49h                          ; eb 2d
    1489114867    mov bx, 00db2h                            ; bb b2 0d
    1489214868    mov cx, ds                                ; 8c d9
    1489314869    mov ax, strict word 00004h                ; b8 04 00
    14894     call 01a2ah                               ; e8 13 7c
     14870    call 01a2ah                               ; e8 03 7c
    1489514871    mov ax, word [bp+014h]                    ; 8b 46 14
    1489614872    push ax                                   ; 50
     
    1489914875    push 00d6eh                               ; 68 6e 0d
    1490014876    push strict byte 00004h                   ; 6a 04
    14901     call 01a6bh                               ; e8 44 7c
     14877    call 01a6bh                               ; e8 34 7c
    1490214878    add sp, strict byte 00008h                ; 83 c4 08
    1490314879    mov ax, word [bp+020h]                    ; 8b 46 20
     
    1491114887    pop bp                                    ; 5d
    1491214888    retn                                      ; c3
    14913 pci_find_classcode_:                         ; 0xf9e40 LB 0x2b
     14889pci_find_classcode_:                         ; 0xf9e50 LB 0x2b
    1491414890    push bp                                   ; 55
    1491514891    mov bp, sp                                ; 89 e5
     
    1492614902    int 01ah                                  ; cd 1a
    1492714903    cmp ah, 000h                              ; 80 fc 00
    14928     je near 09e61h                            ; 0f 84 03 00
     14904    je near 09e71h                            ; 0f 84 03 00
    1492914905    mov bx, strict word 0ffffh                ; bb ff ff
    1493014906    mov ax, bx                                ; 89 d8
     
    1493514911    pop bp                                    ; 5d
    1493614912    retn                                      ; c3
    14937 pci_read_config_byte_:                       ; 0xf9e6b LB 0x24
     14913pci_read_config_byte_:                       ; 0xf9e7b LB 0x24
    1493814914    push bp                                   ; 55
    1493914915    mov bp, sp                                ; 89 e5
     
    1495414930    pop bp                                    ; 5d
    1495514931    retn                                      ; c3
    14956 pci_read_config_word_:                       ; 0xf9e8f LB 0x22
     14932pci_read_config_word_:                       ; 0xf9e9f LB 0x22
    1495714933    push bp                                   ; 55
    1495814934    mov bp, sp                                ; 89 e5
     
    1497314949    pop bp                                    ; 5d
    1497414950    retn                                      ; c3
    14975 pci_read_config_dword_:                      ; 0xf9eb1 LB 0x27
     14951pci_read_config_dword_:                      ; 0xf9ec1 LB 0x27
    1497614952    push bp                                   ; 55
    1497714953    mov bp, sp                                ; 89 e5
     
    1499414970    pop bp                                    ; 5d
    1499514971    retn                                      ; c3
    14996 pci_write_config_word_:                      ; 0xf9ed8 LB 0x1c
     14972pci_write_config_word_:                      ; 0xf9ee8 LB 0x1c
    1499714973    push bp                                   ; 55
    1499814974    mov bp, sp                                ; 89 e5
     
    1500914985    pop bp                                    ; 5d
    1501014986    retn                                      ; c3
    15011 vds_is_present_:                             ; 0xf9ef4 LB 0x1d
     14987vds_is_present_:                             ; 0xf9f04 LB 0x1d
    1501214988    push bx                                   ; 53
    1501314989    push bp                                   ; 55
     
    1501714993    mov es, ax                                ; 8e c0
    1501814994    test byte [es:bx], 020h                   ; 26 f6 07 20
    15019     je short 09f0ch                           ; 74 06
     14995    je short 09f1ch                           ; 74 06
    1502014996    mov ax, strict word 00001h                ; b8 01 00
    1502114997    pop bp                                    ; 5d
     
    1502615002    pop bx                                    ; 5b
    1502715003    retn                                      ; c3
    15028 vds_real_to_lin_:                            ; 0xf9f11 LB 0x1e
     15004vds_real_to_lin_:                            ; 0xf9f21 LB 0x1e
    1502915005    push bx                                   ; 53
    1503015006    push cx                                   ; 51
     
    1503715013    sal ax, 1                                 ; d1 e0
    1503815014    rcl dx, 1                                 ; d1 d2
    15039     loop 09f1fh                               ; e2 fa
     15015    loop 09f2fh                               ; e2 fa
    1504015016    xor cx, cx                                ; 31 c9
    1504115017    add ax, bx                                ; 01 d8
     
    1504515021    pop bx                                    ; 5b
    1504615022    retn                                      ; c3
    15047 vds_build_sg_list_:                          ; 0xf9f2f LB 0x79
     15023vds_build_sg_list_:                          ; 0xf9f3f LB 0x79
    1504815024    push bp                                   ; 55
    1504915025    mov bp, sp                                ; 89 e5
     
    1505915035    mov bx, word [bp+006h]                    ; 8b 5e 06
    1506015036    mov word [es:di+002h], bx                 ; 26 89 5d 02
    15061     call 09f11h                               ; e8 c3 ff
     15037    call 09f21h                               ; e8 c3 ff
    1506215038    mov es, si                                ; 8e c6
    1506315039    mov word [es:di+004h], ax                 ; 26 89 45 04
    1506415040    mov word [es:di+006h], dx                 ; 26 89 55 06
    1506515041    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
    15066     call 09ef4h                               ; e8 93 ff
     15042    call 09f04h                               ; e8 93 ff
    1506715043    test ax, ax                               ; 85 c0
    15068     je short 09f78h                           ; 74 13
     15044    je short 09f88h                           ; 74 13
    1506915045    mov es, si                                ; 8e c6
    1507015046    mov ax, 08105h                            ; b8 05 81
    1507115047    mov dx, strict word 00000h                ; ba 00 00
    1507215048    int 04bh                                  ; cd 4b
    15073     jc near 09f75h                            ; 0f 82 02 00
     15049    jc near 09f85h                            ; 0f 82 02 00
    1507415050    db  032h, 0c0h
    1507515051    ; xor al, al                                ; 32 c0
    1507615052    cbw                                       ; 98
    15077     jmp short 09f9fh                          ; eb 27
     15053    jmp short 09fafh                          ; eb 27
    1507815054    mov es, si                                ; 8e c6
    1507915055    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
     
    1509215068    pop bp                                    ; 5d
    1509315069    retn 00004h                               ; c2 04 00
    15094 vds_free_sg_list_:                           ; 0xf9fa8 LB 0x38
     15070vds_free_sg_list_:                           ; 0xf9fb8 LB 0x38
    1509515071    push bp                                   ; 55
    1509615072    mov bp, sp                                ; 89 e5
     
    1509815074    push di                                   ; 57
    1509915075    mov bx, ax                                ; 89 c3
    15100     call 09ef4h                               ; e8 42 ff
     15076    call 09f04h                               ; e8 42 ff
    1510115077    test ax, ax                               ; 85 c0
    15102     je short 09fc9h                           ; 74 13
     15078    je short 09fd9h                           ; 74 13
    1510315079    mov di, bx                                ; 89 df
    1510415080    mov es, dx                                ; 8e c2
     
    1510615082    mov dx, strict word 00000h                ; ba 00 00
    1510715083    int 04bh                                  ; cd 4b
    15108     jc near 09fc8h                            ; 0f 82 02 00
     15084    jc near 09fd8h                            ; 0f 82 02 00
    1510915085    db  032h, 0c0h
    1511015086    ; xor al, al                                ; 32 c0
     
    1511815094    retn                                      ; c3
    1511915095    times 0x8 db 0
    15120 __U4M:                                       ; 0xf9fe0 LB 0x40
     15096__U4M:                                       ; 0xf9ff0 LB 0x40
    1512115097    pushfw                                    ; 9c
    1512215098    push eax                                  ; 66 50
     
    1514415120    retn                                      ; c3
    1514515121    times 0xf db 0
    15146 __U4D:                                       ; 0xfa020 LB 0x40
     15122__U4D:                                       ; 0xfa030 LB 0x40
    1514715123    pushfw                                    ; 9c
    1514815124    push eax                                  ; 66 50
     
    1517515151    retn                                      ; c3
    1517615152    times 0x7 db 0
    15177 __U8RS:                                      ; 0xfa060 LB 0x10
     15153__U8RS:                                      ; 0xfa070 LB 0x10
    1517815154    test si, si                               ; 85 f6
    15179     je short 0a06fh                           ; 74 0b
     15155    je short 0a07fh                           ; 74 0b
    1518015156    shr ax, 1                                 ; d1 e8
    1518115157    rcr bx, 1                                 ; d1 db
     
    1518315159    rcr dx, 1                                 ; d1 da
    1518415160    dec si                                    ; 4e
    15185     jne short 0a064h                          ; 75 f5
     15161    jne short 0a074h                          ; 75 f5
    1518615162    retn                                      ; c3
    15187 __U8LS:                                      ; 0xfa070 LB 0x10
     15163__U8LS:                                      ; 0xfa080 LB 0x10
    1518815164    test si, si                               ; 85 f6
    15189     je short 0a07fh                           ; 74 0b
     15165    je short 0a08fh                           ; 74 0b
    1519015166    sal dx, 1                                 ; d1 e2
    1519115167    rcl cx, 1                                 ; d1 d1
     
    1519315169    rcl ax, 1                                 ; d1 d0
    1519415170    dec si                                    ; 4e
    15195     jne short 0a074h                          ; 75 f5
     15171    jne short 0a084h                          ; 75 f5
    1519615172    retn                                      ; c3
    15197 _fmemset_:                                   ; 0xfa080 LB 0x10
     15173_fmemset_:                                   ; 0xfa090 LB 0x10
    1519815174    push di                                   ; 57
    1519915175    mov es, dx                                ; 8e c2
     
    1520615182    retn                                      ; c3
    1520715183    times 0x3 db 0
    15208 _fmemcpy_:                                   ; 0xfa090 LB 0x3a
     15184_fmemcpy_:                                   ; 0xfa0a0 LB 0x3a
    1520915185    push bp                                   ; 55
    1521015186    db  08bh, 0ech
     
    1522815204    pop bp                                    ; 5d
    1522915205    retn                                      ; c3
    15230     db  000h, 000h, 000h, 000h, 000h, 000h, 0e0h, 0a0h, 0e2h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h, 0e6h, 0a0h
    15231     db  0e8h, 0a0h, 0e8h, 0a0h, 0eah, 0a0h, 0eeh, 0a0h, 0eeh, 0a0h, 0f0h, 0a0h, 0f5h, 0a0h, 0f7h, 0a0h
    15232 apm_worker:                                  ; 0xfa0ca LB 0x3a
     15206    add byte [bx+si], al                      ; 00 00
     15207    add byte [bx+si], al                      ; 00 00
     15208    add byte [bx+si], al                      ; 00 00
     15209    db  0f0h, 0a0h, 0f2h, 0a0h, 0f6h, 0a0h, 0f6h, 0a0h, 0f6h, 0a0h, 0f8h, 0a0h, 0f8h, 0a0h, 0fah, 0a0h
     15210    db  0feh, 0a0h, 0feh, 0a0h, 000h, 0a1h, 005h, 0a1h, 007h, 0a1h
     15211apm_worker:                                  ; 0xfa0da LB 0x3a
    1523315212    sti                                       ; fb
    1523415213    push ax                                   ; 50
     
    1524215221    pop ax                                    ; 58
    1524315222    mov AH, strict byte 053h                  ; b4 53
    15244     jnc short 0a100h                          ; 73 25
    15245     jmp word [cs:bp-05f50h]                   ; 2e ff a6 b0 a0
    15246     jmp short 0a0feh                          ; eb 1c
     15223    jnc short 0a110h                          ; 73 25
     15224    jmp word [cs:bp-05f40h]                   ; 2e ff a6 c0 a0
     15225    jmp short 0a10eh                          ; eb 1c
    1524715226    sti                                       ; fb
    1524815227    hlt                                       ; f4
    15249     jmp short 0a0feh                          ; eb 18
    15250     jmp short 0a0feh                          ; eb 16
    15251     jmp short 0a100h                          ; eb 16
     15228    jmp short 0a10eh                          ; eb 18
     15229    jmp short 0a10eh                          ; eb 16
     15230    jmp short 0a110h                          ; eb 16
    1525215231    mov AH, strict byte 080h                  ; b4 80
    15253     jmp short 0a102h                          ; eb 14
    15254     jmp short 0a100h                          ; eb 10
     15232    jmp short 0a112h                          ; eb 14
     15233    jmp short 0a110h                          ; eb 10
    1525515234    mov ax, 00102h                            ; b8 02 01
    15256     jmp short 0a0feh                          ; eb 09
    15257     jmp short 0a0feh                          ; eb 07
     15235    jmp short 0a10eh                          ; eb 09
     15236    jmp short 0a10eh                          ; eb 07
    1525815237    mov BL, strict byte 000h                  ; b3 00
    1525915238    mov cx, strict word 00000h                ; b9 00 00
    15260     jmp short 0a0feh                          ; eb 00
     15239    jmp short 0a10eh                          ; eb 00
    1526115240    clc                                       ; f8
    1526215241    retn                                      ; c3
     
    1526415243    stc                                       ; f9
    1526515244    retn                                      ; c3
    15266 apm_pm16_entry:                              ; 0xfa104 LB 0x11
     15245apm_pm16_entry:                              ; 0xfa114 LB 0x11
    1526715246    mov AH, strict byte 002h                  ; b4 02
    1526815247    push DS                                   ; 1e
     
    1527215251    add bp, strict byte 00008h                ; 83 c5 08
    1527315252    mov ds, bp                                ; 8e dd
    15274     call 0a0cah                               ; e8 b8 ff
     15253    call 0a0dah                               ; e8 b8 ff
    1527515254    pop bp                                    ; 5d
    1527615255    pop DS                                    ; 1f
    1527715256    retf                                      ; cb
    1527815257
    15279   ; Padding 0x38eb bytes at 0xfa115
    15280   times 14571 db 0
     15258  ; Padding 0x38db bytes at 0xfa125
     15259  times 14555 db 0
    1528115260
    1528215261section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
     
    1532515304    add bp, strict byte 00008h                ; 83 c5 08
    1532615305    push ebp                                  ; 66 55
    15327     mov bp, 0a106h                            ; bd 06 a1
     15306    mov bp, 0a116h                            ; bd 16 a1
    1532815307    add byte [bx+si], al                      ; 00 00
    1532915308    push ebp                                  ; 66 55
     
    1593915918    mov dx, 0c800h                            ; ba 00 c8
    1594015919    call 01600h                               ; e8 e1 33
    15941     call 04fceh                               ; e8 ac 6d
     15920    call 04fdah                               ; e8 b8 6d
    1594215921    pop DS                                    ; 1f
    1594315922    mov ax, 0ff53h                            ; b8 53 ff
     
    1599415973    mov ax, 0f000h                            ; b8 00 f0
    1599515974    mov word [0012ah], ax                     ; a3 2a 01
    15996     mov ax, 0f8f8h                            ; b8 f8 f8
     15975    mov ax, 0f8feh                            ; b8 fe f8
    1599715976    mov word [001c0h], ax                     ; a3 c0 01
    1599815977    mov ax, 0f000h                            ; b8 00 f0
     
    1603016009    mov ax, 0f000h                            ; b8 00 f0
    1603116010    mov word [0004eh], ax                     ; a3 4e 00
    16032     mov ax, 0f8e6h                            ; b8 e6 f8
     16011    mov ax, 0f8ech                            ; b8 ec f8
    1603316012    mov word [001d8h], ax                     ; a3 d8 01
    1603416013    mov ax, 0f000h                            ; b8 00 f0
     
    1604316022    mov word [0011ah], ax                     ; a3 1a 01
    1604416023    retn                                      ; c3
    16045     mov ax, 0f8bbh                            ; b8 bb f8
     16024    mov ax, 0f8c1h                            ; b8 c1 f8
    1604616025    mov word [001d0h], ax                     ; a3 d0 01
    1604716026    mov ax, 0f000h                            ; b8 00 f0
     
    1606016039    call 01da8h                               ; e8 65 3a
    1606116040    call 02235h                               ; e8 ef 3e
    16062     call 0990ah                               ; e8 c1 b5
    16063     call 087eeh                               ; e8 a2 a4
     16041    call 0991ah                               ; e8 d1 b5
     16042    call 087feh                               ; e8 b2 a4
    1606416043    call 0ed2fh                               ; e8 e0 09
    1606516044    call 0e2d2h                               ; e8 80 ff
     
    1607916058    ; xor edx, edx                              ; 66 33 d2
    1608016059    call 01890h                               ; e8 23 35
    16081     call 03cb1h                               ; e8 41 59
     16060    call 03cbdh                               ; e8 4d 59
    1608216061    sti                                       ; fb
    1608316062    int 019h                                  ; cd 19
     
    1618116160    pop DS                                    ; 1f
    1618216161    cld                                       ; fc
    16183     call 064e3h                               ; e8 a1 7d
     16162    call 064f3h                               ; e8 b1 7d
    1618416163    popaw                                     ; 61
    1618516164    pop ES                                    ; 07
     
    1625716236    pop DS                                    ; 1f
    1625816237    cld                                       ; fc
    16259     call 057d9h                               ; e8 97 6f
     16238    call 057e5h                               ; e8 a3 6f
    1626016239    popaw                                     ; 61
    1626116240    pop DS                                    ; 1f
     
    1627416253    pop DS                                    ; 1f
    1627516254    cld                                       ; fc
    16276     call 057d9h                               ; e8 79 6f
     16255    call 057e5h                               ; e8 85 6f
    1627716256    popaw                                     ; 61
    1627816257    pop DS                                    ; 1f
     
    1636816347    pop DS                                    ; 1f
    1636916348    cld                                       ; fc
    16370     call 052d1h                               ; e8 12 69
     16349    call 052ddh                               ; e8 1e 69
    1637116350    pop ES                                    ; 07
    1637216351    popaw                                     ; 61
     
    1638416363    pop DS                                    ; 1f
    1638516364    cld                                       ; fc
    16386     call 06fach                               ; e8 d7 85
     16365    call 06fbch                               ; e8 e7 85
    1638716366    pop DS                                    ; 1f
    1638816367    pop ES                                    ; 07
     
    1640616385    cld                                       ; fc
    1640716386    push 0ece9h                               ; 68 e9 ec
    16408     jmp near 03cf5h                           ; e9 84 50
     16387    jmp near 03d01h                           ; e9 90 50
    1640916388    push ES                                   ; 06
    1641016389    push ax                                   ; 50
     
    1641216391    push cx                                   ; 51
    1641316392    push dx                                   ; 52
    16414     call 03cc9h                               ; e8 50 50
     16393    call 03cd5h                               ; e8 5c 50
    1641516394    cmp AL, strict byte 000h                  ; 3c 00
    1641616395    je short 0ecabh                           ; 74 2e
    16417     call 03cdfh                               ; e8 5f 50
     16396    call 03cebh                               ; e8 6b 50
    1641816397    pop dx                                    ; 5a
    1641916398    push dx                                   ; 52
     
    1643316412    cld                                       ; fc
    1643416413    push 0ece9h                               ; 68 e9 ec
    16435     jmp near 042cah                           ; e9 33 56
     16414    jmp near 042d6h                           ; e9 3f 56
    1643616415    and dl, 0e0h                              ; 80 e2 e0
    1643716416    db  03ah, 0c2h
     
    1647916458    shr ebx, 010h                             ; 66 c1 eb 10
    1648016459    push bx                                   ; 53
    16481     call 046feh                               ; e8 29 5a
     16460    call 0470ah                               ; e8 35 5a
    1648216461    pop bx                                    ; 5b
    1648316462    sal ebx, 010h                             ; 66 c1 e3 10
     
    1648616465    cmp ah, 040h                              ; 80 fc 40
    1648716466    jnbe short 0ece6h                         ; 77 05
    16488     call 05ba5h                               ; e8 c1 6e
     16467    call 05bb1h                               ; e8 cd 6e
    1648916468    jmp short 0ece9h                          ; eb 03
    16490     call 05fefh                               ; e8 06 73
     16469    call 05fffh                               ; e8 16 73
    1649116470int13_out:                                   ; 0xfece9 LB 0x4
    1649216471    pop DS                                    ; 1f
     
    1670416683    pop DS                                    ; 1f
    1670516684    cld                                       ; fc
    16706     call 07927h                               ; e8 4a 89
     16685    call 07937h                               ; e8 5a 89
    1670716686    popaw                                     ; 61
    1670816687    pop ES                                    ; 07
     
    1675516734    mov ax, strict word 00001h                ; b8 01 00
    1675616735    push ax                                   ; 50
    16757     call 04d65h                               ; e8 95 5c
     16736    call 04d71h                               ; e8 a1 5c
    1675816737    inc sp                                    ; 44
    1675916738    inc sp                                    ; 44
     
    1676216741    mov ax, strict word 00002h                ; b8 02 00
    1676316742    push ax                                   ; 50
    16764     call 04d65h                               ; e8 88 5c
     16743    call 04d71h                               ; e8 94 5c
    1676516744    inc sp                                    ; 44
    1676616745    inc sp                                    ; 44
     
    1676916748    mov ax, strict word 00003h                ; b8 03 00
    1677016749    push ax                                   ; 50
    16771     call 04d65h                               ; e8 7b 5c
     16750    call 04d71h                               ; e8 87 5c
    1677216751    inc sp                                    ; 44
    1677316752    inc sp                                    ; 44
     
    1677616755    mov ax, strict word 00004h                ; b8 04 00
    1677716756    push ax                                   ; 50
    16778     call 04d65h                               ; e8 6e 5c
     16757    call 04d71h                               ; e8 7a 5c
    1677916758    inc sp                                    ; 44
    1678016759    inc sp                                    ; 44
     
    1691816897    pop DS                                    ; 1f
    1691916898    cld                                       ; fc
    16920     call 06e01h                               ; e8 9a 75
     16899    call 06e11h                               ; e8 aa 75
    1692116900    pop DS                                    ; 1f
    1692216901    pop ES                                    ; 07
     
    1694016919    cmp ah, 0c2h                              ; 80 fc c2
    1694116920    je short 0f899h                           ; 74 0e
    16942     call 06735h                               ; e8 a7 6e
     16921    call 06745h                               ; e8 b7 6e
    1694316922    popaw                                     ; 61
    1694416923    pop ES                                    ; 07
     
    1694616925    popfw                                     ; 9d
    1694716926    jmp short 0f8a7h                          ; eb 13
    16948     call 09a59h                               ; e8 c2 a1
     16927    call 09a69h                               ; e8 d2 a1
    1694916928    jmp short 0f88eh                          ; eb f5
    1695016929int15_handler_mouse:                         ; 0xff899 LB 0x5
    16951     call 0759ch                               ; e8 00 7d
     16930    call 075ach                               ; e8 10 7d
    1695216931    jmp short 0f88eh                          ; eb f0
    1695316932int15_handler32:                             ; 0xff89e LB 0x9
    1695416933    pushad                                    ; 66 60
    16955     call 06a6bh                               ; e8 c8 71
     16934    call 06a7bh                               ; e8 d8 71
    1695616935    popad                                     ; 66 61
    1695716936    jmp short 0f88fh                          ; eb e8
    16958 iret_modify_cf:                              ; 0xff8a7 LB 0x14
    16959     jc short 0f8b2h                           ; 72 09
     16937iret_modify_cf:                              ; 0xff8a7 LB 0x1a
     16938    jc short 0f8b7h                           ; 72 0e
    1696016939    push bp                                   ; 55
    1696116940    db  08bh, 0ech
    1696216941    ; mov bp, sp                                ; 8b ec
    1696316942    and byte [bp+006h], 0feh                  ; 80 66 06 fe
     16943    or word [bp+006h], 00200h                 ; 81 4e 06 00 02
    1696416944    pop bp                                    ; 5d
    1696516945    iret                                      ; cf
     
    1696716947    db  08bh, 0ech
    1696816948    ; mov bp, sp                                ; 8b ec
    16969     or byte [bp+006h], 001h                   ; 80 4e 06 01
     16949    or word [bp+006h], 00201h                 ; 81 4e 06 01 02
    1697016950    pop bp                                    ; 5d
    1697116951    iret                                      ; cf
    16972 int74_handler:                               ; 0xff8bb LB 0x2b
     16952int74_handler:                               ; 0xff8c1 LB 0x2b
    1697316953    sti                                       ; fb
    1697416954    pushaw                                    ; 60
     
    1698516965    pop DS                                    ; 1f
    1698616966    cld                                       ; fc
    16987     call 074d2h                               ; e8 06 7c
     16967    call 074e2h                               ; e8 10 7c
    1698816968    pop cx                                    ; 59
    16989     jcxz 0f8dbh                               ; e3 0c
     16969    jcxz 0f8e1h                               ; e3 0c
    1699016970    push strict byte 00000h                   ; 6a 00
    1699116971    pop DS                                    ; 1f
     
    1699416974    call far [word 00022h]                    ; ff 1e 22 00
    1699516975    cli                                       ; fa
    16996     call 0e030h                               ; e8 51 e7
     16976    call 0e030h                               ; e8 4b e7
    1699716977    add sp, strict byte 00008h                ; 83 c4 08
    1699816978    pop DS                                    ; 1f
     
    1700016980    popaw                                     ; 61
    1700116981    iret                                      ; cf
    17002 int76_handler:                               ; 0xff8e6 LB 0x12
     16982int76_handler:                               ; 0xff8ec LB 0x12
    1700316983    push ax                                   ; 50
    1700416984    push DS                                   ; 1e
     
    1700616986    mov ds, ax                                ; 8e d8
    1700716987    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
    17008     call 0e030h                               ; e8 3b e7
     16988    call 0e030h                               ; e8 35 e7
    1700916989    pop DS                                    ; 1f
    1701016990    pop ax                                    ; 58
    1701116991    iret                                      ; cf
    17012 int70_handler:                               ; 0xff8f8 LB 0xd
     16992int70_handler:                               ; 0xff8fe LB 0xd
    1701316993    push ES                                   ; 06
    1701416994    push DS                                   ; 1e
     
    1701716997    pop DS                                    ; 1f
    1701816998    cld                                       ; fc
    17019     call 0718ah                               ; e8 89 78
     16999    call 0719ah                               ; e8 93 78
    1702017000    popaw                                     ; 61
    1702117001    pop DS                                    ; 1f
    1702217002    pop ES                                    ; 07
    1702317003    iret                                      ; cf
    17024 biosorg_check_before_or_at_0FA6Ch:           ; 0xff905 LB 0x169
    17025     times 0x167 db 0
     17004biosorg_check_before_or_at_0FA6Ch:           ; 0xff90b LB 0x163
     17005    times 0x161 db 0
    1702617006    db  'XM'
    1702717007font8x8:                                     ; 0xffa6e LB 0x400
     
    1709917079    cld                                       ; fc
    1710017080    pushad                                    ; 66 60
    17101     call 09c69h                               ; e8 ec 9d
     17081    call 09c79h                               ; e8 fc 9d
    1710217082    popad                                     ; 66 61
    1710317083    pop DS                                    ; 1f
     
    1711017090    pop DS                                    ; 1f
    1711117091    cld                                       ; fc
    17112     call 07248h                               ; e8 bd 73
     17092    call 07258h                               ; e8 cd 73
    1711317093    popaw                                     ; 61
    1711417094    pop DS                                    ; 1f
     
    1721317193cpu_reset:                                   ; 0xffff0 LB 0x10
    1721417194    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
    17215     db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 098h
     17195    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0a1h
Note: See TracChangeset for help on using the changeset viewer.

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